diff --git a/.browserslistrc b/.browserslistrc
new file mode 100644
index 0000000..0739ce7
--- /dev/null
+++ b/.browserslistrc
@@ -0,0 +1,13 @@
+# Browsers that we support
+
+# https://github.com/browserslist/browserslist#readme
+
+>= 0.5%
+last 2 major versions
+not dead
+Chrome >= 60
+Firefox >= 60
+Firefox ESR
+iOS >= 12
+Safari >= 12
+not Explorer <= 11
diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..2d1dc13
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,16 @@
+.git
+*.md
+node_modules/
+npm-debug.log
+.npmrc
+tests/
+Dockerfile*
+.dockerignore
+.git
+.gitignore
+README.md
+LICENSE
+.vscode
+vendor/
+public/build/
+auth.json
diff --git a/.editorconfig b/.editorconfig
index 8b827c7..2e1b261 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -3,9 +3,9 @@ root = true
[*]
charset = utf-8
end_of_line = lf
-insert_final_newline = true
-indent_style = space
indent_size = 4
+indent_style = space
+insert_final_newline = true
trim_trailing_whitespace = true
[*.md]
@@ -14,8 +14,8 @@ trim_trailing_whitespace = false
[*.{yml,yaml}]
indent_size = 2
-[*.vue]
-indent_size = 2
-
[docker-compose.yml]
indent_size = 4
+
+[*.vue]
+indent_size = 2
diff --git a/.env.example b/.env.example
index 5acc673..a1f5fc7 100644
--- a/.env.example
+++ b/.env.example
@@ -5,8 +5,6 @@ APP_DEBUG=true
APP_URL=http://localhost
API_TOKEN=toto
-BRAND=
-
LOG_CHANNEL=stack
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug
@@ -33,10 +31,15 @@ MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"
+MAIL_TO_ADDRESS=null
+MAIL_TO_NAME=null
# SENTRY
SENTRY_LARAVEL_DSN=
-# LDC WEB STATUS CHECKER
-LDC_STATUS_CHECKER_API_KEY="MY_KEY"
-LDC_STATUS_CHECKER_UUID="UUID_PROJECT"
+# SAML
+SAML2_DEFAULT_TENANT_UUID=
+SAML2_SP_CERT_x509=
+SAML2_SP_CERT_PRIVATEKEY=
+SAML2_CONTACT_TECHNICAL_EMAIL=
+SAML2_CONTACT_SUPPORT_EMAIL=
diff --git a/.eslintrc.json b/.eslintrc.json
index cfdce2b..42a2da7 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -29,7 +29,14 @@
"sourceType": "module"
},
"plugins": ["vue", "@typescript-eslint"],
- "ignorePatterns": ["webpack.mix.js", "**/vendor/*.js", "**/vendor/**/*.js"],
+ "ignorePatterns": [
+ "webpack.mix.js",
+ "**/*.php",
+ "**/*.svg",
+ "**/vendor/*.js",
+ "**/vendor/**/*.js",
+ "**/vendor/**/*.scss"
+ ],
"rules": {
"indent": ["error", 4, { "SwitchCase": 1 }],
"linebreak-style": ["error", "unix"],
@@ -37,5 +44,19 @@
"semi": ["error", "always"],
"vue/script-indent": ["error", 2, { "baseIndent": 0, "switchCase": 1 }],
"vue/one-component-per-file": "off"
+ },
+ "settings": {
+ "import/resolver": {
+ "node": {
+ "extensions": [".js", ".vue", ".ts", ".d.ts"]
+ },
+ "alias": {
+ "extensions": [".vue", ".js", ".ts", ".scss", ".d.ts"],
+ "map": [
+ ["~", "./resources/assets"],
+ ["@", "./node_modules"]
+ ]
+ }
+ }
}
}
diff --git a/.gitattributes b/.gitattributes
index 510d996..fcb21d3 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,4 +1,4 @@
-* text=auto
+* text=auto eol=lf
*.blade.php diff=html
*.css diff=css
@@ -8,3 +8,4 @@
/.github export-ignore
CHANGELOG.md export-ignore
+.styleci.yml export-ignore
diff --git a/.gitignore b/.gitignore
index 54f218e..8cbdd16 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,3 +25,6 @@ npm-debug.log
yarn-error.log
.vscode/settings.json
.npmrc
+.zshrc
+.composer/
+.npm/
\ No newline at end of file
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000..2593503
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,23 @@
+include:
+- project: "ldc-web/shared-ci"
+ ref: "main"
+ file: "lint/lint.yml"
+- project: "ldc-web/shared-ci"
+ ref: "main"
+ file: "security/security.yml"
+- project: "ldc-web/shared-ci"
+ ref: "main"
+ file: "build/docker-multistage.yml"
+- project: "ldc-web/shared-ci"
+ ref: "main"
+ file: "test/test.yml"
+- project: "ldc-web/shared-ci"
+ ref: "main"
+ file: "deploy/deploy.yml"
+
+stages:
+- lint
+- security
+- build
+- test
+- deploy
diff --git a/.gitlab/issue_templates/bug.md b/.gitlab/issue_templates/bug.md
new file mode 100644
index 0000000..242ebe7
--- /dev/null
+++ b/.gitlab/issue_templates/bug.md
@@ -0,0 +1,11 @@
+## Comportement constaté
+
+
+## Comportement attendu
+
+
+## Solution envisagée
+
+
+## Étapes pour la reproduction du bug
+*
\ No newline at end of file
diff --git a/.gitlab/issue_templates/feature.md b/.gitlab/issue_templates/feature.md
new file mode 100644
index 0000000..6074090
--- /dev/null
+++ b/.gitlab/issue_templates/feature.md
@@ -0,0 +1,7 @@
+## Présentation du besoin
+
+
+## Implémentation
+
+
+## Maquettes, documentations...
\ No newline at end of file
diff --git a/.styleci.yml b/.styleci.yml
deleted file mode 100644
index 877ea70..0000000
--- a/.styleci.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-php:
- preset: laravel
- version: 8
- disabled:
- - no_unused_imports
- finder:
- not-name:
- - index.php
- - server.php
-js:
- finder:
- not-name:
- - webpack.mix.js
-css: true
diff --git a/.stylelintrc.json b/.stylelintrc.json
index 85dffe8..b32ffae 100644
--- a/.stylelintrc.json
+++ b/.stylelintrc.json
@@ -18,8 +18,7 @@
],
"customSyntax": "postcss-scss",
"rules": {
- "indentation": 4,
- "string-quotes": "double",
+ "declaration-property-value-no-unknown": true,
"selector-max-id": null,
"color-no-invalid-hex": true,
"order/properties-alphabetical-order": null,
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..50f5278
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,45 @@
+FROM composer:2.8 AS vendor
+
+ARG GITLAB_USER
+ARG GITLAB_PASSWORD
+
+COPY database/ database/
+
+COPY composer.json composer.json
+COPY composer.lock composer.lock
+
+RUN composer config gitlab-token.lab.s-web.fr ${GITLAB_USER} ${GITLAB_PASSWORD}
+RUN composer install \
+ --ignore-platform-reqs \
+ --no-interaction \
+ --no-plugins \
+ --no-scripts \
+ --no-dev \
+ --prefer-dist
+
+FROM node:20.18 AS frontend
+
+ARG GITLAB_PASSWORD
+
+RUN mkdir -p /app/public/build
+
+COPY package*.json tsconfig.json vite.config.ts .eslintrc.json .stylelintrc.json /app/
+COPY resources/ /app/resources/
+COPY --from=vendor /app/vendor/ /app/vendor/
+WORKDIR /app
+RUN npm config set @ldc-web:registry https://lab.s-web.fr/api/v4/packages/npm/
+RUN npm config set -- '//lab.s-web.fr/api/v4/packages/npm/:_authToken' "${GITLAB_PASSWORD}"
+RUN npm ci && npm run prod
+
+FROM registry.s-web.fr/ldc-web/projets/ldc-web-images-docker/ldcweb-production-8.3:170625-101047
+
+ARG USER=www-data
+
+COPY --chown=${USER}:${USER} . /app/srcs
+COPY --chown=${USER}:${USER} ./resources/favicon /app/srcs/public
+COPY --from=vendor --chown=${USER}:${USER} /app/vendor/ /app/srcs/vendor/
+COPY --from=frontend --chown=${USER}:${USER} /app/public/build/ /app/srcs/public/build/
+
+USER root
+RUN chmod -R 755 /app/srcs/storage
+USER ${USER}
diff --git a/README.md b/README.md
index 44f526a..8653cf4 100644
--- a/README.md
+++ b/README.md
@@ -8,3 +8,6 @@
- continue migrations :
`php artisan migrate`
+
+TODO:
+- sur les méthodes GET le token est visible dans les logs server..
diff --git a/app/Casts/AsInput.php b/app/Casts/AsInput.php
index 0a4c6c5..cd68b4d 100644
--- a/app/Casts/AsInput.php
+++ b/app/Casts/AsInput.php
@@ -6,44 +6,42 @@ use App\Enums\Formularies\InputTypeEnum;
use App\Lib\Inputs\Definition\Input;
use App\Lib\Inputs\Definition\InputData;
use Illuminate\Contracts\Database\Eloquent\CastsAttributes;
+use Illuminate\Database\Eloquent\Model;
class AsInput implements CastsAttributes
{
/**
* Cast the given value.
*
- * @param \Illuminate\Database\Eloquent\Model $model
- * @param string $key
- * @param mixed $value
- * @param array $attributes
+ * @param \Illuminate\Database\Eloquent\Model $model
+ * @param string $key
+ * @param mixed $value
+ * @param array $attributes
* @return \App\Lib\Inputs\Definition\Input
- * @phpcs:disable Squiz.Commenting.FunctionComment.TypeHintMissing
* @phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundInImplementedInterfaceBeforeLastUsed
* @phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundInImplementedInterfaceAfterLastUsed
*/
- public function get($model, string $key, $value, array $attributes): Input
+ public function get(Model $model, string $key, mixed $value, array $attributes): Input
{
// phpcs:enable
- /** @var string $class */
- /** @var array $data */
+ /** @var array $inputData */
$inputData = \json_decode($value, true);
- $inputClass = InputTypeEnum::make($inputData['type'])->inputClass;
+ $inputClass = InputTypeEnum::make($inputData['type'])->getInputClass();
return $inputClass::from(InputData::make(...\array_values($inputData)), $inputData['required'] ?? false);
}
/**
* Prepare the given value for storage.
*
- * @param \Illuminate\Database\Eloquent\Model $model
- * @param string $key
- * @param \App\Lib\Inputs\Definition\Input $value
- * @param array $attributes
+ * @param \Illuminate\Database\Eloquent\Model $model
+ * @param string $key
+ * @param mixed $value
+ * @param array $attributes
* @return string Json encoded \App\Lib\Inputs\Definition\Input
- * @phpcs:disable Squiz.Commenting.FunctionComment.TypeHintMissing
* @phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundInImplementedInterfaceBeforeLastUsed
* @phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundInImplementedInterfaceAfterLastUsed
*/
- public function set($model, string $key, $value, array $attributes)
+ public function set(Model $model, string $key, mixed $value, array $attributes): string
{
// phpcs:enable
$this->assertIsInput($value);
@@ -53,11 +51,12 @@ class AsInput implements CastsAttributes
/**
* Assert is instance of \App\Lib\Inputs\Definition\Input
+ *
* @param mixed $value
* @return void
* @throws \RuntimeException If the value is not an input.
*/
- private function assertIsInput($value): void
+ private function assertIsInput(mixed $value): void
{
if (!\is_object($value) or !\in_array(Input::class, \class_parents($value))) {
$value = \json_encode($value);
diff --git a/app/Console/Commands/CreateAdmin.php b/app/Console/Commands/CreateAdmin.php
index 3fad0bf..bc1d588 100644
--- a/app/Console/Commands/CreateAdmin.php
+++ b/app/Console/Commands/CreateAdmin.php
@@ -28,37 +28,30 @@ class CreateAdmin extends Command
protected $description = 'Create a backend admin user';
/**
- * The firstname of the new user.
+ * The first name of the new user.
*
- * @var string
+ * @var string|null
*/
- protected $firstname;
+ protected $first_name;
/**
- * The lastname of the new user.
+ * The last name of the new user.
*
- * @var string
+ * @var string|null
*/
- protected $lastname;
+ protected $last_name;
/**
* The email of the new user.
*
- * @var string
+ * @var string|null
*/
protected $email;
- /**
- * The password of the new user.
- *
- * @var string
- */
- protected $password;
-
/**
* The role of the new user.
*
- * @var string
+ * @var string|null
*/
protected $role;
@@ -67,30 +60,26 @@ class CreateAdmin extends Command
*
* @return integer
*/
- public function handle()
+ public function handle(): int
{
- $this->firstname = null;
+ $this->first_name = null;
$this->addFirstname();
- $this->lastname = null;
+ $this->last_name = null;
$this->addLastname();
$this->email = null;
$this->addEmail();
- $this->password = null;
- $this->addPassword();
-
$this->role = null;
$this->addRole();
$user = new User([
- 'firstname' => $this->firstname,
- 'lastname' => $this->lastname,
- 'email' => $this->email,
+ 'first_name' => $this->first_name,
+ 'last_name' => $this->last_name,
+ 'email' => $this->email,
'email_verified_at' => now(),
- 'password' => $this->password,
- 'role' => $this->role
+ 'role' => $this->role,
]);
$user->saveOrFail();
@@ -106,14 +95,14 @@ class CreateAdmin extends Command
*/
private function addFirstname(): void
{
- while (is_null($this->firstname)) {
+ while (is_null($this->first_name)) {
try {
$tmp = $this->ask('Type the wanted user firstname', 'Admin');
$validator = Validator::make(['firstname' => $tmp], [
'firstname' => 'required|min:3|max:255'
]);
$validator->validate();
- $this->firstname = $tmp;
+ $this->first_name = $tmp;
} catch (ValidationException $e) {
$this->error(sprintf(
'Please provide a valid firstname %s',
@@ -131,14 +120,14 @@ class CreateAdmin extends Command
*/
private function addLastname(): void
{
- while (is_null($this->lastname)) {
+ while (is_null($this->last_name)) {
try {
$tmp = $this->ask('Type the wanted user lastname', 'Saïtama');
$validator = Validator::make(['lastname' => $tmp], [
'lastname' => 'required|min:3|max:255'
]);
$validator->validate();
- $this->lastname = $tmp;
+ $this->last_name = $tmp;
} catch (ValidationException $e) {
$this->error(sprintf(
'Please provide a valid lastname %s',
@@ -174,22 +163,6 @@ class CreateAdmin extends Command
}; //end while
}
- /**
- * Add a password to the user.
- *
- * @return void
- */
- private function addPassword(): void
- {
- while (
- ($this->password = $this->secret(
- (!\is_null($this->password) ? 'Failed to confirm, ' : '') . 'Type the wanted user password'
- )) !== $this->secret('Confirm the password')
- ) {
- continue;
- }; //end while
- }
-
/**
* Add a role to the user.
*
@@ -201,16 +174,16 @@ class CreateAdmin extends Command
try {
$tmp = $this->choice(
'Select his role',
- [UserRolesEnum::admin()->label, UserRolesEnum::client()->label],
- UserRolesEnum::client()->label,
+ [UserRolesEnum::admin->label(), UserRolesEnum::client->label()],
+ UserRolesEnum::client->label(),
$maxAttempts = null,
$allowMultipleSelections = false
);
- if ($tmp === UserRolesEnum::admin()->label) {
- $tmp = UserRolesEnum::admin();
+ if ($tmp === UserRolesEnum::admin->label()) {
+ $tmp = UserRolesEnum::admin;
}
- if ($tmp === UserRolesEnum::client()->label) {
- $tmp = UserRolesEnum::client();
+ if ($tmp === UserRolesEnum::client->label()) {
+ $tmp = UserRolesEnum::client;
}
$validator = Validator::make(['role' => $tmp], [
'role' => 'required'
@@ -219,7 +192,7 @@ class CreateAdmin extends Command
$this->role = $tmp;
} catch (ValidationException $e) {
$this->error(sprintf(
- 'Please choose from the selection',
+ 'Please choose from the selection %s',
\implode(',', collect($e->errors())->flatten()->all())
));
continue;
diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php
index be055ac..b2f5a87 100644
--- a/app/Console/Kernel.php
+++ b/app/Console/Kernel.php
@@ -2,30 +2,17 @@
namespace App\Console;
-use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel
{
- /**
- * Define the application's command schedule.
- *
- * @param \Illuminate\Console\Scheduling\Schedule $schedule
- * @return void
- */
- protected function schedule(Schedule $schedule)
- {
- }
-
/**
* Register the commands for the application.
*
* @return void
*/
- protected function commands()
+ protected function commands(): void
{
$this->load(__DIR__ . '/Commands');
-
- require base_path('routes/console.php');
}
}
diff --git a/app/Enums/AppUserRolesEnum.php b/app/Enums/AppUserRolesEnum.php
index 3e5844d..cdfb43e 100644
--- a/app/Enums/AppUserRolesEnum.php
+++ b/app/Enums/AppUserRolesEnum.php
@@ -2,37 +2,22 @@
namespace App\Enums;
-use Kwaadpepper\Enum\BaseEnumRoutable;
+use App\Traits\Enums\BaseEnum;
-/**
- * This defines a data type.
- *
- * @method static self total() total role
- * @method static self user() user role
- */
-final class AppUserRolesEnum extends BaseEnumRoutable
+enum AppUserRolesEnum: int
{
- /**
- * enum values
- * @return array
- */
- protected static function values(): array
- {
- return [
- 'total' => 1,
- 'user' => 2,
- ];
- }
+ use BaseEnum;
+
+ case total = 1;
+ case user = 2;
/**
- * enum labels
- * @return array
+ * Optionnal labels definition.
+ *
+ * @phpstan-ignore-next-line
*/
- protected static function labels(): array
- {
- return [
- 'total' => 'Total',
- 'user' => 'Utilisateur',
- ];
- }
+ private const LABELS = [
+ self::total->name => 'Total',
+ self::user->name => 'Utilisateur',
+ ];
}
diff --git a/app/Enums/Documents/LangEnum.php b/app/Enums/Documents/LangEnum.php
index f103a3a..d3e4efc 100644
--- a/app/Enums/Documents/LangEnum.php
+++ b/app/Enums/Documents/LangEnum.php
@@ -2,43 +2,26 @@
namespace App\Enums\Documents;
-use Kwaadpepper\Enum\BaseEnumRoutable;
+use App\Traits\Enums\BaseEnum;
-/**
- * This defines a data type.
- *
- * @method static self fr()
- * @method static self en()
- * @method static self de()
- * @method static self nl()
- */
-final class LangEnum extends BaseEnumRoutable
+enum LangEnum: int
{
- /**
- * enum values
- * @return array
- */
- protected static function values(): array
- {
- return [
- 'fr' => 1,
- 'en' => 2,
- 'de' => 3,
- 'nl' => 4,
- ];
- }
+ use BaseEnum;
+
+ case fr = 1;
+ case en = 2;
+ case de = 3;
+ case nl = 4;
/**
- * enum labels
- * @return array
+ * Optionnal labels definition.
+ *
+ * @phpstan-ignore-next-line
*/
- protected static function labels(): array
- {
- return [
- 'fr' => 'Français (FR)',
- 'en' => 'Anglais (EN)',
- 'de' => 'Allemand (DE)',
- 'nl' => 'Néerlandais (NL)',
- ];
- }
+ private const LABELS = [
+ self::fr->name => 'Français (FR)',
+ self::en->name => 'Anglais (EN)',
+ self::de->name => 'Allemand (DE)',
+ self::nl->name => 'Néerlandais (NL)',
+ ];
}
diff --git a/app/Enums/Documents/TypeEnum.php b/app/Enums/Documents/TypeEnum.php
index 60935d1..e875ee5 100644
--- a/app/Enums/Documents/TypeEnum.php
+++ b/app/Enums/Documents/TypeEnum.php
@@ -2,37 +2,36 @@
namespace App\Enums\Documents;
-use Kwaadpepper\Enum\BaseEnumRoutable;
+use App\Traits\Enums\BaseEnum;
-/**
- * This defines a data type.
- *
- * @method static self pdf()
- * @method static self mp4()
- */
-final class TypeEnum extends BaseEnumRoutable
+enum TypeEnum: int
{
- /**
- * enum values
- * @return array
- */
- protected static function values(): array
- {
- return [
- 'pdf' => 'pdf',
- 'mp4' => 'mp4',
- ];
- }
+ use BaseEnum;
+
+ case pdf = 1;
+ case mp4 = 2;
+
/**
- * enum labels
- * @return array
+ * Optionnal labels definition.
+ *
+ * @phpstan-ignore-next-line
*/
- protected static function labels(): array
+ private const LABELS = [
+ self::pdf->name => 'PDF',
+ self::mp4->name => 'MP4',
+ ];
+
+ /**
+ * Get translation key.
+ *
+ * @return string
+ */
+ public function icon(): string
{
- return [
- 'pdf' => 'PDF',
- 'mp4' => 'MP4',
- ];
+ return match ($this) {
+ self::pdf => 'file',
+ self::mp4 => 'video',
+ };
}
}
diff --git a/app/Enums/Formularies/InputStatusEnum.php b/app/Enums/Formularies/InputStatusEnum.php
index de76341..be60f8d 100644
--- a/app/Enums/Formularies/InputStatusEnum.php
+++ b/app/Enums/Formularies/InputStatusEnum.php
@@ -2,40 +2,24 @@
namespace App\Enums\Formularies;
-use Kwaadpepper\Enum\BaseEnumRoutable;
+use App\Traits\Enums\BaseEnum;
-/**
- * This defines a data type.
- *
- * @method static self system() input system
- * @method static self locked() input locked
- * @method static self default() input default
- */
-final class InputStatusEnum extends BaseEnumRoutable
+enum InputStatusEnum: int
{
- /**
- * enum values
- * @return array
- */
- protected static function values(): array
- {
- return [
- 'system' => 1,
- 'locked' => 2,
- 'default' => 3,
- ];
- }
+ use BaseEnum;
+
+ case system = 1;
+ case locked = 2;
+ case default = 3;
/**
- * enum labels
- * @return array
+ * Optionnal labels definition.
+ *
+ * @phpstan-ignore-next-line
*/
- protected static function labels(): array
- {
- return [
- 'system' => __('system'),
- 'locked' => __('verrouillé'),
- 'default' => __('default'),
- ];
- }
+ private const LABELS = [
+ self::system->name => 'system',
+ self::locked->name => 'verrouillé',
+ self::default->name => 'default',
+ ];
}
diff --git a/app/Enums/Formularies/InputTypeEnum.php b/app/Enums/Formularies/InputTypeEnum.php
index 6ab3d1b..c25a6c2 100644
--- a/app/Enums/Formularies/InputTypeEnum.php
+++ b/app/Enums/Formularies/InputTypeEnum.php
@@ -9,87 +9,50 @@ use App\Lib\Inputs\InputRadio;
use App\Lib\Inputs\InputSelect;
use App\Lib\Inputs\InputSelectMultiple;
use App\Lib\Inputs\InputText;
-use Kwaadpepper\Enum\BaseEnumRoutable;
+use App\Traits\Enums\BaseEnum;
-/**
- * This defines a data type.
- *
- * @property-read integer value
- * @property-read string label
- * @property-read string inputClass InputType class.
- *
- * @method static self text() input text
- * @method static self email() input email
- * @method static self phone() input phone
- * @method static self radio() input radio
- * @method static self select() input select
- * @method static self selectMultiple() input selectMultiple
- * @method static self checkbox() input checkbox
- */
-final class InputTypeEnum extends BaseEnumRoutable
+enum InputTypeEnum: int
{
- /**
- * enum values
- * @return array
- */
- protected static function values(): array
- {
- return [
- 'text' => 1,
- 'email' => 2,
- 'phone' => 3,
- 'radio' => 4,
- 'select' => 5,
- 'selectMultiple' => 6,
- 'checkbox' => 7,
- ];
- }
+ use BaseEnum;
+
+ case text = 1;
+ case email = 2;
+ case phone = 3;
+ case radio = 4;
+ case select = 5;
+ case selectMultiple = 6;
+ case checkbox = 7;
/**
- * enum labels
- * @return array
- */
- protected static function labels(): array
- {
- return [
- 'text' => __('texte'),
- 'email' => __('e-mail'),
- 'phone' => __('téléphone'),
- 'radio' => __('radio'),
- 'select' => __('liste déroulante'),
- 'selectMultiple' => __('liste déroulante à choix multiple'),
- 'checkbox' => __('case à cocher'),
- ];
- }
-
- /**
- * Enum input Types
+ * Optionnal labels definition.
*
- * @return array
+ * @phpstan-ignore-next-line
*/
- protected static function inputTypes(): array
- {
- return [
- 'text' => InputText::class,
- 'email' => InputEmail::class,
- 'phone' => InputPhone::class,
- 'radio' => InputRadio::class,
- 'select' => InputSelect::class,
- 'selectMultiple' => InputSelectMultiple::class,
- 'checkbox' => InputCheckbox::class,
- ];
- }
+ private const LABELS = [
+ self::text->name => 'texte',
+ self::email->name => 'email',
+ self::phone->name => 'téléphone',
+ self::radio->name => 'radio',
+ self::select->name => 'liste déroulante',
+ self::selectMultiple->name => 'liste déroulante à choix multiple',
+ self::checkbox->name => 'case à cocher',
+ ];
/**
- * @param string $attribute
- * @return integer|string
- * @throws \Kwaadpepper\Enum\Exceptions\UnknownEnumProperty If the prop cannot be found.
+ * Get InputType class based on the enum value.
+ *
+ * @return string
*/
- public function __get(string $attribute)
+ public function getInputClass(): string
{
- if ($attribute === 'inputClass') {
- return $this->inputTypes()[$this->getDefinition()];
- }
- return parent::__get($attribute);
+ return match ($this) {
+ self::text => InputText::class,
+ self::email => InputEmail::class,
+ self::phone => InputPhone::class,
+ self::radio => InputRadio::class,
+ self::select => InputSelect::class,
+ self::selectMultiple => InputSelectMultiple::class,
+ self::checkbox => InputCheckbox::class,
+ };
}
}
diff --git a/app/Enums/Pagination/ItemsPerPaginationEnum.php b/app/Enums/Pagination/ItemsPerPaginationEnum.php
deleted file mode 100644
index 3cfa094..0000000
--- a/app/Enums/Pagination/ItemsPerPaginationEnum.php
+++ /dev/null
@@ -1,30 +0,0 @@
- 5,
- 'twelve' => 12,
- 'twentyfive' => 25,
- 'fifty' => 50,
- 'onehundred' => 100
- ];
- }
-}
diff --git a/app/Enums/SettingTypesEnum.php b/app/Enums/SettingTypesEnum.php
index 2c28fb7..a1026e5 100644
--- a/app/Enums/SettingTypesEnum.php
+++ b/app/Enums/SettingTypesEnum.php
@@ -2,52 +2,32 @@
namespace App\Enums;
-use Kwaadpepper\Enum\BaseEnumRoutable;
+use App\Traits\Enums\BaseEnum;
-/**
- * This defines a data type.
- *
- * @method static self string() string type
- * @method static self numeric() numeric type
- * @method static self picture() picture type
- * @method static self json() string type
- * @method static self boolean() boolean type
- * @method static self color() color type
- * @method static self directory() directory type
- */
-final class SettingTypesEnum extends BaseEnumRoutable
+enum SettingTypesEnum: int
{
- /**
- * enum values
- * @return array
- */
- protected static function values(): array
- {
- return [
- 'string' => 1,
- 'numeric' => 2,
- 'picture' => 3,
- 'json' => 4,
- 'boolean' => 5,
- 'color' => 6,
- 'directory' => 7
- ];
- }
+ use BaseEnum;
+
+ case string = 1;
+ case numeric = 2;
+ case picture = 3;
+ case json = 4;
+ case boolean = 5;
+ case color = 6;
+ case directory = 7;
/**
- * enum labels
- * @return array
+ * Optionnal labels definition.
+ *
+ * @phpstan-ignore-next-line
*/
- protected static function labels(): array
- {
- return [
- 'string' => 'String (Hexa)',
- 'numeric' => 'Numeric',
- 'picture' => 'Picture',
- 'json' => 'Json',
- 'boolean' => 'Boolean',
- 'color' => 'Color',
- 'directory' => 'Directory',
- ];
- }
+ private const LABELS = [
+ self::string->name => 'String (Hexa)',
+ self::numeric->name => 'Numeric',
+ self::picture->name => 'Picture',
+ self::json->name => 'Json',
+ self::boolean->name => 'Boolean',
+ self::color->name => 'Color',
+ self::directory->name => 'Directory',
+ ];
}
diff --git a/app/Enums/UserRolesEnum.php b/app/Enums/UserRolesEnum.php
index 0cfe46a..4c985d6 100644
--- a/app/Enums/UserRolesEnum.php
+++ b/app/Enums/UserRolesEnum.php
@@ -2,37 +2,22 @@
namespace App\Enums;
-use Kwaadpepper\Enum\BaseEnumRoutable;
+use App\Traits\Enums\BaseEnum;
-/**
- * This defines a data type.
- *
- * @method static self admin() admin role
- * @method static self client() client role
- */
-final class UserRolesEnum extends BaseEnumRoutable
+enum UserRolesEnum: int
{
- /**
- * enum values
- * @return array
- */
- protected static function values(): array
- {
- return [
- 'admin' => 1,
- 'client' => 2,
- ];
- }
+ use BaseEnum;
+
+ case admin = 1;
+ case client = 2;
/**
- * enum labels
- * @return array
+ * Optionnal labels definition.
+ *
+ * @phpstan-ignore-next-line
*/
- protected static function labels(): array
- {
- return [
- 'admin' => 'Administrateur',
- 'client' => 'Client',
- ];
- }
+ private const LABELS = [
+ self::admin->name => 'Administrateur',
+ self::client->name => 'Client',
+ ];
}
diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php
index 28ae58c..2a844f7 100644
--- a/app/Exceptions/Handler.php
+++ b/app/Exceptions/Handler.php
@@ -17,7 +17,7 @@ class Handler extends ExceptionHandler
/**
* A list of the inputs that are never flashed for validation exceptions.
*
- * @var array
+ * @var list
*/
protected $dontFlash = [
'current_password',
@@ -30,9 +30,12 @@ class Handler extends ExceptionHandler
*
* @return void
*/
- public function register()
+ public function register(): void
{
$this->reportable(function (Throwable $e) {
+ if (app()->bound('sentry')) {
+ app('sentry')->captureException($e);
+ }
});
}
}
diff --git a/app/Http/Controllers/API/AppController.php b/app/Http/Controllers/API/AppController.php
index 0eac5e1..345e353 100644
--- a/app/Http/Controllers/API/AppController.php
+++ b/app/Http/Controllers/API/AppController.php
@@ -11,12 +11,21 @@ class AppController extends Controller
{
/**
* Get App Config.
- * @return ApiResponseResource
+ *
+ * @return \App\Http\Resources\ApiResponseResource
*/
- public function get()
+ public function get(): \App\Http\Resources\ApiResponseResource
{
+ /** @var string $tenantKey */
+ $tenantKey = request()->tenant;
+
$response = [];
- $settings = Setting::where('key', 'Button1')->orWhere('key', 'Button2')->orWhere('key', 'Button3')->get();
+ $settings = Setting::query()
+ ->where('tenant_id', $tenantKey)
+ ->orWhere('key', 'Button1')
+ ->orWhere('key', 'Button2')
+ ->orWhere('key', 'Button3')
+ ->get();
foreach ($settings as $setting) {
$directory = Directory::find($setting->value)->only('id', 'name');
diff --git a/app/Http/Controllers/API/SettingsController.php b/app/Http/Controllers/API/SettingsController.php
index 47bdc42..8d179e1 100644
--- a/app/Http/Controllers/API/SettingsController.php
+++ b/app/Http/Controllers/API/SettingsController.php
@@ -12,17 +12,17 @@ class SettingsController extends Controller
/**
* Get Settings.
*
- * @return \Illuminate\Http\JsonResponse
+ * @return \App\Http\Resources\ApiResponseResource
*/
- public function get()
+ public function get(): \App\Http\Resources\ApiResponseResource
{
$response = [];
$settings = Setting::all();
foreach ($settings as $setting) {
$response[$setting->key] =
- SettingTypesEnum::numeric()->equals($setting->type) ||
- SettingTypesEnum::boolean()->equals($setting->type) ||
- SettingTypesEnum::directory()->equals($setting->type)
+ SettingTypesEnum::numeric->equals($setting->type) ||
+ SettingTypesEnum::boolean->equals($setting->type) ||
+ SettingTypesEnum::directory->equals($setting->type)
? \intval($setting->value)
: $setting->value;
}
diff --git a/app/Http/Controllers/API/SyncController.php b/app/Http/Controllers/API/SyncController.php
index 7d99f01..c7d5593 100644
--- a/app/Http/Controllers/API/SyncController.php
+++ b/app/Http/Controllers/API/SyncController.php
@@ -19,7 +19,6 @@ use App\Models\Directory;
use App\Models\Document;
use App\Models\Formulary;
use App\Models\Setting;
-use Google\Cloud\Vision\V1\ImageAnnotatorClient;
use GuzzleHttp\Exception\ClientException;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Http\Request;
@@ -32,13 +31,13 @@ use Illuminate\Support\Facades\URL;
class SyncController extends Controller
{
/**
- * @param \Illuminate\Http\Request $request
- * @return \App\Http\Resources\AppUserCollection
- * @phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClass
+ * @return \Illuminate\Http\Resources\Json\AnonymousResourceCollection
*/
- public function getUsers(Request $request)
+ public function getUsers(): \Illuminate\Http\Resources\Json\AnonymousResourceCollection
{
- return AppUserResource::collection(AppUser::where('status', 1)->get());
+ return AppUserResource::collection(
+ AppUser::query()->where('tenant_id', \tenant()->getKey())->where('status', 1)->get()
+ );
}
// *** --- START CONTACTS ---
@@ -49,11 +48,11 @@ class SyncController extends Controller
* @param \App\Models\AppUser $app_user
* @return \Illuminate\Http\Resources\Json\AnonymousResourceCollection
*/
- public function getContacts(AppUser $app_user)
+ public function getContacts(AppUser $app_user): \Illuminate\Http\Resources\Json\AnonymousResourceCollection
{
return ContactResource::collection(
Contact::query()->whereHas('appUser', function (Builder $q) use ($app_user) {
- $q->where('id', $app_user->id);
+ $q->where('tenant_id', \tenant()->getKey())->where('id', $app_user->id);
})->get()
);
}
@@ -63,43 +62,49 @@ class SyncController extends Controller
*
* @param \App\Http\Requests\Api\Contacts\UpsertContactsRequest $request
* @param \App\Models\AppUser $app_user
- * @return \Illuminate\Http\Resources\Json\AnonymousResourceCollection
+ * @return \Illuminate\Http\JsonResponse
*/
- public function upsertContact(UpsertContactsRequest $request, AppUser $app_user)
- {
+ public function upsertContact(
+ UpsertContactsRequest $request,
+ AppUser $app_user
+ ): \Illuminate\Http\JsonResponse {
/** @var \Illuminate\Support\Collection */
$formularies = Formulary::query()->pluck('slug')->flip();
$contactQuery = Contact::query()->whereHas('appUser', function (Builder $q) use ($app_user) {
- $q->where('id', $app_user->id);
+ $q->where('tenant_id', \tenant()->getKey())->where('id', $app_user->getKey());
});
- \collect($request->contacts)->each(function (array $contactRequestData) use ($contactQuery, $formularies) {
- /** @var \App\Models\Contact */
- $model = (clone $contactQuery)->where('id', Arr::get($contactRequestData, 'id'))->firstOrNew();
+ \collect($request->contacts)->each(
+ function (array $contactRequestData) use ($contactQuery, $formularies, $app_user) {
+ /** @var \App\Models\Contact $model */
+ $model = (clone $contactQuery)->where('id', Arr::get($contactRequestData, 'id'))->firstOrNew();
- $contactRequestData['timestamp'] = Carbon::parse($contactRequestData['timestamp'], 'UTC')
- ->setTimezone(\now()->getTimezone());
- if ($model->timestamp and $model->timestamp->gte($contactRequestData['timestamp'])) {
- return;
+ $contactRequestData['timestamp'] = Carbon::parse($contactRequestData['timestamp'], 'UTC')
+ ->setTimezone(\now()->getTimezone());
+ // @phpstan-ignore logicalAnd.leftAlwaysTrue
+ if ($model->timestamp and $model->timestamp->gte($contactRequestData['timestamp'])) {
+ return;
+ }
+ // * Set parse values on data prop to fill in model.
+ $contactRequestData['data'] = \collect($contactRequestData['dataParsed'])
+ // * FILTER CONTACT DATA WITH ACTUAL FORMULARY
+ ->filter(function (Input $input) use ($formularies) {
+ return $formularies->has($input->data->formSlug);
+ });
+ $model->fill($contactRequestData);
+ $model->app_user_id = $app_user->getKey();
+
+ // * Send contact to Feature
+ if (
+ !empty($contactRequestData['send_to_app_user_id']) and
+ ($destUser = AppUser::query()->where('id', $contactRequestData['send_to_app_user_id'])->first())
+ ) {
+ $model->appUser()->associate($destUser);
+ }
+
+ $model->saveOrFail();
}
- // * Set parse values on data prop to fill in model.
- $contactRequestData['data'] = \collect($contactRequestData['dataParsed'])
- // * FILTER CONTACT DATA WITH ACTUAL FORMULARY
- ->filter(function (Input $input) use ($formularies) {
- return $formularies->has($input->data->formSlug);
- });
- $model->fill($contactRequestData);
-
- // * Send contact to Feature
- if (
- !empty($contactRequestData['send_to_app_user_id']) and
- ($destUser = AppUser::query()->where('id', $contactRequestData['send_to_app_user_id'])->first())
- ) {
- $model->appUser()->associate($destUser);
- }
-
- $model->saveOrFail();
- });
+ );
// * HTTP 200 is ok.
return \response()->json();
@@ -110,13 +115,13 @@ class SyncController extends Controller
*
* @param \App\Http\Requests\Api\Contacts\DestroyContactsRequest $request
* @param \App\Models\AppUser $app_user
- * @return \Illuminate\Http\Resources\Json
+ * @return \Illuminate\Http\JsonResponse
*/
- public function destroyContacts(DestroyContactsRequest $request, AppUser $app_user)
+ public function destroyContacts(DestroyContactsRequest $request, AppUser $app_user): \Illuminate\Http\JsonResponse
{
- Contact::query()->whereIn('id', $request->contactUuidList)
+ Contact::query()->whereIn('id', $request->validated()['contactUuidList'])
->whereHas('appUser', function (Builder $q) use ($app_user) {
- $q->where('id', $app_user->id);
+ $q->where('tenant_id', \tenant()->getKey())->where('id', $app_user->id);
})->delete();
// * HTTP 200 is ok.
@@ -126,33 +131,41 @@ class SyncController extends Controller
// *** --- END CONTACTS ---
/**
- * @param \Illuminate\Http\Request $request
- * @return \App\Http\Resources\DirectoriesCollection
+ * @return \Illuminate\Http\Resources\Json\AnonymousResourceCollection
*/
- public function getDirectories(Request $request)
+ public function getDirectories(): \Illuminate\Http\Resources\Json\AnonymousResourceCollection
{
- return DirectoryResource::collection(Directory::query()->orderBy('order')->get());
+ return DirectoryResource::collection(
+ Directory::query()->where('tenant_id', \tenant()->getKey())->orderBy('order')->get()
+ );
}
/**
- * @param \Illuminate\Http\Request $request
- * @return \App\Http\Resources\DocumentsCollection
+ * @return \Illuminate\Http\Resources\Json\AnonymousResourceCollection
*/
- public function getDocuments(Request $request)
+ public function getDocuments(): \Illuminate\Http\Resources\Json\AnonymousResourceCollection
{
- return DocumentResource::collection(Document::where('status', 1)->get());
+ return DocumentResource::collection(
+ Document::query()->where('tenant_id', \tenant()->getKey())->where('status', 1)->get()
+ );
}
/**
* @param \Illuminate\Http\Request $request
* @return array
*/
- public function getVersion(Request $request)
+ public function getVersion(Request $request): array
{
$app_uuid = $request->app_uuid;
$app_version = $request->app_version;
- $version = Setting::select('value AS version')->where('key', 'version')->first();
- $ShowIsActive = Setting::select('value AS ShowIsActive')->where('key', 'ShowIsActive')->first();
+ $version = Setting::query()
+ ->where('tenant_id', \tenant()->getKey())
+ ->where('key', 'version')
+ ->value('value');
+ $ShowIsActive = Setting::query()
+ ->where('tenant_id', \tenant()->getKey())
+ ->where('key', 'ShowIsActive')
+ ->value('value');
try {
$client = new \GuzzleHttp\Client();
@@ -172,31 +185,31 @@ class SyncController extends Controller
$newApp = false;
}
- return ['version' => $version->version, 'ShowIsActive' => $ShowIsActive->ShowIsActive, 'newApp' => $newApp];
+ return ['version' => $version, 'ShowIsActive' => $ShowIsActive, 'newApp' => $newApp];
}
/**
- * @return \App\Http\Resources\ContactsCollection
+ * @return \Illuminate\Http\Resources\Json\AnonymousResourceCollection
*/
- public function getFormularies()
+ public function getFormularies(): \Illuminate\Http\Resources\Json\AnonymousResourceCollection
{
- return FormularyResource::collection(Formulary::query()->orderBy('order')->get());
+ return FormularyResource::collection(
+ Formulary::query()->where('tenant_id', \tenant()->getKey())->orderBy('order')->get()
+ );
}
/**
- * NOTE: This should be refactored, on app side also.
- * @param \Illuminate\Http\Request $request
+ * @param \App\Http\Requests\Api\SendFlyerRequest $request
* @return string
*/
- public function sendFlyer(Request $request)
+ public function sendFlyer(Request $request): string
{
- // FIXME: This should be validated OMG.
- $requestData = \json_decode($request->emails, true);
+ $requestData = $request['emails'];
$email = $requestData['email'];
$subject = $requestData['subject'];
$message = $requestData['message'];
$app_user_id = $requestData['app_user_id'];
- $docs = \json_decode($requestData['documents'], true);
+ $docs = $requestData['documents'];
$user = AppUser::find($app_user_id);
@@ -204,12 +217,13 @@ class SyncController extends Controller
$filesName = [];
$noExists = [];
foreach ($docs as $doc) {
- $exists = Storage::disk('public')->exists('docs/' . $doc['uuid'] . '.' . $doc['type']);
+ $exists = Storage::disk('public')
+ ->exists(sprintf('docs/%s/%s.%s', \tenant()->getKey(), $doc['uuid'], $doc['type']));
if ($exists) {
array_push($attach, URL::temporarySignedRoute(
- 'docs.download',
+ 'bo.docs.download',
now()->addDays(30),
- ['uuid' => $doc['uuid']]
+ ['tenant' => \tenant()->getKey(), 'uuid' => $doc['uuid']]
));
array_push($filesName, $doc['title']);
} else {
@@ -217,56 +231,27 @@ class SyncController extends Controller
}
}
if (count($noExists) === 0) {
- $message = new SendFlyer([
- 'body' => $message,
- 'from' => $user->email,
- 'fromName' => $user->firstname . ' ' . $user->lastname,
- 'subject' => '[' . config('app.BRAND') . '] - ' . $subject,
- 'attach' => $attach,
+ $mail = new SendFlyer([
+ 'body' => $message,
+ 'from' => $user->email,
+ 'fromName' => $user->firstname . ' ' . $user->lastname,
+ 'subject' => sprintf("[%s] - %s", \tenant('name'), $subject),
+ 'attach' => $attach,
'filesName' => $filesName,
]);
- Mail::to($email)
- ->cc($user->email)
- ->queue($message);
+ Mail::to($email)->cc($user->email)->queue($message);
} else {
- $message = new SendFlyerFailed([
- 'email' => $email,
- 'message' => $message,
- 'subject' => $subject,
+ $mail = new SendFlyerFailed([
+ 'email' => $email,
+ 'message' => $message,
+ 'subject' => $subject,
'filesName' => $filesName,
- 'noExists' => $noExists
+ 'noExists' => $noExists
]);
- Mail::to($user->email)
- ->queue($message);
+ Mail::to($user->email)->queue($mail);
} //end if
return 'OK';
}
-
- /**
- * @param \Illuminate\Http\Request $request
- * @return void
- */
- public function processOcr(Request $request)
- {
- // Instantiates a client.
- $imageAnnotator = new ImageAnnotatorClient([
- 'credentials' => public_path() . '/credentials.json'
- ]);
-
- // The name of the image file to annotate.
- $fileName = 'test.jpg';
-
- // Prepare the image to be annotated.
- $image = file_get_contents(public_path() . "/" . $fileName);
-
- // Performs label detection on the image file.
- $response = $imageAnnotator->textDetection($image);
- $labels = $response->getTextAnnotations();
-
- foreach ($labels as $label) {
- echo $label->getDescription() . " ";
- }
- }
}
diff --git a/app/Http/Controllers/Bo/AppUserController.php b/app/Http/Controllers/Bo/AppUserController.php
index 87b3d2b..3f0d5c8 100644
--- a/app/Http/Controllers/Bo/AppUserController.php
+++ b/app/Http/Controllers/Bo/AppUserController.php
@@ -12,25 +12,31 @@ use App\Models\Directory;
use App\Traits\Controllers\ChangesModelOrder;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
-use Illuminate\Support\Str;
use Maatwebsite\Excel\Facades\Excel;
class AppUserController extends Controller
{
use ChangesModelOrder;
+ /**
+ * Create the controller instance.
+ */
+ public function __construct()
+ {
+ $this->authorizeResource(AppUser::class);
+ }
+
/**
* Display a listing of the resource.
*
* @param \Illuminate\Http\Request $request
- * @return \Illuminate\Http\Response
+ * @return \Illuminate\View\View
*/
- public function index(Request $request)
+ public function index(Request $request): \Illuminate\View\View
{
/** @var \Illuminate\Database\Eloquent\Builder $query */
$query = AppUser::query();
- /** @var string $search Search field */
if ($request->search) {
$this->searchQuery(
$query,
@@ -41,36 +47,45 @@ class AppUserController extends Controller
'email'
);
}
- $searchFields = trans('Nom, Prénom, Email');
+ $searchFields = \implode(', ', [
+ trans('validation.attributes.last_name'),
+ trans('validation.attributes.first_name'),
+ trans('validation.attributes.email'),
+ ]);
/** Sort columns with a query */
$this->sortQuery($query);
- $app_users = $this->paginate($query);
+ $appUserModels = $this->paginate($query);
- return view('bo.pages.app-users.index', compact('app_users', 'searchFields'));
+ return view('bo.pages.app_users.index', compact('appUserModels', 'searchFields'));
}
/**
* Show the form for creating a new resource.
*
- * @return \Illuminate\Http\Response
+ * @param \App\Models\AppUser $app_user
+ * @return \Illuminate\View\View
*/
- public function create()
+ public function create(AppUser $app_user): \Illuminate\View\View
{
- $directories = Directory::renderDirectories(Directory::where('needAuthorization', 1)
- ->orderBy('name', 'ASC')->get());
+ $directories = Directory::renderDirectories(
+ Directory::query()->where('needAuthorization', 1)->orderBy('name', 'ASC')->get()
+ );
- return view('bo.pages.app-users.create', compact('directories'));
+ return view('bo.pages.app_users.create', [
+ 'appUserModel' => $app_user,
+ 'directories' => $directories
+ ]);
}
/**
* Store a newly created resource in storage.
*
- * @param \App\Http\Requests\Bo\AppUser\StoreAppUserRequest $request
- * @return \Illuminate\Http\Response
+ * @param \App\Http\Requests\Bo\AppUser\StoreAppUserRequest $request
+ * @return \Illuminate\Http\RedirectResponse
*/
- public function store(StoreAppUserRequest $request)
+ public function store(StoreAppUserRequest $request): \Illuminate\Http\RedirectResponse
{
return DB::transaction(function () use ($request) {
$app_user = new AppUser();
@@ -79,10 +94,10 @@ class AppUserController extends Controller
if ($app_user->saveOrFail()) {
$app_user->directories()->sync(collect($request->directories)->pluck('id'));
return redirect()
- ->route('bo.app-users.edit', $app_user)
+ ->route('bo.app_users.edit', ['tenant' => \tenant(), 'app_user' => $app_user])
->with('success', trans(
':model a été créé',
- ['model' => Str::singular(trans('models.classes.app_users'))]
+ ['model' => trans('models.classes.app_user')]
));
}
@@ -90,7 +105,7 @@ class AppUserController extends Controller
->back()
->with('error', trans(
':model n\'a pas été créé',
- ['model' => Str::singular(trans('models.classes.app_users'))]
+ ['model' => trans('models.classes.app_user')]
));
});
}
@@ -99,17 +114,19 @@ class AppUserController extends Controller
* Show the form for editing the specified resource.
*
* @param \App\Models\AppUser $app_user
- * @return \Illuminate\Http\Response
+ * @return \Illuminate\View\View
*/
- public function edit(AppUser $app_user)
+ public function edit(AppUser $app_user): \Illuminate\View\View
{
- $directories = Directory::renderDirectories(Directory::query()->where('needAuthorization', 1)
- ->orderBy('name', 'ASC')->get());
+ $directories = Directory::renderDirectories(
+ Directory::query()->where('needAuthorization', 1)->orderBy('name', 'ASC')->get()
+ );
+ // @phpstan-ignore assign.propertyReadOnly
$app_user->directories = Directory::renderDirectories($app_user->directories);
- return view('bo.pages.app-users.edit', [
- 'app_userModel' => $app_user,
- 'directories' => $directories
+ return view('bo.pages.app_users.edit', [
+ 'appUserModel' => $app_user,
+ 'directories' => $directories
]);
}
@@ -118,9 +135,9 @@ class AppUserController extends Controller
*
* @param \App\Http\Requests\Bo\AppUser\UpdateAppUserRequest $request
* @param \App\Models\AppUser $app_user
- * @return \Illuminate\Http\Response
+ * @return \Illuminate\Http\RedirectResponse
*/
- public function update(UpdateAppUserRequest $request, AppUser $app_user)
+ public function update(UpdateAppUserRequest $request, AppUser $app_user): \Illuminate\Http\RedirectResponse
{
$app_user->directories()->sync(collect($request->directories)->pluck('id'));
$params = $request->validated();
@@ -132,17 +149,17 @@ class AppUserController extends Controller
if ($app_user->saveOrFail()) {
return redirect()
- ->route('bo.app-users.edit', $app_user)
+ ->route('bo.app_users.edit', ['tenant' => \tenant(), 'app_user' => $app_user])
->with('success', trans(
':model a été mis à jour',
- ['model' => Str::singular(trans('models.classes.app_users'))]
+ ['model' => trans('models.classes.app_user')]
));
}
return redirect()
->back()
->with('error', trans(
':model n\'a pas été mis à jour',
- ['model' => Str::singular(trans('models.classes.app_users'))]
+ ['model' => trans('models.classes.app_user')]
));
});
}
@@ -150,17 +167,17 @@ class AppUserController extends Controller
/**
* Remove the specified resource from storage.
*
- * @param \App\Models\AppUser $app_user
- * @return \Illuminate\Http\Response
+ * @param \App\Models\AppUser $app_user
+ * @return \Illuminate\Http\RedirectResponse
*/
- public function destroy(AppUser $app_user)
+ public function destroy(AppUser $app_user): \Illuminate\Http\RedirectResponse
{
if ($app_user->deleteOrFail()) {
return redirect()
- ->route('bo.app-users.index')
+ ->route('bo.app_users.index', ['tenant' => \tenant()])
->with('warning', trans(
':model a bien été supprimé',
- ['model' => Str::singular(trans('models.classes.app_users'))]
+ ['model' => trans('models.classes.app_user')]
));
}
@@ -168,10 +185,21 @@ class AppUserController extends Controller
->back()
->with('error', trans(
':model n\'a pas été supprimé',
- ['model' => Str::singular(trans('models.classes.app_users'))]
+ ['model' => trans('models.classes.app_user')]
));
}
+ /**
+ * Duplicate the specified resource.
+ *
+ * @param \App\Models\AppUser $app_user
+ * @return \Illuminate\Contracts\View\View
+ */
+ public function duplicate(AppUser $app_user): \Illuminate\Contracts\View\View
+ {
+ return $this->create($app_user->replicate());
+ }
+
/**
* Mass import by CSV.
* matricule;lastname;firstname;email
@@ -180,10 +208,11 @@ class AppUserController extends Controller
* @param \App\Http\Requests\Bo\ImportRequest $request
* @return \Illuminate\Http\RedirectResponse
*/
- public function import(ImportRequest $request)
+ public function import(ImportRequest $request): \Illuminate\Http\RedirectResponse
{
Excel::import(new AppUserImport(), $request->import, null, \Maatwebsite\Excel\Excel::CSV);
- return redirect()->route('bo.app-users.index')->with('success', 'Import terminé.');
+ return redirect()->route('bo.app_users.index', ['tenant' => \tenant()])
+ ->with('success', 'Import terminé.');
}
}
diff --git a/app/Http/Controllers/Bo/Auth/LoginController.php b/app/Http/Controllers/Bo/Auth/LoginController.php
index 0021f37..1d526dd 100644
--- a/app/Http/Controllers/Bo/Auth/LoginController.php
+++ b/app/Http/Controllers/Bo/Auth/LoginController.php
@@ -25,7 +25,7 @@ class LoginController extends Controller
*
* @return \Illuminate\Contracts\Auth\StatefulGuard
*/
- protected function guard()
+ protected function guard(): \Illuminate\Contracts\Auth\StatefulGuard
{
return Auth::guard('backend');
}
@@ -35,13 +35,14 @@ class LoginController extends Controller
*
* @return \Illuminate\View\View
*/
- public function showLoginForm()
+ public function showLoginForm(): \Illuminate\View\View
{
return view('bo.auth.login');
}
/**
* Where to redirect users after login.
+ *
* @return string
*/
protected function redirectTo(): string
diff --git a/app/Http/Controllers/Bo/Auth/ResetPasswordController.php b/app/Http/Controllers/Bo/Auth/ResetPasswordController.php
index 64d86df..8d6793d 100644
--- a/app/Http/Controllers/Bo/Auth/ResetPasswordController.php
+++ b/app/Http/Controllers/Bo/Auth/ResetPasswordController.php
@@ -15,13 +15,14 @@ class ResetPasswordController extends Controller
*
* @return \Illuminate\Contracts\Auth\StatefulGuard
*/
- protected function guard()
+ protected function guard(): \Illuminate\Contracts\Auth\StatefulGuard
{
return Auth::guard('backend');
}
/**
* Where to redirect users after login.
+ *
* @return string
*/
protected function redirectTo(): string
diff --git a/app/Http/Controllers/Bo/ContactController.php b/app/Http/Controllers/Bo/ContactController.php
index 99607b9..285b760 100644
--- a/app/Http/Controllers/Bo/ContactController.php
+++ b/app/Http/Controllers/Bo/ContactController.php
@@ -11,20 +11,27 @@ use Illuminate\Database\Eloquent\Builder;
class ContactController extends Controller
{
+ /**
+ * Create the controller instance.
+ */
+ public function __construct()
+ {
+ $this->authorizeResource(Contact::class);
+ }
+
/**
* Display a listing of the resource.
*
* @param \App\Http\Requests\Bo\FilterCustomerRequest $request
- * @return \Illuminate\Http\Response
+ * @return \Illuminate\View\View
*/
- public function index(FilterCustomerRequest $request)
+ public function index(FilterCustomerRequest $request): \Illuminate\View\View
{
/** @var \Illuminate\Database\Eloquent\Builder $query */
- $query = Contact::query();
+ $query = Contact::query()->with('appUser')->whereHas('appUser', function ($query) {
+ $query->where('tenant_id', tenant('id'));
+ });
- $query->with('appUser');
-
- /** @var string $search Search field */
if ($request->search) {
$this->searchQuery(
$query,
@@ -35,7 +42,11 @@ class ContactController extends Controller
'email',
);
}
- $searchFields = \implode(',', [trans('Nom'), trans('Prénom'), trans('Email')]);
+ $searchFields = \implode(', ', [
+ trans('validation.attributes.last_name'),
+ trans('validation.attributes.email'),
+ trans('validation.attributes.phone'),
+ ]);
/** Sort columns with a query */
$this->sortQuery($query);
@@ -46,26 +57,26 @@ class ContactController extends Controller
});
}
- $contactModelList = $this->paginate($query);
+ $contactModels = $this->paginate($query);
- $appUsers = AppUser::query()->select(['id', 'lastname', 'firstname'])->get();
+ $appUsers = AppUser::query()->select(['id', 'lastname', 'firstname'])->orderBy('lastname')->get();
- return view('bo.pages.contacts.index', compact('contactModelList', 'searchFields', 'appUsers'));
+ return view('bo.pages.contacts.index', compact('contactModels', 'searchFields', 'appUsers'));
}
/**
* Display the specified resource.
*
* @param \App\Models\Contact $contact
- * @return \Illuminate\Http\Response
+ * @return \Illuminate\View\View
*/
- public function show(Contact $contact)
+ public function show(Contact $contact): \Illuminate\View\View
{
$contact->load('appUser.directories');
$fomularies = Formulary::all()->keyBy('name');
- return \view('bo.pages.contacts.show', [
+ return view('bo.pages.contacts.show', [
'contactModel' => $contact,
- 'fomularies' => $fomularies
+ 'fomularies' => $fomularies
]);
}
}
diff --git a/app/Http/Controllers/Bo/DashboardController.php b/app/Http/Controllers/Bo/DashboardController.php
index 6fdbaa2..f61169b 100644
--- a/app/Http/Controllers/Bo/DashboardController.php
+++ b/app/Http/Controllers/Bo/DashboardController.php
@@ -11,7 +11,7 @@ class DashboardController extends Controller
*
* @return \Illuminate\Contracts\View\View
*/
- public function index()
+ public function index(): \Illuminate\Contracts\View\View
{
return view('bo.pages.dashboard');
}
diff --git a/app/Http/Controllers/Bo/DirectoriesController.php b/app/Http/Controllers/Bo/DirectoriesController.php
index ae385df..59fc783 100644
--- a/app/Http/Controllers/Bo/DirectoriesController.php
+++ b/app/Http/Controllers/Bo/DirectoriesController.php
@@ -6,51 +6,55 @@ use App\Http\Controllers\Controller;
use App\Http\Requests\Bo\Directories\StoreDirectoryRequest;
use App\Http\Requests\Bo\Directories\UpdateDirectoryRequest;
use App\Models\Directory;
-use App\Models\Document;
use App\Models\Setting;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
-use Illuminate\Support\Facades\Gate;
-use Illuminate\Support\Str;
class DirectoriesController extends Controller
{
+ /**
+ * Create the controller instance.
+ */
+ public function __construct()
+ {
+ $this->authorizeResource(Directory::class);
+ }
+
/**
* Show the form for creating a new resource.
*
- * @return \Illuminate\Contracts\View\View|\Illuminate\Contracts\View\Factory
+ * @return \Illuminate\Contracts\View\View
*/
- public function index()
+ public function index(): \Illuminate\Contracts\View\View
{
- $directories = $this->getDirectoriesForComponent();
-
- return \view('bo.pages.directories.index', \compact('directories'));
+ $directoryModels = $this->getDirectoriesForComponent();
+ return \view('bo.pages.directories.index', \compact('directoryModels'));
}
/**
* Store a newly created resource in storage.
*
- * @param \App\Http\Requests\Bo\Directory\StoreDirectoryRequest $request
- * @return \Illuminate\Http\Response
+ * @param \App\Http\Requests\Bo\Directories\StoreDirectoryRequest $request
+ * @return \Illuminate\Http\RedirectResponse
*/
- public function store(StoreDirectoryRequest $request)
+ public function store(StoreDirectoryRequest $request): \Illuminate\Http\RedirectResponse
{
return DB::transaction(function () use ($request) {
$directory = new Directory();
$directory->fill($request->validated());
if ($directory->saveOrFail()) {
return redirect()
- ->route('bo.directories.index')
+ ->route('bo.directories.index', ['tenant' => \tenant()])
->with('success', trans(
':model a été créé',
- ['model' => Str::singular(trans('models.classes.directories'))]
+ ['model' => trans('models.classes.directory')]
));
}
return redirect()
->back()
->with('error', trans(
':model n\'a pas été créé',
- ['model' => Str::singular(trans('models.classes.directories'))]
+ ['model' => trans('models.classes.directory')]
));
});
}
@@ -59,11 +63,10 @@ class DirectoriesController extends Controller
* Show the form for editing the specified resource.
*
* @param \App\Models\Directory $directory
- * @return \Illuminate\Http\Response
+ * @return \Illuminate\View\View
*/
- public function edit(Directory $directory)
+ public function edit(Directory $directory): \Illuminate\View\View
{
- $this->authorize('edit', $directory);
return view('bo.pages.directories.edit', ['directoryModel' => $directory]);
}
@@ -72,27 +75,26 @@ class DirectoriesController extends Controller
*
* @param \App\Http\Requests\Bo\Directories\UpdateDirectoryRequest $request
* @param \App\Models\Directory $directory
- * @return \Illuminate\Http\Response
+ * @return \Illuminate\Http\RedirectResponse
*/
- public function update(UpdateDirectoryRequest $request, Directory $directory)
+ public function update(UpdateDirectoryRequest $request, Directory $directory): \Illuminate\Http\RedirectResponse
{
- $this->authorize('edit', $directory);
return DB::transaction(function () use ($request, $directory) {
$directory->fill($request->validated());
if ($directory->saveOrFail()) {
return redirect()
- ->route('bo.directories.edit', $directory)
+ ->route('bo.directories.edit', ['tenant' => \tenant(), 'directory' => $directory])
->with('success', trans(
':model a été mis à jour',
- ['model' => Str::singular(trans('models.classes.directories'))]
+ ['model' => trans('models.classes.directory')]
));
}
return redirect()
->back()
->with('error', trans(
':model n\'a pas été mis à jour',
- ['model' => Str::singular(trans('models.classes.directories'))]
+ ['model' => trans('models.classes.directory')]
));
});
}
@@ -101,12 +103,12 @@ class DirectoriesController extends Controller
* Remove the specified resource from storage.
*
* @param \App\Models\Directory $directory
- * @return \Illuminate\Http\Response
+ * @return \Illuminate\Database\Eloquent\Collection
*/
- public function destroy(Directory $directory)
+ public function destroy(Directory $directory): \Illuminate\Database\Eloquent\Collection
{
- $this->authorize('delete', $directory);
return DB::transaction(function () use ($directory) {
+ /** @var \App\Models\Directory $directoryChild */
foreach ($directory->children as $directoryChild) {
$directoryChild->directory_id = null;
$directoryChild->saveOrFail();
@@ -114,7 +116,8 @@ class DirectoriesController extends Controller
/** @var \Illuminate\Database\Eloquent\Collection<\App\Models\Document> */
$documents = $directory->documents()->get()->sortBy('lang', \SORT_REGULAR, true);
if ($documents->count()) {
- $documents->each(function (Document $document) {
+ $documents->each(function (\Illuminate\Database\Eloquent\Model $document) {
+ /** @var \App\Models\Document $document */
$document->deleteOrFail();
});
}
@@ -127,7 +130,7 @@ class DirectoriesController extends Controller
':model :name n\'a pas été supprimé,
un bouton est encore associé à ce dernier dans les paramètres :',
[
- 'model' => Str::singular(trans('models.classes.directories')),
+ 'model' => trans('models.classes.directory'),
'name' => $directory->name['fr']
]
)
@@ -146,7 +149,7 @@ class DirectoriesController extends Controller
* @param \Illuminate\Http\Request $request
* @return void
*/
- public function saveOrder(Request $request)
+ public function saveOrder(Request $request): void
{
$this->assignOrder($request->directories, null);
}
@@ -154,11 +157,11 @@ class DirectoriesController extends Controller
/**
* Assign the new order and directory id to each directory.
*
- * @param array $directories
- * @param integer $directoryId
+ * @param array $directories
+ * @param integer|null $directoryId
* @return void
*/
- public function assignOrder(array $directories, int $directoryId = null)
+ public function assignOrder(array $directories, int|null $directoryId = null): void
{
foreach ($directories as $newDirectory) {
$directory = Directory::where('id', $newDirectory['id'])->first();
@@ -175,27 +178,27 @@ class DirectoriesController extends Controller
* Save the new order/structure of directories.
*
* @param \Illuminate\Http\Request $request
- * @return \Illuminate\Http\Response
+ * @return \App\Models\Directory
*/
- public function needAuthorization(Request $request)
+ public function needAuthorization(Request $request): \App\Models\Directory
{
- $directory = Directory::where('id', $request->id)->firstOrFail();
+ $directory = Directory::query()->where('id', $request->id)->firstOrFail();
$directory->needAuthorization = $directory->needAuthorization ? false : true;
-
- if ($directory->saveOrFail()) {
- return $directory;
- }
+ $directory->saveOrFail();
+ return $directory;
}
/**
- * Get directories for component
+ * Get directories for component.
*
- * @return \Illuminate\Database\Eloquent\Collection
+ * @return \Illuminate\Database\Eloquent\Collection
*/
- private function getDirectoriesForComponent()
+ private function getDirectoriesForComponent(): \Illuminate\Database\Eloquent\Collection
{
return Directory::query()
+ ->where('tenant_id', \tenant()->getKey())
->withCount('documents')
- ->orderBy('order', 'ASC')->get();
+ ->orderBy('order', 'ASC')
+ ->get();
}
}
diff --git a/app/Http/Controllers/Bo/DocumentController.php b/app/Http/Controllers/Bo/DocumentController.php
index db176fa..8fd2961 100644
--- a/app/Http/Controllers/Bo/DocumentController.php
+++ b/app/Http/Controllers/Bo/DocumentController.php
@@ -2,6 +2,7 @@
namespace App\Http\Controllers\Bo;
+use App\Enums\Documents\LangEnum;
use App\Http\Controllers\Controller;
use App\Http\Requests\Bo\Documents\StoreDocumentRequest;
use App\Http\Requests\Bo\Documents\UpdateDocumentRequest;
@@ -11,7 +12,6 @@ use App\Models\Document;
use App\Models\Tag;
use App\Traits\Controllers\ChangesModelOrder;
use Illuminate\Database\Eloquent\Builder;
-use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Http\UploadedFile;
use Illuminate\Support\Facades\DB;
@@ -25,19 +25,26 @@ class DocumentController extends Controller
{
use ChangesModelOrder;
+ /**
+ * Create the controller instance.
+ */
+ public function __construct()
+ {
+ $this->authorizeResource(Document::class);
+ }
+
/**
* Display a listing of the resource.
*
* @param \Illuminate\Http\Request $request
- * @return \Illuminate\Http\Response
+ * @return \Illuminate\View\View
*/
- public function index(Request $request)
+ public function index(Request $request): \Illuminate\View\View
{
/** @var \Illuminate\Database\Eloquent\Builder $query */
$query = Document::query();
$tags = Tag::get();
- /** @var string $search Search field */
if ($request->search) {
$this->searchQuery(
$query,
@@ -46,7 +53,7 @@ class DocumentController extends Controller
'title',
);
}
- $searchFields = trans('Titre');
+ $searchFields = trans('validation.attributes.title');
/** Search by tags */
$query->when($request->tag, function ($query) use ($request) {
@@ -58,37 +65,43 @@ class DocumentController extends Controller
/** Sort columns with a query */
$this->sortQuery($query);
- $documents = $this->paginate($query);
+ $documentModels = $this->paginate($query);
return view('bo.pages.documents.index', [
- 'documents' => $documents,
- 'searchFields' => $searchFields,
- 'searchTag' => $request->tag,
- 'tags' => $tags
+ 'documentModels' => $documentModels,
+ 'searchFields' => $searchFields,
+ 'searchTag' => $request->tag,
+ 'tags' => $tags
]);
}
/**
* Show the form for creating a new resource.
*
- * @return \Illuminate\Http\Response
+ * @param \App\Models\Document $document
+ * @return \Illuminate\View\View
*/
- public function create()
+ public function create(Document $document): \Illuminate\View\View
{
- $documents = Document::where('lang', \App\Enums\Documents\LangEnum::fr())->get();
- $directories = Directory::getChildrenDirectories();
- $tags = Tag::get();
+ $documentsList = Document::query()->where('lang', LangEnum::fr)->get();
+ $directories = Directory::getChildrenDirectories();
+ $tags = Tag::get();
- return view('bo.pages.documents.create', compact('documents', 'directories', 'tags'));
+ return view('bo.pages.documents.create', [
+ 'documentModel' => $document,
+ 'documentsList' => $documentsList,
+ 'directories' => $directories,
+ 'tags' => $tags
+ ]);
}
/**
* Store a newly created resource in storage.
*
- * @param \App\Http\Requests\Bo\Documents\StoreDocumentRequest $request
- * @return \Illuminate\Http\Response
+ * @param \App\Http\Requests\Bo\Documents\StoreDocumentRequest $request
+ * @return \Illuminate\Http\RedirectResponse
*/
- public function store(StoreDocumentRequest $request)
+ public function store(StoreDocumentRequest $request): \Illuminate\Http\RedirectResponse
{
return DB::transaction(function () use ($request) {
$document = new Document();
@@ -96,17 +109,17 @@ class DocumentController extends Controller
if ($document->saveOrFail()) {
$document->tags()->sync(collect($request->tags)->pluck('id'));
return redirect()
- ->route('bo.documents.edit', $document)
+ ->route('bo.documents.edit', ['tenant' => \tenant(), 'document' => $document])
->with('success', trans(
':model a été créé',
- ['model' => Str::singular(trans('models.classes.documents'))]
+ ['model' => trans('models.classes.document')]
));
}
return redirect()
->back()
->with('error', trans(
':model n\'a pas été créé',
- ['model' => Str::singular(trans('models.classes.documents'))]
+ ['model' => trans('models.classes.document')]
));
});
}
@@ -115,47 +128,47 @@ class DocumentController extends Controller
* Show the form for editing the specified resource.
*
* @param \App\Models\Document $document
- * @return \Illuminate\Http\Response
+ * @return \Illuminate\View\View
*/
- public function edit(Document $document)
+ public function edit(Document $document): \Illuminate\View\View
{
- $documents = Document::where('lang', \App\Enums\Documents\LangEnum::fr())->get();
- $directories = Directory::getChildrenDirectories();
- $tags = Tag::get();
+ $documentsList = Document::query()->where('lang', LangEnum::fr)->get();
+ $directories = Directory::getChildrenDirectories();
+ $tags = Tag::get();
return view('bo.pages.documents.edit', [
- 'documents' => $documents,
'documentModel' => $document,
- 'directories' => $directories,
- 'tags' => $tags
+ 'documentsList' => $documentsList,
+ 'directories' => $directories,
+ 'tags' => $tags
]);
}
/**
* Update the specified resource in storage.
*
- * @param \App\Http\Requests\Bo\Document\UpdateDocumentRequest $request
- * @param \App\Models\Document $document
- * @return \Illuminate\Http\Response
+ * @param \App\Http\Requests\Bo\Documents\UpdateDocumentRequest $request
+ * @param \App\Models\Document $document
+ * @return \Illuminate\Http\RedirectResponse
*/
- public function update(UpdateDocumentRequest $request, Document $document)
+ public function update(UpdateDocumentRequest $request, Document $document): \Illuminate\Http\RedirectResponse
{
return DB::transaction(function () use ($request, $document) {
$document->fill($request->validated());
$document->tags()->sync(collect($request->tags)->pluck('id'));
if ($document->saveOrFail()) {
return redirect()
- ->route('bo.documents.edit', $document)
+ ->route('bo.documents.edit', ['tenant' => \tenant(), 'document' => $document])
->with('success', trans(
':model a été mis à jour',
- ['model' => Str::singular(trans('models.classes.documents'))]
+ ['model' => trans('models.classes.document')]
));
}
return redirect()
->back()
->with('error', trans(
':model n\'a pas été mis à jour',
- ['model' => Str::singular(trans('models.classes.documents'))]
+ ['model' => trans('models.classes.document')]
));
});
}
@@ -163,29 +176,33 @@ class DocumentController extends Controller
/**
* Remove the specified resource from storage.
*
- * @param \App\Models\Document $document
- * @return \Illuminate\Http\Response
+ * @param \App\Models\Document $document
+ * @return \Illuminate\Http\RedirectResponse
*/
- public function destroy(Document $document)
+ public function destroy(Document $document): \Illuminate\Http\RedirectResponse
{
+ /** @var array */
+ $previousQueries = [];
+ \parse_str(\parse_url(url()->previous(), \PHP_URL_QUERY), $previousQueries);
$document->tags()->sync([]);
+ /** @var \App\Models\Document $documentChild */
foreach ($document->children as $documentChild) {
Document::removeDocument($documentChild);
$documentChild->deleteOrFail();
}
if ($document->deleteOrFail()) {
return redirect()
- ->route('bo.documents.index')
+ ->route('bo.documents.index', array_merge(['tenant' => \tenant()], $previousQueries))
->with('warning', trans(
':model a bien été supprimé',
- ['model' => Str::singular(trans('models.classes.documents'))]
+ ['model' => trans('models.classes.document')]
));
}
return redirect()
->back()
->with('error', trans(
':model n\'a pas été supprimé',
- ['model' => Str::singular(trans('models.classes.documents'))]
+ ['model' => trans('models.classes.document')]
));
}
@@ -195,10 +212,12 @@ class DocumentController extends Controller
* @param string $uuid
* @return \Symfony\Component\HttpFoundation\BinaryFileResponse
*/
- public function download(string $uuid)
+ public function download(string $uuid): \Symfony\Component\HttpFoundation\BinaryFileResponse
{
$doc = Document::where('uuid', $uuid)->firstOrFail();
- $pathToFile = public_path() . Storage::url('docs/' . $doc->uuid . '.' . $doc->type);
+ $pathToFile = public_path() . Storage::url(
+ sprintf('docs/%s/%s.%s', \tenant()->getKey(), $doc->uuid, $doc->type)
+ );
return response()->download($pathToFile, $doc->path);
}
@@ -224,10 +243,9 @@ class DocumentController extends Controller
return $this->saveFile($save->getFile(), $request->uuid);
}
// We are in chunk mode, lets send the current progress.
- /** @var AbstractHandler $handler */
$handler = $save->handler();
return response()->json([
- "done" => $handler->getPercentageDone(),
+ "done" => $handler->getPercentageDone(),
'status' => true
]);
}
@@ -237,14 +255,14 @@ class DocumentController extends Controller
* @param string|null $uuid
* @return \Illuminate\Http\JsonResponse
*/
- protected function saveFile(UploadedFile $file, ?string $uuid): JsonResponse
+ protected function saveFile(UploadedFile $file, ?string $uuid): \Illuminate\Http\JsonResponse
{
/** @var \Illuminate\Filesystem\FilesystemAdapter */
$disk = Storage::disk('docs');
$uuid = $uuid ?: Str::uuid();
/** @var \Illuminate\Http\UploadedFile $file */
- $filename = $uuid . '.' . $file->guessExtension();
+ $filename = sprintf('%s/%s.%s', \tenant()->getKey(), $uuid, $file->guessExtension());
$disk->putFileAs('', $file, $filename);
return response()->json([
diff --git a/app/Http/Controllers/Bo/FormularyController.php b/app/Http/Controllers/Bo/FormularyController.php
index c52312a..4e9462a 100644
--- a/app/Http/Controllers/Bo/FormularyController.php
+++ b/app/Http/Controllers/Bo/FormularyController.php
@@ -2,33 +2,38 @@
namespace App\Http\Controllers\Bo;
-use App\Enums\Formularies\InputStatusEnum;
use App\Http\Controllers\Controller;
use App\Http\Requests\Bo\Formularies\StoreFormularyRequest;
use App\Http\Requests\Bo\Formularies\UpdateFormularyRequest;
-use App\Lib\Helpers\ToolboxHelper;
+use App\Models\Contact;
use App\Models\Formulary;
use App\Traits\Controllers\ChangesModelOrder;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
-use Illuminate\Support\Str;
class FormularyController extends Controller
{
use ChangesModelOrder;
+ /**
+ * Create the controller instance.
+ */
+ public function __construct()
+ {
+ $this->authorizeResource(Formulary::class);
+ }
+
/**
* Display a listing of the resource.
*
* @param \Illuminate\Http\Request $request
- * @return \Illuminate\Http\Response
+ * @return \Illuminate\View\View
*/
- public function index(Request $request)
+ public function index(Request $request): \Illuminate\View\View
{
/** @var \Illuminate\Database\Eloquent\Builder $query */
$query = Formulary::query();
- /** @var string $search Search field */
if ($request->search) {
$this->searchQuery(
$query,
@@ -37,33 +42,34 @@ class FormularyController extends Controller
'name',
);
}
- $searchFields = trans('Nom');
+ $searchFields = trans('validation.attributes.name');
/** Sort columns with a query */
$this->sortQuery($query);
- $formulariesModel = $this->paginate($query);
+ $formularyModels = $this->paginate($query);
- return view('bo.pages.formularies.index', compact('formulariesModel', 'searchFields'));
+ return view('bo.pages.formularies.index', compact('formularyModels', 'searchFields'));
}
/**
* Show the form for creating a new resource.
*
- * @return \Illuminate\Http\Response
+ * @param \App\Models\Formulary $formulary
+ * @return \Illuminate\View\View
*/
- public function create()
+ public function create(Formulary $formulary): \Illuminate\View\View
{
- return view('bo.pages.formularies.create');
+ return view('bo.pages.formularies.create', ['formularyModel' => $formulary]);
}
/**
* Store a newly created resource in storage.
*
- * @param \App\Http\Requests\Bo\Formularies\StoreFormularyRequest $request
- * @return \Illuminate\Http\Response
+ * @param \App\Http\Requests\Bo\Formularies\StoreFormularyRequest $request
+ * @return \Illuminate\Http\RedirectResponse
*/
- public function store(StoreFormularyRequest $request)
+ public function store(StoreFormularyRequest $request): \Illuminate\Http\RedirectResponse
{
return DB::transaction(function () use ($request) {
$formulary = new Formulary();
@@ -71,17 +77,17 @@ class FormularyController extends Controller
if ($formulary->saveOrFail()) {
return redirect()
- ->route('bo.formularies.edit', $formulary)
+ ->route('bo.formularies.edit', ['tenant' => \tenant(), 'formulary' => $formulary])
->with('success', trans(
':model a été créé',
- ['model' => Str::singular(trans('models.classes.formularies'))]
+ ['model' => trans('models.classes.formulary')]
));
}
return redirect()
->back()
->with('error', trans(
':model n\'a pas été créé',
- ['model' => Str::singular(trans('models.classes.formularies'))]
+ ['model' => trans('models.classes.formulary')]
));
});
}
@@ -90,48 +96,40 @@ class FormularyController extends Controller
* Show the form for editing the specified resource.
*
* @param \App\Models\Formulary $formulary
- * @return \Illuminate\Http\Response
+ * @return \Illuminate\Http\RedirectResponse|\Illuminate\Contracts\View\View
*/
- public function edit(Formulary $formulary)
+ public function edit(Formulary $formulary): \Illuminate\Http\RedirectResponse|\Illuminate\Contracts\View\View
{
- if ($formulary->status->value === InputStatusEnum::system()->value) {
- return redirect()->route('bo.formularies.index')
- ->with('error', trans(
- 'Administration du champs :name impossible car il est vérouillé !',
- ['name' => $formulary->name]
- ));
- } else {
- return view('bo.pages.formularies.edit', [
- 'formularyModel' => $formulary
- ]);
- }
+ return view('bo.pages.formularies.edit', [
+ 'formularyModel' => $formulary
+ ]);
}
/**
* Update the specified resource in storage.
*
- * @param \App\Http\Requests\Bo\Formulary\UpdateFormularyRequest $request
- * @param \App\Models\Formulary $formulary
- * @return \Illuminate\Http\Response
+ * @param \App\Http\Requests\Bo\Formularies\UpdateFormularyRequest $request
+ * @param \App\Models\Formulary $formulary
+ * @return \Illuminate\Http\RedirectResponse
*/
- public function update(UpdateFormularyRequest $request, Formulary $formulary)
+ public function update(UpdateFormularyRequest $request, Formulary $formulary): \Illuminate\Http\RedirectResponse
{
return DB::transaction(function () use ($request, $formulary) {
$formulary->fill($request->validated());
if ($formulary->saveOrFail()) {
return redirect()
- ->route('bo.formularies.edit', $formulary)
+ ->route('bo.formularies.edit', ['tenant' => \tenant(), 'formulary' => $formulary])
->with('success', trans(
':model a été mis à jour',
- ['model' => Str::singular(trans('models.classes.formularies'))]
+ ['model' => trans('models.classes.formulary')]
));
}
return redirect()
->back()
->with('error', trans(
':model n\'a pas été mis à jour',
- ['model' => Str::singular(trans('models.classes.formularies'))]
+ ['model' => trans('models.classes.formulary')]
));
});
}
@@ -139,29 +137,41 @@ class FormularyController extends Controller
/**
* Remove the specified resource from storage.
*
- * @param \App\Models\Formulary $formulary
- * @return \Illuminate\Http\Response
+ * @param \App\Models\Formulary $formulary
+ * @return \Illuminate\Http\RedirectResponse
*/
- public function destroy(Formulary $formulary)
+ public function destroy(Formulary $formulary): \Illuminate\Http\RedirectResponse
{
- return DB::transaction(function () use ($formulary) {
+ /** @var array */
+ $previousQueries = [];
+ \parse_str(\parse_url(url()->previous(), \PHP_URL_QUERY), $previousQueries);
+ return DB::transaction(function () use ($formulary, $previousQueries) {
// * Remove the input on all contacts.
- ToolboxHelper::removeDataInputOnAllContacts($formulary);
+ Contact::removeDataInputOnAllContacts($formulary);
if ($formulary->deleteOrFail()) {
return redirect()
- ->route('bo.formularies.index')
+ ->route('bo.formularies.index', array_merge(['tenant' => \tenant()], $previousQueries))
->with('warning', trans(
':model a bien été supprimé',
- ['model' => Str::singular(trans('models.classes.formularies'))]
+ ['model' => trans('models.classes.formulary')]
));
}
- return redirect()
- ->back()
- ->with('error', trans(
- ':model n\'a pas été supprimé',
- ['model' => Str::singular(trans('models.classes.formularies'))]
- ));
+ return redirect()->back()->with('error', trans(
+ ':model n\'a pas été supprimé',
+ ['model' => trans('models.classes.formulary')]
+ ));
});
}
+
+ /**
+ * Duplicate the specified resource.
+ *
+ * @param \App\Models\Formulary $formulary
+ * @return \Illuminate\Contracts\View\View
+ */
+ public function duplicate(Formulary $formulary): \Illuminate\Contracts\View\View
+ {
+ return $this->create($formulary->replicate());
+ }
}
diff --git a/app/Http/Controllers/Bo/SettingController.php b/app/Http/Controllers/Bo/SettingController.php
index e8ddd51..4e1c58d 100644
--- a/app/Http/Controllers/Bo/SettingController.php
+++ b/app/Http/Controllers/Bo/SettingController.php
@@ -6,38 +6,58 @@ use App\Http\Controllers\Controller;
use App\Http\Requests\Bo\Settings\UpdateSettingRequest;
use App\Models\Directory;
use App\Models\Setting;
+use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
-use Illuminate\Support\Str;
class SettingController extends Controller
{
+ /**
+ * Create the controller instance.
+ */
+ public function __construct()
+ {
+ $this->authorizeResource(Setting::class);
+ }
+
/**
* Display a listing of the resource.
*
- * @return \Illuminate\Http\Response
+ * @param \Illuminate\Http\Request $request
+ * @return \Illuminate\Contracts\View\View
*/
- public function index()
+ public function index(Request $request): \Illuminate\Contracts\View\View
{
- $directories = Directory::renderDirectories(Directory::whereNull('directory_id')->get());
+ $directories = Directory::renderDirectories(Directory::query()->whereNull('directory_id')->get());
- /** @var \Illuminate\Database\Eloquent\Builder $settings */
- $settings = Setting::query();
+ /** @var \Illuminate\Database\Eloquent\Builder $query */
+ $query = Setting::query();
- $this->sortQuery($settings);
- $settings = $settings->get();
+ if ($request->search) {
+ $this->searchQuery(
+ $query,
+ $request->search,
+ null,
+ 'key',
+ );
+ }
+ $searchFields = trans('validation.custom.key');
- return view('bo.pages.settings.index', compact('settings', 'directories'));
+ $this->sortQuery($query);
+
+ $settingModels = $query->get();
+
+ return view('bo.pages.settings.index', compact('settingModels', 'searchFields', 'directories'));
}
/**
* Show the form for editing the specified resource.
*
* @param \App\Models\Setting $setting
- * @return \Illuminate\Http\Response
+ * @return \Illuminate\Contracts\View\View
*/
- public function edit(Setting $setting)
+ public function edit(Setting $setting): \Illuminate\Contracts\View\View
{
- $directories = Directory::renderDirectories(Directory::whereNull('directory_id')->get());
+ $directories = Directory::renderDirectories(Directory::query()->whereNull('directory_id')->get());
return view('bo.pages.settings.edit', ['settingModel' => $setting, 'directories' => $directories]);
}
@@ -45,27 +65,27 @@ class SettingController extends Controller
/**
* Update the specified resource in storage.
*
- * @param \App\Http\Requests\Bo\Setting\UpdateSettingRequest $request
- * @param \App\Models\Setting $setting
- * @return \Illuminate\Http\Response
+ * @param \App\Http\Requests\Bo\Settings\UpdateSettingRequest $request
+ * @param \App\Models\Setting $setting
+ * @return \Illuminate\Http\RedirectResponse
*/
- public function update(UpdateSettingRequest $request, Setting $setting)
+ public function update(UpdateSettingRequest $request, Setting $setting): \Illuminate\Http\RedirectResponse
{
return DB::transaction(function () use ($request, $setting) {
$setting->fill($request->validated());
if ($setting->saveOrFail()) {
return redirect()
- ->route('bo.settings.edit', $setting)
+ ->route('bo.settings.edit', ['tenant' => \tenant(), 'setting' => $setting])
->with('success', trans(
':model a été mis à jour',
- ['model' => Str::singular(trans('models.classes.settings'))]
+ ['model' => trans('models.classes.setting')]
));
}
return redirect()
->back()
->with('error', trans(
':model n\'a pas été mis à jour',
- ['model' => Str::singular(trans('models.classes.settings'))]
+ ['model' => trans('models.classes.setting')]
));
});
}
@@ -73,24 +93,26 @@ class SettingController extends Controller
/**
* Remove the specified resource from storage.
*
- * @param \App\Models\Setting $setting
- * @return \Illuminate\Http\Response
+ * @param \App\Models\Setting $setting
+ * @return \Illuminate\Http\RedirectResponse
*/
- public function destroy(Setting $setting)
+ public function destroy(Setting $setting): \Illuminate\Http\RedirectResponse
{
- if ($setting->deleteOrFail()) {
+ return DB::transaction(function () use ($setting) {
+ if ($setting->deleteOrFail()) {
+ return redirect()
+ ->route('bo.settings.index', ['tenant' => \tenant()])
+ ->with('warning', trans(
+ ':model a bien été supprimé',
+ ['model' => trans('models.classes.setting')]
+ ));
+ }
return redirect()
- ->route('bo.settings.index')
- ->with('warning', trans(
- ':model a bien été supprimé',
- ['model' => Str::singular(trans('models.classes.settings'))]
+ ->back()
+ ->with('error', trans(
+ ':model n\'a pas été supprimé',
+ ['model' => trans('models.classes.setting')]
));
- }
- return redirect()
- ->back()
- ->with('error', trans(
- ':model n\'a pas été supprimé',
- ['model' => Str::singular(trans('models.classes.settings'))]
- ));
+ });
}
}
diff --git a/app/Http/Controllers/Bo/TagController.php b/app/Http/Controllers/Bo/TagController.php
index 856c54e..f89009c 100644
--- a/app/Http/Controllers/Bo/TagController.php
+++ b/app/Http/Controllers/Bo/TagController.php
@@ -9,24 +9,30 @@ use App\Models\Tag;
use App\Traits\Controllers\ChangesModelOrder;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
-use Illuminate\Support\Str;
class TagController extends Controller
{
use ChangesModelOrder;
+ /**
+ * Create the controller instance.
+ */
+ public function __construct()
+ {
+ $this->authorizeResource(Tag::class);
+ }
+
/**
* Display a listing of the resource.
*
* @param \Illuminate\Http\Request $request
- * @return \Illuminate\Http\Response
+ * @return \Illuminate\Contracts\View\View
*/
- public function index(Request $request)
+ public function index(Request $request): \Illuminate\Contracts\View\View
{
/** @var \Illuminate\Database\Eloquent\Builder $query */
$query = Tag::query();
- /** @var string $search Search field */
if ($request->search) {
$this->searchQuery(
$query,
@@ -35,50 +41,51 @@ class TagController extends Controller
'name',
);
}
- $searchFields = trans('Nom');
+ $searchFields = trans('validation.attributes.name');
/** Sort columns with a query */
$this->sortQuery($query);
- $tags = $this->paginate($query);
+ $tagModels = $this->paginate($query);
- return view('bo.pages.tags.index', compact('tags', 'searchFields'));
+ return view('bo.pages.tags.index', compact('tagModels', 'searchFields'));
}
/**
* Show the form for creating a new resource.
*
- * @return \Illuminate\Http\Response
+ * @param \App\Models\Tag $tag
+ * @return \Illuminate\Contracts\View\View
*/
- public function create()
+ public function create(Tag $tag): \Illuminate\Contracts\View\View
{
- return view('bo.pages.tags.create');
+ return view('bo.pages.tags.create', ['tagModel' => $tag]);
}
/**
* Store a newly created resource in storage.
*
- * @param \App\Http\Requests\Bo\Tag\StoreTagRequest $request
- * @return \Illuminate\Http\Response
+ * @param \App\Http\Requests\Bo\Tags\StoreTagRequest $request
+ * @return \Illuminate\Http\RedirectResponse
*/
- public function store(StoreTagRequest $request)
+ public function store(StoreTagRequest $request): \Illuminate\Http\RedirectResponse
{
return DB::transaction(function () use ($request) {
$tag = new Tag();
$tag->fill($request->validated());
if ($tag->saveOrFail()) {
return redirect()
- ->route('bo.tags.edit', $tag)
+ ->route('bo.tags.edit', ['tenant' => \tenant(), 'tag' => $tag])
->with('success', trans(
':model a été créé',
- ['model' => Str::singular(trans('models.classes.tags'))]
+ ['model' => trans('models.classes.tag')]
));
}
return redirect()
->back()
->with('error', trans(
':model n\'a pas été créé',
- ['model' => Str::singular(trans('models.classes.tags'))]
+ ['model' => trans('models.classes.tag')]
));
});
}
@@ -87,9 +94,9 @@ class TagController extends Controller
* Show the form for editing the specified resource.
*
* @param \App\Models\Tag $tag
- * @return \Illuminate\Http\Response
+ * @return \Illuminate\Contracts\View\View
*/
- public function edit(Tag $tag)
+ public function edit(Tag $tag): \Illuminate\Contracts\View\View
{
return view('bo.pages.tags.edit', ['tagModel' => $tag]);
}
@@ -97,28 +104,28 @@ class TagController extends Controller
/**
* Update the specified resource in storage.
*
- * @param \App\Http\Requests\Bo\Tag\UpdateTagRequest $request
- * @param \App\Models\Tag $tag
- * @return \Illuminate\Http\Response
+ * @param \App\Http\Requests\Bo\Tags\UpdateTagRequest $request
+ * @param \App\Models\Tag $tag
+ * @return \Illuminate\Http\RedirectResponse
*/
- public function update(UpdateTagRequest $request, Tag $tag)
+ public function update(UpdateTagRequest $request, Tag $tag): \Illuminate\Http\RedirectResponse
{
return DB::transaction(function () use ($request, $tag) {
$tag->fill($request->validated());
if ($tag->saveOrFail()) {
return redirect()
- ->route('bo.tags.edit', $tag)
+ ->route('bo.tags.edit', ['tenant' => \tenant(), 'tag' => $tag])
->with('success', trans(
':model a été mis à jour',
- ['model' => Str::singular(trans('models.classes.tags'))]
+ ['model' => trans('models.classes.tag')]
));
}
return redirect()
->back()
->with('error', trans(
':model n\'a pas été mis à jour',
- ['model' => Str::singular(trans('models.classes.tags'))]
+ ['model' => trans('models.classes.tag')]
));
});
}
@@ -126,24 +133,40 @@ class TagController extends Controller
/**
* Remove the specified resource from storage.
*
- * @param \App\Models\Tag $tag
- * @return \Illuminate\Http\Response
+ * @param \App\Models\Tag $tag
+ * @return \Illuminate\Http\RedirectResponse
*/
- public function destroy(Tag $tag)
+ public function destroy(Tag $tag): \Illuminate\Http\RedirectResponse
{
- if ($tag->deleteOrFail()) {
+ /** @var array */
+ $previousQueries = [];
+ \parse_str(\parse_url(url()->previous(), \PHP_URL_QUERY), $previousQueries);
+ return DB::transaction(function () use ($tag, $previousQueries) {
+ if ($tag->deleteOrFail()) {
+ return redirect()
+ ->route('bo.tags.index', array_merge(['tenant' => \tenant()], $previousQueries))
+ ->with('warning', trans(
+ ':model a bien été supprimé',
+ ['model' => trans('models.classes.tag')]
+ ));
+ }
return redirect()
- ->route('bo.tags.index')
- ->with('warning', trans(
- ':model a bien été supprimé',
- ['model' => Str::singular(trans('models.classes.tags'))]
+ ->back()
+ ->with('error', trans(
+ ':model n\'a pas été supprimé',
+ ['model' => trans('models.classes.tag')]
));
- }
- return redirect()
- ->back()
- ->with('error', trans(
- ':model n\'a pas été supprimé',
- ['model' => Str::singular(trans('models.classes.tags'))]
- ));
+ });
+ }
+
+ /**
+ * Duplicate the specified resource.
+ *
+ * @param \App\Models\Tag $tag
+ * @return \Illuminate\Contracts\View\View
+ */
+ public function duplicate(Tag $tag): \Illuminate\Contracts\View\View
+ {
+ return $this->create($tag->replicate());
}
}
diff --git a/app/Http/Controllers/Bo/TenantController.php b/app/Http/Controllers/Bo/TenantController.php
new file mode 100644
index 0000000..b50b253
--- /dev/null
+++ b/app/Http/Controllers/Bo/TenantController.php
@@ -0,0 +1,174 @@
+authorizeResource(Tenant::class);
+ }
+
+ /**
+ * Display a listing of the resource.
+ *
+ * @param \Illuminate\Http\Request $request
+ * @return \Illuminate\Contracts\View\View
+ */
+ public function index(Request $request): \Illuminate\Contracts\View\View
+ {
+ /** @var \Illuminate\Database\Eloquent\Builder $query */
+ $query = Tenant::query();
+
+ if ($request->search) {
+ $this->searchQuery(
+ $query,
+ $request->search,
+ null,
+ 'name',
+ );
+ }
+ $searchFields = trans('validation.attributes.name');
+
+ /** Sort columns with a query */
+ $this->sortQuery($query);
+
+ $tenantModels = $this->paginate($query);
+
+ return view('bo.pages.tenants.index', compact('tenantModels', 'searchFields'));
+ }
+
+ /**
+ * Show the form for creating a new resource.
+ *
+ * @param \App\Models\Tenant $tenant
+ * @return \Illuminate\Contracts\View\View
+ */
+ public function create(Tenant $tenant): \Illuminate\Contracts\View\View
+ {
+ return view('bo.pages.tenants.create', ['tenantModel' => $tenant]);
+ }
+
+ /**
+ * Store a newly created resource in storage.
+ *
+ * @param \App\Http\Requests\Bo\Tenants\StoreTenantRequest $request
+ * @return \Illuminate\Http\RedirectResponse
+ */
+ public function store(StoreTenantRequest $request): \Illuminate\Http\RedirectResponse
+ {
+ return DB::transaction(function () use ($request) {
+ $tenant = new Tenant();
+ $tenant->fill($request->validated());
+ if ($tenant->saveOrFail()) {
+ return redirect()
+ ->route('bo.tenants.edit', ['tenant' => $tenant])
+ ->with('success', trans(
+ ':model a été créé',
+ ['model' => trans('models.classes.tenant')]
+ ));
+ }
+ return redirect()
+ ->back()
+ ->with('error', trans(
+ ':model n\'a pas été créé',
+ ['model' => trans('models.classes.tenant')]
+ ));
+ });
+ }
+
+ /**
+ * Show the form for editing the specified resource.
+ *
+ * @param \App\Models\Tenant $tenant
+ * @return \Illuminate\Contracts\View\View
+ */
+ public function edit(Tenant $tenant): \Illuminate\Contracts\View\View
+ {
+ return view('bo.pages.tenants.edit', ['tenantModel' => $tenant]);
+ }
+
+ /**
+ * Update the specified resource in storage.
+ *
+ * @param \App\Http\Requests\Bo\Tenants\UpdateTenantRequest $request
+ * @param \App\Models\Tenant $tenant
+ * @return \Illuminate\Http\RedirectResponse
+ */
+ public function update(UpdateTenantRequest $request, Tenant $tenant): \Illuminate\Http\RedirectResponse
+ {
+ return DB::transaction(function () use ($request, $tenant) {
+ $tenant->fill($request->validated());
+
+ if ($tenant->saveOrFail()) {
+ return redirect()
+ ->route('bo.tenants.edit', ['tenant' => $tenant])
+ ->with('success', trans(
+ ':model a été mis à jour',
+ ['model' => trans('models.classes.tenant')]
+ ));
+ }
+ return redirect()
+ ->back()
+ ->with('error', trans(
+ ':model n\'a pas été mis à jour',
+ ['model' => trans('models.classes.tenant')]
+ ));
+ });
+ }
+
+ /**
+ * Remove the specified resource from storage.
+ *
+ * @param \App\Models\Tenant $tenant
+ * @return \Illuminate\Http\RedirectResponse
+ */
+ public function destroy(Tenant $tenant): \Illuminate\Http\RedirectResponse
+ {
+ /** @var array */
+ $previousQueries = [];
+ \parse_str(\parse_url(url()->previous(), \PHP_URL_QUERY), $previousQueries);
+ return DB::transaction(function () use ($tenant, $previousQueries) {
+ if ($tenant->deleteOrFail()) {
+ /** @var string $tenantKey */
+ $tenantKey = $tenant->getKey();
+ Storage::disk('public')->deleteDirectory("modelfiles/{$tenantKey}");
+ Storage::disk('public')->deleteDirectory("docs/{$tenantKey}");
+ return redirect()
+ ->route('bo.tenants.index', $previousQueries)
+ ->with('warning', trans(
+ ':model a bien été supprimé',
+ ['model' => trans('models.classes.tenant')]
+ ));
+ }
+ return redirect()
+ ->back()
+ ->with('error', trans(
+ ':model n\'a pas été supprimé',
+ ['model' => trans('models.classes.tenant')]
+ ));
+ });
+ }
+
+ /**
+ * Duplicate the specified resource.
+ *
+ * @param \App\Models\Tenant $tenant
+ * @return \Illuminate\Contracts\View\View
+ */
+ public function duplicate(Tenant $tenant): \Illuminate\Contracts\View\View
+ {
+ return $this->create($tenant->replicate());
+ }
+}
diff --git a/app/Http/Controllers/Bo/UserController.php b/app/Http/Controllers/Bo/UserController.php
new file mode 100644
index 0000000..865d236
--- /dev/null
+++ b/app/Http/Controllers/Bo/UserController.php
@@ -0,0 +1,170 @@
+authorizeResource(User::class);
+ }
+
+ /**
+ * Display a listing of the resource.
+ *
+ * @param \Illuminate\Http\Request $request
+ * @return \Illuminate\Contracts\View\View
+ */
+ public function index(Request $request): \Illuminate\Contracts\View\View
+ {
+ /** @var \Illuminate\Database\Eloquent\Builder $userModels */
+ $userModels = User::query();
+
+ /** @var string $search Search field */
+ $search = $request->search;
+ if ($search) {
+ $this->searchQuery(
+ $userModels,
+ $search,
+ null,
+ 'first_name',
+ 'last_name',
+ 'email',
+ 'role',
+ );
+ }
+ $searchFields = \implode(', ', [
+ trans('validation.attributes.first_name'),
+ trans('validation.attributes.last_name'),
+ trans('validation.attributes.email'),
+ trans('validation.attributes.role'),
+ ]);
+
+ /** Sort columns with a query */
+ $this->sortQuery($userModels);
+
+ /** Custom pagination */
+ $userModels = $this->paginate($userModels);
+
+ return view('bo.pages.users.index', compact('userModels', 'search', 'searchFields'));
+ }
+
+ /**
+ * Show the form for creating a new resource.
+ *
+ * @param \App\Models\User $user
+ * @return \Illuminate\Contracts\View\View
+ */
+ public function create(User $user): \Illuminate\Contracts\View\View
+ {
+ $tenants = Tenant::query()->orderBy('name', 'ASC')->get();
+ return view('bo.pages.users.create', ['userModel' => $user, 'tenants' => $tenants]);
+ }
+
+ /**
+ * Store a newly created resource in storage.
+ *
+ * @param \App\Http\Requests\Bo\Users\StoreUserRequest $request
+ * @return \Illuminate\Http\RedirectResponse
+ */
+ public function store(StoreUserRequest $request): \Illuminate\Http\RedirectResponse
+ {
+ return DB::transaction(function () use ($request) {
+ $user = new User();
+ $user->fill($request->validated());
+
+ if ($user->saveOrFail()) {
+ $user->tenants()->sync(collect($request->validated('tenants'))->pluck('id'));
+ return redirect()->route('bo.users.edit', ['tenant' => tenant(), 'user' => $user])
+ ->with('success', __('crud.messages.has_been_created', [
+ 'model' => Str::ucfirst(__('models.classes.user'))
+ ]));
+ }
+ return redirect()->back()
+ ->with('error', __('crud.messages.cannot_be_created', [
+ 'model' => Str::ucfirst(__('models.classes.user'))
+ ]));
+ });
+ }
+
+ /**
+ * Show the form for editing the specified resource.
+ *
+ * @param \App\Models\User $user
+ * @return \Illuminate\Contracts\View\View
+ */
+ public function edit(User $user): \Illuminate\Contracts\View\View
+ {
+ $tenants = Tenant::query()->orderBy('name', 'ASC')->get();
+ return view('bo.pages.users.edit', ['userModel' => $user, 'tenants' => $tenants]);
+ }
+
+ /**
+ * Update the specified resource in storage.
+ *
+ * @param \App\Http\Requests\Bo\Users\UpdateUserRequest $request
+ * @param \App\Models\User $user
+ * @return \Illuminate\Http\RedirectResponse
+ */
+ public function update(UpdateUserRequest $request, User $user): \Illuminate\Http\RedirectResponse
+ {
+ return DB::transaction(function () use ($request, $user) {
+ $user->fill($request->validated());
+
+ if ($user->saveOrFail()) {
+ $user->tenants()->sync(collect($request->validated('tenants'))->pluck('id'));
+ return redirect()->route('bo.users.edit', ['tenant' => tenant(), 'user' => $user])
+ ->with('success', __('crud.messages.has_been_updated', [
+ 'model' => Str::ucfirst(__('models.classes.user'))
+ ]));
+ }
+ return redirect()->route('bo.users.edit', ['tenant' => tenant(), 'user' => $user])
+ ->with('error', __('crud.messages.cannot_be_updated', [
+ 'model' => Str::ucfirst(__('models.classes.user'))
+ ]));
+ });
+ }
+
+ /**
+ * Remove the specified resource from storage.
+ *
+ * @param \App\Models\User $user
+ * @return \Illuminate\Http\RedirectResponse
+ */
+ public function destroy(User $user): \Illuminate\Http\RedirectResponse
+ {
+ if ($user->deleteOrFail()) {
+ return redirect()->route('bo.users.index', ['tenant' => tenant()])
+ ->with('success', __('crud.messages.has_been_deleted', [
+ 'model' => Str::ucfirst(__('models.classes.user'))
+ ]));
+ }
+ return redirect()->back()
+ ->with('error', __('crud.messages.cannot_be_deleted', [
+ 'model' => Str::ucfirst(__('models.classes.user'))
+ ]));
+ }
+
+ /**
+ * Duplicate the specified resource.
+ *
+ * @param \App\Models\User $user
+ * @return \Illuminate\Contracts\View\View
+ */
+ public function duplicate(User $user): \Illuminate\Contracts\View\View
+ {
+ return $this->create($user->replicate());
+ }
+}
diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php
index da045a8..cb01b03 100644
--- a/app/Http/Controllers/Controller.php
+++ b/app/Http/Controllers/Controller.php
@@ -2,9 +2,6 @@
namespace App\Http\Controllers;
-use App\Enums\Pagination\ItemsPerPaginationEnum;
-use App\Lib\Helpers\ToolboxHelper;
-use Illuminate\Contracts\Pagination\LengthAwarePaginator;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
@@ -14,6 +11,8 @@ use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Str;
+use Uwil\LaravelCommon\Enums\ItemsPerPaginationEnum;
+use Uwil\LaravelCommon\Helpers\ToolboxHelper;
class Controller extends BaseController
{
@@ -27,7 +26,7 @@ class Controller extends BaseController
*
* @param \Illuminate\Database\Eloquent\Builder $query The eloquent query builder.
* @param string $search The query string.
- * @param callable $searchQuery The query string.
+ * @param callable|null $searchQuery The query string.
* @param string ...$fields Either a simple array or a string
* in case of a string the two fields
* would be concatenate to make the search.
@@ -36,7 +35,7 @@ class Controller extends BaseController
protected function searchQuery(
Builder $query,
string $search,
- callable $searchQuery = null,
+ callable|null $searchQuery = null,
string ...$fields
): Builder {
if (count($fields)) {
@@ -96,16 +95,16 @@ class Controller extends BaseController
* @param array $ignore
* @return \Illuminate\Database\Eloquent\Builder
*/
- protected function sortQuery(Builder $query, array $ignore = []): Builder
+ protected function sortQuery(Builder $query, array $ignore = []): \Illuminate\Database\Eloquent\Builder
{
$rName = request()->route()->getName();
$table = $query->getModel()->getTable();
- if (request()->sort_col) {
- Session::put("$rName.sort_col", request()->sort_col);
+ if (request()->input('sort_col')) {
+ Session::put("$rName.sort_col", request()->input('sort_col'));
Session::put("$rName.sorted", true);
}
- if (request()->sort_way) {
- Session::put("$rName.sort_way", request()->sort_way);
+ if (request()->input('sort_way')) {
+ Session::put("$rName.sort_way", request()->input('sort_way'));
Session::put("$rName.sorted", true);
}
if (request()->rst) {
@@ -113,17 +112,29 @@ class Controller extends BaseController
Session::remove("$rName.sort_col");
Session::remove("$rName.sort_way");
}
- if (request()->sort_col and request()->sort_way and Schema::hasColumn($table, request()->sort_col)) {
- if (
- !isset($ignore) or
- (isset($ignore) and !in_array(request()->sort_col, $ignore))
- ) {
- $query = $query->orderBy(\sprintf("$table.%s", request()->sort_col), request()->sort_way);
+ if (
+ request()->input('sort_col') and
+ request()->input('sort_way') and
+ Schema::hasColumn($table, request()->input('sort_col'))
+ ) {
+ if (!in_array(request()->input('sort_col'), $ignore)) {
+ $query = $query->orderBy(
+ \sprintf("$table.%s", request()->input('sort_col')),
+ request()->input('sort_way')
+ );
}
} elseif (Schema::hasColumn($table, 'order')) {
$query = $query->orderBy('order', 'ASC');
Session::put("$rName.sort_col", 'order');
Session::put("$rName.sort_way", 'asc');
+ } elseif (Schema::hasColumn($table, 'updated_at')) {
+ $query = $query->orderBy('updated_at', 'DESC');
+ Session::put("$rName.sort_col", 'updated_at');
+ Session::put("$rName.sort_way", 'desc');
+ } elseif (Schema::hasColumn($table, 'created_at')) {
+ $query = $query->orderBy('created_at', 'DESC');
+ Session::put("$rName.sort_col", 'created_at');
+ Session::put("$rName.sort_way", 'desc');
}
return $query;
}
@@ -131,17 +142,21 @@ class Controller extends BaseController
/**
* Customize pagination with cache or config (default).
*
- * @param \Illuminate\Database\Eloquent\Builder $query
- * @param \App\Enums\Pagination\ItemsPerPaginationEnum|null $pagination
+ * @param \Illuminate\Database\Eloquent\Builder $query
+ * @param \Uwil\LaravelCommon\Enums\ItemsPerPaginationEnum|null $pagination
* @return \Illuminate\Contracts\Pagination\LengthAwarePaginator
*/
- protected function paginate(Builder $query, ItemsPerPaginationEnum $pagination = null): LengthAwarePaginator
- {
+ protected function paginate(
+ Builder $query,
+ ItemsPerPaginationEnum|null $pagination = null
+ ): \Illuminate\Contracts\Pagination\LengthAwarePaginator {
$currentRoutePath = Str::slug(request()->route()->getName());
$cacheKey = "pagination.{$currentRoutePath}";
- $pagination = $pagination ?? ItemsPerPaginationEnum::twelve();
- $pagination = ToolboxHelper::getValidatedPaginate(
- Cache::get($cacheKey, $pagination->value)
+ $pagination = $pagination ?? ItemsPerPaginationEnum::twelve;
+ $pagination = ToolboxHelper::getValidatedEnum(
+ Cache::get($cacheKey, $pagination->value()),
+ 'pagination',
+ '\Uwil\LaravelCommon\Enums\ItemsPerPaginationEnum',
);
if (Cache::get($cacheKey) !== $pagination) {
Cache::put($cacheKey, $pagination);
diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php
index 84f0c8f..426bcf1 100644
--- a/app/Http/Kernel.php
+++ b/app/Http/Kernel.php
@@ -16,7 +16,6 @@ class Kernel extends HttpKernel
protected $middleware = [
\App\Http\Middleware\TrustHosts::class,
\App\Http\Middleware\TrustProxies::class,
- \Fruitcake\Cors\HandleCors::class,
\App\Http\Middleware\PreventRequestsDuringMaintenance::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
@@ -37,7 +36,13 @@ class Kernel extends HttpKernel
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
- \App\Http\Middleware\SecureHeaders::class
+ \App\Http\Middleware\SecureHeaders::class,
+ ],
+
+ 'saml' => [
+ \App\Http\Middleware\EncryptCookies::class,
+ \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
+ \Illuminate\Session\Middleware\StartSession::class,
],
'api' => [
@@ -54,16 +59,17 @@ class Kernel extends HttpKernel
* @var array
*/
protected $routeMiddleware = [
- 'auth' => \App\Http\Middleware\Authenticate::class,
- 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
- 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
- 'can' => \Illuminate\Auth\Middleware\Authorize::class,
- 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
- 'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
- 'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
- 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
- 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
- 'htmlsanitize' => \App\Http\Middleware\HtmlSanitizer::class,
- 'api.token' => \App\Http\Middleware\CheckApiToken::class,
+ 'api.token' => \App\Http\Middleware\CheckApiToken::class,
+ 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
+ 'auth' => \App\Http\Middleware\Authenticate::class,
+ 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
+ 'can' => \Illuminate\Auth\Middleware\Authorize::class,
+ 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
+ 'htmlsanitize' => \App\Http\Middleware\HtmlSanitizer::class,
+ 'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
+ 'restrict_tenant_access' => \App\Http\Middleware\RestrictTenantAccess::class,
+ 'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
+ 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
+ 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
];
}
diff --git a/app/Http/Middleware/Authenticate.php b/app/Http/Middleware/Authenticate.php
index 2ee8f58..7ef170f 100644
--- a/app/Http/Middleware/Authenticate.php
+++ b/app/Http/Middleware/Authenticate.php
@@ -13,7 +13,7 @@ class Authenticate extends Middleware
* @param mixed $request
* @return string|null
*/
- protected function redirectTo($request)
+ protected function redirectTo(mixed $request): string|null
{
$logins = [
'backend' => route('bo.login')
diff --git a/app/Http/Middleware/CheckApiToken.php b/app/Http/Middleware/CheckApiToken.php
index 3f38e5b..4cc5afe 100644
--- a/app/Http/Middleware/CheckApiToken.php
+++ b/app/Http/Middleware/CheckApiToken.php
@@ -14,7 +14,7 @@ class CheckApiToken
* @param \Closure $next
* @return mixed
*/
- public function handle(Request $request, Closure $next)
+ public function handle(Request $request, Closure $next): mixed
{
if (isset($request->token) && $request->token == config('auth.API_TOKEN')) {
return $next($request);
diff --git a/app/Http/Middleware/EncryptCookies.php b/app/Http/Middleware/EncryptCookies.php
index b206f25..b6e9bbc 100644
--- a/app/Http/Middleware/EncryptCookies.php
+++ b/app/Http/Middleware/EncryptCookies.php
@@ -11,6 +11,5 @@ class EncryptCookies extends Middleware
*
* @var array
*/
- protected $except = [
- ];
+ protected $except = [];
}
diff --git a/app/Http/Middleware/HtmlSanitizer.php b/app/Http/Middleware/HtmlSanitizer.php
index c5a7275..3e8e8c4 100644
--- a/app/Http/Middleware/HtmlSanitizer.php
+++ b/app/Http/Middleware/HtmlSanitizer.php
@@ -2,8 +2,8 @@
namespace App\Http\Middleware;
-use App\Lib\Helpers\ToolboxHelper;
use Illuminate\Http\Request;
+use Uwil\LaravelCommon\Helpers\ToolboxHelper;
class HtmlSanitizer
{
@@ -15,7 +15,7 @@ class HtmlSanitizer
* @param mixed ...$params
* @return mixed
*/
- public function handle(Request $request, \Closure $next, ...$params)
+ public function handle(Request $request, \Closure $next, mixed ...$params): mixed
{
$inputs = $request->all();
/** @var callable|null */
diff --git a/app/Http/Middleware/RedirectIfAuthenticated.php b/app/Http/Middleware/RedirectIfAuthenticated.php
index c19f114..81cdb80 100644
--- a/app/Http/Middleware/RedirectIfAuthenticated.php
+++ b/app/Http/Middleware/RedirectIfAuthenticated.php
@@ -12,6 +12,7 @@ class RedirectIfAuthenticated
* Handle an incoming request.
*
* @phpcs:disable Generic.Files.LineLength.TooLong
+ *
* @param \Illuminate\Http\Request $request
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
* @param string|null ...$guards
@@ -19,8 +20,11 @@ class RedirectIfAuthenticated
* @throws \RuntimeException If guard is unhandled.
* @phpcs:enable
*/
- public function handle(Request $request, Closure $next, ...$guards)
- {
+ public function handle(
+ Request $request,
+ Closure $next,
+ string|null ...$guards
+ ): \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse {
$guards = empty($guards) ? [null] : $guards;
foreach ($guards as $guard) {
diff --git a/app/Http/Middleware/RestrictTenantAccess.php b/app/Http/Middleware/RestrictTenantAccess.php
new file mode 100644
index 0000000..074c421
--- /dev/null
+++ b/app/Http/Middleware/RestrictTenantAccess.php
@@ -0,0 +1,48 @@
+user();
+ if ($user) {
+ if (
+ !$request->routeIs(['bo.dashboard', 'bo.users.*', 'bo.tenants.*']) &&
+ $request->tenant &&
+ !\in_array($request->tenant, Tenant::get()->pluck('id')->toArray())
+ ) {
+ // @phpstan-ignore argument.type
+ abort('404');
+ }
+ if (Tenant::count() && $request->routeIs(['bo.tenants.*', 'bo.users.*']) && $user->can('isAdmin')) {
+ $tenant = Tenant::first()->getKey();
+ tenancy()->initialize($tenant);
+ return $next($request);
+ }
+ if (
+ Tenant::count() && ($request->routeIs('bo.dashboard')
+ || $request->routeIs('bo.users.edit', $user->getKey()))
+ ) {
+ $tenant = ($user->tenants->count()) ? $user->tenants->first() : Tenant::first()->getKey();
+ tenancy()->initialize($tenant);
+ return $next($request);
+ }
+ } //end if
+ return $next($request);
+ }
+}
diff --git a/app/Http/Middleware/SecureHeaders.php b/app/Http/Middleware/SecureHeaders.php
index d881c4c..9681069 100644
--- a/app/Http/Middleware/SecureHeaders.php
+++ b/app/Http/Middleware/SecureHeaders.php
@@ -6,6 +6,7 @@ use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\View;
+use Illuminate\Support\Facades\Vite;
class SecureHeaders
{
@@ -26,14 +27,13 @@ class SecureHeaders
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
- * @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
+ * @return \Symfony\Component\HttpFoundation\Response
*/
- public function handle(Request $request, Closure $next)
+ public function handle(Request $request, Closure $next): \Symfony\Component\HttpFoundation\Response
{
- View::share('nonce', $nonce = \uniqid());
+ View::share('nonce', $nonce = Vite::useCspNonce());
// * For VueJS dev tool to execute
$jsDev = config('app.debug') ? "'unsafe-eval' 'unsafe-inline'" : "'nonce-{$nonce}' 'strict-dynamic'";
- $scheme = config('app.env') === 'local' ? 'http' : 'https';
$reportUri = Route::has('cspReportUri') ?
\sprintf(' report-uri %s ;', \parse_url(route('cspReportUri'), \PHP_URL_PATH)) : '';
$this->removeUnwantedHeaders($this->unwantedHeaderList);
@@ -49,19 +49,18 @@ class SecureHeaders
// * CKEDITOR Specific https://ckeditor.com/docs/ckeditor5/latest/installation/advanced/csp.html
"connect-src 'self' blob:;",
"img-src * data: blob:;",
+ "object-src 'self' " . implode(' ', []) . ';',
'frame-src ' . implode(' ', []) . ';',
"font-src 'self' data: ;",
// ! Using CKEditor will must have unsafe-inline style
- // phpcs:ignore Generic.Files.LineLength.TooLong
"style-src 'self' 'unsafe-inline' " . \implode(' ', [
// * File Manager
'https://cdn.jsdelivr.net',
'https://use.fontawesome.com',
- 'https://fonts.googleapis.com'
+ 'https://fonts.googleapis.com',
]) . ';',
// ! If you dont use ckeditor use this
// "style-src 'self' 'nonce-$nonce';",
- // phpcs:ignore Generic.Files.LineLength.TooLong
"script-src 'self' {$jsDev} " . \implode(' ', [
'https: blob:',
]) . ';'
@@ -76,12 +75,12 @@ class SecureHeaders
}
/**
- * Remove unwanted headers
+ * Remove unwanted headers.
*
* @param array $headerList
* @return void
*/
- private function removeUnwantedHeaders(array $headerList)
+ private function removeUnwantedHeaders(array $headerList): void
{
foreach ($headerList as $header) {
header_remove($header);
diff --git a/app/Http/Middleware/TrustHosts.php b/app/Http/Middleware/TrustHosts.php
index 7186414..c9c58bd 100644
--- a/app/Http/Middleware/TrustHosts.php
+++ b/app/Http/Middleware/TrustHosts.php
@@ -11,7 +11,7 @@ class TrustHosts extends Middleware
*
* @return array
*/
- public function hosts()
+ public function hosts(): array
{
return [
$this->allSubdomainsOfApplicationUrl(),
diff --git a/app/Http/Requests/Api/Contacts/DestroyContactsRequest.php b/app/Http/Requests/Api/Contacts/DestroyContactsRequest.php
index e757f07..4a21b6a 100644
--- a/app/Http/Requests/Api/Contacts/DestroyContactsRequest.php
+++ b/app/Http/Requests/Api/Contacts/DestroyContactsRequest.php
@@ -6,26 +6,15 @@ use Illuminate\Foundation\Http\FormRequest;
class DestroyContactsRequest extends FormRequest
{
- /**
- * Determine if the user is authorized to make this request.
- *
- * @return boolean
- */
- public function authorize()
- {
- // * Check is done with api.token middleware
- return true;
- }
-
/**
* Prepare the data for validation.
*
* @return void
*/
- protected function prepareForValidation()
+ protected function prepareForValidation(): void
{
$this->merge([
- 'contactUuidList' => \collect($this->contactUuidList)->filter()->all()
+ 'contactUuidList' => \collect($this->contactUuidList)->filter()->all(),
]);
}
@@ -34,10 +23,10 @@ class DestroyContactsRequest extends FormRequest
*
* @return array
*/
- public function rules()
+ public function rules(): array
{
return [
- 'contactUuidList' => 'present|array|min:0',
+ 'contactUuidList' => 'present|array|min:0',
'contactUuidList.*' => 'uuid',
];
}
diff --git a/app/Http/Requests/Api/Contacts/UpsertContactsRequest.php b/app/Http/Requests/Api/Contacts/UpsertContactsRequest.php
index 2a11e8c..8170541 100644
--- a/app/Http/Requests/Api/Contacts/UpsertContactsRequest.php
+++ b/app/Http/Requests/Api/Contacts/UpsertContactsRequest.php
@@ -6,27 +6,16 @@ use App\Enums\Formularies\InputTypeEnum;
use App\Lib\Inputs\Definition\InputData;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\ValidationException;
-use Kwaadpepper\Enum\Rules\EnumIsValidRule;
+use Illuminate\Validation\Rules\Enum;
class UpsertContactsRequest extends FormRequest
{
- /**
- * Determine if the user is authorized to make this request.
- *
- * @return boolean
- */
- public function authorize()
- {
- // * Check is done with api.token middleware
- return true;
- }
-
/**
* Prepare the data for validation.
*
* @return void
*/
- protected function prepareForValidation()
+ protected function prepareForValidation(): void
{
$this->merge([
'contacts' => \collect($this->contacts)->filter()
@@ -61,35 +50,35 @@ class UpsertContactsRequest extends FormRequest
*
* @return array
*/
- public function rules()
+ public function rules(): array
{
return [
- 'contacts' => 'present|array',
- 'contacts.*' => 'array',
- 'contacts.*.id' => 'uuid',
- 'contacts.*.lastname' => 'nullable|string|max:255',
- 'contacts.*.firstname' => 'nullable|string|max:255',
+ 'contacts' => 'present|array',
+ 'contacts.*' => 'array',
+ 'contacts.*.id' => 'uuid',
+ 'contacts.*.lastname' => 'nullable|string|between:1,255',
+ 'contacts.*.firstname' => 'nullable|string|between:1,255',
// * Dot not validate email here (soft validate), if it does not pass, app will be blocked.
- 'contacts.*.email' => 'required|string|max:255',
- 'contacts.*.phone' => 'nullable|string|max:255',
+ 'contacts.*.email' => 'required|string|between:1,255',
+ 'contacts.*.phone' => 'nullable|string|between:1,255',
'contacts.*.timestamp' => 'required|date',
// * DATA
- 'contacts.*.data' => 'present|array',
- 'contacts.*.dataParsed' => 'present',
- 'contacts.*.data.*' => 'array',
- 'contacts.*.data.*.title' => 'present|string|min:1|max:255',
- 'contacts.*.data.*.formSlug' => 'present|string|min:1|max:255',
- 'contacts.*.data.*.type' => ['present', new EnumIsValidRule(InputTypeEnum::class)],
- 'contacts.*.data.*.value' => 'present',
- 'contacts.*.data.*.required' => 'present|boolean',
+ 'contacts.*.data' => 'present|array',
+ 'contacts.*.dataParsed' => 'present',
+ 'contacts.*.data.*' => 'array',
+ 'contacts.*.data.*.title' => 'present|string|min:1|max:255',
+ 'contacts.*.data.*.formSlug' => 'present|string|min:1|max:255',
+ 'contacts.*.data.*.type' => ['present', new Enum(InputTypeEnum::class)],
+ 'contacts.*.data.*.value' => 'present',
+ 'contacts.*.data.*.required' => 'present|boolean',
'contacts.*.data.*.send_to_app_user_id' => 'nullable|numeric',
- 'contacts.*.notes' => 'nullable|string',
- 'contacts.*.visits' => 'present|array',
- 'contacts.*.visits.*' => 'required|array',
+ 'contacts.*.notes' => 'nullable|string',
+ 'contacts.*.visits' => 'present|array',
+ 'contacts.*.visits.*' => 'required|array',
'contacts.*.visits.*.title' => 'present|string',
- 'contacts.*.visits.*.note' => 'present|string',
+ 'contacts.*.visits.*.note' => 'present|string',
];
}
@@ -101,7 +90,7 @@ class UpsertContactsRequest extends FormRequest
* @return mixed
* @throws \Illuminate\Validation\ValidationException In case of parse failure.
*/
- private function filterDataLine(array $data, $index)
+ private function filterDataLine(array $data, mixed $index): mixed
{
$data = \collect($data);
try {
@@ -117,10 +106,15 @@ class UpsertContactsRequest extends FormRequest
'error' => "wrong formSlug on data index '{$index}'"
]);
}
- $type = InputTypeEnum::make($data->get('type') ? $data->get('type') : null);
+ $type = InputTypeEnum::make($data->get('type') ? $data->get('type') : null);
+ if (\is_null($type)) {
+ throw ValidationException::withMessages([
+ 'error' => "wrong inputType on data index '{$index}'"
+ ]);
+ }
$value = $data['value'] ?? null;
$required = $data->get('required') ? true : false;
- $inputClass = $type->inputClass;
+ $inputClass = $type->getInputClass();
return $inputClass::from(InputData::make(
$title,
$formSlug,
diff --git a/app/Http/Requests/Api/SendFlyerRequest.php b/app/Http/Requests/Api/SendFlyerRequest.php
new file mode 100644
index 0000000..3e21bea
--- /dev/null
+++ b/app/Http/Requests/Api/SendFlyerRequest.php
@@ -0,0 +1,56 @@
+ [
+ 'required',
+ 'email:rfc,strict,dns,spoof,filter',
+ Rule::exists('contacts', 'email')->where(function ($query) {
+ $query->whereIn('app_user_id', function ($subQuery) {
+ $subQuery->select('id')->from('app_users')->where('tenant_id', $this->tenant);
+ });
+ }),
+ ],
+ 'emails.subject' => 'required|string|between:3,255',
+ 'emails.message' => 'required|string|min:3',
+ 'emails.app_user_id' => [
+ 'required',
+ 'integer',
+ Rule::exists('app_users', 'id')->where('tenant_id', $this->tenant)
+ ],
+ 'emails.documents' => 'required|array|min:1',
+ 'emails.documents.*.title' => 'required|string|min:3',
+ 'emails.documents.*.uuid' => 'required|string|min:3',
+ 'emails.documents.*.type' => 'required|string|min:1',
+ ];
+ }
+
+ /**
+ * Get custom attributes for validator errors.
+ *
+ * @return array
+ */
+ public function attributes(): array
+ {
+ return [
+ 'emails.email' => trans('validation.attributes.email'),
+ 'emails.subject' => trans('validation.attributes.subject'),
+ 'emails.message' => trans('validation.attributes.message'),
+ 'emails.app_user_id' => trans('models.classes.app_user'),
+ ];
+ }
+}
diff --git a/app/Http/Requests/Bo/AppUser/StoreAppUserRequest.php b/app/Http/Requests/Bo/AppUser/StoreAppUserRequest.php
index 1d78a17..30987de 100644
--- a/app/Http/Requests/Bo/AppUser/StoreAppUserRequest.php
+++ b/app/Http/Requests/Bo/AppUser/StoreAppUserRequest.php
@@ -3,8 +3,13 @@
namespace App\Http\Requests\Bo\AppUser;
use App\Enums\AppUserRolesEnum;
+use App\Models\AppUser;
+use Illuminate\Database\Query\Builder;
use Illuminate\Foundation\Http\FormRequest;
-use Kwaadpepper\Enum\Rules\EnumIsValidRule;
+use Illuminate\Support\Facades\Gate;
+use Illuminate\Support\Str;
+use Illuminate\Validation\Rule;
+use Illuminate\Validation\Rules\Enum;
use Illuminate\Validation\Rules\Password;
class StoreAppUserRequest extends FormRequest
@@ -14,9 +19,9 @@ class StoreAppUserRequest extends FormRequest
*
* @return boolean
*/
- public function authorize()
+ public function authorize(): bool
{
- return auth('backend')->check();
+ return Gate::check('create', AppUser::class);
}
/**
@@ -24,10 +29,10 @@ class StoreAppUserRequest extends FormRequest
*
* @return void
*/
- protected function prepareForValidation()
+ protected function prepareForValidation(): void
{
$this->merge([
- 'status' => $this->status ? true : false,
+ 'status' => $this->status ? true : false,
'authorizedFolders' => $this->authorizedFolders ? $this->authorizedFolders : [],
]);
}
@@ -37,14 +42,22 @@ class StoreAppUserRequest extends FormRequest
*
* @return array
*/
- public function rules()
+ public function rules(): array
{
return [
- 'lastname' => 'required|min:3|max:255',
- 'firstname' => 'required|min:3|max:255',
- 'email' => 'required|min:3|max:255|email:rfc,dns|unique:app_users,email',
- 'password' => [
- 'required', 'required_with:password_confirmation', 'confirmed', 'max:255',
+ 'lastname' => 'required|min:3|max:255',
+ 'firstname' => 'required|min:3|max:255',
+ 'email' => [
+ 'required',
+ 'email:rfc,strict,dns,spoof,filter',
+ Rule::unique('app_users', 'email')
+ ->where(fn(Builder $query) => $query->where('tenant_id', tenant('id')))
+ ],
+ 'password' => [
+ 'required',
+ 'required_with:password_confirmation',
+ 'confirmed',
+ 'max:255',
Password::min(8)
->letters()
->mixedCase()
@@ -52,11 +65,11 @@ class StoreAppUserRequest extends FormRequest
->symbols()
],
'authorizedFolders' => 'present|array',
- 'role' => [
+ 'role' => [
'required',
- new EnumIsValidRule(AppUserRolesEnum::class)
+ new Enum(AppUserRolesEnum::class)
],
- 'status' => 'required|boolean'
+ 'status' => 'required|boolean'
];
}
@@ -65,16 +78,16 @@ class StoreAppUserRequest extends FormRequest
*
* @return array
*/
- public function attributes()
+ public function attributes(): array
{
return [
- 'lastname' => \trans('nom'),
- 'firstname' => \trans('prénom'),
- 'email' => \trans('email'),
- 'password' => \trans('mot de passe'),
- 'authorizedFolders' => \trans('dossiers autorisés'),
- 'role' => \trans('rôle'),
- 'status' => \trans('statut')
+ 'lastname' => \trans('validation.attributes.last_name'),
+ 'firstname' => \trans('validation.attributes.first_name'),
+ 'email' => \trans('validation.attributes.email'),
+ 'password' => \trans('validation.attributes.password'),
+ 'authorizedFolders' => Str::of(\trans('models.classes.directory'))->plural(),
+ 'role' => \trans('validation.custom.role'),
+ 'status' => \trans('validation.custom.status')
];
}
}
diff --git a/app/Http/Requests/Bo/AppUser/UpdateAppUserRequest.php b/app/Http/Requests/Bo/AppUser/UpdateAppUserRequest.php
index 1fb7263..67cf4ab 100644
--- a/app/Http/Requests/Bo/AppUser/UpdateAppUserRequest.php
+++ b/app/Http/Requests/Bo/AppUser/UpdateAppUserRequest.php
@@ -2,17 +2,29 @@
namespace App\Http\Requests\Bo\AppUser;
+use Illuminate\Support\Facades\Gate;
use Illuminate\Validation\Rule;
use Illuminate\Validation\Rules\Password;
+use Illuminate\Database\Query\Builder;
class UpdateAppUserRequest extends StoreAppUserRequest
{
+ /**
+ * Determine if the user is authorized to make this request.
+ *
+ * @return boolean
+ */
+ public function authorize(): bool
+ {
+ return Gate::check('update', $this->route('app_user'));
+ }
+
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
- public function rules()
+ public function rules(): array
{
$rules = [
'email' => [
@@ -20,7 +32,9 @@ class UpdateAppUserRequest extends StoreAppUserRequest
'min:3',
'max:255',
'email:rfc,dns',
- Rule::unique('app_users', 'email')->ignore($this->route('app_user')->id),
+ Rule::unique('app_users', 'email')
+ ->where(fn (Builder $query) => $query->where('tenant_id', tenant('id')))
+ ->ignore($this->route('app_user')->getKey())
],
'password' => [
'sometimes', 'nullable', 'required_with:password_confirmation', 'confirmed', 'max:255',
diff --git a/app/Http/Requests/Bo/Directories/StoreDirectoryRequest.php b/app/Http/Requests/Bo/Directories/StoreDirectoryRequest.php
index 85672fc..1514595 100644
--- a/app/Http/Requests/Bo/Directories/StoreDirectoryRequest.php
+++ b/app/Http/Requests/Bo/Directories/StoreDirectoryRequest.php
@@ -3,7 +3,9 @@
namespace App\Http\Requests\Bo\Directories;
use App\Enums\Documents\LangEnum;
+use App\Models\Directory;
use Illuminate\Foundation\Http\FormRequest;
+use Illuminate\Support\Facades\Gate;
class StoreDirectoryRequest extends FormRequest
{
@@ -12,9 +14,9 @@ class StoreDirectoryRequest extends FormRequest
*
* @return boolean
*/
- public function authorize()
+ public function authorize(): bool
{
- return auth('backend')->check();
+ return Gate::check('create', Directory::class);
}
/**
@@ -22,7 +24,7 @@ class StoreDirectoryRequest extends FormRequest
*
* @return void
*/
- protected function prepareForValidation()
+ protected function prepareForValidation(): void
{
$this->merge([
'needAuthorization' => $this->needAuthorization ? true : false,
@@ -37,8 +39,8 @@ class StoreDirectoryRequest extends FormRequest
public function rules()
{
return [
- 'name' => 'required|array',
- 'name.*' => 'required|string|min:3|max:255',
+ 'name' => 'required|array',
+ 'name.*' => 'required|string|min:3|max:255',
'needAuthorization' => 'required|boolean'
];
}
@@ -48,17 +50,15 @@ class StoreDirectoryRequest extends FormRequest
*
* @return array
*/
- public function attributes()
+ public function attributes(): array
{
$rules = [
- 'name' => \trans('nom du dossier'),
- 'needAuthorization' => \trans('autorisation du dossier')
+ 'name' => \trans('validation.attributes.name'),
+ 'needAuthorization' => \trans('validation.custom.authorization')
];
+ /** @var Object $langEnum */
foreach (LangEnum::toArray() as $langEnum) {
- $def = $langEnum->getDefinition();
- $rules["name.{$def}"] = \trans('nom du dossier :lang', [
- 'lang' => $langEnum->label
- ]);
+ $rules["name.{$langEnum->name}"] = sprintf('%s %s', trans('validation.attributes.name'), $langEnum->label);
}
return $rules;
}
diff --git a/app/Http/Requests/Bo/Directories/UpdateDirectoryRequest.php b/app/Http/Requests/Bo/Directories/UpdateDirectoryRequest.php
index 2461e63..69bcf71 100644
--- a/app/Http/Requests/Bo/Directories/UpdateDirectoryRequest.php
+++ b/app/Http/Requests/Bo/Directories/UpdateDirectoryRequest.php
@@ -2,6 +2,17 @@
namespace App\Http\Requests\Bo\Directories;
+use Illuminate\Support\Facades\Gate;
+
class UpdateDirectoryRequest extends StoreDirectoryRequest
{
+ /**
+ * Determine if the user is authorized to make this request.
+ *
+ * @return boolean
+ */
+ public function authorize(): bool
+ {
+ return Gate::check('update', $this->route('directory'));
+ }
}
diff --git a/app/Http/Requests/Bo/Documents/StoreDocumentRequest.php b/app/Http/Requests/Bo/Documents/StoreDocumentRequest.php
index 070d9ae..6ae256a 100644
--- a/app/Http/Requests/Bo/Documents/StoreDocumentRequest.php
+++ b/app/Http/Requests/Bo/Documents/StoreDocumentRequest.php
@@ -4,11 +4,13 @@ namespace App\Http\Requests\Bo\Documents;
use App\Enums\Documents\LangEnum;
use App\Enums\Documents\TypeEnum;
-use App\Lib\Helpers\FileStorageHelper;
use App\Models\Document;
use Illuminate\Foundation\Http\FormRequest;
+use Illuminate\Support\Facades\Gate;
use Illuminate\Support\Facades\Storage;
-use Kwaadpepper\Enum\Rules\EnumIsValidRule;
+use Illuminate\Validation\Rule;
+use Illuminate\Validation\Rules\Enum;
+use Uwil\LaravelCommon\Helpers\FileHelper;
class StoreDocumentRequest extends FormRequest
{
@@ -17,9 +19,9 @@ class StoreDocumentRequest extends FormRequest
*
* @return boolean
*/
- public function authorize()
+ public function authorize(): bool
{
- return auth('backend')->check();
+ return Gate::check('create', Document::class);
}
/**
@@ -27,21 +29,15 @@ class StoreDocumentRequest extends FormRequest
*
* @return void
*/
- protected function prepareForValidation()
+ protected function prepareForValidation(): void
{
$this->merge([
- 'status' => $this->status ? true : false
+ 'status' => $this->status ? true : false,
]);
- if (Document::query()->where('id', $this->document_id)->exists()) {
- $this->merge([
- 'directory_id' => Document::query()->where('id', $this->document_id)
- ->value('directory_id')
- ]);
- }
// * Sanitize Path
if (!empty($this->path)) {
$filename = $this->path;
- $refMethod = new \ReflectionMethod(FileStorageHelper::class, 'sanitizeFileName');
+ $refMethod = new \ReflectionMethod(FileHelper::class, 'sanitizeFileName');
$refMethod->setAccessible(true);
$filename = \pathinfo(
$refMethod->invoke(null, htmlspecialchars($filename), false),
@@ -51,6 +47,12 @@ class StoreDocumentRequest extends FormRequest
'path' => $filename
]);
}
+ if (Document::query()->where('id', $this->document_id)->exists() && $this->type) {
+ $this->merge([
+ 'directory_id' => Document::query()->where('id', $this->document_id)->value('directory_id'),
+ 'type' => TypeEnum::make($this->type, 'name')->name(),
+ ]);
+ }
}
/**
@@ -58,20 +60,23 @@ class StoreDocumentRequest extends FormRequest
*
* @return array
*/
- public function rules()
+ public function rules(): array
{
/** @var \Illuminate\Filesystem\FilesystemAdapter */
$disk = Storage::disk('docs');
return [
'directory_id' => 'required|integer',
- 'document_id' => 'sometimes:directory_id|nullable|integer',
- 'uuid' => [
- // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClassBeforeLastUsed
- 'required', 'uuid', function ($attribute, $value, $fail) use ($disk) {
- if ($this->type and \in_array($this->type, TypeEnum::toValues())) {
- $value = "{$value}.{$this->type}";
+ 'document_id' => 'sometimes:directory_id|nullable|integer',
+ 'uuid' => [
+ 'required',
+ 'uuid',
+ // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundBeforeLastUsed
+ function ($attribute, $value, $fail) use ($disk) {
+ if ($this->type and \array_column(TypeEnum::toArray(), 'name')) {
+ $extension = TypeEnum::make($this->type, 'name')->name();
+ $value = "{$value}.{$extension}";
}
- if (!$disk->has($value)) {
+ if (!$disk->has(sprintf('%s/%s', \tenant()->getKey(), $value))) {
$path = $this->path ?? $this->value ?? 'not found';
$fail(\trans('Le fichier :filename n\'est pas présent dans le système de fichier', [
'filename' => $path
@@ -79,17 +84,11 @@ class StoreDocumentRequest extends FormRequest
}
}
],
- 'title' => 'required|min:3|max:255',
- 'type' => [
- 'required',
- new EnumIsValidRule(TypeEnum::class)
- ],
- 'path' => 'required|min:3|max:255',
- 'lang' => [
- 'required',
- new EnumIsValidRule(LangEnum::class)
- ],
- 'status' => 'required|boolean'
+ 'title' => 'required|min:3|max:255',
+ 'type' => ['required', 'string', Rule::in(array_column(TypeEnum::toArray(), 'name'))],
+ 'path' => 'required|min:3|max:255',
+ 'lang' => ['required', new Enum(LangEnum::class)],
+ 'status' => 'required|boolean'
];
}
@@ -98,17 +97,17 @@ class StoreDocumentRequest extends FormRequest
*
* @return array
*/
- public function attributes()
+ public function attributes(): array
{
return [
- 'directory_id' => \trans('dossier à associer'),
- 'document_id' => \trans('document (FR) à associer'),
- 'title' => \trans('titre'),
- 'uuid' => \trans('document'),
- 'type' => \trans('type du document'),
- 'path' => \trans('chemin du document'),
- 'lang' => \trans('langue du document'),
- 'status' => \trans('état de publication du document'),
+ 'directory_id' => \trans('models.classes.directory'),
+ 'document_id' => \trans('models.classes.document'),
+ 'title' => \trans('validation.attributes.title'),
+ 'uuid' => \trans('models.classes.document'),
+ 'type' => \trans('validation.custom.type'),
+ 'path' => \trans('validation.custom.path'),
+ 'lang' => \trans('validation.custom.lang'),
+ 'status' => \trans('validation.custom.status'),
];
}
}
diff --git a/app/Http/Requests/Bo/Documents/UpdateDocumentRequest.php b/app/Http/Requests/Bo/Documents/UpdateDocumentRequest.php
index 54186f4..4ea924e 100644
--- a/app/Http/Requests/Bo/Documents/UpdateDocumentRequest.php
+++ b/app/Http/Requests/Bo/Documents/UpdateDocumentRequest.php
@@ -2,6 +2,17 @@
namespace App\Http\Requests\Bo\Documents;
+use Illuminate\Support\Facades\Gate;
+
class UpdateDocumentRequest extends StoreDocumentRequest
{
+ /**
+ * Determine if the user is authorized to make this request.
+ *
+ * @return boolean
+ */
+ public function authorize(): bool
+ {
+ return Gate::check('update', $this->route('document'));
+ }
}
diff --git a/app/Http/Requests/Bo/FilterCustomerRequest.php b/app/Http/Requests/Bo/FilterCustomerRequest.php
index cac1074..e4770c6 100644
--- a/app/Http/Requests/Bo/FilterCustomerRequest.php
+++ b/app/Http/Requests/Bo/FilterCustomerRequest.php
@@ -3,6 +3,7 @@
namespace App\Http\Requests\Bo;
use Illuminate\Foundation\Http\FormRequest;
+use Illuminate\Validation\Rule;
class FilterCustomerRequest extends FormRequest
{
@@ -11,9 +12,9 @@ class FilterCustomerRequest extends FormRequest
*
* @return boolean
*/
- public function authorize()
+ public function authorize(): bool
{
- return \auth()->check();
+ return \auth('backend')->check();
}
/**
@@ -21,10 +22,15 @@ class FilterCustomerRequest extends FormRequest
*
* @return array
*/
- public function rules()
+ public function rules(): array
{
return [
- 'customer' => 'sometimes|nullable|numeric|exists:app_users,id'
+ 'customer' => [
+ 'sometimes',
+ 'nullable',
+ 'numeric',
+ Rule::unique('app_users', 'id')->where('tenant_id', tenant('id'))
+ ],
];
}
}
diff --git a/app/Http/Requests/Bo/Formularies/StoreFormularyRequest.php b/app/Http/Requests/Bo/Formularies/StoreFormularyRequest.php
index d8076fa..78e2eab 100644
--- a/app/Http/Requests/Bo/Formularies/StoreFormularyRequest.php
+++ b/app/Http/Requests/Bo/Formularies/StoreFormularyRequest.php
@@ -4,8 +4,10 @@ namespace App\Http\Requests\Bo\Formularies;
use App\Enums\Formularies\InputStatusEnum;
use App\Enums\Formularies\InputTypeEnum;
+use App\Models\Formulary;
use Illuminate\Foundation\Http\FormRequest;
-use Kwaadpepper\Enum\Rules\EnumIsValidRule;
+use Illuminate\Support\Facades\Gate;
+use Illuminate\Validation\Rules\Enum;
class StoreFormularyRequest extends FormRequest
{
@@ -15,14 +17,15 @@ class StoreFormularyRequest extends FormRequest
* @var string[]
*/
private $mobileAppLocales = ['fr', 'en', 'de', 'nl'];
+
/**
* Determine if the user is authorized to make this request.
*
* @return boolean
*/
- public function authorize()
+ public function authorize(): bool
{
- return auth('backend')->check();
+ return Gate::check('create', Formulary::class);
}
/**
@@ -30,10 +33,10 @@ class StoreFormularyRequest extends FormRequest
*
* @return void
*/
- protected function prepareForValidation()
+ protected function prepareForValidation(): void
{
$this->merge([
- 'required' => $this->required ? true : false,
+ 'required' => $this->required ? true : false,
'is_visible' => $this->is_visible ? true : false,
]);
}
@@ -43,21 +46,21 @@ class StoreFormularyRequest extends FormRequest
*
* @return array
*/
- public function rules()
+ public function rules(): array
{
$rules = [
- 'type' => ['required', new EnumIsValidRule(InputTypeEnum::class)],
+ 'type' => ['required', new Enum(InputTypeEnum::class)],
'placeholder' => 'present|array',
- 'details' => 'nullable|array',
- 'details.*' => 'required|array',
- 'required' => 'required|boolean',
- 'is_visible' => 'required|boolean',
+ 'details' => 'nullable|array',
+ 'details.*' => 'required|array',
+ 'required' => 'required|boolean',
+ 'is_visible' => 'required|boolean',
];
foreach ($this->mobileAppLocales as $locale) {
$rules["placeholder.{$locale}"] = 'required|string|min:3|max:100';
$rules["details.*.{$locale}"] = 'required|string|min:3|max:100';
}
- if (intval($this->status) !== InputStatusEnum::locked()->value) {
+ if (intval($this->status) !== InputStatusEnum::locked->value()) {
$rules = array_merge($rules, ['name' => 'required|string|min:3|max:70']);
}
return $rules;
@@ -71,17 +74,18 @@ class StoreFormularyRequest extends FormRequest
public function attributes(): array
{
$attributes = [
- 'type' => trans('type'),
- 'name' => trans('nom'),
- 'placeholder' => trans('placeholder'),
- 'details' => trans('détail'),
- 'details.*' => trans('détail 2'),
- 'details.*.value' => trans('valeur d\'un élément dans la liste des détails du contenu'),
- 'required' => trans('l\'état d\'obligation'),
- 'is_visible' => trans('l\'état de visibilité'),
+ 'type' => trans('validation.custom.type'),
+ 'name' => trans('validation.attributes.name'),
+ 'placeholder' => trans('validation.custom.placeholder'),
+ 'details' => trans('validation.custom.detail'),
+ 'details.*' => trans('validation.custom.detail'),
+ 'details.*.value' => trans('validation.custom.valeur'),
+ 'required' => trans('validation.custom.required'),
+ 'is_visible' => trans('validation.custom.visibility'),
];
foreach ($this->mobileAppLocales as $locale) {
$attributes["placeholder.{$locale}"] = trans('placeholder (:lang)', ['lang' => $locale]);
+ $attributes["details.*.{$locale}"] = trans('details (:lang)', ['lang' => $locale]);
}
return $attributes;
}
diff --git a/app/Http/Requests/Bo/Formularies/UpdateFormularyRequest.php b/app/Http/Requests/Bo/Formularies/UpdateFormularyRequest.php
index f63a37c..0bdc4ee 100644
--- a/app/Http/Requests/Bo/Formularies/UpdateFormularyRequest.php
+++ b/app/Http/Requests/Bo/Formularies/UpdateFormularyRequest.php
@@ -2,14 +2,26 @@
namespace App\Http\Requests\Bo\Formularies;
+use Illuminate\Support\Facades\Gate;
+
class UpdateFormularyRequest extends StoreFormularyRequest
{
+ /**
+ * Determine if the user is authorized to make this request.
+ *
+ * @return boolean
+ */
+ public function authorize(): bool
+ {
+ return Gate::check('update', $this->route('formulary'));
+ }
+
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
- public function rules()
+ public function rules(): array
{
$rules = [
'type' => 'nullable',
diff --git a/app/Http/Requests/Bo/ImportRequest.php b/app/Http/Requests/Bo/ImportRequest.php
index 7e7d256..a37df8e 100644
--- a/app/Http/Requests/Bo/ImportRequest.php
+++ b/app/Http/Requests/Bo/ImportRequest.php
@@ -11,7 +11,7 @@ class ImportRequest extends FormRequest
*
* @return boolean
*/
- public function authorize()
+ public function authorize(): bool
{
return auth('backend')->check();
}
@@ -21,7 +21,7 @@ class ImportRequest extends FormRequest
*
* @return array
*/
- public function rules()
+ public function rules(): array
{
return [
'import' => [
@@ -30,7 +30,7 @@ class ImportRequest extends FormRequest
'mimes:csv,txt',
// phpcs:ignore Generic.Files.LineLength.TooLong
'mimetypes:text/csv,text/plain,application/csv,text/comma-separated-values,text/anytext,application/octet-stream,application/txt',
- // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClassBeforeLastUsed
+ // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundBeforeLastUsed
function ($attribute, $value, $fail) {
if (
$this->import->getClientMimeType() !== 'text/csv'
diff --git a/app/Http/Requests/Bo/Settings/UpdateSettingRequest.php b/app/Http/Requests/Bo/Settings/UpdateSettingRequest.php
index ca290a4..6e5be30 100644
--- a/app/Http/Requests/Bo/Settings/UpdateSettingRequest.php
+++ b/app/Http/Requests/Bo/Settings/UpdateSettingRequest.php
@@ -2,11 +2,11 @@
namespace App\Http\Requests\Bo\Settings;
-use App\Enums\UserRolesEnum;
use App\Models\Setting;
use App\Traits\Requests\HasPicture;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Auth;
+use Illuminate\Support\Facades\Gate;
class UpdateSettingRequest extends FormRequest
{
@@ -17,7 +17,7 @@ class UpdateSettingRequest extends FormRequest
*
* @return boolean
*/
- public function authorize()
+ public function authorize(): bool
{
if (
$this->key === "Button1" ||
@@ -25,9 +25,11 @@ class UpdateSettingRequest extends FormRequest
$this->key === "Button3" ||
$this->key === "ShowIsActive"
) {
- return auth('backend')->check();
+ return Gate::check('update', $this->route('setting'));
} else {
- return (auth('backend')->check() && Auth::user()->role === UserRolesEnum::admin()->value);
+ /** @var \App\Models\User $user */
+ $user = Auth::guard('backend')->user();
+ return $user->can('isAdmin');
}
}
@@ -36,7 +38,7 @@ class UpdateSettingRequest extends FormRequest
*
* @return void
*/
- protected function prepareForValidation()
+ protected function prepareForValidation(): void
{
if ($this->key === "ShowIsActive") {
$this->merge(['value' => intval($this->value) ? "true" : "false"]);
@@ -61,7 +63,7 @@ class UpdateSettingRequest extends FormRequest
*
* @return array
*/
- public function rules()
+ public function rules(): array
{
if (
$this->key === "Button1" ||
@@ -70,9 +72,9 @@ class UpdateSettingRequest extends FormRequest
) {
$buttonsNullable = 0;
$buttons = Setting::where('key', 'Button1')
- ->orWhere('key', 'Button2')
- ->orWhere('key', 'Button3')
- ->get();
+ ->orWhere('key', 'Button2')
+ ->orWhere('key', 'Button3')
+ ->get();
foreach ($buttons as $button) {
if ($button->value === null) {
if ($button->key !== $this->key) {
@@ -82,7 +84,7 @@ class UpdateSettingRequest extends FormRequest
}
return [
'value' => [
- //phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClassBeforeLastUsed
+ //phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundBeforeLastUsed
function ($attribute, $value, $fail) use ($buttonsNullable) {
if (!isset($value) && $buttonsNullable >= 2) {
$fail(\trans('Au moins 1 bouton doît être défini.'));
@@ -96,7 +98,7 @@ class UpdateSettingRequest extends FormRequest
$this->key === "BackgroundImage" ||
$this->key === "HomeButtonImage"
) {
- return $this->pictureRules('value', true, 100, 100, 1920, 1200);
+ return $this->pictureRules('value', 100, 100, 1920, 1200, true);
} else {
return ['value' => 'required|string|min:1'];
} //end if
@@ -107,12 +109,12 @@ class UpdateSettingRequest extends FormRequest
*
* @return array
*/
- public function attributes()
+ public function attributes(): array
{
return [
- 'key' => \trans('clé'),
- 'value' => \trans('valeur'),
- 'type' => \trans('type'),
+ 'key' => \trans('validation.custom.key'),
+ 'value' => \trans('validation.custom.value'),
+ 'type' => \trans('validation.custom.type'),
];
}
}
diff --git a/app/Http/Requests/Bo/Tags/StoreTagRequest.php b/app/Http/Requests/Bo/Tags/StoreTagRequest.php
index d9fb4d8..fb9115b 100644
--- a/app/Http/Requests/Bo/Tags/StoreTagRequest.php
+++ b/app/Http/Requests/Bo/Tags/StoreTagRequest.php
@@ -2,8 +2,9 @@
namespace App\Http\Requests\Bo\Tags;
+use App\Models\Tag;
use Illuminate\Foundation\Http\FormRequest;
-use Illuminate\Support\Str;
+use Illuminate\Support\Facades\Gate;
class StoreTagRequest extends FormRequest
{
@@ -12,21 +13,9 @@ class StoreTagRequest extends FormRequest
*
* @return boolean
*/
- public function authorize()
+ public function authorize(): bool
{
- return auth('backend')->check();
- }
-
- /**
- * Prepare the data for validation.
- *
- * @return void
- */
- protected function prepareForValidation()
- {
- $this->merge([
- 'slug' => Str::slug($this->name),
- ]);
+ return Gate::check('create', Tag::class);
}
/**
@@ -34,7 +23,7 @@ class StoreTagRequest extends FormRequest
*
* @return array
*/
- public function rules()
+ public function rules(): array
{
return [
'name' => 'required|string|min:2|max:25',
@@ -49,8 +38,7 @@ class StoreTagRequest extends FormRequest
public function attributes(): array
{
return [
- 'name' => trans('name of the tag'),
- 'slug' => trans('slug of the tag'),
+ 'name' => trans('models.classes.tag'),
];
}
}
diff --git a/app/Http/Requests/Bo/Tags/UpdateTagRequest.php b/app/Http/Requests/Bo/Tags/UpdateTagRequest.php
index 88166e6..c01b3e1 100644
--- a/app/Http/Requests/Bo/Tags/UpdateTagRequest.php
+++ b/app/Http/Requests/Bo/Tags/UpdateTagRequest.php
@@ -2,6 +2,17 @@
namespace App\Http\Requests\Bo\Tags;
+use Illuminate\Support\Facades\Gate;
+
class UpdateTagRequest extends StoreTagRequest
{
+ /**
+ * Determine if the user is authorized to make this request.
+ *
+ * @return boolean
+ */
+ public function authorize(): bool
+ {
+ return Gate::check('update', $this->route('tag'));
+ }
}
diff --git a/app/Http/Requests/Bo/Tenants/StoreTenantRequest.php b/app/Http/Requests/Bo/Tenants/StoreTenantRequest.php
new file mode 100644
index 0000000..c7c384a
--- /dev/null
+++ b/app/Http/Requests/Bo/Tenants/StoreTenantRequest.php
@@ -0,0 +1,44 @@
+ 'required|string|min:2|max:25',
+ ];
+ }
+
+ /**
+ * Get custom attributes for validator errors.
+ *
+ * @return array
+ */
+ public function attributes(): array
+ {
+ return [
+ 'name' => trans('validation.attributes.name'),
+ ];
+ }
+}
diff --git a/app/Http/Requests/Bo/Tenants/UpdateTenantRequest.php b/app/Http/Requests/Bo/Tenants/UpdateTenantRequest.php
new file mode 100644
index 0000000..4881595
--- /dev/null
+++ b/app/Http/Requests/Bo/Tenants/UpdateTenantRequest.php
@@ -0,0 +1,18 @@
+route('tenant'));
+ }
+}
diff --git a/app/Http/Requests/Bo/ChangeOrderRequest.php b/app/Http/Requests/Bo/UpdateChangeOrderRequest.php
similarity index 68%
rename from app/Http/Requests/Bo/ChangeOrderRequest.php
rename to app/Http/Requests/Bo/UpdateChangeOrderRequest.php
index db70a4c..b2baa3b 100644
--- a/app/Http/Requests/Bo/ChangeOrderRequest.php
+++ b/app/Http/Requests/Bo/UpdateChangeOrderRequest.php
@@ -4,14 +4,14 @@ namespace App\Http\Requests\Bo;
use Illuminate\Foundation\Http\FormRequest;
-class ChangeOrderRequest extends FormRequest
+class UpdateChangeOrderRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return boolean
*/
- public function authorize()
+ public function authorize(): bool
{
return auth('backend')->check();
}
@@ -21,10 +21,10 @@ class ChangeOrderRequest extends FormRequest
*
* @return void
*/
- protected function prepareForValidation()
+ protected function prepareForValidation(): void
{
$this->merge([
- 'direction' => $this->action === 'up' ? true : false
+ 'direction' => $this->route('direction') === 'up' ? true : false
]);
}
@@ -33,10 +33,9 @@ class ChangeOrderRequest extends FormRequest
*
* @return array
*/
- public function rules()
+ public function rules(): array
{
return [
- 'action' => 'required|string|in:up,down',
'direction' => 'required|boolean',
];
}
diff --git a/app/Http/Requests/Bo/UploadRequest.php b/app/Http/Requests/Bo/UploadRequest.php
index a2e6965..1f9bd1e 100644
--- a/app/Http/Requests/Bo/UploadRequest.php
+++ b/app/Http/Requests/Bo/UploadRequest.php
@@ -11,9 +11,9 @@ class UploadRequest extends FormRequest
*
* @return boolean
*/
- public function authorize()
+ public function authorize(): bool
{
- return \auth()->check();
+ return \auth('backend')->check();
}
/**
@@ -21,7 +21,7 @@ class UploadRequest extends FormRequest
*
* @return array
*/
- public function rules()
+ public function rules(): array
{
return [
'uuid' => 'nullable|uuid'
diff --git a/app/Http/Requests/Bo/Users/StoreUserRequest.php b/app/Http/Requests/Bo/Users/StoreUserRequest.php
new file mode 100644
index 0000000..8016bf1
--- /dev/null
+++ b/app/Http/Requests/Bo/Users/StoreUserRequest.php
@@ -0,0 +1,77 @@
+input('role') == UserRolesEnum::admin->value()) {
+ $this->merge([
+ 'tenants' => null
+ ]);
+ }
+ }
+
+ /**
+ * Get the validation rules that apply to the request.
+ *
+ * @return array
+ */
+ public function rules(): array
+ {
+ $isClient = $this->input('role') == UserRolesEnum::client->value();
+ return [
+ 'first_name' => 'required|string|min:3|max:255',
+ 'last_name' => 'required|string|min:3|max:255',
+ 'email' => [
+ 'required',
+ 'email:rfc,strict,dns,spoof,filter',
+ Rule::unique('users', 'email')
+ ],
+ 'role' => ['required', new Enum(UserRolesEnum::class)],
+ 'tenants' => $isClient ? 'required|array' : 'nullable|array',
+ 'tenants.*' => $isClient ? 'required|array' : 'nullable|array',
+ 'tenants.*.id' => $isClient ? 'required|exists:tenants,id' : 'nullable|exists:tenants,id',
+ ];
+ }
+
+ /**
+ * Get custom attributes for validator errors.
+ *
+ * @return array
+ */
+ public function attributes(): array
+ {
+ return [
+ 'first_name' => trans('validation.attributes.first_name'),
+ 'last_name' => trans('validation.attributes.last_name'),
+ 'email' => trans('validation.attributes.email'),
+ 'role' => trans('validation.attributes.role'),
+ 'tenants' => Str::of(trans('models.classes.tenant'))->plural(),
+ ];
+ }
+}
diff --git a/app/Http/Requests/Bo/Users/UpdateUserRequest.php b/app/Http/Requests/Bo/Users/UpdateUserRequest.php
new file mode 100644
index 0000000..9471b55
--- /dev/null
+++ b/app/Http/Requests/Bo/Users/UpdateUserRequest.php
@@ -0,0 +1,42 @@
+route('user'));
+ }
+
+ /**
+ * Get the validation rules that apply to the request.
+ *
+ * @return array
+ */
+ public function rules(): array
+ {
+ /** @var \App\Models\User $userModel */
+ $userModel = request()->route()->parameter('user');
+ $rules = [
+ 'email' => [
+ 'required',
+ 'string',
+ 'unique:users,email,' . $userModel->getKey(),
+ 'email:rfc,strict,dns,spoof,filter',
+ 'max:255'
+ ],
+ 'role' => ['sometimes', new Enum(UserRolesEnum::class)],
+ ];
+ return \array_merge(parent::rules(), $rules);
+ }
+}
diff --git a/app/Http/Resources/ApiResponseResource.php b/app/Http/Resources/ApiResponseResource.php
index 5e031a8..46358e6 100644
--- a/app/Http/Resources/ApiResponseResource.php
+++ b/app/Http/Resources/ApiResponseResource.php
@@ -8,12 +8,14 @@ class ApiResponseResource extends JsonResource
{
/**
* Status
+ *
* @var string
*/
private $status;
/**
* Datas
+ *
* @var array
*/
private $datas;
@@ -38,11 +40,11 @@ class ApiResponseResource extends JsonResource
* @phpcs:disable Squiz.Commenting.FunctionComment.TypeHintMissing
* @phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClass
*/
- public function toArray($request)
+ public function toArray($request): array
{
return [
'status' => $this->status,
- 'datas' => $this->datas
+ 'datas' => $this->datas
];
}
}
diff --git a/app/Http/Resources/AppUserResource.php b/app/Http/Resources/AppUserResource.php
index cb09577..c02e535 100644
--- a/app/Http/Resources/AppUserResource.php
+++ b/app/Http/Resources/AppUserResource.php
@@ -2,6 +2,7 @@
namespace App\Http\Resources;
+use App\Enums\AppUserRolesEnum;
use App\Models\Directory;
use Illuminate\Http\Resources\Json\JsonResource;
@@ -11,26 +12,34 @@ class AppUserResource extends JsonResource
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
- * @return array
+ * @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
* @phpcs:disable Squiz.Commenting.FunctionComment.TypeHintMissing
- * @phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClass
*/
public function toArray($request)
{
- //phpcs:enable
+ /**
+ * @var \App\Models\AppUser
+ * @phpstan-ignore varTag.nativeType
+ */
+ $appUser = $this;
return [
- 'id' => $this->id,
- 'email' => $this->email,
- 'surname' => $this->lastname,
- 'firstname' => $this->firstname,
- 'password' => $this->password,
- 'activated' => $this->status,
- 'role' => ($this->role === 1) ? "TOTAL" : "USER",
- 'authorizedFolders' => json_encode($this->directories->each(function (Directory $directory) use ($request) {
- return (new DirectoryResource($directory))->toArray($request);
- })),
- 'created_at' => $this->created_at,
- 'updated_at' => $this->updated_at,
+ 'id' => $appUser->id,
+ 'email' => $appUser->email,
+ 'surname' => $appUser->lastname,
+ 'firstname' => $appUser->firstname,
+ 'password' => $appUser->password,
+ 'activated' => $appUser->status,
+ 'role' => ($appUser->role->equals(AppUserRolesEnum::total)) ? "TOTAL" : "USER",
+ 'authorizedFolders' => json_encode(
+ $appUser->directories->each(
+ // @phpstan-ignore argument.type
+ function (Directory $directory) use ($request) {
+ return (new DirectoryResource($directory))->toArray($request);
+ }
+ )
+ ),
+ 'created_at' => $appUser->created_at,
+ 'updated_at' => $appUser->updated_at,
];
}
}
diff --git a/app/Http/Resources/ContactResource.php b/app/Http/Resources/ContactResource.php
index 87221c5..3571ddf 100644
--- a/app/Http/Resources/ContactResource.php
+++ b/app/Http/Resources/ContactResource.php
@@ -16,23 +16,25 @@ class ContactResource extends JsonResource
*/
public function toArray($request)
{
- //phpcs:enable
- /** @var \App\Models\Contact */
+ /**
+ * @var \App\Models\Contact
+ * @phpstan-ignore varTag.nativeType
+ */
$contact = $this;
return [
- 'id' => $contact->id,
- 'lastname' => $contact->lastname,
- 'firstname' => $contact->firstname,
- 'email' => $contact->email,
- 'phone' => $contact->phone,
- 'data' => $contact->data,
- 'notes' => $contact->notes,
- 'visits' => $contact->visits,
- 'timestamp' => $contact->timestamp->toISOString(),
- 'app_user_id' => $contact->app_user_id,
+ 'id' => $contact->id,
+ 'lastname' => $contact->lastname,
+ 'firstname' => $contact->firstname,
+ 'email' => $contact->email,
+ 'phone' => $contact->phone,
+ 'data' => $contact->data,
+ 'notes' => $contact->notes,
+ 'visits' => $contact->visits,
+ 'timestamp' => $contact->timestamp->toISOString(),
+ 'app_user_id' => $contact->app_user_id,
'send_to_app_user_id' => null,
- 'created_at' => $contact->created_at,
- 'updated_at' => $contact->updated_at,
+ 'created_at' => $contact->created_at,
+ 'updated_at' => $contact->updated_at,
];
}
}
diff --git a/app/Http/Resources/DirectoryResource.php b/app/Http/Resources/DirectoryResource.php
index 3b05e89..692260c 100644
--- a/app/Http/Resources/DirectoryResource.php
+++ b/app/Http/Resources/DirectoryResource.php
@@ -16,15 +16,19 @@ class DirectoryResource extends JsonResource
*/
public function toArray($request)
{
- //phpcs:enable
+ /**
+ * @var \App\Models\Directory
+ * @phpstan-ignore varTag.nativeType
+ */
+ $directory = $this;
return [
- 'id' => $this->id,
- 'name' => json_encode($this->name),
- 'parent' => $this->directory_id,
- 'order' => $this->order,
- 'needAuthorization' => $this->needAuthorization,
- 'created_at' => $this->created_at,
- 'updated_at' => $this->updated_at,
+ 'id' => $directory->id,
+ 'name' => json_encode($directory->name),
+ 'parent' => $directory->directory_id,
+ 'order' => $directory->order,
+ 'needAuthorization' => $directory->needAuthorization,
+ 'created_at' => $directory->created_at,
+ 'updated_at' => $directory->updated_at,
];
}
}
diff --git a/app/Http/Resources/DocumentResource.php b/app/Http/Resources/DocumentResource.php
index 273c95f..65f8843 100644
--- a/app/Http/Resources/DocumentResource.php
+++ b/app/Http/Resources/DocumentResource.php
@@ -16,18 +16,23 @@ class DocumentResource extends JsonResource
*/
public function toArray($request)
{
+ /**
+ * @var \App\Models\Document
+ * @phpstan-ignore varTag.nativeType
+ */
+ $document = $this;
return [
- 'id' => $this->id,
- 'uuid' => $this->uuid,
- 'title' => $this->title,
- 'type' => $this->type->value,
- 'directory' => $this->directory_id,
- 'path' => $this->path,
- 'lang' => $this->lang->getDefinition(),
- 'published' => ($this->status) ? 1 : 0,
- 'parent' => $this->document_id,
- 'created_at' => $this->created_at,
- 'updated_at' => $this->updated_at,
+ 'id' => $document->id,
+ 'uuid' => $document->uuid,
+ 'title' => $document->title,
+ 'type' => $document->type,
+ 'directory' => $document->directory_id,
+ 'path' => $document->path,
+ 'lang' => $document->lang->name,
+ 'published' => ($document->status) ? 1 : 0,
+ 'parent' => $document->document_id,
+ 'created_at' => $document->created_at,
+ 'updated_at' => $document->updated_at,
];
}
}
diff --git a/app/Http/Resources/FormularyResource.php b/app/Http/Resources/FormularyResource.php
index 0853930..7a0a238 100644
--- a/app/Http/Resources/FormularyResource.php
+++ b/app/Http/Resources/FormularyResource.php
@@ -11,27 +11,30 @@ class FormularyResource extends JsonResource
*
* @param \Illuminate\Http\Request $request
* @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
- * @phpcs:disable: Squiz.Commenting.FunctionComment.TypeHintMissing
- * @phpcs:disable: Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClass
+ * @phpcs:disable Squiz.Commenting.FunctionComment.TypeHintMissing
+ * @phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClass
*/
public function toArray($request)
{
- /** @var \App\Models\Formulary */
+ /**
+ * @var \App\Models\Formulary
+ * @phpstan-ignore varTag.nativeType
+ */
$formulary = $this;
return [
- 'id' => $formulary->id,
- 'type' => $formulary->type->value,
- 'name' => $formulary->name,
- 'slug' => $formulary->slug,
+ 'id' => $formulary->id,
+ 'type' => $formulary->type->value,
+ 'name' => $formulary->name,
+ 'slug' => $formulary->slug,
'placeholder' => $formulary->placeholder,
- 'details' => \collect($formulary->details)->filter()->map(function (array $detail) {
+ 'details' => \collect($formulary->details)->filter()->map(function (array $detail) {
// * Realm can't hold more deeper dans Map
return \json_encode($detail);
})->all(),
- 'is_visible' => $formulary->is_visible,
- 'required' => $formulary->required,
- 'status' => $formulary->status->value,
- 'order' => $formulary->order,
+ 'is_visible' => $formulary->is_visible,
+ 'required' => $formulary->required,
+ 'status' => $formulary->status->value,
+ 'order' => $formulary->order,
];
}
}
diff --git a/app/Imports/AppUserImport.php b/app/Imports/AppUserImport.php
index b7bd303..79f69b2 100644
--- a/app/Imports/AppUserImport.php
+++ b/app/Imports/AppUserImport.php
@@ -17,7 +17,7 @@ class AppUserImport implements ToModel, WithUpserts, WithCustomCsvSettings
/**
* @return string|array
*/
- public function uniqueBy()
+ public function uniqueBy(): string|array
{
return 'email';
}
@@ -37,29 +37,27 @@ class AppUserImport implements ToModel, WithUpserts, WithCustomCsvSettings
*
* @return \Illuminate\Database\Eloquent\Model|null
*/
- public function model(array $row)
+ public function model(array $row): \Illuminate\Database\Eloquent\Model|null
{
if (!isset($row[0]) || !isset($row[1]) || !isset($row[2]) || !isset($row[3])) {
return null;
}
- $user = new AppUser([
- 'email' => $row[3],
- 'lastname' => ucfirst(strtolower($row[1])),
+ $password = Hash::make(Str::random(10));
+ $user = new AppUser([
+ 'email' => $row[3],
+ 'lastname' => ucfirst(strtolower($row[1])),
'firstname' => ucfirst(strtolower($row[2])),
- 'password' => '',
- 'status' => 1,
- 'role' => AppUserRolesEnum::user(),
+ 'password' => $password,
+ 'status' => 1,
+ 'role' => AppUserRolesEnum::user,
]);
-
- if ($user) {
- $password = Str::random(10);
- $user->password = Hash::make($password);
- $user->save();
-
- Mail::to($user->email)->send(new AccountCreated($user, $password));
- }
-
$user->saveOrFail();
+ Mail::to($user->email)->send(new AccountCreated([
+ 'email' => $user->email,
+ 'lastname' => $user->lastname,
+ 'firstname' => $user->firstname,
+ 'password' => $user->password,
+ ]));
return $user;
}
diff --git a/app/Jobs/Mails/SendTenantDeletedMail.php b/app/Jobs/Mails/SendTenantDeletedMail.php
new file mode 100644
index 0000000..0786723
--- /dev/null
+++ b/app/Jobs/Mails/SendTenantDeletedMail.php
@@ -0,0 +1,46 @@
+author = $author;
+ $this->name = $name;
+ }
+
+ /**
+ * Execute the job.
+ *
+ * @return void
+ */
+ public function handle(): void
+ {
+ foreach (config('mail.to.address') as $address) {
+ Mail::to($address)->send(new TenantDeleted($this->author, $this->name));
+ }
+ }
+}
diff --git a/app/Lib/Helpers/ExceptionsHelper.php b/app/Lib/Helpers/ExceptionsHelper.php
deleted file mode 100644
index 11a829b..0000000
--- a/app/Lib/Helpers/ExceptionsHelper.php
+++ /dev/null
@@ -1,190 +0,0 @@
-setModules([]);
- $event->setOsContext(null);
-
- /** @var \Sentry\ExceptionDataBag[] */
- $exceptionBag = [];
- foreach ($event->getExceptions() as $exceptionDataBag) {
- $exceptionBag[] = self::getAnonymizedSentryException($exceptionDataBag);
- }
- $event->setExceptions($exceptionBag);
- return $event;
- }
-
- /**
- * Anonimize Sentry Exception bag
- *
- * @param \Sentry\ExceptionDataBag $exceptionDataBag
- * @return \Sentry\ExceptionDataBag
- */
- private static function getAnonymizedSentryException(
- \Sentry\ExceptionDataBag $exceptionDataBag
- ): \Sentry\ExceptionDataBag {
- $exceptionDataBag->setValue(self::getAnonymizedMessage($exceptionDataBag->getValue()));
- if ($stackTrace = $exceptionDataBag->getStacktrace()) {
- $exceptionDataBag->setStacktrace(self::getAnonymizedSentryStackTrace($stackTrace));
- }
- return $exceptionDataBag;
- }
-
- /**
- * Anonymise sentry stacktrace
- *
- * @param \Sentry\Stacktrace $stackTrace
- * @return \Sentry\Stacktrace
- */
- private static function getAnonymizedSentryStackTrace(\Sentry\Stacktrace $stackTrace): \Sentry\Stacktrace
- {
- /** @var \Sentry\Frame[] */
- $frames = \array_reverse($stackTrace->getFrames(), true);
- $i = \count($frames) - 1;
- // * Remove all but keep first (index.php).
- while ($i-- > 0) {
- $stackTrace->removeFrame(count($stackTrace->getFrames()) - 1);
- }
- foreach ($frames as $index => $frame) {
- $frame->setPostContext([]);
- $frame->setPreContext([]);
- $frame->setContextLine('');
- $frame->setVars(self::getAnonymizedSentryParams($frame->getVars()));
- $stackTrace->addFrame($frame);
- if ($index === 0) {
- $stackTrace->removeFrame(count($stackTrace->getFrames()) - 1);
- }
- }
- return $stackTrace;
- }
-
- /**
- * Get anonymized sentry params
- *
- * @param mixed[] $params
- * @return string[]
- */
- private static function getAnonymizedSentryParams(array $params): array
- {
- foreach ($params as &$param) {
- $type = \strtolower(\gettype($param));
- if (\is_string($param)) {
- $type = \explode(' ', \trim($param))[0] ?? null;
- }
- switch ($type) {
- case 'Lambda':
- case 'Object':
- continue 2;
- case 'array':
- $param = sprintf('Array(%d)', \count($param));
- continue 2;
- default:
- if (\is_numeric($param)) {
- $param = \ucfirst($type);
- continue 2;
- }
- if (\is_string($param)) {
- $param = sprintf('String(%d)', \strlen($param));
- continue 2;
- }
- } //end switch
- } //end foreach
- return $params;
- }
-
-
- /**
- * Anonymize at least Sql queries
- *
- * @param string $message
- * @return string
- */
- public static function getAnonymizedMessage(string $message): string
- {
- $message = \preg_replace('/^(.*)( \(SQL:.*\))$/', '$1', $message) ?? $message;
- if ($sqlPos = \strpos($message, 'to use near')) {
- $message = \mb_strcut($message, 0, $sqlPos);
- }
- return $message;
- }
-
- /**
- * Anonymize stack trace
- *
- * @param \Throwable $e
- * @return string
- */
- public static function getAnonymizedStackTrace(\Throwable $e): string
- {
- $projectPath = \realpath(\sprintf('%s/../', \app_path()));
- $traceStack = $e->getTrace();
- $traceStr = '';
- $maxStackStage = 0;
- foreach ($traceStack as $stackStage => $stack) {
- $maxStackStage = $stackStage;
- $traceStr .= \sprintf(
- '#%s %s(%d): ',
- $stackStage,
- str_replace($projectPath, '', $stack['file'] ?? ''),
- $stack['line'] ?? ''
- );
- if (isset($stack['class'])) {
- $traceStr .= "{$stack['class']}->{$stack['function']}(";
- if (isset($stack['args'])) {
- $traceStr .= self::handleArgs($stack);
- }
- $traceStr .= ")\n";
- } elseif (isset($stack['function'])) {
- $traceStr .= "{$stack['function']}(";
- if (isset($stack['args'])) {
- $traceStr .= self::handleArgs($stack);
- }
- $traceStr .= ")\n";
- }
- } //end foreach
- $maxStackStage++;
- $traceStr .= "#$maxStackStage {main}";
- return $traceStr;
- }
-
- /**
- * Handle Args
- *
- * @param array $stack
- * @return string
- */
- public static function handleArgs(array $stack): string
- {
- $traceArgs = '';
- $argsCount = count($stack['args']);
- for ($i = 0; $i < $argsCount; $i++) {
- $type = \gettype($stack['args'][$i]);
- switch ($type) {
- case 'object':
- $traceArgs .= sprintf('Object(%s)', \get_class($stack['args'][$i]));
- break;
- case 'array':
- $traceArgs .= sprintf('Array(%d)', \count($stack['args'][$i]));
- break;
- case 'string':
- $traceArgs .= sprintf('String(%d)', \strlen($stack['args'][$i]));
- break;
- default:
- $traceArgs .= \gettype($stack['args'][$i]);
- }
- $traceArgs .= ($i !== ($argsCount - 1) ? ',' : '');
- }
- return $traceArgs;
- }
-}
diff --git a/app/Lib/Helpers/FileStorageHelper.php b/app/Lib/Helpers/FileStorageHelper.php
deleted file mode 100644
index 07ea0f5..0000000
--- a/app/Lib/Helpers/FileStorageHelper.php
+++ /dev/null
@@ -1,444 +0,0 @@
-
- */
-class FileStorageHelper
-{
- /**
- * Destroy the file associate with the attribute.
- *
- * @param \Illuminate\Database\Eloquent\Model $model
- * @param string $attribute
- * @return void
- */
- public static function removeFile(Model $model, string $attribute): void
- {
- $path = \ltrim(\urldecode($model->{$attribute}), '/');
- if (\strpos($path, 'storage') !== 0) {
- return;
- }
- $path = ToolboxHelper::mbReplace('storage/', '', $path);
- if (Storage::disk('public')->exists($path)) {
- Storage::disk('public')->delete($path);
- }
- }
-
- /**
- * Destroy the file associate with the attribute old value (before updated to DB).
- *
- * @param \Illuminate\Database\Eloquent\Model $model
- * @param string $attribute
- * @param boolean $onlyIfUpdated
- * @return void
- */
- public static function removeOldFile(Model $model, string $attribute, bool $onlyIfUpdated = true): void
- {
- // * Ignore If removal has to be done only if the field has changed and it actually hasnt.
- if ($onlyIfUpdated and $model->{$attribute} === $model->getOriginal($attribute)) {
- return;
- }
- $originalPath = \ltrim(\urldecode($model->getOriginal($attribute)), '/');
- if (\strpos($originalPath, 'storage') !== 0) {
- return;
- }
- $originalPath = ToolboxHelper::mbReplace('storage/', '', $originalPath);
- if (Storage::disk('public')->exists($originalPath)) {
- Storage::disk('public')->delete($originalPath);
- }
- }
-
- /**
- * Store a file using optimized storage strategy
- *
- * You can use filename param to overload file name.
- *
- * @param \Illuminate\Database\Eloquent\Model $model The model that will hold the picture.
- * @param \Illuminate\Http\UploadedFile|\SplFileInfo|string $file The file, will just return itself is string.
- * @param boolean $slugify Force filename slugification.
- * @param string|null $filename This string may be used to store the file.
- * @param boolean $private To store the file in a private space.
- * @return string
- * @throws \RuntimeException If file copy fails.
- */
- public static function storeFile(
- Model $model,
- $file,
- bool $slugify = false,
- string $filename = null,
- bool $private = false
- ): string {
- $tableName = $model->getTable();
- if (\is_object($file) and $file instanceof \Illuminate\Http\UploadedFile) {
- if ($private) {
- throw new \RuntimeException('Private storage for uploaded files is unhandled');
- }
- /** @var \Illuminate\Http\UploadedFile $file */
- $filename = $filename ?: $file->getClientOriginalName();
- $filename = $slugify ? self::slugifyFileName($filename) : $filename;
- $newPath = self::prepareMoveFile($tableName, $filename);
- $newPath = str_replace(storage_path('app'), '', $newPath);
- $file->storePubliclyAs(
- pathinfo($newPath, \PATHINFO_DIRNAME),
- pathinfo($newPath, \PATHINFO_BASENAME)
- );
- return 'storage' . str_replace('/public', '', $newPath);
- }
- if (\is_object($file) and $file instanceof \SplFileInfo) {
- /** @var \SplFileInfo $file */
- $filename = $filename ?: $file->getBaseName();
- $filename = $slugify ? self::slugifyFileName($filename) : $filename;
- $newPath = self::prepareMoveFile($tableName, $filename, $private);
- if (!File::copy($file->getRealPath(), $newPath)) {
- throw new \RuntimeException(sprintf(
- 'Failed to copy file %s to %s',
- $file->getRealPath(),
- $newPath
- ));
- }
- return $private ?
- \ltrim(str_replace(\storage_path('app/private'), '/storage/app/private', $newPath), '/') :
- \ltrim(str_replace(\storage_path('app/public'), '/storage', $newPath), '/');
- }
- return strval($file);
- }
-
- /**
- * Store all files from string attribute html
- * If oldHtmlString is passed, a diff is done with new and old files
- * to keep only files that are present in the new html string.
- *
- *
- * @param \Illuminate\Database\Eloquent\Model $model The model that will hold the picture.
- * @param string $htmlString The html string to parse and modify files.
- * @param string|null $oldHtmlString The old html string with alreadyParsed
- * files using storeModelFilesFromHtml.
- * @return string Html with files pathes replaced using storage strategy.
- */
- public static function storeModelFilesFromHtml(
- Model $model,
- string $htmlString,
- string $oldHtmlString = null
- ): string {
- \collect(self::onlyUploadedFilesWithFileManager(self::findFilesInHtml($htmlString)))
- ->each(function (string $path) use ($model, &$htmlString) {
- /** @var \Illuminate\Filesystem\FilesystemAdapter */
- $disk = Storage::disk('uploads');
- $fileInfo = new \SplFileInfo($disk->path(
- ToolboxHelper::mbReplace('/uploads/', '', \urldecode($path))
- ));
- $htmlString = ToolboxHelper::mbReplace(
- $path,
- '/' . self::storeFile($model, $fileInfo, true),
- $htmlString
- );
- });
-
- if ($oldHtmlString) {
- self::removeOldModelFilesFromHtml($htmlString, $oldHtmlString);
- }
-
- return $htmlString;
- }
-
- /**
- * Remove all old files from string attribute html that are stored in public that
- * are nove present anymore on new html string
- *
- * @param string $newHtmlString The html string with alreadyParsed files using storeModelFilesFromHtml.
- * @param string $oldHtmlString The old html string with alreadyParsed files using storeModelFilesFromHtml.
- * @return void
- */
- public static function removeOldModelFilesFromHtml(string $newHtmlString, string $oldHtmlString): void
- {
- self::removeOldFiles(self::findFilesInHtml($oldHtmlString), self::findFilesInHtml($newHtmlString));
- }
-
- /**
- * Remove all old files that are stored in public that
- * are not present anymore on new array files
- *
- * @param string[] $oldFiles The old array files.
- * @param string[] $newFiles The new array files.
- * @return void
- */
- public static function removeOldFiles(array $oldFiles, array $newFiles): void
- {
- $oldFiles = \collect(self::onlyUploadedFilesWithFileStorageHelper($oldFiles));
- $filesToKeep = \collect(self::onlyUploadedFilesWithFileStorageHelper($newFiles));
- $filesToRemove = $oldFiles->diff($filesToKeep);
- $filesToRemove->each(function (string $publicStorageFilePath) {
- $path = ToolboxHelper::mbReplace('storage/', '', \ltrim(\urldecode($publicStorageFilePath), '/'));
- if (Storage::disk('public')->exists($path)) {
- Storage::disk('public')->delete($path);
- }
- });
- }
-
- /**
- * Remove all files from string attribute html that are stored in public
- *
- * @param string $htmlString The html string with alreadyParsed files using storeModelFilesFromHtml.
- * @return void
- */
- public static function removeModelFilesOfHtml(string $htmlString): void
- {
- $filesToRemove = \collect(self::onlyUploadedFilesWithFileStorageHelper(self::findFilesInHtml($htmlString)));
- $filesToRemove->each(function (string $publicStorageFilePath) {
- $path = ToolboxHelper::mbReplace('storage/', '', \ltrim(\urldecode($publicStorageFilePath), '/'));
- if (Storage::disk('public')->exists($path)) {
- Storage::disk('public')->delete($path);
- }
- });
- }
-
- /**
- * Find all occurence of files in html
- * @param string $html
- * @return array
- */
- public static function findFilesInHtml(string $html): array
- {
- preg_match_all('/href="(?P.*)"|src="(?P.*)"|url="(?P.*)"/Um', $html, $m, PREG_SET_ORDER, 0);
- return collect($m)->pluck('href')->filter()
- ->concat(collect($m)->pluck('url')->filter())
- ->concat(collect($m)->pluck('src')->filter())
- ->all();
- }
-
- /**
- * Filter array to get only uploaded files that exists
- * on disk 'public' (using helper storage strategy)
- *
- * @param array $urls
- * @return array
- */
- public static function onlyUploadedFilesWithFileStorageHelper(array $urls): array
- {
- return \collect($urls)->unique()
- // * Filter to get only /uploads and using app url or empty
- ->filter(function (string $url) {
- $path = \parse_url($url, \PHP_URL_PATH);
- return \strpos(\ltrim($path, '/'), 'storage/modelfiles') === 0;
- })->filter(function (string $url) {
- $path = \parse_url($url, \PHP_URL_PATH);
- return Storage::disk('public')
- ->exists(ToolboxHelper::mbReplace('storage/', '', \ltrim(\urldecode($path), '/')));
- })->all();
- }
-
- /**
- * Filter array to get only uploaded files that exists
- * on disk 'uploads'
- *
- * @param array $urls
- * @return array
- */
- private static function onlyUploadedFilesWithFileManager(array $urls): array
- {
- return \collect($urls)->unique()
- // * Filter to get only /uploads and using app url or empty
- ->filter(function (string $url) {
- $host = \parse_url($url, \PHP_URL_HOST);
- $path = \parse_url($url, \PHP_URL_PATH);
- return ($host === \parse_url(config('app.url'), PHP_URL_HOST) or \is_null($host)) and
- \strpos(\ltrim($path, '/'), 'uploads') === 0;
- })->filter(function (string $url) {
- $path = \parse_url($url, \PHP_URL_PATH);
- return Storage::disk('uploads')
- ->exists(ToolboxHelper::mbReplace('uploads/', '', \ltrim(\urldecode($path), '/')));
- })->all();
- }
-
- /**
- * Prepare storage path and return
- * the file full path
- *
- * @param string $tableName Model table name.
- * @param string $filename The basename for the file.
- * @param boolean $private May the file be stored in a private dir.
- * @return string
- */
- private static function prepareMoveFile(string $tableName, string $filename, bool $private = false): string
- {
- // * Security filter + beautifier
- $filename = self::sanitizeFileName($filename);
- // * Security filter
- $filename = \filter_var($filename, \FILTER_SANITIZE_STRING);
- // * Slugify filename
- $ext = \pathinfo($filename, \PATHINFO_EXTENSION);
- $filename = Str::slug(\pathinfo($filename, \PATHINFO_FILENAME)) .
- (\strlen($ext) ? ".{$ext}" : '');
-
- $folderPath = self::getStoragePath(
- $private ? 'app/private/modelfiles' : 'app/public/modelfiles',
- $tableName,
- $filename,
- $private
- );
- $filename = self::getFileUniqueName($folderPath, $filename);
- return "{$folderPath}/{$filename}";
- }
-
- /**
- * Create sub folders to store files using pattern
- * storage/modelfiles/posts/10/04/19/5f
- * year/month/day/md5 first 2 letters
- *
- * @param string $storage_dir
- * @param string $table
- * @param string $filename
- * @return string
- */
- private static function getStoragePath(string $storage_dir, string $table, string $filename): string
- {
- $filenameHash = \md5($filename);
- $pathFolder = \storage_path(sprintf(
- '%s/%s/%s/%s/%s/%s',
- $storage_dir,
- $table,
- gmdate('y'),
- gmdate('m'),
- gmdate('d'),
- substr($filenameHash, 0, 2)
- ));
- if (!File::exists($pathFolder)) {
- File::makeDirectory($pathFolder, 0755, true);
- }
- return $pathFolder;
- }
-
- /**
- * Get unique filename if the path is already occupied
- *
- * @param string $folderPath
- * @param string $filename
- * @return string
- * @throws \RuntimeException If a unique filename cannot be obtained.
- */
- private static function getFileUniqueName(string $folderPath, string $filename): string
- {
- $attempts = 0;
- $maxAttempts = 20;
- while (File::exists("{$folderPath}/{$filename}")) {
- if ($attempts++ >= $maxAttempts) {
- throw new \RuntimeException("Failed to has a unique filename for {$folderPath}/{$filename}");
- }
- $filename = pathinfo($filename, \PATHINFO_FILENAME) .
- \uniqid('-') . '.' .
- pathinfo($filename, \PATHINFO_EXTENSION);
- }
- return $filename;
- }
-
- /**
- * Slugify the filename
- *
- * @param string $filename
- * @return string
- */
- public static function slugifyFileName(string $filename): string
- {
- return Str::slug(pathinfo($filename, \PATHINFO_FILENAME)) . '.' . pathinfo($filename, \PATHINFO_EXTENSION);
- }
-
- /**
- * Sanitize File name for uploaded files
- *
- * @param string $filename The original uploaded client file name.
- * @param boolean $beautify Beautify the filename.
- * @return string The sanitized file name.
- */
- public static function sanitizeFileName(string $filename, bool $beautify = true): string
- {
- // * Sanitize filename
- // phpcs:disable Generic.Files.LineLength.TooLong
- $filename = preg_replace(
- '~
- [<>:"/\\\|?*]| # file system reserved https://en.wikipedia.org/wiki/Filename#Reserved_characters_and_words
- [\x00-\x1F]| # control characters http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247%28v=vs.85%29.aspx
- [\x7F\xA0\xAD]| # non-printing characters DEL, NO-BREAK SPACE, SOFT HYPHEN
- [#\[\]@!$&\'()+,;=]| # URI reserved https://tools.ietf.org/html/rfc3986#section-2.2
- [{}^\~`] # URL unsafe characters https://www.ietf.org/rfc/rfc1738.txt
- ~x',
- '-',
- $filename
- );
- // phpcs:enable
- // * Avoids '.' '..' or '.hiddenFiles' .
- $filename = Str::of($filename)->ltrim('.-');
- // * Optional beautification
- if ($beautify) {
- $filename = static::beautifyFilename($filename);
- }
- // * Maximize filename length to 255 bytes http://serverfault.com/a/9548/44086
- /** @var string */
- $extension = pathinfo($filename, \PATHINFO_EXTENSION);
- /** @var string */
- $filename = pathinfo($filename, \PATHINFO_FILENAME);
-
- $encoding = mb_detect_encoding($filename);
- $encoding = $encoding ? $encoding : null;
- return \mb_strcut(
- $filename,
- 0,
- 255 - (!empty($extension) ? strlen($extension) + 1 : 0),
- $encoding
- ) . (!empty($extension) ? ".$extension" : '');
- }
-
- /**
- * Beautify a filename
- *
- * @param string $filename
- * @return string
- */
- private static function beautifyFilename(string $filename): string
- {
- // Reduce consecutive characters.
- $filename = preg_replace([
- // * "file name.zip" becomes 'file-name.zip'
- '/ +/',
- // * "file___name.zip" becomes 'file-name.zip'
- '/_+/',
- // * "file---name.zip" becomes 'file-name.zip'
- '/-+/'
- ], '-', $filename);
- $filename = preg_replace([
- // * "file--.--.-.--name.zip" becomes "file.name.zip"
- '/-*\.-*/',
- // * "file...name..zip" becomes "file.name.zip"
- '/\.{2,}/'
- ], '.', $filename);
- // Lowercase for windows/unix interoperability http://support.microsoft.com/kb/100625 .
- $filename = mb_strtolower($filename, mb_detect_encoding($filename));
- // * ".file-name.-" becomes "file-name"
- $filename = trim($filename, '.-');
- return $filename;
- }
-}
diff --git a/app/Lib/Helpers/ToolboxHelper.php b/app/Lib/Helpers/ToolboxHelper.php
deleted file mode 100644
index e1a05c2..0000000
--- a/app/Lib/Helpers/ToolboxHelper.php
+++ /dev/null
@@ -1,298 +0,0 @@
-)/m', '', $input);
- return $input;
- }
-
- /**
- * Assert That no Back Office url is present on txt
- *
- * @param string $field
- * @param string $text
- * @return string
- * @throws \Illuminate\Validation\ValidationException If url is a bo url.
- */
- public static function assertNoInternalBoUrls(string $field, string $text): string
- {
- $routes = Route::getRoutes();
- // * Url replace and email replace.
- $text = preg_replace_callback(
- // phpcs:ignore Generic.Files.LineLength.TooLong
- '/(?P(?:http[s]?:\/\/.)?(?:www\.)?[-a-zA-Z0-9@%._\+~#=]{2,256}\.[a-z]{2,6}\b(?:[-a-zA-Z0-9@:%_\+.~#?&\/\/=]*))/',
- function ($matches) use ($routes, $field) {
- $match = collect($matches)->first() ?? '';
- $url = $match;
- try {
- $request = Request::create($url);
- // If a route is match then it do not throws exception.
- if (
- \parse_url(config('app.url'), \PHP_URL_HOST) === \parse_url($url, \PHP_URL_HOST) &&
- trim($routes->match($request)->getPrefix() ?? '', '/') === 'bo'
- ) {
- // Removes the matched url.
- throw ValidationException::withMessages([
- $field => ':attribute : Il est interdit de coller une url du back office dans ce champ'
- ]);
- }
- return $match;
- } catch (NotFoundHttpException $e) {
- return $match;
- }
- },
- $text
- );
- return $text;
- }
-
- /**
- * Assert That only external url is present on txt
- *
- * @param string $field
- * @param string $text
- * @return string
- * @throws \Illuminate\Validation\ValidationException If url is a bo url.
- */
- public static function assertNoInternalUrls(string $field, string $text): string
- {
- self::assertNoInternalBoUrls($field, $text);
- $routes = Route::getRoutes();
- // * Url replace and email replace.
- $text = preg_replace_callback(
- // phpcs:ignore Generic.Files.LineLength.TooLong
- '/(?P(?:http[s]?:\/\/.)?(?:www\.)?[-a-zA-Z0-9@%._\+~#=]{2,256}\.[a-z]{2,6}\b(?:[-a-zA-Z0-9@:%_\+.~#?&\/\/=]*))/',
- function ($matches) use ($routes, $field) {
- $match = collect($matches)->first() ?? '';
- $url = $match;
- try {
- $request = Request::create($url);
- // If a route is match then it do not throws exception.
- if (
- \parse_url(config('app.url'), \PHP_URL_HOST) === \parse_url($url, \PHP_URL_HOST) &&
- $routes->match($request)
- ) {
- // Removes the matched url.
- throw ValidationException::withMessages([
- $field => sprintf(
- ':attribute : Il est interdit de coller une url de %s dans ce champ',
- config('app.name')
- )
- ]);
- }
- return $match;
- } catch (NotFoundHttpException $e) {
- return $match;
- }
- },
- $text
- );
- return $text;
- }
-
- /**
- * Mutltibyte string replace
- * @param mixed $search
- * @param mixed $replace
- * @param mixed $subject
- * @param integer $count
- * @return mixed
- */
- public static function mbReplace($search, $replace, $subject, int &$count = 0)
- {
- if (!is_array($search) && is_array($replace)) {
- return false;
- }
- if (is_array($subject)) {
- // Call mb_replace for each single string in $subject .
- foreach ($subject as &$string) {
- $string = &self::mbReplace($search, $replace, $string, $count);
- }
- } elseif (is_array($search)) {
- if (!is_array($replace)) {
- foreach ($search as &$string) {
- $subject = self::mbReplace($string, $replace, $subject, $count);
- }
- } else {
- $n = max(count($search), count($replace));
- while ($n--) {
- $subject = self::mbReplace(current($search), current($replace), $subject, $count);
- next($search);
- next($replace);
- }
- }
- } else {
- $parts = mb_split(preg_quote($search), $subject);
- $count = count($parts) - 1;
- $subject = implode($replace, $parts);
- } //end if
- return $subject;
- }
-
- /**
- * Asserts that the field is unique
- *
- * @param string $table
- * @param string $field
- * @param mixed $value
- * @param integer|null $id
- * @param callable|null $query
- * @return void
- * @throws \Illuminate\Validation\ValidationException If the field is not unique.
- */
- public static function assertFieldIsUnique(
- string $table,
- string $field,
- $value,
- ?int $id = null,
- ?callable $query = null
- ) {
- if (!$query) {
- Validator::make([$field => $value], [
- self::mbReplace('.', '\.', $field) => Rule::unique($table, $field)->ignore($id),
- ], [
- self::mbReplace('.', '\.', "{$field}.unique")
- => trans('La valeur :value pour le champ :attribute est déjà utilisé', [
- 'attribute' => $field,
- 'value' => $value
- ])
- ])->validate();
- return;
- }
- Validator::make([$field => $value], [
- $field => Rule::unique($table)->where($query)->ignore($id),
- ], [
- $field . '.unique' => trans('La valeur pour le champ :attribute est déjà utilisé', [
- 'attribute' => $field
- ])
- ])->validate();
- }
-
- /**
- * Convert deeply an object to array
- *
- * @param array|object $input
- * @return array
- * @throws \RuntimeException If $input var is a scalar value.
- */
- public static function objectToArray($input): array
- {
- // Only process if it's an object or array being passed to the function.
- if (is_object($input) or is_array($input)) {
- $ret = (array)$input;
- foreach ($ret as &$item) {
- // Recursively process EACH element only if not scalar.
- $item = (is_object($item) or is_array($item)) ?
- self::objectToArray($item) : $item;
- }
- return $ret;
- } else {
- throw new \RuntimeException('cannot handle $input of type ' . \gettype($input));
- }
- }
-
- /**
- * Convert deeply an array to object
- *
- * @param array|object $input
- * @return object
- * @throws \RuntimeException If $input var is a scalar value.
- */
- public static function arrayToObject($input): object
- {
- // Only process if it's an object or array being passed to the function.
- if (is_object($input) or is_array($input)) {
- $ret = (object)$input;
- foreach ($ret as &$item) {
- // Recursively process EACH element only if not scalar.
- $item = (is_object($item) or is_array($item)) ?
- self::arrayToObject($item) : $item;
- }
- return $ret;
- } else {
- throw new \RuntimeException('cannot handle $input of type ' . \gettype($input));
- }
- }
-
- /**
- * Get validated pagination from request
- *
- * @param integer $default
- * @return integer
- */
- public static function getValidatedPaginate(int $default): int
- {
- try {
- return \intval(Validator::make(
- ['pagination' => \request()->get('pagination')],
- ['pagination' => new EnumIsValidRule(ItemsPerPaginationEnum::class)]
- )->validated()['pagination']);
- } catch (ValidationException $e) {
- return $default;
- }
- }
-
- /**
- * Assert contact data is matching actual Formularies
- *
- * @param \App\Models\Contact $contact
- * @return void
- */
- public static function assertContactDataIsMatchingFormulary(Contact $contact)
- {
- /** @var \Illuminate\Support\Collection */
- $formularies = Formulary::query()->pluck('slug')->flip();
- \collect($contact->data)->each(function (Input $input) use ($formularies) {
- if (!$formularies->has($input->data->formSlug)) {
- throw new \ErrorException(
- "Formulary {$input->data->formSlug} does not exist, do not store this contact data prop"
- );
- }
- });
- }
-
- /**
- * Remove Data Input on All contacts
- *
- * @param \App\Models\Formulary $formulary
- * @return void
- */
- public static function removeDataInputOnAllContacts(Formulary $formulary): void
- {
- DB::transaction(function () use ($formulary) {
- Contact::query()->select(['id', 'data'])->each(function (Contact $contact) use ($formulary) {
- $contact->data = \collect($contact->data)->filter(function (Input $input) use ($formulary) {
- return $input->data->formSlug !== $formulary->slug;
- });
- $contact->saveOrFail();
- });
- });
- }
-}
diff --git a/app/Lib/Inputs/Definition/Input.php b/app/Lib/Inputs/Definition/Input.php
index fc8313b..4dd977d 100644
--- a/app/Lib/Inputs/Definition/Input.php
+++ b/app/Lib/Inputs/Definition/Input.php
@@ -3,7 +3,6 @@
namespace App\Lib\Inputs\Definition;
use App\Models\Formulary;
-use Illuminate\Database\Eloquent\Builder;
/**
* To manipulate Input
@@ -63,10 +62,11 @@ abstract class Input implements InputInterface
/**
* Get the matching formulary for this object
*
- * @return \App\Models/Formulary|null
+ * @return \App\Models\Formulary|null
*/
- public function getFormulary(): ?Formulary
+ public function getFormulary(): \App\Models\Formulary|null
{
+ // @phpstan-ignore return.type
return $this->formularyQuery()->first();
}
@@ -85,7 +85,7 @@ abstract class Input implements InputInterface
*
* @return \Illuminate\Database\Eloquent\Builder
*/
- private function formularyQuery(): Builder
+ private function formularyQuery(): \Illuminate\Database\Eloquent\Builder
{
return Formulary::query()
->where('slug', $this->data->formSlug)
@@ -102,10 +102,12 @@ abstract class Input implements InputInterface
* @return static
* @throws \RuntimeException If the input type is not recognized, or data is invalid.
*/
- public static function from(InputData $data, bool $required = true)
+ public static function from(InputData $data, bool $required = true): static
{
$inputTypeDataClass = static::class;
+ $type = "";
try {
+ // @phpstan-ignore function.alreadyNarrowedType
$type = \is_numeric($data->type) ? intval($data->type) : strval($data->type);
return new static(
InputData::make($data->title, $data->formSlug, $type, $data->value, $required),
@@ -131,7 +133,7 @@ abstract class Input implements InputInterface
* @return static
* @throws \RuntimeException If the input type is not recognized, or data is invalid.
*/
- public static function make(string $title, string $formSlug, $data, bool $required = true)
+ public static function make(string $title, string $formSlug, $data, bool $required = true): static
{
return static::from(
InputData::make(
@@ -165,9 +167,9 @@ abstract class Input implements InputInterface
*
* @return array
*/
- public function toArray()
+ public function toArray(): array
{
- return (array)$this->data;
+ return (array) $this->data;
}
/**
@@ -177,7 +179,7 @@ abstract class Input implements InputInterface
* @return string
* @phpcs:disable Squiz.Commenting.FunctionComment.ScalarTypeHintMissing
*/
- public function toJson($options = 0)
+ public function toJson($options = 0): string
{
// phpcs:enable
return \json_encode($this->jsonSerialize(), $options);
@@ -188,8 +190,7 @@ abstract class Input implements InputInterface
*
* @return array
*/
- #[\ReturnTypeWillChange]
- public function jsonSerialize()
+ public function jsonSerialize(): array
{
return $this->toArray();
}
diff --git a/app/Lib/Inputs/Definition/InputData.php b/app/Lib/Inputs/Definition/InputData.php
index 86a1f8c..195db68 100644
--- a/app/Lib/Inputs/Definition/InputData.php
+++ b/app/Lib/Inputs/Definition/InputData.php
@@ -5,13 +5,13 @@ namespace App\Lib\Inputs\Definition;
use App\Enums\Formularies\InputTypeEnum;
/**
- * @property-read string $title The input type placeholder
- * @property-read string $formSlug The original Formulary slug.
- * @property-read integer $type The input type value
- * @property-read string|array $value The input value, either a string or an array
+ * @property string $title The input type placeholder
+ * @property string $formSlug The original Formulary slug.
+ * @property integer $type The input type value
+ * @property string|array $value The input value, either a string or an array
* with the value index and label
* (for Multiselect and checkboxes)
- * @property-read boolean $required The input is required ?
+ * @property boolean $required The input is required ?
* @package App\Lib\Inputs
*/
class InputData extends \stdClass
@@ -62,7 +62,7 @@ class InputData extends \stdClass
* @return void
* @throws \RuntimeException If $data is wrong.
*/
- public static function assertIsInputTypeData(InputData $data)
+ public static function assertIsInputTypeData(InputData $data): void
{
$title = $data->title;
$type = $data->type;
@@ -70,15 +70,19 @@ class InputData extends \stdClass
$value = $data->value;
$required = $data->required;
+ // @phpstan-ignore function.alreadyNarrowedType
if (!\is_string($title)) {
throw new \RuntimeException("InputTypeData 'title' should be a string");
}
+ // @phpstan-ignore function.alreadyNarrowedType
if (!\is_string($formSlug)) {
throw new \RuntimeException("InputTypeData 'formSlug' should be a string");
}
+ // @phpstan-ignore function.alreadyNarrowedType
if (!\is_integer($type)) {
throw new \RuntimeException("InputTypeData 'type' should be an integer");
}
+ // @phpstan-ignore function.alreadyNarrowedType
if (!\is_bool($required)) {
throw new \RuntimeException("InputTypeData 'required' should be a boolean");
}
@@ -89,6 +93,7 @@ class InputData extends \stdClass
throw new \RuntimeException($e->getMessage());
}
+ // @phpstan-ignore function.impossibleType, function.alreadyNarrowedType, booleanAnd.alwaysFalse
if (!\is_null($value) && !\is_string($value) && !\is_array($value)) {
$type = \gettype($value);
$value = \json_encode($value);
diff --git a/app/Lib/Inputs/Definition/InputInterface.php b/app/Lib/Inputs/Definition/InputInterface.php
index 2ba5dba..71cbc57 100644
--- a/app/Lib/Inputs/Definition/InputInterface.php
+++ b/app/Lib/Inputs/Definition/InputInterface.php
@@ -31,7 +31,7 @@ interface InputInterface extends Jsonable, Arrayable, \JsonSerializable
* @return static
* @throws \RuntimeException If the input type is not recognized, or data is invalid.
*/
- public static function from(InputData $data, bool $required = true);
+ public static function from(InputData $data, bool $required = true): static;
/**
* Parse DB line to Object
@@ -45,7 +45,7 @@ interface InputInterface extends Jsonable, Arrayable, \JsonSerializable
* @return static
* @throws \RuntimeException If the input type is not recognized, or data is invalid.
*/
- public static function make(string $title, string $formSlug, $data, bool $required = true);
+ public static function make(string $title, string $formSlug, $data, bool $required = true): static;
// * --- CHILDS Should implement ---
@@ -66,7 +66,7 @@ interface InputInterface extends Jsonable, Arrayable, \JsonSerializable
/**
* Get the matching formulary for this object
*
- * @return \App\Models/Formulary|null
+ * @return \App\Models\Formulary|null
*/
public function getFormulary(): ?Formulary;
@@ -91,8 +91,8 @@ interface InputInterface extends Jsonable, Arrayable, \JsonSerializable
*
* @param string|array $data The line with data.
* @param boolean $required The line is required.
- * @return string|array
+ * @return void
* @throws \Illuminate\Validation\ValidationException If the data is invalid.
*/
- public static function validateData($data, bool $required);
+ public static function validateData($data, bool $required): void;
}
diff --git a/app/Lib/Inputs/InputCheckbox.php b/app/Lib/Inputs/InputCheckbox.php
index 32ec27e..65e2197 100644
--- a/app/Lib/Inputs/InputCheckbox.php
+++ b/app/Lib/Inputs/InputCheckbox.php
@@ -4,7 +4,6 @@ namespace App\Lib\Inputs;
use App\Enums\Formularies\InputTypeEnum;
use App\Lib\Inputs\Definition\Input;
-use Illuminate\Contracts\Validation\Validator;
use Illuminate\Support\Facades\Validator as FacadesValidator;
/**
@@ -18,9 +17,9 @@ class InputCheckbox extends Input
*
* @return \App\Enums\Formularies\InputTypeEnum
*/
- public static function getType(): InputTypeEnum
+ public static function getType(): \App\Enums\Formularies\InputTypeEnum
{
- return InputTypeEnum::checkbox();
+ return InputTypeEnum::checkbox;
}
@@ -31,12 +30,12 @@ class InputCheckbox extends Input
* @param boolean $required The line is required.
* @return \Illuminate\Contracts\Validation\Validator
*/
- public static function getValidator($data, bool $required): Validator
+ public static function getValidator($data, bool $required): \Illuminate\Contracts\Validation\Validator
{
return FacadesValidator::make(
['value' => $data],
[
- 'value' => 'array' . ($required ? '|min:1' : ''),
+ 'value' => 'array' . ($required ? '|min:1' : ''),
'value.*' => 'required|string|max:255'
]
);
diff --git a/app/Lib/Inputs/InputEmail.php b/app/Lib/Inputs/InputEmail.php
index 3049b79..bb9d149 100644
--- a/app/Lib/Inputs/InputEmail.php
+++ b/app/Lib/Inputs/InputEmail.php
@@ -4,7 +4,6 @@ namespace App\Lib\Inputs;
use App\Enums\Formularies\InputTypeEnum;
use App\Lib\Inputs\Definition\Input;
-use Illuminate\Contracts\Validation\Validator;
use Illuminate\Support\Facades\Validator as FacadesValidator;
/**
@@ -18,9 +17,9 @@ class InputEmail extends Input
*
* @return \App\Enums\Formularies\InputTypeEnum
*/
- public static function getType(): InputTypeEnum
+ public static function getType(): \App\Enums\Formularies\InputTypeEnum
{
- return InputTypeEnum::email();
+ return InputTypeEnum::email;
}
@@ -31,7 +30,7 @@ class InputEmail extends Input
* @param boolean $required The line is required.
* @return \Illuminate\Contracts\Validation\Validator
*/
- public static function getValidator($data, bool $required): Validator
+ public static function getValidator($data, bool $required): \Illuminate\Contracts\Validation\Validator
{
return FacadesValidator::make(
['value' => $data],
diff --git a/app/Lib/Inputs/InputPhone.php b/app/Lib/Inputs/InputPhone.php
index e41456a..8a692f1 100644
--- a/app/Lib/Inputs/InputPhone.php
+++ b/app/Lib/Inputs/InputPhone.php
@@ -4,7 +4,6 @@ namespace App\Lib\Inputs;
use App\Enums\Formularies\InputTypeEnum;
use App\Lib\Inputs\Definition\Input;
-use Illuminate\Contracts\Validation\Validator;
use Illuminate\Support\Facades\Validator as FacadesValidator;
/**
@@ -18,9 +17,9 @@ class InputPhone extends Input
*
* @return \App\Enums\Formularies\InputTypeEnum
*/
- public static function getType(): InputTypeEnum
+ public static function getType(): \App\Enums\Formularies\InputTypeEnum
{
- return InputTypeEnum::phone();
+ return InputTypeEnum::phone;
}
@@ -31,7 +30,7 @@ class InputPhone extends Input
* @param boolean $required The line is required.
* @return \Illuminate\Contracts\Validation\Validator
*/
- public static function getValidator($data, bool $required): Validator
+ public static function getValidator($data, bool $required): \Illuminate\Contracts\Validation\Validator
{
return FacadesValidator::make(
['value' => $data],
diff --git a/app/Lib/Inputs/InputRadio.php b/app/Lib/Inputs/InputRadio.php
index 0375437..fae35e9 100644
--- a/app/Lib/Inputs/InputRadio.php
+++ b/app/Lib/Inputs/InputRadio.php
@@ -4,7 +4,6 @@ namespace App\Lib\Inputs;
use App\Enums\Formularies\InputTypeEnum;
use App\Lib\Inputs\Definition\Input;
-use Illuminate\Contracts\Validation\Validator;
use Illuminate\Support\Facades\Validator as FacadesValidator;
/**
@@ -18,9 +17,9 @@ class InputRadio extends Input
*
* @return \App\Enums\Formularies\InputTypeEnum
*/
- public static function getType(): InputTypeEnum
+ public static function getType(): \App\Enums\Formularies\InputTypeEnum
{
- return InputTypeEnum::radio();
+ return InputTypeEnum::radio;
}
@@ -31,7 +30,7 @@ class InputRadio extends Input
* @param boolean $required The line is required.
* @return \Illuminate\Contracts\Validation\Validator
*/
- public static function getValidator($data, bool $required): Validator
+ public static function getValidator($data, bool $required): \Illuminate\Contracts\Validation\Validator
{
return FacadesValidator::make(
['value' => $data],
diff --git a/app/Lib/Inputs/InputSelect.php b/app/Lib/Inputs/InputSelect.php
index 757a83f..7dd7e41 100644
--- a/app/Lib/Inputs/InputSelect.php
+++ b/app/Lib/Inputs/InputSelect.php
@@ -4,7 +4,6 @@ namespace App\Lib\Inputs;
use App\Enums\Formularies\InputTypeEnum;
use App\Lib\Inputs\Definition\Input;
-use Illuminate\Contracts\Validation\Validator;
use Illuminate\Support\Facades\Validator as FacadesValidator;
/**
@@ -18,9 +17,9 @@ class InputSelect extends Input
*
* @return \App\Enums\Formularies\InputTypeEnum
*/
- public static function getType(): InputTypeEnum
+ public static function getType(): \App\Enums\Formularies\InputTypeEnum
{
- return InputTypeEnum::select();
+ return InputTypeEnum::select;
}
@@ -31,7 +30,7 @@ class InputSelect extends Input
* @param boolean $required The line is required.
* @return \Illuminate\Contracts\Validation\Validator
*/
- public static function getValidator($data, bool $required): Validator
+ public static function getValidator($data, bool $required): \Illuminate\Contracts\Validation\Validator
{
return FacadesValidator::make(
['value' => $data],
diff --git a/app/Lib/Inputs/InputSelectMultiple.php b/app/Lib/Inputs/InputSelectMultiple.php
index f6a4ee8..26c7da5 100644
--- a/app/Lib/Inputs/InputSelectMultiple.php
+++ b/app/Lib/Inputs/InputSelectMultiple.php
@@ -15,8 +15,8 @@ class InputSelectMultiple extends InputCheckbox
*
* @return \App\Enums\Formularies\InputTypeEnum
*/
- public static function getType(): InputTypeEnum
+ public static function getType(): \App\Enums\Formularies\InputTypeEnum
{
- return InputTypeEnum::selectMultiple();
+ return InputTypeEnum::selectMultiple;
}
}
diff --git a/app/Lib/Inputs/InputText.php b/app/Lib/Inputs/InputText.php
index a24fdaf..cc9b865 100644
--- a/app/Lib/Inputs/InputText.php
+++ b/app/Lib/Inputs/InputText.php
@@ -4,7 +4,6 @@ namespace App\Lib\Inputs;
use App\Enums\Formularies\InputTypeEnum;
use App\Lib\Inputs\Definition\Input;
-use Illuminate\Contracts\Validation\Validator;
use Illuminate\Support\Facades\Validator as FacadesValidator;
/**
@@ -17,9 +16,9 @@ class InputText extends Input
*
* @return \App\Enums\Formularies\InputTypeEnum
*/
- public static function getType(): InputTypeEnum
+ public static function getType(): \App\Enums\Formularies\InputTypeEnum
{
- return InputTypeEnum::text();
+ return InputTypeEnum::text;
}
@@ -30,7 +29,7 @@ class InputText extends Input
* @param boolean $required The line is required.
* @return \Illuminate\Contracts\Validation\Validator
*/
- public static function getValidator($data, bool $required): Validator
+ public static function getValidator($data, bool $required): \Illuminate\Contracts\Validation\Validator
{
return FacadesValidator::make(
['value' => $data],
diff --git a/app/Mail/AccountCreated.php b/app/Mail/AccountCreated.php
index 015572a..021d2f1 100644
--- a/app/Mail/AccountCreated.php
+++ b/app/Mail/AccountCreated.php
@@ -2,7 +2,6 @@
namespace App\Mail;
-use App\Models\AppUser;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
@@ -12,36 +11,30 @@ class AccountCreated extends Mailable
use Queueable;
use SerializesModels;
- /**
- * The app user instance
- *
- * @var \App\Models\AppUser;
- */
- public $user;
-
- /** @var string */
- public $password;
+ /** @var object */
+ public $data;
/**
* Create a new message instance.
*
- * @param \App\Models\AppUser $user
- * @param string $password
+ * @param mixed $data
* @return void
*/
- public function __construct(AppUser $user, string $password)
+ public function __construct(mixed $data)
{
- $this->user = $user;
- $this->password = $password;
+ $this->data = (object) $data;
}
/**
* Build the message.
*
- * @return $this
+ * @return mixed
*/
- public function build()
+ public function build(): mixed
{
- return $this->subject(__("Votre compte a été créé"))->view('emails.account-created');
+ return $this
+ ->from($this->data->email, sprintf('%s %s', $this->data->lastname, $this->data->firstname))
+ ->subject(__("Votre compte a été créé"))
+ ->markdown('bo.mails.account-created');
}
}
diff --git a/app/Mail/SendFlyer.php b/app/Mail/SendFlyer.php
index 1d13665..435cd18 100644
--- a/app/Mail/SendFlyer.php
+++ b/app/Mail/SendFlyer.php
@@ -20,17 +20,17 @@ class SendFlyer extends Mailable
* @param mixed $data
* @return void
*/
- public function __construct($data)
+ public function __construct(mixed $data)
{
- $this->data = (object)$data;
+ $this->data = (object) $data;
}
/**
* Build the message.
*
- * @return $this
+ * @return mixed
*/
- public function build()
+ public function build(): mixed
{
return $this
->from($this->data->from, $this->data->fromName)
diff --git a/app/Mail/SendFlyerFailed.php b/app/Mail/SendFlyerFailed.php
index 6bbc393..225eb19 100644
--- a/app/Mail/SendFlyerFailed.php
+++ b/app/Mail/SendFlyerFailed.php
@@ -20,17 +20,17 @@ class SendFlyerFailed extends Mailable
* @param mixed $data
* @return void
*/
- public function __construct($data)
+ public function __construct(mixed $data)
{
- $this->data = (object)$data;
+ $this->data = (object) $data;
}
/**
* Build the message.
*
- * @return $this
+ * @return mixed
*/
- public function build()
+ public function build(): mixed
{
return $this
->from('noreply@ldc.fr', '[APP] ' . config('app.name'))
diff --git a/app/Mail/TenantDeleted.php b/app/Mail/TenantDeleted.php
new file mode 100644
index 0000000..90d4202
--- /dev/null
+++ b/app/Mail/TenantDeleted.php
@@ -0,0 +1,48 @@
+author = $author;
+ $this->name = $name;
+ }
+
+ /**
+ * Build the message.
+ *
+ * @return mixed
+ */
+ public function build(): mixed
+ {
+ return $this
+ ->from(config('mail.from.address'), config('mail.from.name'))
+ ->subject(sprintf('Suppression du tenant %s', $this->name))
+ ->markdown('bo.mails.tenant-deleted', [
+ 'author' => $this->author,
+ 'name' => $this->name,
+ ]);
+ }
+}
diff --git a/app/Models/AppUser.php b/app/Models/AppUser.php
index e479b05..cd6753e 100644
--- a/app/Models/AppUser.php
+++ b/app/Models/AppUser.php
@@ -3,30 +3,35 @@
namespace App\Models;
use App\Enums\AppUserRolesEnum;
-use App\Lib\Helpers\ToolboxHelper;
+use App\Traits\Models\IsRelatedToTenant;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Hash;
-use Kwaadpepper\Enum\Traits\CastsEnums;
+use Stancl\Tenancy\Database\Concerns\BelongsToTenant;
/**
- * @property integer $id
- * @property string $lastname
- * @property string $firstname
- * @property string $email
- * @property string $password
- * @property \App\Enums\AppUserRolesEnum $role
- * @property boolean $status
- * @property integer $order
+ * @property integer $id App user id.
+ * @property string $lastname App user last name.
+ * @property string $firstname App user first name.
+ * @property string $email App user email.
+ * @property string $password App user password.
+ * @property string|null $tenant_id Associated tenant.
+ * @property boolean $status App user status.
+ * @property \App\Enums\AppUserRolesEnum $role App user role.
+ * @property integer $order App user order.
+ * @property-read \Carbon\Carbon $created_at Created date.
+ * @property-read \Carbon\Carbon $updated_at Updated date.
*/
class AppUser extends Model
{
+ use BelongsToTenant;
+ use IsRelatedToTenant;
use HasFactory;
- use CastsEnums;
/**
- * fillable
- * @var string[]
+ * The attributes that are mass assignable.
+ *
+ * @var list
*/
protected $fillable = [
'lastname',
@@ -41,17 +46,18 @@ class AppUser extends Model
/**
* The attributes that should be hidden for serialization.
*
- * @var array
+ * @var list
*/
protected $hidden = [
'password',
];
/**
- * cast enum
- * @var string[]
+ * The attributes that should be cast.
+ *
+ * @var array
*/
- protected $enumCasts = [
+ protected $casts = [
'role' => AppUserRolesEnum::class
];
@@ -62,15 +68,14 @@ class AppUser extends Model
*
* @return void
*/
- protected static function booted()
+ protected static function booted(): void
{
static::creating(function (self $model) {
- self::assertFieldIsUnique('email', $model->email);
self::setOrder($model);
- static::updatePassword($model);
+ self::updatePassword($model);
});
static::updating(function (self $model) {
- static::updatePassword($model);
+ self::updatePassword($model);
});
}
@@ -89,29 +94,17 @@ class AppUser extends Model
}
}
- /**
- * Asserts using validation that the field is unique.
- *
- * @param string $nameField
- * @param string $valueField
- * @param integer|null $id
- * @return void
- */
- private static function assertFieldIsUnique(string $nameField, string $valueField, ?int $id = null)
- {
- $table = (new self())->getTable();
- ToolboxHelper::assertFieldIsUnique($table, $nameField, $valueField, $id);
- }
-
/**
* Set order after the last element of the list.
*
- * @param \Illuminate\Database\Eloquent\Model $model
+ * @param self $model
* @return void
*/
- private static function setOrder(Model $model): void
+ private static function setOrder(self $model): void
{
- $model->order = \intval(self::query()->max('order')) + 1;
+ $model->order = \intval(
+ self::query()->where(self::whereTenantQuery())->max('order')
+ ) + 1;
}
// * RELATIONSHIPS
@@ -121,7 +114,7 @@ class AppUser extends Model
*
* @return \Illuminate\Database\Eloquent\Relations\MorphToMany
*/
- public function directories()
+ public function directories(): \Illuminate\Database\Eloquent\Relations\MorphToMany
{
return $this->morphToMany(Directory::class, 'directorable');
}
diff --git a/app/Models/Contact.php b/app/Models/Contact.php
index 0884791..2282112 100644
--- a/app/Models/Contact.php
+++ b/app/Models/Contact.php
@@ -3,37 +3,38 @@
namespace App\Models;
use App\Casts\AsArrayOfInput;
-use App\Lib\Helpers\ToolboxHelper;
+use App\Lib\Inputs\Definition\Input;
use App\Lib\Inputs\InputEmail;
use App\Lib\Inputs\InputPhone;
use App\Lib\Inputs\InputText;
use App\Traits\Models\HasUuidKey;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
+use Illuminate\Support\Facades\DB;
use Illuminate\Support\Str;
-use Kwaadpepper\Enum\Traits\CastsEnums;
/**
- * @property integer $app_user_id
- * @property string $id
- * @property string $email
- * @property string|null $lastname
- * @property string|null $firstname
- * @property string|null $phone
- * @property array<\App\Lib\Inputs\Definition\Input> $data
- * @property string|null $notes
- * @property array> $visits
- * @property \Carbon\Carbon $timestamp
+ * @property integer $app_user_id Associated app user.
+ * @property string $id Contact id.
+ * @property string $email Contact email.
+ * @property string|null $lastname Contact last name.
+ * @property string|null $firstname Contact first name.
+ * @property string|null $phone Contact phone.
+ * @property array<\App\Lib\Inputs\Definition\Input> $data Contact data.
+ * @property string|null $notes Contact notes.
+ * @property array> $visits Contact visits.
+ * @property-read \Carbon\Carbon|null $created_at Created date.
+ * @property-read \Carbon\Carbon|null $updated_at Updated date.
*/
class Contact extends Model
{
- use CastsEnums;
use HasFactory;
use HasUuidKey;
/**
- * fillable
- * @var string[]
+ * The attributes that are mass assignable.
+ *
+ * @var list
*/
protected $fillable = [
'app_user_id',
@@ -50,12 +51,12 @@ class Contact extends Model
/**
* The attributes that should be cast.
*
- * @var array
+ * @var array
*/
protected $casts = [
- 'data' => AsArrayOfInput::class,
+ 'data' => AsArrayOfInput::class,
'timestamp' => 'immutable_datetime',
- 'visits' => 'array'
+ 'visits' => 'array'
];
/**
@@ -63,25 +64,25 @@ class Contact extends Model
*
* @return void
*/
- protected static function booted()
+ protected static function booted(): void
{
static::creating(function (self $model) {
$model->id = Str::uuid();
- ToolboxHelper::assertContactDataIsMatchingFormulary($model);
+ self::assertContactDataIsMatchingFormulary($model);
});
static::deleting(function (self $model) {
- ToolboxHelper::assertContactDataIsMatchingFormulary($model);
+ self::assertContactDataIsMatchingFormulary($model);
});
}
// * RELATIONSHIPS
/**
- * MorphToMany Directories
+ * MorphToMany Directories.
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
- public function appUser()
+ public function appUser(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(AppUser::class, 'app_user_id', 'id');
}
@@ -89,7 +90,7 @@ class Contact extends Model
// * METHODS
/**
- * Get all inputs
+ * Get all inputs.
*
* @return array
* @throws \RuntimeException This should not happen since data was validated on contact insertion.
@@ -102,7 +103,7 @@ class Contact extends Model
}
/**
- * Get mandatory inputs
+ * Get mandatory inputs.
*
* @return array<\App\Lib\Inputs\Definition\Input>
* @throws \RuntimeException If this model does have an email.
@@ -110,13 +111,50 @@ class Contact extends Model
public function mandatoryInputs(): array
{
// * firsname
- $data[] = InputText::make('Prénom', $this->firstname, false);
+ $data[] = InputText::make('Prénom', $this->firstname, [], false);
// * lastname
- $data[] = InputText::make('Nom', $this->lastname, false);
+ $data[] = InputText::make('Nom', $this->lastname, [], false);
// * email
- $data[] = InputEmail::make('E-mail', $this->email, true);
+ $data[] = InputEmail::make('E-mail', $this->email, [], true);
// * phone
- $data[] = InputPhone::make('Téléphone', $this->phone, false);
+ $data[] = InputPhone::make('Téléphone', $this->phone, [], false);
return $data;
}
+
+ /**
+ * Assert contact data is matching actual Formularies
+ *
+ * @param \App\Models\Contact $contact
+ * @return void
+ */
+ public static function assertContactDataIsMatchingFormulary(Contact $contact): void
+ {
+ /** @var \Illuminate\Support\Collection */
+ $formularies = Formulary::query()->pluck('slug')->flip();
+ \collect($contact->data)->each(function (Input $input) use ($formularies) {
+ if (!$formularies->has($input->data->formSlug)) {
+ throw new \ErrorException(
+ "Formulary {$input->data->formSlug} does not exist, do not store this contact data prop"
+ );
+ }
+ });
+ }
+
+ /**
+ * Remove Data Input on All contacts
+ *
+ * @param \App\Models\Formulary $formulary
+ * @return void
+ */
+ public static function removeDataInputOnAllContacts(Formulary $formulary): void
+ {
+ DB::transaction(function () use ($formulary) {
+ Contact::query()->select(['id', 'data'])->each(function (Contact $contact) use ($formulary) {
+ $contact->data = \collect($contact->data)->filter(function (Input $input) use ($formulary) {
+ return $input->data->formSlug !== $formulary->slug;
+ })->toArray();
+ $contact->saveOrFail();
+ });
+ });
+ }
}
diff --git a/app/Models/Directory.php b/app/Models/Directory.php
index 2ef9d23..a4194e1 100644
--- a/app/Models/Directory.php
+++ b/app/Models/Directory.php
@@ -2,24 +2,31 @@
namespace App\Models;
+use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
+use Stancl\Tenancy\Database\Concerns\BelongsToTenant;
/**
- * @property integer $id
- * @property string $name
- * @property integer $directory_id
- * @property integer $order
- * @property boolean $needAuthorization
+ * @property integer $id Directory id.
+ * @property array $name Directory name.
+ * @property string|null $tenant_id Associated tenant.
+ * @property integer|null $directory_id Associated directory.
+ * @property integer $order Directory order.
+ * @property boolean $needAuthorization Directory authorization.
+ * @property boolean $is_system Directory system status.
+ * @property-read \Carbon\Carbon $created_at Created date.
+ * @property-read \Carbon\Carbon $updated_at Updated date.
*/
class Directory extends Model
{
+ use BelongsToTenant;
use HasFactory;
/**
- * Fillable;
+ * The attributes that are mass assignable.
*
- * @var string[]
+ * @var list
*/
protected $fillable = [
'name',
@@ -32,7 +39,7 @@ class Directory extends Model
/**
* The attributes that should be cast.
*
- * @var array
+ * @var array
*/
protected $casts = [
'name' => 'array'
@@ -43,7 +50,7 @@ class Directory extends Model
*
* @return void
*/
- protected static function booted()
+ protected static function booted(): void
{
static::creating(function (self $model) {
self::setIsSystem($model);
@@ -51,7 +58,7 @@ class Directory extends Model
});
static::deleting(function (self $model) {
$model->appusers()->detach();
- foreach ($model->documents as $key => $document) {
+ foreach ($model->documents as $document) {
$document->delete();
};
});
@@ -62,21 +69,23 @@ class Directory extends Model
/**
* Set order after the last element of the list.
*
- * @param \Illuminate\Database\Eloquent\Model $model
+ * @param self $model
* @return void
*/
- private static function setOrder(Model $model): void
+ private static function setOrder(self $model): void
{
- $model->order = \intval(self::query()->max('order')) + 1;
+ $model->order = \intval(
+ self::query()->where('tenant_id', \tenant() ?? Tenant::first()->getKey())->max('order')
+ ) + 1;
}
/**
* Set order after the last element of the list.
*
- * @param \Illuminate\Database\Eloquent\Model $model
+ * @param self $model
* @return void
*/
- private static function setIsSystem(Model $model): void
+ private static function setIsSystem(self $model): void
{
$model->is_system = ($model->is_system) ? $model->is_system : 0;
}
@@ -84,13 +93,15 @@ class Directory extends Model
/**
* Render directories.
*
- * @param \Illuminate\Database\Eloquent\Collection | array $directories
- * @return \Illuminate\Database\Eloquent\Collection | array
+ * @param \Illuminate\Database\Eloquent\Collection $directories
+ * @return \Illuminate\Database\Eloquent\Collection
*/
- public static function renderDirectories($directories)
+ public static function renderDirectories(Collection $directories): \Illuminate\Database\Eloquent\Collection
{
foreach ($directories as $k => $directory) {
- $directories[$k]->name = Directory::renameDirectory($directory, "");
+ /** @var \App\Models\Directory $directory */
+ $directory = $directories[$k];
+ $directory->name = Directory::renameDirectory($directory, "");
}
return $directories;
}
@@ -100,9 +111,9 @@ class Directory extends Model
*
* @param Directory $model
* @param string $nameDirectory
- * @return array
+ * @return array|string
*/
- private static function renameDirectory(Directory $model, string $nameDirectory)
+ private static function renameDirectory(Directory $model, string $nameDirectory): array|string
{
if (strlen($nameDirectory)) {
$nameDirectory = $model->name['fr'] . " / " . $nameDirectory;
@@ -110,7 +121,9 @@ class Directory extends Model
$nameDirectory = $model->name['fr'];
}
if (isset($model->parent)) {
- $nameDirectory = $model->renameDirectory($model->parent, $nameDirectory);
+ /** @var \App\Models\Directory $parent */
+ $parent = $model->parent;
+ $nameDirectory = $model->renameDirectory($parent, $nameDirectory);
}
return $nameDirectory;
}
@@ -118,17 +131,43 @@ class Directory extends Model
/**
* Rename directory.
*
- * @return LaravelModelList
+ * @return \Illuminate\Database\Eloquent\Collection
*/
- public static function getChildrenDirectories()
+ public static function getChildrenDirectories(): \Illuminate\Database\Eloquent\Collection
{
- $directories = [];
- foreach (Directory::orderBy('order', 'ASC')->get()->toArray() as $key => $value) {
- if (count(Directory::get()[$key]->children) === 0) {
- array_push($directories, Directory::get()[$key]);
+ /** @var \Illuminate\Database\Eloquent\Collection $directories */
+ $directories = Directory::query()->orderBy('order', 'ASC')->get();
+ // @phpstan-ignore argument.type
+ $directoriesFiltered = $directories->filter(function (Directory $directory) {
+ if ($directory->children->count() === 0) {
+ return $directory;
}
- }
- return Directory::renderDirectories($directories);
+ });
+ return Directory::renderDirectories($directoriesFiltered);
+ }
+
+ /**
+ * Set default settings for a specific tenant.
+ *
+ * @param \App\Models\Tenant $tenant
+ * @return void
+ */
+ public function setDefaultDirectories(Tenant $tenant): void
+ {
+ // Default locked salon directory.
+ $directory = new self();
+ $directory->name = [
+ "fr" => "Salon",
+ "en" => "Salon",
+ "de" => "Wohnzimmer",
+ "nl" => "Tentoonstelling",
+ ];
+ $directory->directory_id = null;
+ $directory->needAuthorization = (bool) 0;
+ $directory->is_system = (bool) 1;
+ $directory->order = 1;
+ $directory->tenant_id = $tenant->getKey();
+ $directory->saveOrFail();
}
// * RELATIONSHIPS
@@ -138,7 +177,7 @@ class Directory extends Model
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
- public function parent()
+ public function parent(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(Directory::class, 'directory_id');
}
@@ -148,17 +187,17 @@ class Directory extends Model
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
- public function children()
+ public function children(): \Illuminate\Database\Eloquent\Relations\HasMany
{
return $this->hasMany(Directory::class, 'directory_id');
}
/**
- * MorphedByMany appusers relation
+ * MorphedByMany appusers relation.
*
- * @return \Illuminate\Database\Eloquent\Relations\MorphedByMany
+ * @return \Illuminate\Database\Eloquent\Relations\MorphToMany
*/
- public function appusers()
+ public function appusers(): \Illuminate\Database\Eloquent\Relations\MorphToMany
{
return $this->morphedByMany(AppUser::class, 'directorable');
}
@@ -168,7 +207,7 @@ class Directory extends Model
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
- public function documents()
+ public function documents(): \Illuminate\Database\Eloquent\Relations\HasMany
{
return $this->hasMany(Document::class, 'directory_id');
}
diff --git a/app/Models/Document.php b/app/Models/Document.php
index 85f10da..0969e75 100644
--- a/app/Models/Document.php
+++ b/app/Models/Document.php
@@ -3,34 +3,38 @@
namespace App\Models;
use App\Enums\Documents\LangEnum;
-use App\Enums\Documents\TypeEnum;
-use App\Lib\Helpers\ToolboxHelper;
+use App\Traits\Models\IsRelatedToTenant;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Storage;
-use Kwaadpepper\Enum\Traits\CastsEnums;
+use Stancl\Tenancy\Database\Concerns\BelongsToTenant;
+use Uwil\LaravelCommon\Helpers\ToolboxHelper;
/**
- * @property integer $id
- * @property integer $uuid
- * @property string $title
- * @property \App\Enums\Documents\TypeEnum $type
- * @property integer $directory_id
- * @property integer $document_id
- * @property string $path
- * @property \App\Enums\Documents\LangEnum $lang
- * @property boolean $status
- * @property integer $order
+ * @property integer $id Document id.
+ * @property integer $uuid Document uuid.
+ * @property string $title Document title.
+ * @property string $type Document type.
+ * @property string|null $tenant_id Associated tenant.
+ * @property integer $directory_id Associated directory.
+ * @property integer|null $document_id Associated document.
+ * @property string $path Document path.
+ * @property \App\Enums\Documents\LangEnum $lang Document lang.
+ * @property boolean $status Document status.
+ * @property integer $order Document order.
+ * @property-read \Carbon\Carbon $created_at Created date.
+ * @property-read \Carbon\Carbon $updated_at Updated date.
*/
class Document extends Model
{
- use CastsEnums;
+ use BelongsToTenant;
+ use IsRelatedToTenant;
use HasFactory;
/**
- * Fillable;
+ * The attributes that are mass assignable.
*
- * @var string[]
+ * @var list
*/
protected $fillable = [
'uuid',
@@ -47,20 +51,11 @@ class Document extends Model
/**
* The attributes that should be cast.
*
- * @var array
+ * @var array
*/
protected $casts = [
- 'status' => 'bool'
- ];
-
- /**
- * Map attribute names to enum classes.
- *
- * @var array
- */
- protected $enumCasts = [
- 'lang' => LangEnum::class,
- 'type' => TypeEnum::class,
+ 'status' => 'bool',
+ 'lang' => LangEnum::class,
];
/**
@@ -68,16 +63,23 @@ class Document extends Model
*
* @return void
*/
- protected static function booted()
+ protected static function booted(): void
{
static::creating(function (self $model) {
self::assertFieldIsUnique('title', $model->title);
self::setOrder($model);
});
static::updating(function (self $model) {
- $path = \ltrim(\urldecode("docs/" . $model->getOriginal('uuid') . $model->getOriginal('type')), '/');
- if (Storage::disk('public')->exists($path)) {
- Storage::disk('public')->delete($path);
+ if ($model->getOriginal('uuid') !== $model->uuid) {
+ $path = \ltrim(\urldecode(sprintf(
+ 'docs/%s/%s.%s',
+ \tenant()->getKey(),
+ $model->getOriginal('uuid'),
+ $model->getOriginal('type')
+ )), '/');
+ if (Storage::disk('public')->exists($path)) {
+ Storage::disk('public')->delete($path);
+ }
}
});
static::deleting(function (self $model) {
@@ -95,30 +97,32 @@ class Document extends Model
* @param integer|null $id
* @return void
*/
- private static function assertFieldIsUnique(string $nameField, string $valueField, ?int $id = null)
+ private static function assertFieldIsUnique(string $nameField, string $valueField, ?int $id = null): void
{
$table = (new self())->getTable();
- ToolboxHelper::assertFieldIsUnique($table, $nameField, $valueField, $id);
+ ToolboxHelper::assertFieldIsUnique($table, $nameField, $valueField, $id, self::whereTenantQuery());
}
/**
* Set order after the last element of the list.
*
- * @param \Illuminate\Database\Eloquent\Model $model
+ * @param self $model
* @return void
*/
- private static function setOrder(Model $model): void
+ private static function setOrder(self $model): void
{
- $model->order = \intval(self::query()->max('order')) + 1;
+ $model->order = \intval(
+ self::query()->where(self::whereTenantQuery())->max('order')
+ ) + 1;
}
/**
* Set order after the last element of the list.
*
- * @param \Illuminate\Database\Eloquent\Model $model
+ * @param self $model
* @return void
*/
- public static function removeDocument(Model $model): void
+ public static function removeDocument(self $model): void
{
$path = \ltrim(\urldecode("storage/docs/{$model->uuid}.{$model->type}"), '/');
if (\strpos($path, 'storage') !== 0) {
@@ -137,7 +141,7 @@ class Document extends Model
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
- public function directory()
+ public function directory(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(Directory::class, 'directory_id');
}
@@ -147,7 +151,7 @@ class Document extends Model
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
- public function parentDocument()
+ public function parentDocument(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(Document::class, 'document_id');
}
@@ -157,7 +161,7 @@ class Document extends Model
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
- public function children()
+ public function children(): \Illuminate\Database\Eloquent\Relations\HasMany
{
return $this->hasMany(Document::class, 'document_id');
}
@@ -165,9 +169,9 @@ class Document extends Model
/**
* MorphedByMany appusers relation
*
- * @return \Illuminate\Database\Eloquent\Relations\MorphedByMany
+ * @return \Illuminate\Database\Eloquent\Relations\MorphToMany
*/
- public function appusers()
+ public function appusers(): \Illuminate\Database\Eloquent\Relations\MorphToMany
{
return $this->morphedByMany(AppUser::class, 'taggable');
}
diff --git a/app/Models/Formulary.php b/app/Models/Formulary.php
index 0e8563e..5800c46 100644
--- a/app/Models/Formulary.php
+++ b/app/Models/Formulary.php
@@ -4,31 +4,38 @@ namespace App\Models;
use App\Enums\Formularies\InputStatusEnum;
use App\Enums\Formularies\InputTypeEnum;
+use App\Traits\Models\IsRelatedToTenant;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Str;
-use Kwaadpepper\Enum\Traits\CastsEnums;
+use Stancl\Tenancy\Database\Concerns\BelongsToTenant;
+use Uwil\LaravelCommon\Helpers\ToolboxHelper;
/**
- * @property integer $id
- * @property \App\Enums\Formularies\InputTypeEnum $type
- * @property string $name
- * @property string $slug
- * @property array $placeholder
- * @property array> $details
- * @property boolean $is_visible
- * @property boolean $required
- * @property \App\Enums\Formularies\InputStatusEnum $status
- * @property integer $order
+ * @property integer $id Formulary id.
+ * @property \App\Enums\Formularies\InputTypeEnum $type Formulary type.
+ * @property string $name Formulary name.
+ * @property string $slug Formulary slug.
+ * @property array $placeholder Formulary placeholders.
+ * @property array>|null $details Formuary details.
+ * @property string|null $tenant_id Associated tenant.
+ * @property boolean $is_visible Formulary visibility.
+ * @property boolean $required Formulary required status.
+ * @property \App\Enums\Formularies\InputStatusEnum $status Formulary status.
+ * @property integer $order Formulary order.
+ * @property-read \Carbon\Carbon $created_at Created date.
+ * @property-read \Carbon\Carbon $updated_at Updated date.
*/
class Formulary extends Model
{
+ use BelongsToTenant;
+ use IsRelatedToTenant;
use HasFactory;
- use CastsEnums;
/**
- * fillable
- * @var string[]
+ * The attributes that are mass assignable.
+ *
+ * @var list
*/
protected $fillable = [
'type',
@@ -41,24 +48,19 @@ class Formulary extends Model
'status',
];
- /**
- * @var string[]
- */
- protected $casts = [
- 'required' => 'bool',
- 'is_visible' => 'bool',
- 'placeholder' => 'json',
- 'details' => 'json',
- ];
-
/**
* The attributes that should be cast.
*
- * @var array
+ * @var array
*/
- protected $enumCasts = [
- 'type' => InputTypeEnum::class,
- 'status' => InputStatusEnum::class,
+ protected $casts = [
+ 'required' => 'bool',
+ 'is_visible' => 'bool',
+ // FIXME: update the json cast if api crash.
+ 'placeholder' => 'json',
+ 'details' => 'json',
+ 'type' => InputTypeEnum::class,
+ 'status' => InputStatusEnum::class,
];
/**
@@ -69,39 +71,64 @@ class Formulary extends Model
protected static function booted(): void
{
static::creating(function (self $model) {
- static::setSlug($model);
- static::setStatusField($model);
- static::setOrder($model);
- static::makeRequiredSense($model);
+ // * ASSERTIONS
+ self::assertNameIsUnique($model->name, tenant: $model->tenant);
+
+ // * TRANSFORMATIONS
+ self::setSlug($model);
+ self::setStatusField($model);
+ self::setOrder($model);
+ self::makeRequiredSense($model);
});
static::updating(function (self $model) {
- static::setSlug($model);
- static::makeRequiredSense($model);
+ // * ASSERTIONS
+ self::assertNameIsUnique($model->name, $model->id, $model->tenant);
+
+ // * TRANSFORMATIONS
+ self::setSlug($model);
+ self::makeRequiredSense($model);
});
}
// * METHODS
+ /**
+ * Asserts using validation that the name is unique
+ *
+ * @param string|null $name
+ * @param integer|null $id
+ * @param \App\Models\Tenant|\Stancl\Tenancy\Contracts\Tenant|null $tenant
+ * @return void
+ * @throws \Illuminate\Validation\ValidationException If name already exists.
+ */
+ private static function assertNameIsUnique(
+ string|null $name,
+ ?int $id = null,
+ \App\Models\Tenant|\Stancl\Tenancy\Contracts\Tenant $tenant = null
+ ) {
+ $table = (new self())->getTable();
+ ToolboxHelper::assertFieldIsUnique($table, 'name', $name, $id, self::whereTenantQuery($tenant));
+ ToolboxHelper::assertFieldIsUnique($table, 'slug', Str::slug($name), $id, self::whereTenantQuery($tenant));
+ }
+
/**
* Set the slug.
*
* @param self $model
- *
* @return void
*/
- private static function setSlug(self $model)
+ private static function setSlug(self $model): void
{
$model->slug = Str::slug($model->name);
}
/**
- * Set required logical
+ * Set required logical.
*
* @param self $model
- *
* @return void
*/
- private static function makeRequiredSense(self $model)
+ private static function makeRequiredSense(self $model): void
{
if ($model->is_visible == false) {
$model->required = false;
@@ -113,13 +140,12 @@ class Formulary extends Model
* Set the status field.
*
* @param self $model
- *
* @return void
*/
- private static function setStatusField(self $model)
+ private static function setStatusField(self $model): void
{
if (!isset($model->status)) {
- $model->status = InputStatusEnum::default();
+ $model->status = InputStatusEnum::default;
}
}
@@ -131,6 +157,71 @@ class Formulary extends Model
*/
private static function setOrder(self $model): void
{
- $model->order = \intval(self::query()->max('order')) + 1;
+ $model->order = \intval(
+ self::query()->where(self::whereTenantQuery())->max('order')
+ ) + 1;
+ }
+
+ /**
+ * Set default settings for a specific tenant.
+ *
+ * @param \App\Models\Tenant $tenant
+ * @return void
+ */
+ public function setDefaultFormularies(Tenant $tenant): void
+ {
+ // @phpcs:disable Generic.Files.LineLength.TooLong
+ $array = [
+ [
+ 'name' => 'email',
+ 'placeholder' => ['fr' => 'E-mail'],
+ 'details' => null,
+ 'type' => InputTypeEnum::email,
+ 'status' => InputStatusEnum::system,
+ 'is_visible' => true,
+ 'required' => true,
+ ],
+ [
+ 'name' => 'firstname',
+ 'placeholder' => ['fr' => 'Prénom'],
+ 'details' => null,
+ 'type' => InputTypeEnum::text,
+ 'status' => InputStatusEnum::locked,
+ 'is_visible' => true,
+ 'required' => true,
+ ],
+ [
+ 'name' => 'lastname',
+ 'placeholder' => ['fr' => 'Nom'],
+ 'details' => null,
+ 'type' => InputTypeEnum::text,
+ 'status' => InputStatusEnum::locked,
+ 'is_visible' => true,
+ 'required' => true,
+ ],
+ [
+ 'name' => 'phone',
+ 'placeholder' => ['fr' => 'Téléphone'],
+ 'details' => null,
+ 'type' => InputTypeEnum::phone,
+ 'status' => InputStatusEnum::locked,
+ 'is_visible' => true,
+ 'required' => true,
+ ],
+ ];
+ // @phpcs:enable
+ collect($array)->map(function (array $item) use ($tenant) {
+ $setting = new self();
+ $setting->name = $item['name'];
+ $setting->slug = Str::of($item['name'])->slug();
+ $setting->placeholder = $item['placeholder'];
+ $setting->details = $item['details'];
+ $setting->type = $item['type'];
+ $setting->status = $item['status'];
+ $setting->is_visible = $item['is_visible'];
+ $setting->required = $item['required'];
+ $setting->tenant_id = $tenant->getKey();
+ $setting->saveOrFail();
+ });
}
}
diff --git a/app/Models/Setting.php b/app/Models/Setting.php
index b9ab147..87dad92 100644
--- a/app/Models/Setting.php
+++ b/app/Models/Setting.php
@@ -3,27 +3,29 @@
namespace App\Models;
use App\Enums\SettingTypesEnum;
-use App\Lib\Helpers\FileStorageHelper;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
-use Kwaadpepper\Enum\Traits\CastsEnums;
+use Stancl\Tenancy\Database\Concerns\BelongsToTenant;
+use Uwil\LaravelCommon\Helpers\FileHelper;
/**
- * @property integer $id
- * @property string $key
- * @property string $value
- * @property SettingTypesEnum $type
- * @property timestamp $created_at
- * @property timestamp $updated_at
+ * @property integer $id Settings id.
+ * @property string $key Settings key.
+ * @property string $value Settings value.
+ * @property string|null $tenant_id Associated tenant.
+ * @property \App\Enums\SettingTypesEnum $type Settings type.
+ * @property-read \Carbon\Carbon $created_at Created date.
+ * @property-read \Carbon\Carbon $updated_at Updated date.
*/
class Setting extends Model
{
+ use BelongsToTenant;
use HasFactory;
- use CastsEnums;
/**
- * fillable
- * @var string[]
+ * The attributes that are mass assignable.
+ *
+ * @var list
*/
protected $fillable = [
'key',
@@ -34,10 +36,11 @@ class Setting extends Model
];
/**
- * cast enum
- * @var string[]
+ * The attributes that should be cast.
+ *
+ * @var array
*/
- protected $enumCasts = [
+ protected $casts = [
'type' => SettingTypesEnum::class
];
@@ -48,8 +51,23 @@ class Setting extends Model
*
* @return void
*/
- protected static function booted()
+ protected static function booted(): void
{
+ static::creating(function (self $model) {
+ if (
+ $model->key === "SquaredLogo" ||
+ $model->key === "RectangleLogo" ||
+ $model->key === "BackgroundImage" ||
+ $model->key === "HomeButtonImage"
+ ) {
+ $model->value = FileHelper::storeFile(
+ model: $model,
+ file: $model->value,
+ slugify: true,
+ prefix: (\tenant() ?? Tenant::first())->getKey(),
+ );
+ }
+ });
static::updating(function (self $model) {
if (
$model->key === "SquaredLogo" ||
@@ -57,7 +75,12 @@ class Setting extends Model
$model->key === "BackgroundImage" ||
$model->key === "HomeButtonImage"
) {
- $model->value = FileStorageHelper::storeFile($model, $model->value, true);
+ $model->value = FileHelper::storeFile(
+ model: $model,
+ file: $model->value,
+ slugify: true,
+ prefix: (\tenant() ?? Tenant::first())->getKey(),
+ );
}
});
static::deleted(function (self $model) {
@@ -67,8 +90,46 @@ class Setting extends Model
$model->key === "BackgroundImage" ||
$model->key === "HomeButtonImage"
) {
- FileStorageHelper::removeFile($model, 'value');
+ FileHelper::removeFile($model, 'value');
}
});
}
+
+ // * METHODS
+
+ /**
+ * Set default settings for a specific tenant.
+ *
+ * @param \App\Models\Tenant $tenant
+ * @return void
+ */
+ public function setDefaultSettings(Tenant $tenant): void
+ {
+ // @phpcs:disable Generic.Files.LineLength.TooLong
+ $array = [
+ ['key' => 'version', 'value' => '1', 'type' => SettingTypesEnum::numeric],
+ ['key' => 'ShowIsActive', 'value' => '0', 'type' => SettingTypesEnum::boolean],
+ ['key' => 'MainColor', 'value' => '#FFF', 'type' => SettingTypesEnum::color],
+ ['key' => 'SquaredLogo', 'value' => new \SplFileInfo(\resource_path('assets/settings/SquaredLogo.png')), 'type' => SettingTypesEnum::picture],
+ ['key' => 'RectangleLogo', 'value' => new \SplFileInfo(\resource_path('assets/settings/RectangleLogo.png')), 'type' => SettingTypesEnum::picture],
+ ['key' => 'BackgroundImage', 'value' => new \SplFileInfo(\resource_path('assets/settings/BackgroundImage.png')), 'type' => SettingTypesEnum::picture],
+ ['key' => 'HomeButtonImage', 'value' => new \SplFileInfo(\resource_path('assets/settings/HomeButtonImage.png')), 'type' => SettingTypesEnum::picture],
+ ['key' => 'Button1', 'value' => null, 'type' => SettingTypesEnum::directory],
+ ['key' => 'Button2', 'value' => null, 'type' => SettingTypesEnum::directory],
+ ['key' => 'Button3', 'value' => null, 'type' => SettingTypesEnum::directory],
+ ['key' => 'AppStoreUUID', 'value' => 'c4ac09fd-3992-47bc-bdee-0b7f5505e873', 'type' => SettingTypesEnum::string],
+ ['key' => 'FormSelect1', 'value' => '{"title":{"fr":"Travaille avec","en":"Work with","de":"Arbeit mit"},"values":{"pole-sable":{"fr":"P\u00f4le Sabl\u00e9","en":"P\u00f4le Sabl\u00e9","de":"P\u00f4le Sabl\u00e9"},"snv":{"fr":"SNV","en":"SNV","de":"SNV"},"pole-sud-est":{"fr":"P\u00f4le Sud-Est","en":"P\u00f4le Sud-Est","de":"P\u00f4le Sud-Est"},"aquitaine":{"fr":"Aquitaine","en":"Aquitaine","de":"Aquitaine"},"sbv":{"fr":"SBV","en":"SBV","de":"SBV"},"arrive":{"fr":"Arriv\u00e9","en":"Arriv\u00e9","de":"Arriv\u00e9"},"plusieurs-filiales":{"fr":"Plusieurs filiales","en":"Several subsidiaries","de":"Mehrere Filialen"},"autre":{"fr":"Autre","en":"Other","de":"Andere"}}}', 'type' => SettingTypesEnum::json],
+ ['key' => 'FormSelect2', 'value' => '{"title":{"fr":"Type de commerce","en":"Type of business","de":"Art des Gesch\u00e4fts"},"values":{"commerce-de-detail":{"fr":"Commerce de d\u00e9tail","en":"Retail trade","de":"Einzelhandel"},"restauration-commerciale":{"fr":"Restauration Commerciale","en":"Commercial catering","de":"Kommerzielle Restauration"},"restauration-collective":{"fr":"Restauration Collective","en":"Collective catering","de":"Kollektiv Restauration"},"grossiste-distributeur-cash":{"fr":"Grossiste Distributeur Cash","en":"Wholesale Distributor Cash","de":"Gro\u00dfh\u00e4ndler H\u00e4ndler Cash"},"pai":{"fr":"PAI","en":"PAI","de":"PAI"},"home-freezer-center":{"fr":"Home Freezer Center","en":"Home Freezer Center","de":"Home Gefrierzentrum"},"autres":{"fr":"Autre","en":"Other","de":"Andere"}}}', 'type' => SettingTypesEnum::json],
+ ['key' => 'FormCheck', 'value' => '[{"fr":"Frais","en":"Fresh","de":"Frisch"},{"fr":"Surgel\u00e9s","en":"Frozen food","de":"Tiefk\u00fchlkost"},{"fr":"Volailles crues","en":"Raw poultry","de":"Rohes Gefl\u00fcgel"},{"fr":"\u00c9labor\u00e9s crus","en":"Prepared raw","de":"Roh ausgearbeitet"},{"fr":"\u00c9labor\u00e9s cuits","en":"Cooked products","de":"Gekochte Elaborate"},{"fr":"Bio et Label Rouge","en":"Bio and Label Rouge","de":"Bio und Label Rouge"},{"fr":"BBC","en":"BBC","de":"BBC"},{"fr":"Halal","en":"Halal","de":"Halal"},{"fr":"Autre","en":"Other","de":"Andere"}]', 'type' => SettingTypesEnum::json],
+ ];
+ // @phpcs:enable
+ collect($array)->map(function (array $item) use ($tenant) {
+ $setting = new self();
+ $setting->key = $item['key'];
+ $setting->value = $item['value'];
+ $setting->type = $item['type'];
+ $setting->tenant_id = $tenant->getKey();
+ $setting->saveOrFail();
+ });
+ }
}
diff --git a/app/Models/Tag.php b/app/Models/Tag.php
index 745d0b2..68415e8 100644
--- a/app/Models/Tag.php
+++ b/app/Models/Tag.php
@@ -2,32 +2,32 @@
namespace App\Models;
-use App\Lib\Helpers\ToolboxHelper;
+use App\Traits\Models\IsRelatedToTenant;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
+use Stancl\Tenancy\Database\Concerns\BelongsToTenant;
+use Uwil\LaravelCommon\Helpers\ToolboxHelper;
use Illuminate\Support\Str;
/**
- * @property integer $id
- * @property string $name
- * @property string $slug
- * @property integer $order
+ * @property integer $id Tag id.
+ * @property string $slug Tag slug.
+ * @property string $name Tag name.
+ * @property string|null $tenant_id Associated tenant.
+ * @property integer $order Tag order.
+ * @property-read \Carbon\Carbon $created_at Created date.
+ * @property-read \Carbon\Carbon $updated_at Updated date.
*/
class Tag extends Model
{
+ use BelongsToTenant;
+ use IsRelatedToTenant;
use HasFactory;
- /**
- * Indicates if the model should be timestamped.
- *
- * @var boolean
- */
- public $timestamps = false;
-
/**
* The attributes that are mass assignable.
*
- * @var array
+ * @var list
*/
protected $fillable = [
'name',
@@ -41,45 +41,52 @@ class Tag extends Model
*/
protected static function booted(): void
{
- static::creating(function (self $tag) {
- static::setSlug($tag);
- static::assertFieldIsUnique($tag->slug);
- static::setOrder($tag);
+ static::creating(function (self $model) {
+ // * ASSERTIONS
+ self::assertNameIsUnique($model->name);
+
+ // * TRANSFORMATIONS
+ self::setSlug($model);
+ self::setOrder($model);
});
- static::updating(function (self $tag) {
- static::assertFieldIsUnique($tag->slug, $tag->id);
+ static::updating(function (self $model) {
+ // * ASSERTIONS
+ self::assertNameIsUnique($model->name);
+
+ // * TRANSFORMATIONS
+ self::setSlug($model);
});
- static::deleting(function (self $tag) {
- $tag->documents()->detach();
+ static::deleting(function (self $model) {
+ $model->documents()->detach();
});
}
// * METHODS
/**
- * Set the slug.
- *
- * @param \App\Models\Tag $tag
+ * Asserts using validation that the name is unique
*
+ * @param string|null $name
+ * @param integer|null $id
* @return void
+ * @throws \Illuminate\Validation\ValidationException If name already exists.
*/
- private static function setSlug(Tag $tag)
+ private static function assertNameIsUnique(string|null $name, ?int $id = null)
{
- $tag->slug = Str::slug($tag->name);
+ $table = (new self())->getTable();
+ ToolboxHelper::assertFieldIsUnique($table, 'name', $name, $id, self::whereTenantQuery());
+ ToolboxHelper::assertFieldIsUnique($table, 'slug', Str::slug($name), $id, self::whereTenantQuery());
}
/**
- * Asserts using validation that the field is unique.
+ * Set the slug.
*
- * @param string $slug
- * @param integer|null $id
+ * @param self $model
* @return void
- * @throws \Illuminate\Validation\ValidationException If field already exists.
*/
- private static function assertFieldIsUnique(string $slug, ?int $id = null)
+ private static function setSlug(self $model): void
{
- $table = (new self())->getTable();
- ToolboxHelper::assertFieldIsUnique($table, 'slug', $slug, $id);
+ $model->slug = Str::slug($model->name);
}
/**
@@ -90,7 +97,9 @@ class Tag extends Model
*/
private static function setOrder(Tag $tag): void
{
- $tag->order = \intval(self::query()->max('order')) + 1;
+ $tag->order = \intval(
+ self::query()->where(self::whereTenantQuery())->max('order')
+ ) + 1;
}
// * RELATIONSHIPS
@@ -100,7 +109,7 @@ class Tag extends Model
*
* @return \Illuminate\Database\Eloquent\Relations\MorphToMany
*/
- public function documents()
+ public function documents(): \Illuminate\Database\Eloquent\Relations\MorphToMany
{
return $this->morphedByMany(Document::class, 'taggable');
}
diff --git a/app/Models/Tenant.php b/app/Models/Tenant.php
new file mode 100644
index 0000000..2df321a
--- /dev/null
+++ b/app/Models/Tenant.php
@@ -0,0 +1,163 @@
+
+ */
+ protected $fillable = ['id', 'name'];
+
+ /**
+ * Define the custom columns (that won't be stored in the data JSON column)
+ * by overriding the getCustomColumns() method.
+ *
+ * @see https://tenancyforlaravel.com/docs/v3/tenants
+ *
+ * @return array
+ */
+ public static function getCustomColumns(): array
+ {
+ return [
+ 'id',
+ 'name',
+ ];
+ }
+
+ /**
+ * Perform any actions required after the model boots.
+ *
+ * @return void
+ */
+ protected static function booted(): void
+ {
+ static::creating(function (self $model) {
+ self::assertNameIsUnique($model->name);
+ $model->id = Str::slug($model->name);
+ });
+ static::created(function (self $model) {
+ (new Setting())->setDefaultSettings($model);
+ (new Formulary())->setDefaultFormularies($model);
+ (new Directory())->setDefaultDirectories($model);
+ self::resetCache();
+ });
+ static::updating(function (self $model) {
+ self::assertNameIsUnique($model->name, $model->getKey());
+ $model->id = Str::slug($model->name);
+ });
+ static::updated(function () {
+ self::resetCache();
+ });
+ static::deleted(function (self $model) {
+ self::resetCache();
+ /** @var \App\Models\User $userModel */
+ $userModel = auth('backend')->user();
+ dispatch(new SendTenantDeletedMail(
+ sprintf('%s %s', $userModel->first_name, $userModel->last_name),
+ $model->name
+ ));
+ });
+ }
+
+ // * METHODS
+
+ /**
+ * Asserts using validation that the name is unique
+ *
+ * @param string|null $name
+ * @param string|null $id
+ * @return void
+ * @throws \Illuminate\Validation\ValidationException If name already exists.
+ */
+ private static function assertNameIsUnique(string|null $name, ?string $id = null): void
+ {
+ $table = (new self())->getTable();
+ ToolboxHelper::assertFieldIsUnique($table, 'name', $name, $id);
+ ToolboxHelper::assertFieldIsUnique($table, 'id', Str::slug($name), $id);
+ }
+
+ // * RELATIONSHIPS
+
+ /**
+ * Reset all cache elements related to this model.
+ *
+ * @return void
+ */
+ private static function resetCache(): void
+ {
+ Cache::forget('tenantsGlobal');
+ self::getTenantsCached();
+ }
+
+ /**
+ * Get all tenants in cache.
+ *
+ * @return \Illuminate\Support\Collection
+ */
+ public static function getTenantsCached(): \Illuminate\Support\Collection
+ {
+ return Cache::remember('tenantsGlobal', 86400, function () {
+ return Tenant::get();
+ });
+ }
+
+ /**
+ * Has Many Relationship Method.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\HasMany
+ */
+ public function appUsers(): \Illuminate\Database\Eloquent\Relations\HasMany
+ {
+ return $this->hasMany(AppUser::class);
+ }
+
+ /**
+ * Has Many Relationship Method.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\HasMany
+ */
+ public function directories(): \Illuminate\Database\Eloquent\Relations\HasMany
+ {
+ return $this->hasMany(Directory::class);
+ }
+
+ /**
+ * Has Many Relationship Method.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\HasMany
+ */
+ public function documents(): \Illuminate\Database\Eloquent\Relations\HasMany
+ {
+ return $this->hasMany(Document::class);
+ }
+
+ /**
+ * Has Many Relationship Method.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\HasMany
+ */
+ public function formularies(): \Illuminate\Database\Eloquent\Relations\HasMany
+ {
+ return $this->hasMany(Formulary::class);
+ }
+
+ /**
+ * Has Many Relationship Method.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\HasMany
+ */
+ public function settings(): \Illuminate\Database\Eloquent\Relations\HasMany
+ {
+ return $this->hasMany(Setting::class);
+ }
+}
diff --git a/app/Models/User.php b/app/Models/User.php
index cd69011..77cb7be 100644
--- a/app/Models/User.php
+++ b/app/Models/User.php
@@ -5,9 +5,17 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
-use Illuminate\Support\Facades\Hash;
use App\Enums\UserRolesEnum;
+/**
+ * @property integer $first_name User first name.
+ * @property string $last_name User last name.
+ * @property string $email User email.
+ * @property \App\Enums\UserRolesEnum $role User role.
+ * @property \Carbon\Carbon $last_connection Last connection date.
+ * @property-read \Carbon\Carbon $created_at Created date.
+ * @property-read \Carbon\Carbon $updated_at Updated date.
+ */
class User extends Authenticatable
{
use HasFactory;
@@ -16,25 +24,14 @@ class User extends Authenticatable
/**
* The attributes that are mass assignable.
*
- * @var array
+ * @var list
*/
protected $fillable = [
- 'firstname',
- 'lastname',
+ 'first_name',
+ 'last_name',
'email',
- 'email_verified_at',
- 'password',
- 'role'
- ];
-
- /**
- * The attributes that should be hidden for serialization.
- *
- * @var array
- */
- protected $hidden = [
- 'password',
- 'remember_token',
+ 'last_connection',
+ 'role',
];
/**
@@ -43,48 +40,10 @@ class User extends Authenticatable
* @var array
*/
protected $casts = [
- 'email_verified_at' => 'datetime',
+ 'last_connection' => 'datetime',
+ 'role' => UserRolesEnum::class
];
- /**
- * cast enum
- * @var string[]
- */
- protected $enumCasts = [
- 'role' => UserRolesEnum::class
- ];
-
- /**
- * Perform any actions required after the model boots.
- *
- * @return void
- */
- protected static function booted()
- {
- // * EVENT CLOSURES.
- static::creating(function (self $model) {
- static::updatePassword($model);
- });
- static::updating(function (self $model) {
- static::updatePassword($model);
- });
- }
-
- // * METHODS
-
- /**
- * Update password.
- *
- * @param self $model
- * @return void
- */
- private static function updatePassword(self $model): void
- {
- if (Hash::needsRehash($model->password)) {
- $model->password = Hash::make($model->password);
- }
- }
-
// * RELATIONSHIPS
/**
@@ -92,8 +51,18 @@ class User extends Authenticatable
*
* @return \Illuminate\Database\Eloquent\Relations\MorphToMany
*/
- public function directories()
+ public function directories(): \Illuminate\Database\Eloquent\Relations\MorphToMany
{
return $this->morphToMany(Directory::class, 'directorables');
}
+
+ /**
+ * The tenants that belong to the user.
+ *
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
+ */
+ public function tenants(): \Illuminate\Database\Eloquent\Relations\BelongsToMany
+ {
+ return $this->belongsToMany(Tenant::class);
+ }
}
diff --git a/app/Policies/AppUserPolicy.php b/app/Policies/AppUserPolicy.php
new file mode 100644
index 0000000..1c4f2b1
--- /dev/null
+++ b/app/Policies/AppUserPolicy.php
@@ -0,0 +1,86 @@
+is_system && UserStaticRules::restrictTenant($authUser);
+ }
+
+ /**
+ * Determine whether the user can delete the model.
+ *
+ * @param \App\Models\User $authUser
+ * @param \App\Models\Directory $directory
+ * @return boolean
+ */
+ public function delete(User $authUser, Directory $directory): bool
+ {
+ return !$directory->is_system && UserStaticRules::restrictTenant($authUser);
+ }
+
+ /**
+ * Determine whether the user can change order of the model.
+ *
+ * @param \App\Models\User $authUser
+ * @return boolean
+ */
+ public function changeOrder(User $authUser): bool
+ {
+ return UserStaticRules::restrictTenant($authUser);
+ }
+}
diff --git a/app/Policies/DocumentPolicy.php b/app/Policies/DocumentPolicy.php
new file mode 100644
index 0000000..85c702b
--- /dev/null
+++ b/app/Policies/DocumentPolicy.php
@@ -0,0 +1,75 @@
+status->equals(InputStatusEnum::system) &&
+ UserStaticRules::restrictTenant($authUser);
+ }
+
+ /**
+ * Determine whether the user can create models.
+ *
+ * @param \App\Models\User $authUser
+ * @return boolean
+ */
+ public function create(User $authUser): bool
+ {
+ return UserStaticRules::restrictTenant($authUser);
+ }
+
+ /**
+ * Determine whether the user can update the model.
+ *
+ * @param \App\Models\User $authUser
+ * @param \App\Models\Formulary $formulary
+ * @return boolean
+ */
+ public function update(User $authUser, Formulary $formulary): bool
+ {
+ return !$formulary->status->equals(InputStatusEnum::system) &&
+ UserStaticRules::restrictTenant($authUser);
+ }
+
+ /**
+ * Determine whether the user can delete the model.
+ *
+ * @param \App\Models\User $authUser
+ * @param \App\Models\Formulary $formulary
+ * @return boolean
+ */
+ public function delete(User $authUser, Formulary $formulary): bool
+ {
+ return !$formulary->status->equals(InputStatusEnum::system) &&
+ !$formulary->status->equals(InputStatusEnum::locked) &&
+ UserStaticRules::restrictTenant($authUser);
+ }
+
+ /**
+ * Determine whether the user can duplicate the model.
+ *
+ * @param \App\Models\User $authUser
+ * @param \App\Models\Formulary $formulary
+ * @return boolean
+ */
+ public function duplicate(User $authUser, Formulary $formulary): bool
+ {
+ return !$formulary->status->equals(InputStatusEnum::system) &&
+ !$formulary->status->equals(InputStatusEnum::locked) &&
+ UserStaticRules::restrictTenant($authUser);
+ }
+
+ /**
+ * Determine whether the user can change order of the model.
+ *
+ * @param \App\Models\User $authUser
+ * @return boolean
+ */
+ public function changeOrder(User $authUser): bool
+ {
+ return UserStaticRules::restrictTenant($authUser);
+ }
+}
diff --git a/app/Policies/Rules/UserStaticRules.php b/app/Policies/Rules/UserStaticRules.php
new file mode 100644
index 0000000..ae7abd5
--- /dev/null
+++ b/app/Policies/Rules/UserStaticRules.php
@@ -0,0 +1,60 @@
+role) && $authModel->role->value() <= $minRole->value();
+ }
+
+ /**
+ * Allow client users associated to the tenant OR admin users.
+ *
+ * @param \App\Models\User $authUser
+ * @return boolean
+ */
+ public static function restrictTenant(User $authUser): bool
+ {
+ return UserStaticRules::atLeastRole($authUser, UserRolesEnum::client) &&
+ \in_array(\tenant()->getKey(), $authUser->tenants->pluck('id')->toArray()) ||
+ UserStaticRules::atLeastRole($authUser, UserRolesEnum::admin);
+ }
+}
diff --git a/app/Policies/SettingPolicy.php b/app/Policies/SettingPolicy.php
new file mode 100644
index 0000000..bbb704a
--- /dev/null
+++ b/app/Policies/SettingPolicy.php
@@ -0,0 +1,42 @@
+getRouteKey() === $user->getRouteKey() ||
+ UserStaticRules::atLeastRole($authUser, UserRolesEnum::admin);
+ }
+
+ /**
+ * Determine whether the user can create models.
+ *
+ * @param \App\Models\User $authUser
+ * @return boolean
+ */
+ public function create(User $authUser): bool
+ {
+ return UserStaticRules::atLeastRole($authUser, UserRolesEnum::admin);
+ }
+
+ /**
+ * Determine whether the user can update the model.
+ *
+ * @param \App\Models\User $authUser
+ * @param \App\Models\User $user
+ * @return boolean
+ */
+ public function update(User $authUser, User $user): bool
+ {
+ return (
+ UserStaticRules::atLeastRole($authUser, UserRolesEnum::client) &&
+ $authUser->getRouteKey() === $user->getRouteKey()
+ ) || UserStaticRules::atLeastRole($authUser, UserRolesEnum::admin);
+ }
+
+ /**
+ * Determine whether the user can delete the model.
+ *
+ * @param \App\Models\User $authUser
+ * @param \App\Models\User $user
+ * @return boolean
+ */
+ public function delete(User $authUser, User $user): bool
+ {
+ return $authUser->getRouteKey() !== $user->getRouteKey() &&
+ UserStaticRules::atLeastRole($authUser, UserRolesEnum::admin);
+ }
+
+ /**
+ * Determine whether the user can duplicate the model.
+ *
+ * @param \App\Models\User $authUser
+ * @param \App\Models\User $user
+ * @return boolean
+ */
+ public function duplicate(User $authUser, User $user): bool
+ {
+ return (
+ UserStaticRules::atLeastRole($authUser, UserRolesEnum::client) &&
+ $authUser->getRouteKey() === $user->getRouteKey()
+ ) || UserStaticRules::atLeastRole($authUser, UserRolesEnum::admin);
+ }
+}
diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php
index 2173f91..ff99785 100644
--- a/app/Providers/AppServiceProvider.php
+++ b/app/Providers/AppServiceProvider.php
@@ -15,7 +15,7 @@ class AppServiceProvider extends ServiceProvider
*
* @return void
*/
- public function boot()
+ public function boot(): void
{
// * HTTPS FIX
URL::forceScheme('https');
diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php
index ac76c89..698232c 100644
--- a/app/Providers/AuthServiceProvider.php
+++ b/app/Providers/AuthServiceProvider.php
@@ -2,7 +2,7 @@
namespace App\Providers;
-use App\Models\Directory;
+use App\Enums\UserRolesEnum;
use App\Models\User;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
use Illuminate\Support\Facades\Gate;
@@ -14,17 +14,12 @@ class AuthServiceProvider extends ServiceProvider
*
* @return void
*/
- public function boot()
+ public function boot(): void
{
$this->registerPolicies();
- // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClassBeforeLastUsed
- Gate::define('edit', function (User $user, Directory $directory) {
- return !$directory->is_system;
- });
- // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClassBeforeLastUsed
- Gate::define('delete', function (User $user, Directory $directory) {
- return !$directory->is_system;
+ Gate::define('isAdmin', function (User $user) {
+ return $user->role->equals(UserRolesEnum::admin);
});
}
}
diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php
index 17035bf..3819732 100644
--- a/app/Providers/EventServiceProvider.php
+++ b/app/Providers/EventServiceProvider.php
@@ -2,9 +2,16 @@
namespace App\Providers;
+use App\Models\User;
use Illuminate\Auth\Events\Registered;
use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
+use Illuminate\Support\Facades\Auth;
+use Illuminate\Support\Facades\Cache;
+use Illuminate\Support\Facades\Event;
+use Illuminate\Support\Facades\Session;
+use Slides\Saml2\Events\SignedIn;
+use Slides\Saml2\Events\SignedOut;
class EventServiceProvider extends ServiceProvider
{
@@ -26,5 +33,41 @@ class EventServiceProvider extends ServiceProvider
*/
public function boot()
{
+ Event::listen('Slides\Saml2\Events\SignedIn', function (SignedIn $event) {
+
+ $messageId = $event->getAuth()->getLastMessageId();
+
+ $fromCache = Cache::get(config('cache.prefix') . "_saml_message_id_" . $messageId);
+ if ($fromCache) {
+ logger()->error(
+ 'SAML MESSAGE ID HANDLER',
+ ['error' => 'Message ID : ' . $messageId . " replayed !"]
+ );
+ abort(403);
+ } else {
+ Cache::put(config('cache.prefix') . "_saml_message_id_" . $messageId, $messageId, 28800);
+ // Cache for 8h.
+ }
+
+ $user = $event->getSaml2User();
+ $email = $user->getNameId();
+
+ $lUser = User::where('email', '=', $email)->first();
+
+ if (!$lUser) {
+ abort(403);
+ }
+
+ Auth::guard('backend')->login($lUser);
+ session(['sessionIndex' => $user->getSessionIndex()]);
+ $lUser->last_connection = now();
+ $lUser->saveQuietly();
+ });
+
+ //phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
+ Event::listen('Slides\Saml2\Events\SignedOut', function (SignedOut $event) {
+ Auth::guard('backend')->logout();
+ Session::save();
+ });
}
}
diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php
index e501bdc..0eaa94a 100644
--- a/app/Providers/RouteServiceProvider.php
+++ b/app/Providers/RouteServiceProvider.php
@@ -3,8 +3,10 @@
namespace App\Providers;
use App\Models\AppUser;
+use App\Models\Directory;
use App\Models\Document;
use App\Models\Formulary;
+use App\Models\Setting;
use App\Models\Tag;
use Illuminate\Cache\RateLimiting\Limit;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
@@ -28,7 +30,7 @@ class RouteServiceProvider extends ServiceProvider
*
* @return void
*/
- public function boot()
+ public function boot(): void
{
$this->configureRateLimiting();
@@ -39,16 +41,29 @@ class RouteServiceProvider extends ServiceProvider
->namespace($this->namespace)
->group(base_path('routes/web-bo.php'));
- Route::prefix('api')
- ->middleware('api')
+ Route::middleware('api')
->namespace($this->namespace)
->group(base_path('routes/api.php'));
});
- Route::model('appuser', AppUser::class);
- Route::model('document', Document::class);
- Route::model('tag', Tag::class);
- Route::model('formulary', Formulary::class);
+ // Bind tenant related Models.
+ $tenantRelatedModels = [
+ 'app_user' => AppUser::class,
+ 'directory' => Directory::class,
+ 'document' => Document::class,
+ 'formulary' => Formulary::class,
+ 'tag' => Tag::class,
+ 'setting' => Setting::class,
+ ];
+
+ foreach ($tenantRelatedModels as $key => $tenantRelatedModel) {
+ Route::bind($key, function (string $value) use ($tenantRelatedModel) {
+ return $tenantRelatedModel::query()
+ ->where('tenant_id', \request()->tenant)
+ ->where('id', $value)
+ ->firstOrFail();
+ });
+ }
}
/**
@@ -56,7 +71,7 @@ class RouteServiceProvider extends ServiceProvider
*
* @return void
*/
- protected function configureRateLimiting()
+ protected function configureRateLimiting(): void
{
RateLimiter::for('api', function (Request $request) {
return Limit::perMinute(150)->by(optional($request->user())->id ?: app('clientIp'));
@@ -77,7 +92,7 @@ class RouteServiceProvider extends ServiceProvider
*
* @return void
*/
- private function cspReportRoute()
+ private function cspReportRoute(): void
{
// * CSP REPORT URI, Please add /csp-report to VerifyCsrfToken $except middleware
\Illuminate\Support\Facades\Route::post('/csp-report', function () {
diff --git a/app/Providers/TenancyServiceProvider.php b/app/Providers/TenancyServiceProvider.php
new file mode 100644
index 0000000..df91bfc
--- /dev/null
+++ b/app/Providers/TenancyServiceProvider.php
@@ -0,0 +1,163 @@
+ [],
+ Events\TenantCreated::class => [
+ JobPipeline::make([
+ Jobs\CreateDatabase::class,
+ Jobs\MigrateDatabase::class,
+ // Jobs\SeedDatabase::class,
+ // Your own jobs to prepare the tenant.
+ // Provision API keys, create S3 buckets, anything you want !
+ ])
+ ->send(function (Events\TenantCreated $event) {
+ return $event->tenant;
+ })
+ // `false` by default, but you probably want to make this `true` for production.
+ ->shouldBeQueued(false),
+ ],
+ Events\SavingTenant::class => [],
+ Events\TenantSaved::class => [],
+ Events\UpdatingTenant::class => [],
+ Events\TenantUpdated::class => [],
+ Events\DeletingTenant::class => [],
+ Events\TenantDeleted::class => [
+ JobPipeline::make([
+ Jobs\DeleteDatabase::class,
+ ])
+ ->send(function (Events\TenantDeleted $event) {
+ return $event->tenant;
+ })
+ // `false` by default, but you probably want to make this `true` for production.
+ ->shouldBeQueued(false),
+ ],
+
+ // Domain events.
+ Events\CreatingDomain::class => [],
+ Events\DomainCreated::class => [],
+ Events\SavingDomain::class => [],
+ Events\DomainSaved::class => [],
+ Events\UpdatingDomain::class => [],
+ Events\DomainUpdated::class => [],
+ Events\DeletingDomain::class => [],
+ Events\DomainDeleted::class => [],
+
+ // Database events.
+ Events\DatabaseCreated::class => [],
+ Events\DatabaseMigrated::class => [],
+ Events\DatabaseSeeded::class => [],
+ Events\DatabaseRolledBack::class => [],
+ Events\DatabaseDeleted::class => [],
+
+ // Tenancy events.
+ Events\InitializingTenancy::class => [],
+ Events\TenancyInitialized::class => [
+ Listeners\BootstrapTenancy::class,
+ ],
+
+ Events\EndingTenancy::class => [],
+ Events\TenancyEnded::class => [
+ Listeners\RevertToCentralContext::class,
+ ],
+
+ Events\BootstrappingTenancy::class => [],
+ Events\TenancyBootstrapped::class => [],
+ Events\RevertingToCentralContext::class => [],
+ Events\RevertedToCentralContext::class => [],
+
+ // Resource syncing.
+ Events\SyncedResourceSaved::class => [
+ Listeners\UpdateSyncedResource::class,
+ ],
+
+ // Fired only when a synced resource is changed in a different DB
+ // than the origin DB (to avoid infinite loops).
+ Events\SyncedResourceChangedInForeignDatabase::class => [],
+ ];
+ }
+
+ /** @return void */
+ public function register(): void
+ {
+ // Silence is golden.
+ }
+
+ /** @return void */
+ public function boot(): void
+ {
+ $this->bootEvents();
+ $this->mapRoutes();
+
+ $this->makeTenancyMiddlewareHighestPriority();
+ }
+
+ /** @return void */
+ protected function bootEvents(): void
+ {
+ foreach ($this->events() as $event => $listeners) {
+ foreach ($listeners as $listener) {
+ if ($listener instanceof JobPipeline) {
+ $listener = $listener->toListener();
+ }
+
+ Event::listen($event, $listener);
+ }
+ }
+ }
+
+ /** @return void */
+ protected function mapRoutes(): void
+ {
+ $this->app->booted(function () {
+ if (file_exists(base_path('routes/tenant.php'))) {
+ Route::namespace(static::$controllerNamespace)
+ ->group(base_path('routes/tenant.php'));
+ }
+ });
+ }
+
+ /** @return void */
+ protected function makeTenancyMiddlewareHighestPriority(): void
+ {
+ $tenancyMiddleware = [
+ // Even higher priority than the initialization middleware.
+ Middleware\PreventAccessFromCentralDomains::class,
+
+ Middleware\InitializeTenancyByDomain::class,
+ Middleware\InitializeTenancyBySubdomain::class,
+ Middleware\InitializeTenancyByDomainOrSubdomain::class,
+ Middleware\InitializeTenancyByPath::class,
+ Middleware\InitializeTenancyByRequestData::class,
+ ];
+
+ foreach (array_reverse($tenancyMiddleware) as $middleware) {
+ $this->app[\Illuminate\Contracts\Http\Kernel::class]->prependToMiddlewarePriority($middleware);
+ }
+ }
+}
diff --git a/app/Providers/TranslationServiceProvider.php b/app/Providers/TranslationServiceProvider.php
index 7b8c504..8059631 100644
--- a/app/Providers/TranslationServiceProvider.php
+++ b/app/Providers/TranslationServiceProvider.php
@@ -2,7 +2,6 @@
namespace App\Providers;
-use Illuminate\Support\Collection;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\ServiceProvider;
@@ -15,13 +14,13 @@ class TranslationServiceProvider extends ServiceProvider
*
* @return void
*/
- public function boot()
+ public function boot(): void
{
foreach ($this->collectLocalesStrings() as $locale) {
// * Suported locales
Cache::rememberForever(sprintf('translations.%s', $locale), function () use ($locale) {
$translations = [
- 'php' => $this->phpTranslations($locale),
+ 'php' => $this->phpTranslations($locale),
'json' => $this->jsonTranslations($locale),
];
return $translations;
@@ -32,9 +31,9 @@ class TranslationServiceProvider extends ServiceProvider
/**
* Gather provided langs checking from files
*
- * @return Collection
+ * @return \Illuminate\Support\Collection
*/
- private function collectLocalesStrings(): Collection
+ private function collectLocalesStrings(): \Illuminate\Support\Collection
{
return collect(File::allFiles(resource_path('lang/')))->flatMap(function (SplFileInfo $file) {
if ($file->getRelativePath() and \strpos($file->getRelativePath(), 'vendor') !== 0) {
@@ -69,10 +68,10 @@ class TranslationServiceProvider extends ServiceProvider
{
$path = resource_path("lang/$locale.json");
- if (is_string($path) && is_readable($path)) {
- return json_decode(file_get_contents($path), true) ?? [];
+ if (!File::exists($path) or !File::isReadable($path)) {
+ return [];
}
- return [];
+ return json_decode(File::get($path), true) ?? [];
}
}
diff --git a/app/Providers/ViewServiceProvider.php b/app/Providers/ViewServiceProvider.php
index f81ed7c..9400463 100644
--- a/app/Providers/ViewServiceProvider.php
+++ b/app/Providers/ViewServiceProvider.php
@@ -2,7 +2,10 @@
namespace App\Providers;
+use App\Models\Tenant;
use Illuminate\Pagination\Paginator;
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Support\Facades\View;
use Illuminate\Support\ServiceProvider;
class ViewServiceProvider extends ServiceProvider
@@ -12,7 +15,7 @@ class ViewServiceProvider extends ServiceProvider
*
* @return void
*/
- public function boot()
+ public function boot(): void
{
if (!app()->runningInConsole()) {
// * FORCE BOOTSTRAP PAGINATOR (or custom if in front)
@@ -22,6 +25,9 @@ class ViewServiceProvider extends ServiceProvider
} else {
Paginator::useBootstrap();
}
+ if (Schema::hasTable('tenants')) {
+ View::share('tenantsGlobal', Tenant::getTenantsCached());
+ }
}
}
}
diff --git a/app/Traits/Controllers/ChangesModelOrder.php b/app/Traits/Controllers/ChangesModelOrder.php
index 2c1c7c4..0bedba8 100644
--- a/app/Traits/Controllers/ChangesModelOrder.php
+++ b/app/Traits/Controllers/ChangesModelOrder.php
@@ -2,36 +2,72 @@
namespace App\Traits\Controllers;
-use App\Http\Requests\Bo\ChangeOrderRequest;
-use Illuminate\Database\Eloquent\Model;
-use Illuminate\Http\RedirectResponse;
+use App\Http\Requests\Bo\UpdateChangeOrderRequest;
+use Illuminate\Support\Arr;
use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Facades\Session;
+use Illuminate\Support\Str;
trait ChangesModelOrder
{
/**
- * Change order
+ * Change order.
*
- * @param \App\Traits\Models\ChangeOrderRequest $request
- * @param \Illuminate\Database\Eloquent\Model $model
+ * @param \App\Http\Requests\Bo\UpdateChangeOrderRequest $request
+ * @param mixed ...$params
* @return \Illuminate\Http\RedirectResponse
- * @throws \RuntimeException Si le nom du parametre de la route ne correspond pas au model utilisé.
+ * @throws \RuntimeException Si le nom du parametre de la route ne correspond pas au params utilisé.
*/
- public function changeOrder(ChangeOrderRequest $request, Model $model): RedirectResponse
+ public function changeOrder(UpdateChangeOrderRequest $request, mixed ...$params): \Illuminate\Http\RedirectResponse
{
- return DB::transaction(function () use ($request, $model) {
+ $paramNames = collect(request()->route()->parameterNames);
+ $className = Str::of($paramNames->get($paramNames->count() - 2))->lower()->studly();
+ $className = "\\App\\Models\\{$className}";
+ $model = Arr::get($params, $paramNames->count() - 3);
+
+ if (!class_exists($className)) {
+ throw new \RuntimeException("The {$className} class doesn't exist.");
+ }
+
+ if (!\is_object($model)) {
+ throw new \RuntimeException("The second last param isn't an object.");
+ }
+
+ if (get_class($model) !== (string) Str::of($className)->replaceStart('\\', '')) {
+ throw new \RuntimeException("The {$className} doesn't match second last binded param.");
+ }
+
+ /** @var \Illuminate\Database\Eloquent\Model|null */
+ $model = $className::query()
+ ->where('tenant_id', \tenant()->getKey())
+ ->where($model->getRouteKeyName(), $model->getRouteKey())
+ ->first();
+
+ if (!$model) {
+ return back()->with('error', trans('crud.messages.order_not_changed'));
+ }
+
+ return DB::transaction(function () use ($request, $className, $model) {
/** @var \Illuminate\Database\Eloquent\Model|null */
- $tmp = (\get_class($model))::where('order', $request->direction ? '<' : '>', $model->order)
+ $tmp = $className::query()
+ ->where('tenant_id', \tenant()->getKey())
+ ->where('order', $request->direction ? '<' : '>', $model->getOriginal('order'))
->orderBy('order', $request->direction ? 'DESC' : 'ASC')->first();
+
if (!$tmp) {
- return redirect()->back()->with('error', __('L\'ordre n\'a pu être modifié'));
+ return back()->with('error', trans('crud.messages.order_not_changed'));
}
- $newOrder = $tmp->order;
- $tmp->order = $model->order;
+
+ $newOrder = $tmp->getOriginal('order');
+ // @phpstan-ignore property.notFound
+ $tmp->order = $model->getOriginal('order');
+ $tmp->saveQuietly();
+ // @phpstan-ignore property.notFound
$model->order = $newOrder;
- $tmp->saveOrFail();
- $model->saveOrFail();
- return redirect()->back()->with('success', __('L\'ordre à été modifié'));
+ $model->saveQuietly();
+ Session::flash('success', trans('crud.messages.order_changed'));
+
+ return back();
});
}
}
diff --git a/app/Traits/Controllers/UpdateModelStatus.php b/app/Traits/Controllers/UpdateModelStatus.php
deleted file mode 100644
index 291fe3d..0000000
--- a/app/Traits/Controllers/UpdateModelStatus.php
+++ /dev/null
@@ -1,26 +0,0 @@
-status = !$model->status;
- $model->saveOrFail();
- return redirect()->back();
- }
-}
diff --git a/app/Traits/Enums/BaseEnum.php b/app/Traits/Enums/BaseEnum.php
new file mode 100644
index 0000000..976469f
--- /dev/null
+++ b/app/Traits/Enums/BaseEnum.php
@@ -0,0 +1,263 @@
+name];
+ }
+
+ /**
+ * Get enum label.
+ *
+ * @return string
+ */
+ public function label(): string
+ {
+ return self::toLabels()[$this->name];
+ }
+
+ /**
+ * Get enum name.
+ *
+ * @return string
+ */
+ public function name(): string
+ {
+ return $this->name;
+ }
+
+ // * STATIC FETCH METHODS
+
+ /**
+ * Get enum labels.
+ *
+ * @return array
+ */
+ public static function toLabels(): array
+ {
+ if (empty(self::getCache('labels'))) {
+ $labels = self::getLabelsConstant();
+ self::setCache('labels', \collect(self::cases())
+ ->mapWithKeys(function ($enum) use ($labels) {
+ if (!\is_null($labels) and !isset($labels[$enum->name])) {
+ throw new \Error('Missing definition label ' . self::class . " for {$enum->name}");
+ }
+ return [$enum->name => \trans(
+ !\is_null($labels) ? $labels[$enum->name] : Str::ucfirst($enum->name)
+ )];
+ })->all());
+ }
+ return self::getCache('labels');
+ }
+
+ /**
+ * Get enum values.
+ *
+ * @return array
+ */
+ public static function toValues(): array
+ {
+ if (empty(self::getCache('values'))) {
+ self::setCache('values', \collect(self::cases())
+ ->mapWithKeys(fn($enum) => [$enum->name => $enum->value])->all());
+ }
+ return self::getCache('values');
+ }
+
+ /**
+ * Get enums.
+ *
+ * @return array
+ */
+ public static function all(): array
+ {
+ return self::cases();
+ }
+
+ /**
+ * Get enums.
+ *
+ * @return array
+ */
+ public static function toArray(): array
+ {
+ if (empty(self::getCache('enums'))) {
+ $definitions = self::getCustomDefinitions();
+ self::setCache('enums', \collect(self::cases())
+ ->mapWithKeys(function ($enum) use ($definitions) {
+ $baseArray = [
+ 'name' => $enum->name,
+ 'label' => $enum->label(),
+ 'value' => $enum->value,
+ ];
+ foreach ($definitions as $index => $elements) {
+ $index = Str::lower(Str::singular($index));
+ if (!isset($elements[$enum->name])) {
+ throw new \Error("Missing definition {$index} " . self::class . " for {$enum->name}");
+ }
+ $baseArray[$index] = $elements[$enum->name];
+ }
+ return [$enum->name => (object) $baseArray];
+ })->all());
+ }
+ return self::getCache('enums');
+ }
+
+ /**
+ * Fetch enum using value.
+ *
+ * @param self|integer|string $value
+ * @param string $field
+ * @return self|null
+ */
+ public static function make(self|int|string $value, string $field = 'value'): self|null
+ {
+ if ($field === "label") {
+ $enumLabels = array_change_key_case(array_flip(self::toLabels()), CASE_LOWER);
+ $value = (isset($enumLabels[strtolower($value)])) ? $enumLabels[strtolower($value)] : false;
+ $field = 'name';
+ }
+ return !\is_object($value) ?
+ \collect(self::cases())->keyBy($field)->get($value) : $value;
+ }
+
+ /**
+ * Test if 2 enum are equals.
+ *
+ * @param object ...$others
+ * @return boolean
+ * @throws \Error If provided element are not enums that extends BaseEnum.
+ */
+ public function equals(object ...$others): bool
+ {
+ foreach ($others as $other) {
+ if (!\in_array(BaseEnum::class, \class_uses_recursive($other))) {
+ throw new \Error(__METHOD__ .
+ ' requires $enum to use ' . BaseEnum::class);
+ }
+ if (
+ get_class($this) === get_class($other)
+ && $this->value === $other->value
+ ) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Serialize to json.
+ *
+ * @return mixed
+ */
+ public function jsonSerialize(): mixed
+ {
+ return $this->value;
+ }
+
+
+ // * CACHE
+
+ /**
+ * Get cache array.
+ *
+ * @param string $index
+ * @return array
+ */
+ private static function getCache(string $index): array
+ {
+ self::initCache();
+ if (!isset($GLOBALS[self::class]['props'][$index])) {
+ $GLOBALS[self::class]['props'][$index] = [];
+ }
+ return $GLOBALS[self::class]['props'][$index];
+ }
+
+ /**
+ * Set cache array.
+ *
+ * @param string $index
+ * @param array $items
+ * @return void
+ */
+ private static function setCache(string $index, array $items): void
+ {
+ self::initCache();
+ if (!isset($GLOBALS[self::class]['props'][$index])) {
+ $GLOBALS[self::class]['props'][$index] = [];
+ }
+ $GLOBALS[self::class]['props'][$index] = $items;
+ }
+
+ /**
+ * Init cache if needed.
+ *
+ * @return void
+ */
+ private static function initCache(): void
+ {
+ if (!isset($GLOBALS[self::class])) {
+ $GLOBALS[self::class] = [
+ 'props' => [
+ 'enums' => [],
+ 'values' => [],
+ 'labels' => []
+ ],
+ 'customProps' => null
+ ];
+ }
+ }
+
+ // * PRIVATE
+
+ /**
+ * Fetch the LABELS constant if exists.
+ *
+ * @return array|null
+ */
+ private static function getLabelsConstant(): array|null
+ {
+ $class_name = self::class;
+ try {
+ $constant_reflex = new \ReflectionClassConstant($class_name, 'LABELS');
+ return $constant_reflex->getValue();
+ } catch (\ReflectionException $e) {
+ return null;
+ }
+ }
+
+ /**
+ * Get custom constants.
+ *
+ * @return array
+ */
+ private static function getCustomDefinitions(): array
+ {
+ // ? Has custom props in cache ?
+ if (!isset($GLOBALS[self::class]) or \is_null($GLOBALS[self::class]['customProps'])) {
+ $names = \collect(self::cases())->keyBy('name');
+
+ $GLOBALS[self::class]['customProps'] = \collect((new \ReflectionClass(self::class))->getConstants())
+ ->filter(function (mixed $constant, string $key) use ($names) {
+ if ($key === 'LABELS' or !\is_array($constant)) {
+ return false;
+ }
+ return \collect($constant)->keys()
+ ->filter(fn(string $name) => $names->has($name))->count();
+ })->all();
+ }
+ return $GLOBALS[self::class]['customProps'];
+ }
+}
diff --git a/app/Traits/Models/HasUuidKey.php b/app/Traits/Models/HasUuidKey.php
index e76a4eb..cf50d6a 100644
--- a/app/Traits/Models/HasUuidKey.php
+++ b/app/Traits/Models/HasUuidKey.php
@@ -11,7 +11,7 @@ trait HasUuidKey
*
* @return void
*/
- protected static function booted()
+ protected static function booted(): void
{
parent::booted();
static::creating(function ($model) {
@@ -26,7 +26,7 @@ trait HasUuidKey
*
* @return boolean
*/
- public function getIncrementing()
+ public function getIncrementing(): bool
{
return false;
}
@@ -36,7 +36,7 @@ trait HasUuidKey
*
* @return string
*/
- public function getKeyType()
+ public function getKeyType(): string
{
return 'string';
}
diff --git a/app/Traits/Models/IsRelatedToTenant.php b/app/Traits/Models/IsRelatedToTenant.php
new file mode 100644
index 0000000..0e62a9c
--- /dev/null
+++ b/app/Traits/Models/IsRelatedToTenant.php
@@ -0,0 +1,26 @@
+where('tenant_id', $tenant->getKey() ?? $tenant->getKey());
+ };
+ };
+ }
+}
diff --git a/app/Traits/Requests/HasPicture.php b/app/Traits/Requests/HasPicture.php
index bb68924..8316ce5 100644
--- a/app/Traits/Requests/HasPicture.php
+++ b/app/Traits/Requests/HasPicture.php
@@ -2,8 +2,11 @@
namespace App\Traits\Requests;
-use Illuminate\Support\Facades\File;
+use Uwil\LaravelCommon\Helpers\ToolboxHelper;
+/**
+ * ! This assumes file system is using local storage
+ */
trait HasPicture
{
/**
@@ -11,14 +14,14 @@ trait HasPicture
*
* @var integer
*/
- private $minWith = 400;
+ private $minWidth = 400;
/**
* Maximum width
*
* @var integer
*/
- private $maxWith = 1800;
+ private $maxWidth = 1800;
/**
* Minimum height
@@ -38,32 +41,41 @@ trait HasPicture
* Image rules
*
* @param string $name
- * @param boolean $required
- * @param integer|null $minWith
+ * @param integer|null $minWidth
* @param integer|null $minHeight
- * @param integer|null $maxWith
+ * @param integer|null $maxWidth
* @param integer|null $maxHeight
+ * @param boolean $nullable
+ * @param integer|null $size
+ * @param string|null $requiredWith
+ * @param string|null $requiredWithout
* @return array
*/
public function pictureRules(
string $name = 'picture',
- bool $required = true,
- ?int $minWith = null,
+ ?int $minWidth = null,
?int $minHeight = null,
- ?int $maxWith = null,
- ?int $maxHeight = null
+ ?int $maxWidth = null,
+ ?int $maxHeight = null,
+ bool $nullable = false,
+ ?int $size = null,
+ ?string $requiredWith = null,
+ ?string $requiredWithout = null,
): array {
- $sizes = (object)[
- 'minWith' => $minWith ?? $this->minWith,
+ $dimensions = (object) [
+ 'minWidth' => $minWidth ?? $this->minWidth,
'minHeight' => $minHeight ?? $this->minHeight,
- 'maxWith' => $maxWith ?? $this->maxWith,
+ 'maxWidth' => $maxWidth ?? $this->maxWidth,
'maxHeight' => $maxHeight ?? $this->maxHeight
];
return [
$name => [
- $required ? 'required' : 'nullable',
- function (string $attribute, $value, callable $fail) use ($sizes) {
- return $this->validatePicture($attribute, $value, $fail, $sizes);
+ !$nullable ? 'required' : 'nullable',
+ (strlen($requiredWith)) ? 'required_with:' . $requiredWith : '',
+ (strlen($requiredWithout)) ? 'required_without:' . $requiredWithout : '',
+ ($size) ? 'max:' . $size : '',
+ function (string $attribute, $value, callable $fail) use ($dimensions) {
+ ToolboxHelper::validatePicture($attribute, $value, $fail, $dimensions);
}
]
];
@@ -73,92 +85,43 @@ trait HasPicture
* Images rules
*
* @param string $name
- * @param boolean $required
- * @param integer|null $minWith
+ * @param integer|null $minWidth
* @param integer|null $minHeight
- * @param integer|null $maxWith
+ * @param integer|null $maxWidth
* @param integer|null $maxHeight
- * @param integer|null $limitMin
- * @param integer|null $limitMax
+ * @param integer $limitMin
+ * @param integer $limitMax
+ * @param boolean $nullable
* @return array
*/
public function picturesRules(
string $name = 'pictures',
- bool $required = true,
- ?int $minWith = null,
+ ?int $minWidth = null,
?int $minHeight = null,
- ?int $maxWith = null,
+ ?int $maxWidth = null,
?int $maxHeight = null,
- ?int $limitMin = null,
- ?int $limitMax = null
+ int $limitMin = 1,
+ int $limitMax = 5,
+ bool $nullable = false
): array {
- $sizes = (object)[
- 'required' => $required ?? $this->required,
- 'minWith' => $minWith ?? $this->minWith,
+ $sizes = (object) [
+ 'minWidth' => $minWidth ?? $this->minWidth,
'minHeight' => $minHeight ?? $this->minHeight,
- 'maxWith' => $maxWith ?? $this->maxWith,
+ 'maxWidth' => $maxWidth ?? $this->maxWidth,
'maxHeight' => $maxHeight ?? $this->maxHeight,
- 'limitMin' => $limitMin ?? $this->limitMin,
- 'limitMax' => $limitMax ?? $this->limitMax
];
return [
- "{$name}" => ($required ? 'required' : 'nullable') . "|array|between:$limitMin,$limitMax",
- "{$name}.*" => [
+ $name => [!$nullable ? 'required' : 'nullable', 'array', "between:{$limitMin},{$limitMax}"],
+ "{$name}Validate" => "required_with:{$name}|array",
+ "{$name}Validate.*" => [
'required',
function (string $attribute, $value, callable $fail) use ($sizes) {
- return $this->validatePicture($attribute, $value, $fail, $sizes);
+ ToolboxHelper::validatePicture($attribute, $value, $fail, $sizes);
}
]
];
}
- /**
- * Validate picture
- *
- * @param string $attribute
- * @param mixed $value
- * @param callback $fail
- * @param object $sizes
- * @return void
- * @phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundBeforeLastUsed
- */
- private function validatePicture(string $attribute, $value, callable $fail, object $sizes)
- {
- if (!File::exists($value)) {
- $fail(trans(":attribute n'existe pas dans le système de fichier"));
- return;
- }
- if (!\in_array(File::mimeType($value), ['image/jpeg', 'image/jpg', 'image/png', 'image/gif'])) {
- $fail(trans(":attribute doit être une image de type 'image/jpeg,image/jpg,image/png,image/gif'"));
- }
- if (!($dimensions = \getimagesize($value)) or !isset($dimensions[0]) or !isset($dimensions[1])) {
- $fail(trans(":attribute impossible de valider les dimensions"));
- } else {
- $width = intval($dimensions[0]);
- $height = intval($dimensions[1]);
-
- $xMessage = trans(
- ":attribute la largeur doit être comprise entre {$sizes->minWith}px et {$sizes->maxWith}px"
- );
- if ($sizes->minWith === $sizes->maxWith) {
- $xMessage = trans(":attribute la largeur doit être de {$sizes->minWith}px");
- }
- $yMessage = trans(
- ":attribute la hauteur doit être comprise entre {$sizes->minWith}px et {$sizes->maxWith}px"
- );
- if ($sizes->minHeight === $sizes->maxHeight) {
- $yMessage = trans(":attribute la hauteur doit être de {$sizes->minWith}px");
- }
-
- if (($width < $sizes->minWith) or ($width > $sizes->maxWith)) {
- $fail($xMessage);
- }
- if (($height < $sizes->minHeight) or ($height > $sizes->maxHeight)) {
- $fail($yMessage);
- }
- } //end if
- }
-
/**
* Merges products pictures fields with request data
*
@@ -189,4 +152,38 @@ trait HasPicture
]);
} //end if
}
+
+ /**
+ * Merges products pictures fields with request data
+ *
+ * @param string $name
+ * @return void
+ */
+ protected function mergePictures(string $name = 'pictures'): void
+ {
+ $pictures = $this->{$name};
+ if (is_array($pictures)) {
+ $this->merge(["{$name}Validate" => []]);
+ foreach ($pictures as $key => $picturePath) {
+ // ! Empty picture.
+ if ($picturePath === 'false') {
+ // * Empty picture and exit
+ $this->merge([$name => []]);
+ return;
+ }
+ $decodedPath = \urldecode($picturePath);
+ $this->merge([
+ "{$name}Validate" => array_merge(
+ $this->{"{$name}Validate"},
+ [\public_path(ltrim($decodedPath, '/'))]
+ )
+ ]);
+ $changedPicture = $this->{$name};
+ $changedPicture[$key] = ltrim($decodedPath, '/');
+ $this->merge([
+ $name => $changedPicture
+ ]);
+ }
+ } //end if
+ }
}
diff --git a/bootstrap/app.php b/bootstrap/app.php
index 037e17d..d3346d4 100644
--- a/bootstrap/app.php
+++ b/bootstrap/app.php
@@ -1,30 +1,30 @@
singleton(
Illuminate\Contracts\Http\Kernel::class,
@@ -41,15 +41,15 @@ $app->singleton(
App\Exceptions\Handler::class
);
-/*
-|--------------------------------------------------------------------------
-| Return The Application
-|--------------------------------------------------------------------------
-|
-| This script returns the application instance. The instance is given to
-| the calling script so we can separate the building of the instances
-| from the actual running of the application and sending responses.
-|
-*/
+/**
+ *--------------------------------------------------------------------------
+ * Return The Application
+ *--------------------------------------------------------------------------
+ *
+ * This script returns the application instance. The instance is given to
+ * the calling script so we can separate the building of the instances
+ * from the actual running of the application and sending responses.
+ *
+ */
return $app;
diff --git a/composer.json b/composer.json
index 1e57606..939bdbb 100644
--- a/composer.json
+++ b/composer.json
@@ -8,42 +8,43 @@
],
"license": "MIT",
"require": {
- "php": "^7.3",
- "diglactic/laravel-breadcrumbs": "^6.1",
+ "php": "^8.3",
+ "24slides/laravel-saml2": "^2.4",
+ "diglactic/laravel-breadcrumbs": "^10.0",
"erusev/parsedown": "^1.7",
- "fruitcake/laravel-cors": "^2.0",
"google/cloud-vision": "^0.25.0",
"guzzlehttp/guzzle": "^7.0.1",
- "kwaadpepper/enum": "^2.1",
- "kwaadpepper/image-resizer": "^0.1.2",
- "laravel/framework": "^8.75",
- "laravel/tinker": "^2.5",
- "laravel/ui": "^3.4",
- "ldc/web-admin-secure-laravel": "^1.0",
- "ldc/web-status-checker-laravel": "^1.0",
+ "kwaadpepper/image-resizer": "^3.1.0",
+ "laravel/framework": "^12.0",
+ "laravel/tinker": "^2.10",
+ "laravel/ui": "^4.0",
"maatwebsite/excel": "^3.1",
"mews/purifier": "^3.3",
- "pion/laravel-chunk-upload": "^1.3",
- "sentry/sentry-laravel": "^3.2",
- "spatie/laravel-mix-preload": "^1.3",
- "usmanhalalit/laracsv": "^2.0"
+ "pion/laravel-chunk-upload": "^1.5",
+ "sentry/sentry-laravel": "^4.3",
+ "stancl/tenancy": "^3.9",
+ "usmanhalalit/laracsv": "^2.0",
+ "uwil/admin-secure-laravel": "^4.0",
+ "uwil/k8s-laravel": "^2.0",
+ "uwil/laravel-common": "^3.1"
},
"require-dev": {
- "facade/ignition": "^2.5",
- "fakerphp/faker": "^1.9.1",
- "kitloong/laravel-migrations-generator": "^6.8",
+ "fakerphp/faker": "^1.23",
+ "kitloong/laravel-migrations-generator": "^7.1",
+ "larastan/larastan": "^3.4",
"laravel/sail": "^1.0.1",
"mockery/mockery": "^1.4.4",
- "nunomaduro/collision": "^5.10",
- "phpunit/phpunit": "^9.5.10",
- "slevomat/coding-standard": "^8.8"
+ "nunomaduro/collision": "^8.6",
+ "phpunit/phpunit": "^11.5.3",
+ "slevomat/coding-standard": "^8.17",
+ "spatie/laravel-ignition": "^2.9"
},
- "repositories": {
- "lab.s-web.fr": {
+ "repositories": [
+ {
"type": "composer",
"url": "https://lab.s-web.fr/api/v4/group/23/-/packages/composer/packages.json"
}
- },
+ ],
"autoload": {
"psr-4": {
"App\\": "app/",
@@ -77,6 +78,12 @@
],
"post-create-project-cmd": [
"@php artisan key:generate --ansi"
+ ],
+ "phpcs": [
+ "./vendor/bin/phpcs"
+ ],
+ "phpstan": [
+ "./vendor/bin/phpstan"
]
},
"extra": {
diff --git a/composer.lock b/composer.lock
index d9a3964..c63aa00 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,40 +4,56 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "664a2cc8c042df6165a351c16c897882",
+ "content-hash": "0eb882c623bc540ee0defb89f0fb2380",
"packages": [
{
- "name": "asm89/stack-cors",
- "version": "v2.1.1",
+ "name": "24slides/laravel-saml2",
+ "version": "2.4.2",
"source": {
"type": "git",
- "url": "https://github.com/asm89/stack-cors.git",
- "reference": "73e5b88775c64ccc0b84fb60836b30dc9d92ac4a"
+ "url": "https://github.com/24Slides/laravel-saml2.git",
+ "reference": "e7f4938586c65fbe1fdd91552c582cac745223b9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/asm89/stack-cors/zipball/73e5b88775c64ccc0b84fb60836b30dc9d92ac4a",
- "reference": "73e5b88775c64ccc0b84fb60836b30dc9d92ac4a",
+ "url": "https://api.github.com/repos/24Slides/laravel-saml2/zipball/e7f4938586c65fbe1fdd91552c582cac745223b9",
+ "reference": "e7f4938586c65fbe1fdd91552c582cac745223b9",
"shasum": ""
},
"require": {
- "php": "^7.2|^8.0",
- "symfony/http-foundation": "^4|^5|^6",
- "symfony/http-kernel": "^4|^5|^6"
+ "ext-openssl": "*",
+ "illuminate/console": "~5.5|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0",
+ "illuminate/database": "~5.5|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0",
+ "illuminate/support": "~5.4|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0",
+ "onelogin/php-saml": "^3.0|^4.0",
+ "php": ">=7.1",
+ "ramsey/uuid": "^3.8|^4.0"
},
"require-dev": {
- "phpunit/phpunit": "^7|^9",
- "squizlabs/php_codesniffer": "^3.5"
+ "mockery/mockery": "^0.9.9",
+ "phpunit/phpunit": "^7.5|^9.0",
+ "squizlabs/php_codesniffer": "^2.3"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "2.1-dev"
+ "laravel": {
+ "aliases": {
+ "Saml2": "Slides\\Saml2\\Facades\\Auth"
+ },
+ "providers": [
+ "Slides\\Saml2\\ServiceProvider"
+ ]
+ },
+ "branch-aliases": {
+ "dev-master": "2.0.8-dev"
}
},
"autoload": {
+ "files": [
+ "src/helpers.php"
+ ],
"psr-4": {
- "Asm89\\Stack\\": "src/"
+ "Slides\\Saml2\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -46,44 +62,46 @@
],
"authors": [
{
- "name": "Alexander",
- "email": "iam.asm89@gmail.com"
+ "name": "Artem Brezhnev",
+ "email": "brezzhnev@gmail.com"
}
],
- "description": "Cross-origin resource sharing library and stack middleware",
- "homepage": "https://github.com/asm89/stack-cors",
+ "description": "SAML2 Service Provider integration to your Laravel 5.4+ application, based on OneLogin toolkit",
+ "homepage": "https://github.com/24slides/laravel-saml2",
"keywords": [
- "cors",
- "stack"
+ "SAML2",
+ "SSO",
+ "laravel",
+ "onelogin",
+ "saml"
],
"support": {
- "issues": "https://github.com/asm89/stack-cors/issues",
- "source": "https://github.com/asm89/stack-cors/tree/v2.1.1"
+ "issues": "https://github.com/24Slides/laravel-saml2/issues",
+ "source": "https://github.com/24Slides/laravel-saml2/tree/2.4.2"
},
- "time": "2022-01-18T09:12:03+00:00"
+ "time": "2025-03-12T12:39:37+00:00"
},
{
"name": "brick/math",
- "version": "0.9.3",
+ "version": "0.12.3",
"source": {
"type": "git",
"url": "https://github.com/brick/math.git",
- "reference": "ca57d18f028f84f777b2168cd1911b0dee2343ae"
+ "reference": "866551da34e9a618e64a819ee1e01c20d8a588ba"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/brick/math/zipball/ca57d18f028f84f777b2168cd1911b0dee2343ae",
- "reference": "ca57d18f028f84f777b2168cd1911b0dee2343ae",
+ "url": "https://api.github.com/repos/brick/math/zipball/866551da34e9a618e64a819ee1e01c20d8a588ba",
+ "reference": "866551da34e9a618e64a819ee1e01c20d8a588ba",
"shasum": ""
},
"require": {
- "ext-json": "*",
- "php": "^7.1 || ^8.0"
+ "php": "^8.1"
},
"require-dev": {
"php-coveralls/php-coveralls": "^2.2",
- "phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.0",
- "vimeo/psalm": "4.9.2"
+ "phpunit/phpunit": "^10.1",
+ "vimeo/psalm": "6.8.8"
},
"type": "library",
"autoload": {
@@ -103,52 +121,55 @@
"arithmetic",
"bigdecimal",
"bignum",
+ "bignumber",
"brick",
- "math"
+ "decimal",
+ "integer",
+ "math",
+ "mathematics",
+ "rational"
],
"support": {
"issues": "https://github.com/brick/math/issues",
- "source": "https://github.com/brick/math/tree/0.9.3"
+ "source": "https://github.com/brick/math/tree/0.12.3"
},
"funding": [
{
"url": "https://github.com/BenMorel",
"type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/brick/math",
- "type": "tidelift"
}
],
- "time": "2021-08-15T20:50:18+00:00"
+ "time": "2025-02-28T13:11:00+00:00"
},
{
- "name": "clue/stream-filter",
- "version": "v1.6.0",
+ "name": "carbonphp/carbon-doctrine-types",
+ "version": "3.2.0",
"source": {
"type": "git",
- "url": "https://github.com/clue/stream-filter.git",
- "reference": "d6169430c7731d8509da7aecd0af756a5747b78e"
+ "url": "https://github.com/CarbonPHP/carbon-doctrine-types.git",
+ "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/clue/stream-filter/zipball/d6169430c7731d8509da7aecd0af756a5747b78e",
- "reference": "d6169430c7731d8509da7aecd0af756a5747b78e",
+ "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/18ba5ddfec8976260ead6e866180bd5d2f71aa1d",
+ "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d",
"shasum": ""
},
"require": {
- "php": ">=5.3"
+ "php": "^8.1"
+ },
+ "conflict": {
+ "doctrine/dbal": "<4.0.0 || >=5.0.0"
},
"require-dev": {
- "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.36"
+ "doctrine/dbal": "^4.0.0",
+ "nesbot/carbon": "^2.71.0 || ^3.0.0",
+ "phpunit/phpunit": "^10.3"
},
"type": "library",
"autoload": {
- "files": [
- "src/functions_include.php"
- ],
"psr-4": {
- "Clue\\StreamFilter\\": "src/"
+ "Carbon\\Doctrine\\": "src/Carbon/Doctrine/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -157,57 +178,137 @@
],
"authors": [
{
- "name": "Christian Lück",
- "email": "christian@clue.engineering"
+ "name": "KyleKatarn",
+ "email": "kylekatarnls@gmail.com"
}
],
- "description": "A simple and modern approach to stream filtering in PHP",
- "homepage": "https://github.com/clue/php-stream-filter",
+ "description": "Types to use Carbon in Doctrine",
"keywords": [
- "bucket brigade",
- "callback",
- "filter",
- "php_user_filter",
- "stream",
- "stream_filter_append",
- "stream_filter_register"
+ "carbon",
+ "date",
+ "datetime",
+ "doctrine",
+ "time"
],
"support": {
- "issues": "https://github.com/clue/stream-filter/issues",
- "source": "https://github.com/clue/stream-filter/tree/v1.6.0"
+ "issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues",
+ "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/3.2.0"
},
"funding": [
{
- "url": "https://clue.engineering/support",
- "type": "custom"
+ "url": "https://github.com/kylekatarnls",
+ "type": "github"
},
{
- "url": "https://github.com/clue",
- "type": "github"
+ "url": "https://opencollective.com/Carbon",
+ "type": "open_collective"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon",
+ "type": "tidelift"
}
],
- "time": "2022-02-21T13:15:14+00:00"
+ "time": "2024-02-09T16:56:22+00:00"
},
{
- "name": "composer/semver",
+ "name": "composer/pcre",
"version": "3.3.2",
"source": {
"type": "git",
- "url": "https://github.com/composer/semver.git",
- "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9"
+ "url": "https://github.com/composer/pcre.git",
+ "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9",
- "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9",
+ "url": "https://api.github.com/repos/composer/pcre/zipball/b2bed4734f0cc156ee1fe9c0da2550420d99a21e",
+ "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4 || ^8.0"
+ },
+ "conflict": {
+ "phpstan/phpstan": "<1.11.10"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.12 || ^2",
+ "phpstan/phpstan-strict-rules": "^1 || ^2",
+ "phpunit/phpunit": "^8 || ^9"
+ },
+ "type": "library",
+ "extra": {
+ "phpstan": {
+ "includes": [
+ "extension.neon"
+ ]
+ },
+ "branch-alias": {
+ "dev-main": "3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Composer\\Pcre\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ }
+ ],
+ "description": "PCRE wrapping library that offers type-safe preg_* replacements.",
+ "keywords": [
+ "PCRE",
+ "preg",
+ "regex",
+ "regular expression"
+ ],
+ "support": {
+ "issues": "https://github.com/composer/pcre/issues",
+ "source": "https://github.com/composer/pcre/tree/3.3.2"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-11-12T16:29:46+00:00"
+ },
+ {
+ "name": "composer/semver",
+ "version": "3.4.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/semver.git",
+ "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/semver/zipball/4313d26ada5e0c4edfbd1dc481a92ff7bff91f12",
+ "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12",
"shasum": ""
},
"require": {
"php": "^5.3.2 || ^7.0 || ^8.0"
},
"require-dev": {
- "phpstan/phpstan": "^1.4",
- "symfony/phpunit-bridge": "^4.2 || ^5"
+ "phpstan/phpstan": "^1.11",
+ "symfony/phpunit-bridge": "^3 || ^7"
},
"type": "library",
"extra": {
@@ -249,9 +350,9 @@
"versioning"
],
"support": {
- "irc": "irc://irc.freenode.org/composer",
+ "irc": "ircs://irc.libera.chat:6697/composer",
"issues": "https://github.com/composer/semver/issues",
- "source": "https://github.com/composer/semver/tree/3.3.2"
+ "source": "https://github.com/composer/semver/tree/3.4.3"
},
"funding": [
{
@@ -267,51 +368,122 @@
"type": "tidelift"
}
],
- "time": "2022-04-01T19:23:25+00:00"
+ "time": "2024-09-19T14:15:21+00:00"
},
{
- "name": "diglactic/laravel-breadcrumbs",
- "version": "v6.1.1",
+ "name": "dflydev/dot-access-data",
+ "version": "v3.0.3",
"source": {
"type": "git",
- "url": "https://github.com/diglactic/laravel-breadcrumbs.git",
- "reference": "8f73674f9c5403625154768f8e123a620fc2d7a5"
+ "url": "https://github.com/dflydev/dflydev-dot-access-data.git",
+ "reference": "a23a2bf4f31d3518f3ecb38660c95715dfead60f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/diglactic/laravel-breadcrumbs/zipball/8f73674f9c5403625154768f8e123a620fc2d7a5",
- "reference": "8f73674f9c5403625154768f8e123a620fc2d7a5",
+ "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/a23a2bf4f31d3518f3ecb38660c95715dfead60f",
+ "reference": "a23a2bf4f31d3518f3ecb38660c95715dfead60f",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^0.12.42",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.3",
+ "scrutinizer/ocular": "1.6.0",
+ "squizlabs/php_codesniffer": "^3.5",
+ "vimeo/psalm": "^4.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Dflydev\\DotAccessData\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Dragonfly Development Inc.",
+ "email": "info@dflydev.com",
+ "homepage": "http://dflydev.com"
+ },
+ {
+ "name": "Beau Simensen",
+ "email": "beau@dflydev.com",
+ "homepage": "http://beausimensen.com"
+ },
+ {
+ "name": "Carlos Frutos",
+ "email": "carlos@kiwing.it",
+ "homepage": "https://github.com/cfrutos"
+ },
+ {
+ "name": "Colin O'Dell",
+ "email": "colinodell@gmail.com",
+ "homepage": "https://www.colinodell.com"
+ }
+ ],
+ "description": "Given a deep data structure, access data by dot notation.",
+ "homepage": "https://github.com/dflydev/dflydev-dot-access-data",
+ "keywords": [
+ "access",
+ "data",
+ "dot",
+ "notation"
+ ],
+ "support": {
+ "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues",
+ "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.3"
+ },
+ "time": "2024-07-08T12:26:09+00:00"
+ },
+ {
+ "name": "diglactic/laravel-breadcrumbs",
+ "version": "v10.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/diglactic/laravel-breadcrumbs.git",
+ "reference": "1bfe5e29aacf88beeab64ae3e860e0f2d8ace36a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/diglactic/laravel-breadcrumbs/zipball/1bfe5e29aacf88beeab64ae3e860e0f2d8ace36a",
+ "reference": "1bfe5e29aacf88beeab64ae3e860e0f2d8ace36a",
"shasum": ""
},
"require": {
"facade/ignition-contracts": "^1.0",
- "laravel/framework": "^6.0 || ^7.0 || ^8.0",
- "php": "^7.2 || ^8.0"
+ "laravel/framework": "^10.0 || ^11.0 || ^12.0",
+ "php": "^8.1"
},
"conflict": {
"davejamesmiller/laravel-breadcrumbs": "*"
},
"require-dev": {
- "orchestra/testbench": "^4.10 || ^5.9 || ^6.4",
- "php-coveralls/php-coveralls": "^2.4",
- "phpunit/phpunit": "^8.5 || ^9.4",
- "spatie/phpunit-snapshot-assertions": "^2.2 || ^4.2"
+ "orchestra/testbench": "^8.0 || ^9.0 || ^10.0",
+ "phpunit/phpunit": "^10.5 || ^11.5",
+ "spatie/phpunit-snapshot-assertions": "^5.1"
},
"type": "library",
"extra": {
"laravel": {
- "providers": [
- "Diglactic\\Breadcrumbs\\ServiceProvider"
- ],
"aliases": {
"Breadcrumbs": "Diglactic\\Breadcrumbs\\Breadcrumbs"
- }
+ },
+ "providers": [
+ "Diglactic\\Breadcrumbs\\ServiceProvider"
+ ]
}
},
"autoload": {
- "files": [
- "src/deprecated.php"
- ],
"psr-4": {
"Diglactic\\Breadcrumbs\\": "src/"
}
@@ -339,22 +511,22 @@
],
"support": {
"issues": "https://github.com/diglactic/laravel-breadcrumbs/issues",
- "source": "https://github.com/diglactic/laravel-breadcrumbs/tree/v6.1.1"
+ "source": "https://github.com/diglactic/laravel-breadcrumbs/tree/v10.0.0"
},
- "time": "2021-04-12T18:06:07+00:00"
+ "time": "2025-02-25T05:44:07+00:00"
},
{
"name": "doctrine/inflector",
- "version": "2.0.8",
+ "version": "2.0.10",
"source": {
"type": "git",
"url": "https://github.com/doctrine/inflector.git",
- "reference": "f9301a5b2fb1216b2b08f02ba04dc45423db6bff"
+ "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/inflector/zipball/f9301a5b2fb1216b2b08f02ba04dc45423db6bff",
- "reference": "f9301a5b2fb1216b2b08f02ba04dc45423db6bff",
+ "url": "https://api.github.com/repos/doctrine/inflector/zipball/5817d0659c5b50c9b950feb9af7b9668e2c436bc",
+ "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc",
"shasum": ""
},
"require": {
@@ -416,7 +588,7 @@
],
"support": {
"issues": "https://github.com/doctrine/inflector/issues",
- "source": "https://github.com/doctrine/inflector/tree/2.0.8"
+ "source": "https://github.com/doctrine/inflector/tree/2.0.10"
},
"funding": [
{
@@ -432,35 +604,36 @@
"type": "tidelift"
}
],
- "time": "2023-06-16T13:40:37+00:00"
+ "time": "2024-02-18T20:23:39+00:00"
},
{
"name": "doctrine/lexer",
- "version": "1.2.3",
+ "version": "3.0.1",
"source": {
"type": "git",
"url": "https://github.com/doctrine/lexer.git",
- "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229"
+ "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229",
- "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229",
+ "url": "https://api.github.com/repos/doctrine/lexer/zipball/31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd",
+ "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd",
"shasum": ""
},
"require": {
- "php": "^7.1 || ^8.0"
+ "php": "^8.1"
},
"require-dev": {
- "doctrine/coding-standard": "^9.0",
- "phpstan/phpstan": "^1.3",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "vimeo/psalm": "^4.11"
+ "doctrine/coding-standard": "^12",
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^10.5",
+ "psalm/plugin-phpunit": "^0.18.3",
+ "vimeo/psalm": "^5.21"
},
"type": "library",
"autoload": {
"psr-4": {
- "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer"
+ "Doctrine\\Common\\Lexer\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -492,7 +665,7 @@
],
"support": {
"issues": "https://github.com/doctrine/lexer/issues",
- "source": "https://github.com/doctrine/lexer/tree/1.2.3"
+ "source": "https://github.com/doctrine/lexer/tree/3.0.1"
},
"funding": [
{
@@ -508,20 +681,20 @@
"type": "tidelift"
}
],
- "time": "2022-02-28T11:07:21+00:00"
+ "time": "2024-02-05T11:56:58+00:00"
},
{
"name": "dragonmantank/cron-expression",
- "version": "v3.3.3",
+ "version": "v3.4.0",
"source": {
"type": "git",
"url": "https://github.com/dragonmantank/cron-expression.git",
- "reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a"
+ "reference": "8c784d071debd117328803d86b2097615b457500"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/adfb1f505deb6384dc8b39804c5065dd3c8c8c0a",
- "reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a",
+ "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/8c784d071debd117328803d86b2097615b457500",
+ "reference": "8c784d071debd117328803d86b2097615b457500",
"shasum": ""
},
"require": {
@@ -534,10 +707,14 @@
"require-dev": {
"phpstan/extension-installer": "^1.0",
"phpstan/phpstan": "^1.0",
- "phpstan/phpstan-webmozart-assert": "^1.0",
"phpunit/phpunit": "^7.0|^8.0|^9.0"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.x-dev"
+ }
+ },
"autoload": {
"psr-4": {
"Cron\\": "src/Cron/"
@@ -561,7 +738,7 @@
],
"support": {
"issues": "https://github.com/dragonmantank/cron-expression/issues",
- "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.3"
+ "source": "https://github.com/dragonmantank/cron-expression/tree/v3.4.0"
},
"funding": [
{
@@ -569,31 +746,126 @@
"type": "github"
}
],
- "time": "2023-08-10T19:36:49+00:00"
+ "time": "2024-10-09T13:47:03+00:00"
},
{
- "name": "egulias/email-validator",
- "version": "2.1.25",
+ "name": "dxw/cidr",
+ "version": "v3.2.0",
"source": {
"type": "git",
- "url": "https://github.com/egulias/EmailValidator.git",
- "reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4"
+ "url": "https://github.com/dxw/cidr.git",
+ "reference": "b07dd398f5a93441f57a687982bc7d0ffb96729a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/0dbf5d78455d4d6a41d186da50adc1122ec066f4",
- "reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4",
+ "url": "https://api.github.com/repos/dxw/cidr/zipball/b07dd398f5a93441f57a687982bc7d0ffb96729a",
+ "reference": "b07dd398f5a93441f57a687982bc7d0ffb96729a",
"shasum": ""
},
"require": {
- "doctrine/lexer": "^1.0.1",
- "php": ">=5.5",
- "symfony/polyfill-intl-idn": "^1.10"
+ "dxw/result": "^1.0",
+ "php": "^7.4||^8.1",
+ "phpseclib/phpseclib": "^2.0"
},
"require-dev": {
- "dominicsayers/isemail": "^3.0.7",
- "phpunit/phpunit": "^4.8.36|^7.5.15",
- "satooshi/php-coveralls": "^1.0.1"
+ "dxw/php-cs-fixer-config": "^2.0",
+ "kahlan/kahlan": "^5.2",
+ "vimeo/psalm": "^5.14"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Dxw\\CIDR\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "dxw",
+ "email": "team@govpress.com",
+ "homepage": "https://www.dxw.com"
+ }
+ ],
+ "description": "IP address matching with CIDR ranges",
+ "homepage": "https://github.com/dxw/cidr",
+ "support": {
+ "issues": "https://github.com/dxw/cidr/issues",
+ "source": "https://github.com/dxw/cidr/tree/v3.2.0"
+ },
+ "time": "2023-08-14T10:14:13+00:00"
+ },
+ {
+ "name": "dxw/result",
+ "version": "v1.0.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/dxw/result.git",
+ "reference": "d554bb10f0cf74056ccd26526688e194652eef79"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/dxw/result/zipball/d554bb10f0cf74056ccd26526688e194652eef79",
+ "reference": "d554bb10f0cf74056ccd26526688e194652eef79",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4||^8.1"
+ },
+ "require-dev": {
+ "dxw/php-cs-fixer-config": "^2.1",
+ "kahlan/kahlan": "^5.2",
+ "vimeo/psalm": "^4"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Dxw\\Result\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mallory Adams",
+ "email": "mallory@dxw.com",
+ "homepage": "https://www.dxw.com/"
+ }
+ ],
+ "description": "Result values",
+ "homepage": "https://github.com/dxw/result",
+ "support": {
+ "issues": "https://github.com/dxw/result/issues",
+ "source": "https://github.com/dxw/result/tree/v1.0.6"
+ },
+ "time": "2023-07-19T11:14:28+00:00"
+ },
+ {
+ "name": "egulias/email-validator",
+ "version": "4.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/egulias/EmailValidator.git",
+ "reference": "d42c8731f0624ad6bdc8d3e5e9a4524f68801cfa"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/d42c8731f0624ad6bdc8d3e5e9a4524f68801cfa",
+ "reference": "d42c8731f0624ad6bdc8d3e5e9a4524f68801cfa",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/lexer": "^2.0 || ^3.0",
+ "php": ">=8.1",
+ "symfony/polyfill-intl-idn": "^1.26"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.2",
+ "vimeo/psalm": "^5.12"
},
"suggest": {
"ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation"
@@ -601,7 +873,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.1.x-dev"
+ "dev-master": "4.0.x-dev"
}
},
"autoload": {
@@ -629,7 +901,7 @@
],
"support": {
"issues": "https://github.com/egulias/EmailValidator/issues",
- "source": "https://github.com/egulias/EmailValidator/tree/2.1.25"
+ "source": "https://github.com/egulias/EmailValidator/tree/4.0.4"
},
"funding": [
{
@@ -637,7 +909,7 @@
"type": "github"
}
],
- "time": "2020-12-29T14:50:06+00:00"
+ "time": "2025-03-06T22:45:56+00:00"
},
{
"name": "erusev/parsedown",
@@ -691,20 +963,20 @@
},
{
"name": "ezyang/htmlpurifier",
- "version": "v4.16.0",
+ "version": "v4.18.0",
"source": {
"type": "git",
"url": "https://github.com/ezyang/htmlpurifier.git",
- "reference": "523407fb06eb9e5f3d59889b3978d5bfe94299c8"
+ "reference": "cb56001e54359df7ae76dc522d08845dc741621b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/523407fb06eb9e5f3d59889b3978d5bfe94299c8",
- "reference": "523407fb06eb9e5f3d59889b3978d5bfe94299c8",
+ "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/cb56001e54359df7ae76dc522d08845dc741621b",
+ "reference": "cb56001e54359df7ae76dc522d08845dc741621b",
"shasum": ""
},
"require": {
- "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0"
+ "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0"
},
"require-dev": {
"cerdic/css-tidy": "^1.7 || ^2.0",
@@ -746,9 +1018,9 @@
],
"support": {
"issues": "https://github.com/ezyang/htmlpurifier/issues",
- "source": "https://github.com/ezyang/htmlpurifier/tree/v4.16.0"
+ "source": "https://github.com/ezyang/htmlpurifier/tree/v4.18.0"
},
- "time": "2022-09-18T07:06:19+00:00"
+ "time": "2024-11-01T03:51:45+00:00"
},
{
"name": "facade/ignition-contracts",
@@ -805,26 +1077,26 @@
},
{
"name": "firebase/php-jwt",
- "version": "v6.4.0",
+ "version": "v6.11.1",
"source": {
"type": "git",
"url": "https://github.com/firebase/php-jwt.git",
- "reference": "4dd1e007f22a927ac77da5a3fbb067b42d3bc224"
+ "reference": "d1e91ecf8c598d073d0995afa8cd5c75c6e19e66"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/firebase/php-jwt/zipball/4dd1e007f22a927ac77da5a3fbb067b42d3bc224",
- "reference": "4dd1e007f22a927ac77da5a3fbb067b42d3bc224",
+ "url": "https://api.github.com/repos/firebase/php-jwt/zipball/d1e91ecf8c598d073d0995afa8cd5c75c6e19e66",
+ "reference": "d1e91ecf8c598d073d0995afa8cd5c75c6e19e66",
"shasum": ""
},
"require": {
- "php": "^7.1||^8.0"
+ "php": "^8.0"
},
"require-dev": {
- "guzzlehttp/guzzle": "^6.5||^7.4",
- "phpspec/prophecy-phpunit": "^1.1",
- "phpunit/phpunit": "^7.5||^9.5",
- "psr/cache": "^1.0||^2.0",
+ "guzzlehttp/guzzle": "^7.4",
+ "phpspec/prophecy-phpunit": "^2.0",
+ "phpunit/phpunit": "^9.5",
+ "psr/cache": "^2.0||^3.0",
"psr/http-client": "^1.0",
"psr/http-factory": "^1.0"
},
@@ -862,45 +1134,37 @@
],
"support": {
"issues": "https://github.com/firebase/php-jwt/issues",
- "source": "https://github.com/firebase/php-jwt/tree/v6.4.0"
+ "source": "https://github.com/firebase/php-jwt/tree/v6.11.1"
},
- "time": "2023-02-09T21:01:23+00:00"
+ "time": "2025-04-09T20:32:01+00:00"
},
{
- "name": "fruitcake/laravel-cors",
- "version": "v2.2.0",
+ "name": "fruitcake/php-cors",
+ "version": "v1.3.0",
"source": {
"type": "git",
- "url": "https://github.com/fruitcake/laravel-cors.git",
- "reference": "783a74f5e3431d7b9805be8afb60fd0a8f743534"
+ "url": "https://github.com/fruitcake/php-cors.git",
+ "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/fruitcake/laravel-cors/zipball/783a74f5e3431d7b9805be8afb60fd0a8f743534",
- "reference": "783a74f5e3431d7b9805be8afb60fd0a8f743534",
+ "url": "https://api.github.com/repos/fruitcake/php-cors/zipball/3d158f36e7875e2f040f37bc0573956240a5a38b",
+ "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b",
"shasum": ""
},
"require": {
- "asm89/stack-cors": "^2.0.1",
- "illuminate/contracts": "^6|^7|^8|^9",
- "illuminate/support": "^6|^7|^8|^9",
- "php": ">=7.2"
+ "php": "^7.4|^8.0",
+ "symfony/http-foundation": "^4.4|^5.4|^6|^7"
},
"require-dev": {
- "laravel/framework": "^6|^7.24|^8",
- "orchestra/testbench-dusk": "^4|^5|^6|^7",
- "phpunit/phpunit": "^6|^7|^8|^9",
+ "phpstan/phpstan": "^1.4",
+ "phpunit/phpunit": "^9",
"squizlabs/php_codesniffer": "^3.5"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.1-dev"
- },
- "laravel": {
- "providers": [
- "Fruitcake\\Cors\\CorsServiceProvider"
- ]
+ "dev-master": "1.2-dev"
}
},
"autoload": {
@@ -918,20 +1182,20 @@
"homepage": "https://fruitcake.nl"
},
{
- "name": "Barry vd. Heuvel",
+ "name": "Barryvdh",
"email": "barryvdh@gmail.com"
}
],
- "description": "Adds CORS (Cross-Origin Resource Sharing) headers support in your Laravel application",
+ "description": "Cross-origin resource sharing library for the Symfony HttpFoundation",
+ "homepage": "https://github.com/fruitcake/php-cors",
"keywords": [
- "api",
"cors",
- "crossdomain",
- "laravel"
+ "laravel",
+ "symfony"
],
"support": {
- "issues": "https://github.com/fruitcake/laravel-cors/issues",
- "source": "https://github.com/fruitcake/laravel-cors/tree/v2.2.0"
+ "issues": "https://github.com/fruitcake/php-cors/issues",
+ "source": "https://github.com/fruitcake/php-cors/tree/v1.3.0"
},
"funding": [
{
@@ -943,39 +1207,41 @@
"type": "github"
}
],
- "abandoned": true,
- "time": "2022-02-23T14:25:13+00:00"
+ "time": "2023-10-12T05:21:21+00:00"
},
{
"name": "google/auth",
- "version": "v1.26.0",
+ "version": "v1.47.0",
"source": {
"type": "git",
"url": "https://github.com/googleapis/google-auth-library-php.git",
- "reference": "f1f0d0319e2e7750ebfaa523c78819792a9ed9f7"
+ "reference": "d6389aae7c009daceaa8da9b7942d8df6969f6d9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/f1f0d0319e2e7750ebfaa523c78819792a9ed9f7",
- "reference": "f1f0d0319e2e7750ebfaa523c78819792a9ed9f7",
+ "url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/d6389aae7c009daceaa8da9b7942d8df6969f6d9",
+ "reference": "d6389aae7c009daceaa8da9b7942d8df6969f6d9",
"shasum": ""
},
"require": {
- "firebase/php-jwt": "^5.5||^6.0",
- "guzzlehttp/guzzle": "^6.2.1|^7.0",
- "guzzlehttp/psr7": "^1.7|^2.0",
- "php": "^7.1||^8.0",
- "psr/cache": "^1.0|^2.0|^3.0",
- "psr/http-message": "^1.0"
+ "firebase/php-jwt": "^6.0",
+ "guzzlehttp/guzzle": "^7.4.5",
+ "guzzlehttp/psr7": "^2.4.5",
+ "php": "^8.0",
+ "psr/cache": "^2.0||^3.0",
+ "psr/http-message": "^1.1||^2.0",
+ "psr/log": "^3.0"
},
"require-dev": {
- "guzzlehttp/promises": "0.1.1|^1.3",
- "kelvinmo/simplejwt": "0.7.0",
- "phpseclib/phpseclib": "^2.0.31||^3.0",
- "phpspec/prophecy-phpunit": "^1.1||^2.0",
- "phpunit/phpunit": "^7.5||^9.0.0",
+ "guzzlehttp/promises": "^2.0",
+ "kelvinmo/simplejwt": "0.7.1",
+ "phpseclib/phpseclib": "^3.0.35",
+ "phpspec/prophecy-phpunit": "^2.1",
+ "phpunit/phpunit": "^9.6",
"sebastian/comparator": ">=1.2.3",
- "squizlabs/php_codesniffer": "^3.5"
+ "squizlabs/php_codesniffer": "^3.5",
+ "symfony/process": "^6.0||^7.0",
+ "webmozart/assert": "^1.11"
},
"suggest": {
"phpseclib/phpseclib": "May be used in place of OpenSSL for signing strings or for token management. Please require version ^2."
@@ -991,53 +1257,53 @@
"Apache-2.0"
],
"description": "Google Auth Library for PHP",
- "homepage": "http://github.com/google/google-auth-library-php",
+ "homepage": "https://github.com/google/google-auth-library-php",
"keywords": [
"Authentication",
"google",
"oauth2"
],
"support": {
- "docs": "https://googleapis.github.io/google-auth-library-php/main/",
+ "docs": "https://cloud.google.com/php/docs/reference/auth/latest",
"issues": "https://github.com/googleapis/google-auth-library-php/issues",
- "source": "https://github.com/googleapis/google-auth-library-php/tree/v1.26.0"
+ "source": "https://github.com/googleapis/google-auth-library-php/tree/v1.47.0"
},
- "time": "2023-04-05T15:11:57+00:00"
+ "time": "2025-04-15T21:47:20+00:00"
},
{
"name": "google/cloud-core",
- "version": "v1.49.4",
+ "version": "v1.62.3",
"source": {
"type": "git",
"url": "https://github.com/googleapis/google-cloud-php-core.git",
- "reference": "6723a3fde6cc7a307a21ddbf7fce9cf6fab61833"
+ "reference": "0c19d76e7f3b6810c4f2cc1330c693af2681c601"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/googleapis/google-cloud-php-core/zipball/6723a3fde6cc7a307a21ddbf7fce9cf6fab61833",
- "reference": "6723a3fde6cc7a307a21ddbf7fce9cf6fab61833",
+ "url": "https://api.github.com/repos/googleapis/google-cloud-php-core/zipball/0c19d76e7f3b6810c4f2cc1330c693af2681c601",
+ "reference": "0c19d76e7f3b6810c4f2cc1330c693af2681c601",
"shasum": ""
},
"require": {
- "google/auth": "^1.18",
- "guzzlehttp/guzzle": "^5.3|^6.5.7|^7.4.4",
- "guzzlehttp/promises": "^1.3",
- "guzzlehttp/psr7": "^1.7|^2.0",
- "monolog/monolog": "^1.1|^2.0|^3.0",
- "php": ">=5.6",
- "psr/http-message": "^1.0",
- "rize/uri-template": "~0.3"
+ "google/auth": "^1.34",
+ "google/gax": "^1.36.0",
+ "guzzlehttp/guzzle": "^6.5.8||^7.4.4",
+ "guzzlehttp/promises": "^1.4||^2.0",
+ "guzzlehttp/psr7": "^2.6",
+ "monolog/monolog": "^2.9||^3.0",
+ "php": "^8.0",
+ "psr/http-message": "^1.0||^2.0",
+ "rize/uri-template": "~0.3||~0.4"
},
"require-dev": {
"erusev/parsedown": "^1.6",
- "google/cloud-common-protos": "^0.3",
- "google/gax": "^1.9",
+ "google/cloud-common-protos": "~0.5",
"opis/closure": "^3",
- "phpdocumentor/reflection": "^3.0||^4.0||^5.3",
- "phpspec/prophecy": "^1.10.3",
- "phpunit/phpunit": "^4.8|^5.0|^8.0",
- "squizlabs/php_codesniffer": "2.*",
- "yoast/phpunit-polyfills": "^1.0"
+ "phpdocumentor/reflection": "^5.3.3||^6.0",
+ "phpdocumentor/reflection-docblock": "^5.3",
+ "phpspec/prophecy-phpunit": "^2.0",
+ "phpunit/phpunit": "^9.0",
+ "squizlabs/php_codesniffer": "2.*"
},
"suggest": {
"opis/closure": "May be used to serialize closures to process jobs in the batch daemon. Please require version ^3.",
@@ -1050,9 +1316,9 @@
"extra": {
"component": {
"id": "cloud-core",
- "target": "googleapis/google-cloud-php-core.git",
"path": "Core",
- "entry": "src/ServiceBuilder.php"
+ "entry": "src/ServiceBuilder.php",
+ "target": "googleapis/google-cloud-php-core.git"
}
},
"autoload": {
@@ -1066,9 +1332,9 @@
],
"description": "Google Cloud PHP shared dependency, providing functionality useful to all components.",
"support": {
- "source": "https://github.com/googleapis/google-cloud-php-core/tree/v1.49.4"
+ "source": "https://github.com/googleapis/google-cloud-php-core/tree/v1.62.3"
},
- "time": "2023-04-07T21:48:59+00:00"
+ "time": "2025-05-20T19:49:54+00:00"
},
{
"name": "google/cloud-vision",
@@ -1104,9 +1370,9 @@
"extra": {
"component": {
"id": "cloud-vision",
- "target": "googleapis/google-cloud-php-vision.git",
"path": "Vision",
- "entry": "src/VisionClient.php"
+ "entry": "src/VisionClient.php",
+ "target": "googleapis/google-cloud-php-vision.git"
}
},
"autoload": {
@@ -1127,26 +1393,34 @@
},
{
"name": "google/common-protos",
- "version": "v3.2.0",
+ "version": "4.12.1",
"source": {
"type": "git",
"url": "https://github.com/googleapis/common-protos-php.git",
- "reference": "57d4ad36cc48cc0369123042908013ef2a86bb98"
+ "reference": "70c4eb1abab5484a23c17a43b0d455259f5d8c1b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/googleapis/common-protos-php/zipball/57d4ad36cc48cc0369123042908013ef2a86bb98",
- "reference": "57d4ad36cc48cc0369123042908013ef2a86bb98",
+ "url": "https://api.github.com/repos/googleapis/common-protos-php/zipball/70c4eb1abab5484a23c17a43b0d455259f5d8c1b",
+ "reference": "70c4eb1abab5484a23c17a43b0d455259f5d8c1b",
"shasum": ""
},
"require": {
- "google/protobuf": "^3.6.1"
+ "google/protobuf": "^v3.25.3||^4.26.1",
+ "php": "^8.0"
},
"require-dev": {
- "phpunit/phpunit": "^4.8.36||^8.5",
- "sami/sami": "*"
+ "phpunit/phpunit": "^9.6"
},
"type": "library",
+ "extra": {
+ "component": {
+ "id": "common-protos",
+ "path": "CommonProtos",
+ "entry": "README.md",
+ "target": "googleapis/common-protos-php.git"
+ }
+ },
"autoload": {
"psr-4": {
"Google\\Api\\": "src/Api",
@@ -1172,44 +1446,44 @@
"google"
],
"support": {
- "issues": "https://github.com/googleapis/common-protos-php/issues",
- "source": "https://github.com/googleapis/common-protos-php/tree/v3.2.0"
+ "source": "https://github.com/googleapis/common-protos-php/tree/v4.12.1"
},
- "time": "2023-01-12T16:51:46+00:00"
+ "time": "2025-05-20T19:49:54+00:00"
},
{
"name": "google/gax",
- "version": "v1.19.1",
+ "version": "v1.36.1",
"source": {
"type": "git",
"url": "https://github.com/googleapis/gax-php.git",
- "reference": "30f6b307faa9858bf58d967664467098dbbc354f"
+ "reference": "afdac3bc38a3b17d70668115d7b1a97289ac4d72"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/googleapis/gax-php/zipball/30f6b307faa9858bf58d967664467098dbbc354f",
- "reference": "30f6b307faa9858bf58d967664467098dbbc354f",
+ "url": "https://api.github.com/repos/googleapis/gax-php/zipball/afdac3bc38a3b17d70668115d7b1a97289ac4d72",
+ "reference": "afdac3bc38a3b17d70668115d7b1a97289ac4d72",
"shasum": ""
},
"require": {
- "google/auth": "1.19.1||^1.25.0",
- "google/common-protos": "^1.3.1||^2.0||^3.0",
- "google/grpc-gcp": "^0.2",
- "google/longrunning": "^0.2",
- "google/protobuf": "^3.21.4",
+ "google/auth": "^1.45",
+ "google/common-protos": "^4.4",
+ "google/grpc-gcp": "^0.4",
+ "google/longrunning": "~0.4",
+ "google/protobuf": "^v3.25.3||^4.26.1",
"grpc/grpc": "^1.13",
- "guzzlehttp/promises": "^1.3",
- "guzzlehttp/psr7": "^1.7.0||^2",
- "php": ">=7.0"
+ "guzzlehttp/promises": "^2.0",
+ "guzzlehttp/psr7": "^2.0",
+ "php": "^8.0",
+ "ramsey/uuid": "^4.0"
},
"conflict": {
"ext-protobuf": "<3.7.0"
},
"require-dev": {
- "phpspec/prophecy": "^1.10",
- "phpunit/phpunit": "^5.5||^8.5",
- "squizlabs/php_codesniffer": "3.*",
- "yoast/phpunit-polyfills": "^1.0"
+ "phpspec/prophecy-phpunit": "^2.1",
+ "phpstan/phpstan": "^2.0",
+ "phpunit/phpunit": "^9.6",
+ "squizlabs/php_codesniffer": "3.*"
},
"type": "library",
"autoload": {
@@ -1229,34 +1503,34 @@
],
"support": {
"issues": "https://github.com/googleapis/gax-php/issues",
- "source": "https://github.com/googleapis/gax-php/tree/v1.19.1"
+ "source": "https://github.com/googleapis/gax-php/tree/v1.36.1"
},
- "time": "2023-03-16T19:58:19+00:00"
+ "time": "2025-05-20T19:50:43+00:00"
},
{
"name": "google/grpc-gcp",
- "version": "v0.2.1",
+ "version": "v0.4.1",
"source": {
"type": "git",
"url": "https://github.com/GoogleCloudPlatform/grpc-gcp-php.git",
- "reference": "899d0112812a812df7692617a59f4076f0d01719"
+ "reference": "e585b7721bbe806ef45b5c52ae43dfc2bff89968"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/GoogleCloudPlatform/grpc-gcp-php/zipball/899d0112812a812df7692617a59f4076f0d01719",
- "reference": "899d0112812a812df7692617a59f4076f0d01719",
+ "url": "https://api.github.com/repos/GoogleCloudPlatform/grpc-gcp-php/zipball/e585b7721bbe806ef45b5c52ae43dfc2bff89968",
+ "reference": "e585b7721bbe806ef45b5c52ae43dfc2bff89968",
"shasum": ""
},
"require": {
"google/auth": "^1.3",
- "google/protobuf": "^v3.3.0",
+ "google/protobuf": "^v3.25.3||^4.26.1",
"grpc/grpc": "^v1.13.0",
- "php": ">=5.5.0",
+ "php": "^8.0",
"psr/cache": "^1.0.1||^2.0.0||^3.0.0"
},
"require-dev": {
"google/cloud-spanner": "^1.7",
- "phpunit/phpunit": "4.8.36"
+ "phpunit/phpunit": "^9.0"
},
"type": "library",
"autoload": {
@@ -1274,26 +1548,26 @@
"description": "gRPC GCP library for channel management",
"support": {
"issues": "https://github.com/GoogleCloudPlatform/grpc-gcp-php/issues",
- "source": "https://github.com/GoogleCloudPlatform/grpc-gcp-php/tree/v0.2.1"
+ "source": "https://github.com/GoogleCloudPlatform/grpc-gcp-php/tree/v0.4.1"
},
- "time": "2022-10-11T15:54:47+00:00"
+ "time": "2025-02-19T21:53:22+00:00"
},
{
"name": "google/longrunning",
- "version": "v0.2.6",
+ "version": "0.4.7",
"source": {
"type": "git",
"url": "https://github.com/googleapis/php-longrunning.git",
- "reference": "9689b4db54cf4cf8186118d9d59aa9ba35bb5842"
+ "reference": "624cabb874c10e5ddc9034c999f724894b70a3d3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/googleapis/php-longrunning/zipball/9689b4db54cf4cf8186118d9d59aa9ba35bb5842",
- "reference": "9689b4db54cf4cf8186118d9d59aa9ba35bb5842",
+ "url": "https://api.github.com/repos/googleapis/php-longrunning/zipball/624cabb874c10e5ddc9034c999f724894b70a3d3",
+ "reference": "624cabb874c10e5ddc9034c999f724894b70a3d3",
"shasum": ""
},
"require-dev": {
- "google/gax": "^1.13.0",
+ "google/gax": "^1.36.0",
"phpunit/phpunit": "^9.0"
},
"type": "library",
@@ -1318,22 +1592,22 @@
],
"description": "Google LongRunning Client for PHP",
"support": {
- "source": "https://github.com/googleapis/php-longrunning/tree/v0.2.6"
+ "source": "https://github.com/googleapis/php-longrunning/tree/v0.4.7"
},
- "time": "2023-04-21T14:12:59+00:00"
+ "time": "2025-01-24T21:24:06+00:00"
},
{
"name": "google/protobuf",
- "version": "v3.24.1",
+ "version": "v4.31.0",
"source": {
"type": "git",
"url": "https://github.com/protocolbuffers/protobuf-php.git",
- "reference": "5c3a6828e1aa64fdbb1748ed60b9f0366d897a92"
+ "reference": "d59e31ce4bf0e4b48728e90c4d880839edb5be07"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/protocolbuffers/protobuf-php/zipball/5c3a6828e1aa64fdbb1748ed60b9f0366d897a92",
- "reference": "5c3a6828e1aa64fdbb1748ed60b9f0366d897a92",
+ "url": "https://api.github.com/repos/protocolbuffers/protobuf-php/zipball/d59e31ce4bf0e4b48728e90c4d880839edb5be07",
+ "reference": "d59e31ce4bf0e4b48728e90c4d880839edb5be07",
"shasum": ""
},
"require": {
@@ -1362,30 +1636,30 @@
"proto"
],
"support": {
- "source": "https://github.com/protocolbuffers/protobuf-php/tree/v3.24.1"
+ "source": "https://github.com/protocolbuffers/protobuf-php/tree/v4.31.0"
},
- "time": "2023-08-18T19:38:44+00:00"
+ "time": "2025-05-14T16:17:23+00:00"
},
{
"name": "graham-campbell/result-type",
- "version": "v1.1.1",
+ "version": "v1.1.3",
"source": {
"type": "git",
"url": "https://github.com/GrahamCampbell/Result-Type.git",
- "reference": "672eff8cf1d6fe1ef09ca0f89c4b287d6a3eb831"
+ "reference": "3ba905c11371512af9d9bdd27d99b782216b6945"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/672eff8cf1d6fe1ef09ca0f89c4b287d6a3eb831",
- "reference": "672eff8cf1d6fe1ef09ca0f89c4b287d6a3eb831",
+ "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/3ba905c11371512af9d9bdd27d99b782216b6945",
+ "reference": "3ba905c11371512af9d9bdd27d99b782216b6945",
"shasum": ""
},
"require": {
"php": "^7.2.5 || ^8.0",
- "phpoption/phpoption": "^1.9.1"
+ "phpoption/phpoption": "^1.9.3"
},
"require-dev": {
- "phpunit/phpunit": "^8.5.32 || ^9.6.3 || ^10.0.12"
+ "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28"
},
"type": "library",
"autoload": {
@@ -1414,7 +1688,7 @@
],
"support": {
"issues": "https://github.com/GrahamCampbell/Result-Type/issues",
- "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.1"
+ "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.3"
},
"funding": [
{
@@ -1426,7 +1700,7 @@
"type": "tidelift"
}
],
- "time": "2023-02-25T20:23:15+00:00"
+ "time": "2024-07-20T21:45:45+00:00"
},
{
"name": "grpc/grpc",
@@ -1474,22 +1748,22 @@
},
{
"name": "guzzlehttp/guzzle",
- "version": "7.7.0",
+ "version": "7.9.3",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle.git",
- "reference": "fb7566caccf22d74d1ab270de3551f72a58399f5"
+ "reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/guzzle/zipball/fb7566caccf22d74d1ab270de3551f72a58399f5",
- "reference": "fb7566caccf22d74d1ab270de3551f72a58399f5",
+ "url": "https://api.github.com/repos/guzzle/guzzle/zipball/7b2f29fe81dc4da0ca0ea7d42107a0845946ea77",
+ "reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77",
"shasum": ""
},
"require": {
"ext-json": "*",
- "guzzlehttp/promises": "^1.5.3 || ^2.0",
- "guzzlehttp/psr7": "^1.9.1 || ^2.4.5",
+ "guzzlehttp/promises": "^1.5.3 || ^2.0.3",
+ "guzzlehttp/psr7": "^2.7.0",
"php": "^7.2.5 || ^8.0",
"psr/http-client": "^1.0",
"symfony/deprecation-contracts": "^2.2 || ^3.0"
@@ -1498,11 +1772,11 @@
"psr/http-client-implementation": "1.0"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.8.1",
+ "bamarni/composer-bin-plugin": "^1.8.2",
"ext-curl": "*",
- "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999",
+ "guzzle/client-integration-tests": "3.0.2",
"php-http/message-factory": "^1.1",
- "phpunit/phpunit": "^8.5.29 || ^9.5.23",
+ "phpunit/phpunit": "^8.5.39 || ^9.6.20",
"psr/log": "^1.1 || ^2.0 || ^3.0"
},
"suggest": {
@@ -1580,7 +1854,7 @@
],
"support": {
"issues": "https://github.com/guzzle/guzzle/issues",
- "source": "https://github.com/guzzle/guzzle/tree/7.7.0"
+ "source": "https://github.com/guzzle/guzzle/tree/7.9.3"
},
"funding": [
{
@@ -1596,33 +1870,37 @@
"type": "tidelift"
}
],
- "time": "2023-05-21T14:04:53+00:00"
+ "time": "2025-03-27T13:37:11+00:00"
},
{
"name": "guzzlehttp/promises",
- "version": "1.5.3",
+ "version": "2.2.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/promises.git",
- "reference": "67ab6e18aaa14d753cc148911d273f6e6cb6721e"
+ "reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/promises/zipball/67ab6e18aaa14d753cc148911d273f6e6cb6721e",
- "reference": "67ab6e18aaa14d753cc148911d273f6e6cb6721e",
+ "url": "https://api.github.com/repos/guzzle/promises/zipball/7c69f28996b0a6920945dd20b3857e499d9ca96c",
+ "reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c",
"shasum": ""
},
"require": {
- "php": ">=5.5"
+ "php": "^7.2.5 || ^8.0"
},
"require-dev": {
- "symfony/phpunit-bridge": "^4.4 || ^5.1"
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "phpunit/phpunit": "^8.5.39 || ^9.6.20"
},
"type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
+ }
+ },
"autoload": {
- "files": [
- "src/functions_include.php"
- ],
"psr-4": {
"GuzzleHttp\\Promise\\": "src/"
}
@@ -1659,7 +1937,7 @@
],
"support": {
"issues": "https://github.com/guzzle/promises/issues",
- "source": "https://github.com/guzzle/promises/tree/1.5.3"
+ "source": "https://github.com/guzzle/promises/tree/2.2.0"
},
"funding": [
{
@@ -1675,20 +1953,20 @@
"type": "tidelift"
}
],
- "time": "2023-05-21T12:31:43+00:00"
+ "time": "2025-03-27T13:27:01+00:00"
},
{
"name": "guzzlehttp/psr7",
- "version": "2.6.0",
+ "version": "2.7.1",
"source": {
"type": "git",
"url": "https://github.com/guzzle/psr7.git",
- "reference": "8bd7c33a0734ae1c5d074360512beb716bef3f77"
+ "reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/psr7/zipball/8bd7c33a0734ae1c5d074360512beb716bef3f77",
- "reference": "8bd7c33a0734ae1c5d074360512beb716bef3f77",
+ "url": "https://api.github.com/repos/guzzle/psr7/zipball/c2270caaabe631b3b44c85f99e5a04bbb8060d16",
+ "reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16",
"shasum": ""
},
"require": {
@@ -1702,9 +1980,9 @@
"psr/http-message-implementation": "1.0"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.8.1",
- "http-interop/http-factory-tests": "^0.9",
- "phpunit/phpunit": "^8.5.29 || ^9.5.23"
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "http-interop/http-factory-tests": "0.9.0",
+ "phpunit/phpunit": "^8.5.39 || ^9.6.20"
},
"suggest": {
"laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
@@ -1775,7 +2053,7 @@
],
"support": {
"issues": "https://github.com/guzzle/psr7/issues",
- "source": "https://github.com/guzzle/psr7/tree/2.6.0"
+ "source": "https://github.com/guzzle/psr7/tree/2.7.1"
},
"funding": [
{
@@ -1791,41 +2069,41 @@
"type": "tidelift"
}
],
- "time": "2023-08-03T15:06:02+00:00"
+ "time": "2025-03-27T12:30:47+00:00"
},
{
- "name": "http-interop/http-factory-guzzle",
- "version": "1.2.0",
+ "name": "guzzlehttp/uri-template",
+ "version": "v1.0.4",
"source": {
"type": "git",
- "url": "https://github.com/http-interop/http-factory-guzzle.git",
- "reference": "8f06e92b95405216b237521cc64c804dd44c4a81"
+ "url": "https://github.com/guzzle/uri-template.git",
+ "reference": "30e286560c137526eccd4ce21b2de477ab0676d2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/http-interop/http-factory-guzzle/zipball/8f06e92b95405216b237521cc64c804dd44c4a81",
- "reference": "8f06e92b95405216b237521cc64c804dd44c4a81",
+ "url": "https://api.github.com/repos/guzzle/uri-template/zipball/30e286560c137526eccd4ce21b2de477ab0676d2",
+ "reference": "30e286560c137526eccd4ce21b2de477ab0676d2",
"shasum": ""
},
"require": {
- "guzzlehttp/psr7": "^1.7||^2.0",
- "php": ">=7.3",
- "psr/http-factory": "^1.0"
- },
- "provide": {
- "psr/http-factory-implementation": "^1.0"
+ "php": "^7.2.5 || ^8.0",
+ "symfony/polyfill-php80": "^1.24"
},
"require-dev": {
- "http-interop/http-factory-tests": "^0.9",
- "phpunit/phpunit": "^9.5"
- },
- "suggest": {
- "guzzlehttp/psr7": "Includes an HTTP factory starting in version 2.0"
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "phpunit/phpunit": "^8.5.36 || ^9.6.15",
+ "uri-template/tests": "1.0.0"
},
"type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
+ }
+ },
"autoload": {
"psr-4": {
- "Http\\Factory\\Guzzle\\": "src/"
+ "GuzzleHttp\\UriTemplate\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -1834,68 +2112,78 @@
],
"authors": [
{
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
+ "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"
}
],
- "description": "An HTTP Factory using Guzzle PSR7",
+ "description": "A polyfill class for uri_template of PHP",
"keywords": [
- "factory",
- "http",
- "psr-17",
- "psr-7"
+ "guzzlehttp",
+ "uri-template"
],
"support": {
- "issues": "https://github.com/http-interop/http-factory-guzzle/issues",
- "source": "https://github.com/http-interop/http-factory-guzzle/tree/1.2.0"
+ "issues": "https://github.com/guzzle/uri-template/issues",
+ "source": "https://github.com/guzzle/uri-template/tree/v1.0.4"
},
- "time": "2021-07-21T13:50:14+00:00"
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/Nyholm",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/uri-template",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2025-02-03T10:55:03+00:00"
},
{
- "name": "intervention/image",
- "version": "2.7.2",
+ "name": "intervention/gif",
+ "version": "4.2.2",
"source": {
"type": "git",
- "url": "https://github.com/Intervention/image.git",
- "reference": "04be355f8d6734c826045d02a1079ad658322dad"
+ "url": "https://github.com/Intervention/gif.git",
+ "reference": "5999eac6a39aa760fb803bc809e8909ee67b451a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Intervention/image/zipball/04be355f8d6734c826045d02a1079ad658322dad",
- "reference": "04be355f8d6734c826045d02a1079ad658322dad",
+ "url": "https://api.github.com/repos/Intervention/gif/zipball/5999eac6a39aa760fb803bc809e8909ee67b451a",
+ "reference": "5999eac6a39aa760fb803bc809e8909ee67b451a",
"shasum": ""
},
"require": {
- "ext-fileinfo": "*",
- "guzzlehttp/psr7": "~1.1 || ^2.0",
- "php": ">=5.4.0"
+ "php": "^8.1"
},
"require-dev": {
- "mockery/mockery": "~0.9.2",
- "phpunit/phpunit": "^4.8 || ^5.7 || ^7.5.15"
- },
- "suggest": {
- "ext-gd": "to use GD library based image processing.",
- "ext-imagick": "to use Imagick based image processing.",
- "intervention/imagecache": "Caching extension for the Intervention Image library"
+ "phpstan/phpstan": "^2.1",
+ "phpunit/phpunit": "^10.0 || ^11.0 || ^12.0",
+ "slevomat/coding-standard": "~8.0",
+ "squizlabs/php_codesniffer": "^3.8"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.4-dev"
- },
- "laravel": {
- "providers": [
- "Intervention\\Image\\ImageServiceProvider"
- ],
- "aliases": {
- "Image": "Intervention\\Image\\Facades\\Image"
- }
- }
- },
"autoload": {
"psr-4": {
- "Intervention\\Image\\": "src/Intervention/Image"
+ "Intervention\\Gif\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -1909,19 +2197,17 @@
"homepage": "https://intervention.io/"
}
],
- "description": "Image handling and manipulation library with support for Laravel integration",
- "homepage": "http://image.intervention.io/",
+ "description": "Native PHP GIF Encoder/Decoder",
+ "homepage": "https://github.com/intervention/gif",
"keywords": [
+ "animation",
"gd",
- "image",
- "imagick",
- "laravel",
- "thumbnail",
- "watermark"
+ "gif",
+ "image"
],
"support": {
- "issues": "https://github.com/Intervention/image/issues",
- "source": "https://github.com/Intervention/image/tree/2.7.2"
+ "issues": "https://github.com/Intervention/gif/issues",
+ "source": "https://github.com/Intervention/gif/tree/4.2.2"
},
"funding": [
{
@@ -1931,39 +2217,47 @@
{
"url": "https://github.com/Intervention",
"type": "github"
+ },
+ {
+ "url": "https://ko-fi.com/interventionphp",
+ "type": "ko_fi"
}
],
- "time": "2022-05-21T17:30:32+00:00"
+ "time": "2025-03-29T07:46:21+00:00"
},
{
- "name": "intervention/imagecache",
- "version": "2.6.0",
+ "name": "intervention/image",
+ "version": "3.11.3",
"source": {
"type": "git",
- "url": "https://github.com/Intervention/imagecache.git",
- "reference": "86136575a62d3634b51f196a998fce4a583b49bb"
+ "url": "https://github.com/Intervention/image.git",
+ "reference": "d0f097b8a3fa8fb758efc9440b513aa3833cda17"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Intervention/imagecache/zipball/86136575a62d3634b51f196a998fce4a583b49bb",
- "reference": "86136575a62d3634b51f196a998fce4a583b49bb",
+ "url": "https://api.github.com/repos/Intervention/image/zipball/d0f097b8a3fa8fb758efc9440b513aa3833cda17",
+ "reference": "d0f097b8a3fa8fb758efc9440b513aa3833cda17",
"shasum": ""
},
"require": {
- "illuminate/cache": "^5.5|~6|~7|~8|~9|~10",
- "illuminate/filesystem": "^5.5|~6|~7|~8|~9|~10",
- "intervention/image": "~2.2",
- "nesbot/carbon": "^2.39",
- "opis/closure": "^3.5",
- "php": "~7.2|~8"
+ "ext-mbstring": "*",
+ "intervention/gif": "^4.2",
+ "php": "^8.1"
},
"require-dev": {
- "phpunit/phpunit": "^8.0"
+ "mockery/mockery": "^1.6",
+ "phpstan/phpstan": "^2.1",
+ "phpunit/phpunit": "^10.0 || ^11.0 || ^12.0",
+ "slevomat/coding-standard": "~8.0",
+ "squizlabs/php_codesniffer": "^3.8"
+ },
+ "suggest": {
+ "ext-exif": "Recommended to be able to read EXIF data properly."
},
"type": "library",
"autoload": {
"psr-4": {
- "Intervention\\Image\\": "src/Intervention/Image"
+ "Intervention\\Image\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -1974,21 +2268,22 @@
{
"name": "Oliver Vogel",
"email": "oliver@intervention.io",
- "homepage": "http://intervention.io/"
+ "homepage": "https://intervention.io/"
}
],
- "description": "Caching extension for the Intervention Image Class",
- "homepage": "https://image.intervention.io",
+ "description": "PHP image manipulation",
+ "homepage": "https://image.intervention.io/",
"keywords": [
- "cache",
"gd",
"image",
"imagick",
- "laravel"
+ "resize",
+ "thumbnail",
+ "watermark"
],
"support": {
- "issues": "https://github.com/Intervention/imagecache/issues",
- "source": "https://github.com/Intervention/imagecache/tree/2.6.0"
+ "issues": "https://github.com/Intervention/image/issues",
+ "source": "https://github.com/Intervention/image/tree/3.11.3"
},
"funding": [
{
@@ -1998,34 +2293,39 @@
{
"url": "https://github.com/Intervention",
"type": "github"
+ },
+ {
+ "url": "https://ko-fi.com/interventionphp",
+ "type": "ko_fi"
}
],
- "time": "2023-02-25T19:40:47+00:00"
+ "time": "2025-05-22T17:26:23+00:00"
},
{
"name": "jean85/pretty-package-versions",
- "version": "2.0.5",
+ "version": "2.1.1",
"source": {
"type": "git",
"url": "https://github.com/Jean85/pretty-package-versions.git",
- "reference": "ae547e455a3d8babd07b96966b17d7fd21d9c6af"
+ "reference": "4d7aa5dab42e2a76d99559706022885de0e18e1a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/ae547e455a3d8babd07b96966b17d7fd21d9c6af",
- "reference": "ae547e455a3d8babd07b96966b17d7fd21d9c6af",
+ "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/4d7aa5dab42e2a76d99559706022885de0e18e1a",
+ "reference": "4d7aa5dab42e2a76d99559706022885de0e18e1a",
"shasum": ""
},
"require": {
- "composer-runtime-api": "^2.0.0",
- "php": "^7.1|^8.0"
+ "composer-runtime-api": "^2.1.0",
+ "php": "^7.4|^8.0"
},
"require-dev": {
- "friendsofphp/php-cs-fixer": "^2.17",
+ "friendsofphp/php-cs-fixer": "^3.2",
"jean85/composer-provided-replaced-stub-package": "^1.0",
- "phpstan/phpstan": "^0.12.66",
- "phpunit/phpunit": "^7.5|^8.5|^9.4",
- "vimeo/psalm": "^4.3"
+ "phpstan/phpstan": "^2.0",
+ "phpunit/phpunit": "^7.5|^8.5|^9.6",
+ "rector/rector": "^2.0",
+ "vimeo/psalm": "^4.3 || ^5.0"
},
"type": "library",
"extra": {
@@ -2057,95 +2357,34 @@
],
"support": {
"issues": "https://github.com/Jean85/pretty-package-versions/issues",
- "source": "https://github.com/Jean85/pretty-package-versions/tree/2.0.5"
+ "source": "https://github.com/Jean85/pretty-package-versions/tree/2.1.1"
},
- "time": "2021-10-08T21:21:46+00:00"
- },
- {
- "name": "kwaadpepper/enum",
- "version": "2.1.3",
- "source": {
- "type": "git",
- "url": "https://github.com/Kwaadpepper/enum.git",
- "reference": "cc695e6a07ee57a1220942581c303842e186b22f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Kwaadpepper/enum/zipball/cc695e6a07ee57a1220942581c303842e186b22f",
- "reference": "cc695e6a07ee57a1220942581c303842e186b22f",
- "shasum": ""
- },
- "require": {
- "php": ">=7.3"
- },
- "require-dev": {
- "orchestra/testbench": "^6",
- "phpunit/php-code-coverage": "^9",
- "phpunit/phpunit": "~9",
- "slevomat/coding-standard": "^7",
- "squizlabs/php_codesniffer": "^3"
- },
- "type": "library",
- "extra": {
- "laravel": {
- "providers": [
- "Kwaadpepper\\Enum\\EnumServiceProvider"
- ]
- }
- },
- "autoload": {
- "psr-4": {
- "Kwaadpepper\\Enum\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Jérémy Munsch",
- "email": "github@jeremydev.ovh",
- "homepage": "https://jeremydev.ovh"
- }
- ],
- "description": "Enums to use for any project",
- "homepage": "https://github.com/kwaadpepper/enum",
- "keywords": [
- "enum",
- "laravel"
- ],
- "support": {
- "issues": "https://github.com/Kwaadpepper/enum/issues",
- "source": "https://github.com/Kwaadpepper/enum/tree/2.1.3"
- },
- "time": "2022-07-28T15:18:54+00:00"
+ "time": "2025-03-19T14:43:43+00:00"
},
{
"name": "kwaadpepper/image-resizer",
- "version": "0.1.3",
+ "version": "3.1.0",
"source": {
"type": "git",
"url": "https://github.com/Kwaadpepper/image-resizer.git",
- "reference": "24b95e15360711b5fa62fdd34d14e1d22469af16"
+ "reference": "e0747fddc4e31ce57bda9db735060e279ae01780"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Kwaadpepper/image-resizer/zipball/24b95e15360711b5fa62fdd34d14e1d22469af16",
- "reference": "24b95e15360711b5fa62fdd34d14e1d22469af16",
+ "url": "https://api.github.com/repos/Kwaadpepper/image-resizer/zipball/e0747fddc4e31ce57bda9db735060e279ae01780",
+ "reference": "e0747fddc4e31ce57bda9db735060e279ae01780",
"shasum": ""
},
"require": {
- "illuminate/support": "~7|~8",
- "intervention/image": "^2.5",
- "intervention/imagecache": "^2.5",
- "laravel/framework": "~7|~8"
+ "illuminate/support": "~11|~12",
+ "intervention/image": "^3.6",
+ "laravel/framework": "~11|~12",
+ "php": "^8.2"
},
"require-dev": {
- "orchestra/testbench": "^6.13",
- "phpunit/phpunit": "~9.0",
- "slevomat/coding-standard": "^7.2",
- "squizlabs/php_codesniffer": "^3.5"
+ "larastan/larastan": "^2.0",
+ "orchestra/testbench": "^9.0",
+ "slevomat/coding-standard": "^8.11"
},
"type": "library",
"extra": {
@@ -2180,62 +2419,77 @@
],
"support": {
"issues": "https://github.com/Kwaadpepper/image-resizer/issues",
- "source": "https://github.com/Kwaadpepper/image-resizer/tree/0.1.3"
+ "source": "https://github.com/Kwaadpepper/image-resizer/tree/3.1.0"
},
- "time": "2023-04-07T13:15:30+00:00"
+ "time": "2025-03-02T07:22:50+00:00"
},
{
"name": "laravel/framework",
- "version": "v8.83.27",
+ "version": "v12.15.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
- "reference": "e1afe088b4ca613fb96dc57e6d8dbcb8cc2c6b49"
+ "reference": "2ef7fb183f18e547af4eb9f5a55b2ac1011f0b77"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/framework/zipball/e1afe088b4ca613fb96dc57e6d8dbcb8cc2c6b49",
- "reference": "e1afe088b4ca613fb96dc57e6d8dbcb8cc2c6b49",
+ "url": "https://api.github.com/repos/laravel/framework/zipball/2ef7fb183f18e547af4eb9f5a55b2ac1011f0b77",
+ "reference": "2ef7fb183f18e547af4eb9f5a55b2ac1011f0b77",
"shasum": ""
},
"require": {
- "doctrine/inflector": "^1.4|^2.0",
- "dragonmantank/cron-expression": "^3.0.2",
- "egulias/email-validator": "^2.1.10",
- "ext-json": "*",
+ "brick/math": "^0.11|^0.12",
+ "composer-runtime-api": "^2.2",
+ "doctrine/inflector": "^2.0.5",
+ "dragonmantank/cron-expression": "^3.4",
+ "egulias/email-validator": "^3.2.1|^4.0",
+ "ext-ctype": "*",
+ "ext-filter": "*",
+ "ext-hash": "*",
"ext-mbstring": "*",
"ext-openssl": "*",
- "laravel/serializable-closure": "^1.0",
- "league/commonmark": "^1.3|^2.0.2",
- "league/flysystem": "^1.1",
- "monolog/monolog": "^2.0",
- "nesbot/carbon": "^2.53.1",
- "opis/closure": "^3.6",
- "php": "^7.3|^8.0",
- "psr/container": "^1.0",
- "psr/log": "^1.0|^2.0",
- "psr/simple-cache": "^1.0",
- "ramsey/uuid": "^4.2.2",
- "swiftmailer/swiftmailer": "^6.3",
- "symfony/console": "^5.4",
- "symfony/error-handler": "^5.4",
- "symfony/finder": "^5.4",
- "symfony/http-foundation": "^5.4",
- "symfony/http-kernel": "^5.4",
- "symfony/mime": "^5.4",
- "symfony/process": "^5.4",
- "symfony/routing": "^5.4",
- "symfony/var-dumper": "^5.4",
- "tijsverkoyen/css-to-inline-styles": "^2.2.2",
- "vlucas/phpdotenv": "^5.4.1",
- "voku/portable-ascii": "^1.6.1"
+ "ext-session": "*",
+ "ext-tokenizer": "*",
+ "fruitcake/php-cors": "^1.3",
+ "guzzlehttp/guzzle": "^7.8.2",
+ "guzzlehttp/uri-template": "^1.0",
+ "laravel/prompts": "^0.3.0",
+ "laravel/serializable-closure": "^1.3|^2.0",
+ "league/commonmark": "^2.7",
+ "league/flysystem": "^3.25.1",
+ "league/flysystem-local": "^3.25.1",
+ "league/uri": "^7.5.1",
+ "monolog/monolog": "^3.0",
+ "nesbot/carbon": "^3.8.4",
+ "nunomaduro/termwind": "^2.0",
+ "php": "^8.2",
+ "psr/container": "^1.1.1|^2.0.1",
+ "psr/log": "^1.0|^2.0|^3.0",
+ "psr/simple-cache": "^1.0|^2.0|^3.0",
+ "ramsey/uuid": "^4.7",
+ "symfony/console": "^7.2.0",
+ "symfony/error-handler": "^7.2.0",
+ "symfony/finder": "^7.2.0",
+ "symfony/http-foundation": "^7.2.0",
+ "symfony/http-kernel": "^7.2.0",
+ "symfony/mailer": "^7.2.0",
+ "symfony/mime": "^7.2.0",
+ "symfony/polyfill-php83": "^1.31",
+ "symfony/process": "^7.2.0",
+ "symfony/routing": "^7.2.0",
+ "symfony/uid": "^7.2.0",
+ "symfony/var-dumper": "^7.2.0",
+ "tijsverkoyen/css-to-inline-styles": "^2.2.5",
+ "vlucas/phpdotenv": "^5.6.1",
+ "voku/portable-ascii": "^2.0.2"
},
"conflict": {
"tightenco/collect": "<5.5.33"
},
"provide": {
- "psr/container-implementation": "1.0",
- "psr/simple-cache-implementation": "1.0"
+ "psr/container-implementation": "1.1|2.0",
+ "psr/log-implementation": "1.0|2.0|3.0",
+ "psr/simple-cache-implementation": "1.0|2.0|3.0"
},
"replace": {
"illuminate/auth": "self.version",
@@ -2243,6 +2497,8 @@
"illuminate/bus": "self.version",
"illuminate/cache": "self.version",
"illuminate/collections": "self.version",
+ "illuminate/concurrency": "self.version",
+ "illuminate/conditionable": "self.version",
"illuminate/config": "self.version",
"illuminate/console": "self.version",
"illuminate/container": "self.version",
@@ -2260,6 +2516,7 @@
"illuminate/notifications": "self.version",
"illuminate/pagination": "self.version",
"illuminate/pipeline": "self.version",
+ "illuminate/process": "self.version",
"illuminate/queue": "self.version",
"illuminate/redis": "self.version",
"illuminate/routing": "self.version",
@@ -2268,70 +2525,94 @@
"illuminate/testing": "self.version",
"illuminate/translation": "self.version",
"illuminate/validation": "self.version",
- "illuminate/view": "self.version"
+ "illuminate/view": "self.version",
+ "spatie/once": "*"
},
"require-dev": {
- "aws/aws-sdk-php": "^3.198.1",
- "doctrine/dbal": "^2.13.3|^3.1.4",
- "filp/whoops": "^2.14.3",
- "guzzlehttp/guzzle": "^6.5.5|^7.0.1",
- "league/flysystem-cached-adapter": "^1.0",
- "mockery/mockery": "^1.4.4",
- "orchestra/testbench-core": "^6.27",
- "pda/pheanstalk": "^4.0",
- "phpunit/phpunit": "^8.5.19|^9.5.8",
- "predis/predis": "^1.1.9",
- "symfony/cache": "^5.4"
+ "ably/ably-php": "^1.0",
+ "aws/aws-sdk-php": "^3.322.9",
+ "ext-gmp": "*",
+ "fakerphp/faker": "^1.24",
+ "guzzlehttp/promises": "^2.0.3",
+ "guzzlehttp/psr7": "^2.4",
+ "laravel/pint": "^1.18",
+ "league/flysystem-aws-s3-v3": "^3.25.1",
+ "league/flysystem-ftp": "^3.25.1",
+ "league/flysystem-path-prefixing": "^3.25.1",
+ "league/flysystem-read-only": "^3.25.1",
+ "league/flysystem-sftp-v3": "^3.25.1",
+ "mockery/mockery": "^1.6.10",
+ "orchestra/testbench-core": "^10.0.0",
+ "pda/pheanstalk": "^5.0.6|^7.0.0",
+ "php-http/discovery": "^1.15",
+ "phpstan/phpstan": "^2.0",
+ "phpunit/phpunit": "^10.5.35|^11.5.3|^12.0.1",
+ "predis/predis": "^2.3|^3.0",
+ "resend/resend-php": "^0.10.0",
+ "symfony/cache": "^7.2.0",
+ "symfony/http-client": "^7.2.0",
+ "symfony/psr-http-message-bridge": "^7.2.0",
+ "symfony/translation": "^7.2.0"
},
"suggest": {
"ably/ably-php": "Required to use the Ably broadcast driver (^1.0).",
- "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage and SES mail driver (^3.198.1).",
- "brianium/paratest": "Required to run tests in parallel (^6.0).",
- "doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.13.3|^3.1.4).",
- "ext-bcmath": "Required to use the multiple_of validation rule.",
+ "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage, and SES mail driver (^3.322.9).",
+ "brianium/paratest": "Required to run tests in parallel (^7.0|^8.0).",
+ "ext-apcu": "Required to use the APC cache driver.",
+ "ext-fileinfo": "Required to use the Filesystem class.",
"ext-ftp": "Required to use the Flysystem FTP driver.",
"ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image().",
"ext-memcached": "Required to use the memcache cache driver.",
- "ext-pcntl": "Required to use all features of the queue worker.",
+ "ext-pcntl": "Required to use all features of the queue worker and console signal trapping.",
+ "ext-pdo": "Required to use all database features.",
"ext-posix": "Required to use all features of the queue worker.",
- "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0).",
+ "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0|^6.0).",
"fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).",
"filp/whoops": "Required for friendly error pages in development (^2.14.3).",
- "guzzlehttp/guzzle": "Required to use the HTTP Client, Mailgun mail driver and the ping methods on schedules (^6.5.5|^7.0.1).",
"laravel/tinker": "Required to use the tinker console command (^2.0).",
- "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^1.0).",
- "league/flysystem-cached-adapter": "Required to use the Flysystem cache (^1.0).",
- "league/flysystem-sftp": "Required to use the Flysystem SFTP driver (^1.0).",
- "mockery/mockery": "Required to use mocking (^1.4.4).",
- "nyholm/psr7": "Required to use PSR-7 bridging features (^1.2).",
- "pda/pheanstalk": "Required to use the beanstalk queue driver (^4.0).",
- "phpunit/phpunit": "Required to use assertions and run tests (^8.5.19|^9.5.8).",
- "predis/predis": "Required to use the predis connector (^1.1.9).",
+ "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.25.1).",
+ "league/flysystem-ftp": "Required to use the Flysystem FTP driver (^3.25.1).",
+ "league/flysystem-path-prefixing": "Required to use the scoped driver (^3.25.1).",
+ "league/flysystem-read-only": "Required to use read-only disks (^3.25.1)",
+ "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.25.1).",
+ "mockery/mockery": "Required to use mocking (^1.6).",
+ "pda/pheanstalk": "Required to use the beanstalk queue driver (^5.0).",
+ "php-http/discovery": "Required to use PSR-7 bridging features (^1.15).",
+ "phpunit/phpunit": "Required to use assertions and run tests (^10.5.35|^11.5.3|^12.0.1).",
+ "predis/predis": "Required to use the predis connector (^2.3|^3.0).",
"psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).",
- "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^4.0|^5.0|^6.0|^7.0).",
- "symfony/cache": "Required to PSR-6 cache bridge (^5.4).",
- "symfony/filesystem": "Required to enable support for relative symbolic links (^5.4).",
- "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0).",
- "wildbit/swiftmailer-postmark": "Required to use Postmark mail driver (^3.0)."
+ "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).",
+ "resend/resend-php": "Required to enable support for the Resend mail transport (^0.10.0).",
+ "symfony/cache": "Required to PSR-6 cache bridge (^7.2).",
+ "symfony/filesystem": "Required to enable support for relative symbolic links (^7.2).",
+ "symfony/http-client": "Required to enable support for the Symfony API mail transports (^7.2).",
+ "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^7.2).",
+ "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^7.2).",
+ "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^7.2)."
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "8.x-dev"
+ "dev-master": "12.x-dev"
}
},
"autoload": {
"files": [
+ "src/Illuminate/Collections/functions.php",
"src/Illuminate/Collections/helpers.php",
"src/Illuminate/Events/functions.php",
+ "src/Illuminate/Filesystem/functions.php",
"src/Illuminate/Foundation/helpers.php",
+ "src/Illuminate/Log/functions.php",
+ "src/Illuminate/Support/functions.php",
"src/Illuminate/Support/helpers.php"
],
"psr-4": {
"Illuminate\\": "src/Illuminate/",
"Illuminate\\Support\\": [
"src/Illuminate/Macroable/",
- "src/Illuminate/Collections/"
+ "src/Illuminate/Collections/",
+ "src/Illuminate/Conditionable/"
]
}
},
@@ -2355,35 +2636,95 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
- "time": "2022-12-08T15:28:55+00:00"
+ "time": "2025-05-20T15:10:44+00:00"
},
{
- "name": "laravel/serializable-closure",
- "version": "v1.3.1",
+ "name": "laravel/prompts",
+ "version": "v0.3.5",
"source": {
"type": "git",
- "url": "https://github.com/laravel/serializable-closure.git",
- "reference": "e5a3057a5591e1cfe8183034b0203921abe2c902"
+ "url": "https://github.com/laravel/prompts.git",
+ "reference": "57b8f7efe40333cdb925700891c7d7465325d3b1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/e5a3057a5591e1cfe8183034b0203921abe2c902",
- "reference": "e5a3057a5591e1cfe8183034b0203921abe2c902",
+ "url": "https://api.github.com/repos/laravel/prompts/zipball/57b8f7efe40333cdb925700891c7d7465325d3b1",
+ "reference": "57b8f7efe40333cdb925700891c7d7465325d3b1",
"shasum": ""
},
"require": {
- "php": "^7.3|^8.0"
+ "composer-runtime-api": "^2.2",
+ "ext-mbstring": "*",
+ "php": "^8.1",
+ "symfony/console": "^6.2|^7.0"
+ },
+ "conflict": {
+ "illuminate/console": ">=10.17.0 <10.25.0",
+ "laravel/framework": ">=10.17.0 <10.25.0"
},
"require-dev": {
- "nesbot/carbon": "^2.61",
- "pestphp/pest": "^1.21.3",
- "phpstan/phpstan": "^1.8.2",
- "symfony/var-dumper": "^5.4.11"
+ "illuminate/collections": "^10.0|^11.0|^12.0",
+ "mockery/mockery": "^1.5",
+ "pestphp/pest": "^2.3|^3.4",
+ "phpstan/phpstan": "^1.11",
+ "phpstan/phpstan-mockery": "^1.1"
+ },
+ "suggest": {
+ "ext-pcntl": "Required for the spinner to be animated."
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.x-dev"
+ "dev-main": "0.3.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/helpers.php"
+ ],
+ "psr-4": {
+ "Laravel\\Prompts\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Add beautiful and user-friendly forms to your command-line applications.",
+ "support": {
+ "issues": "https://github.com/laravel/prompts/issues",
+ "source": "https://github.com/laravel/prompts/tree/v0.3.5"
+ },
+ "time": "2025-02-11T13:34:40+00:00"
+ },
+ {
+ "name": "laravel/serializable-closure",
+ "version": "v2.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/serializable-closure.git",
+ "reference": "b352cf0534aa1ae6b4d825d1e762e35d43f8a841"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/b352cf0534aa1ae6b4d825d1e762e35d43f8a841",
+ "reference": "b352cf0534aa1ae6b4d825d1e762e35d43f8a841",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1"
+ },
+ "require-dev": {
+ "illuminate/support": "^10.0|^11.0|^12.0",
+ "nesbot/carbon": "^2.67|^3.0",
+ "pestphp/pest": "^2.36|^3.0",
+ "phpstan/phpstan": "^2.0",
+ "symfony/var-dumper": "^6.2.0|^7.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.x-dev"
}
},
"autoload": {
@@ -2415,42 +2756,40 @@
"issues": "https://github.com/laravel/serializable-closure/issues",
"source": "https://github.com/laravel/serializable-closure"
},
- "time": "2023-07-14T13:56:28+00:00"
+ "time": "2025-03-19T13:51:03+00:00"
},
{
"name": "laravel/tinker",
- "version": "v2.8.1",
+ "version": "v2.10.1",
"source": {
"type": "git",
"url": "https://github.com/laravel/tinker.git",
- "reference": "04a2d3bd0d650c0764f70bf49d1ee39393e4eb10"
+ "reference": "22177cc71807d38f2810c6204d8f7183d88a57d3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/tinker/zipball/04a2d3bd0d650c0764f70bf49d1ee39393e4eb10",
- "reference": "04a2d3bd0d650c0764f70bf49d1ee39393e4eb10",
+ "url": "https://api.github.com/repos/laravel/tinker/zipball/22177cc71807d38f2810c6204d8f7183d88a57d3",
+ "reference": "22177cc71807d38f2810c6204d8f7183d88a57d3",
"shasum": ""
},
"require": {
- "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0",
- "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0",
- "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0",
+ "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0",
+ "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0",
+ "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0",
"php": "^7.2.5|^8.0",
- "psy/psysh": "^0.10.4|^0.11.1",
- "symfony/var-dumper": "^4.3.4|^5.0|^6.0"
+ "psy/psysh": "^0.11.1|^0.12.0",
+ "symfony/var-dumper": "^4.3.4|^5.0|^6.0|^7.0"
},
"require-dev": {
"mockery/mockery": "~1.3.3|^1.4.2",
- "phpunit/phpunit": "^8.5.8|^9.3.3"
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^8.5.8|^9.3.3|^10.0"
},
"suggest": {
- "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0)."
+ "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0)."
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "2.x-dev"
- },
"laravel": {
"providers": [
"Laravel\\Tinker\\TinkerServiceProvider"
@@ -2481,43 +2820,45 @@
],
"support": {
"issues": "https://github.com/laravel/tinker/issues",
- "source": "https://github.com/laravel/tinker/tree/v2.8.1"
+ "source": "https://github.com/laravel/tinker/tree/v2.10.1"
},
- "time": "2023-02-15T16:40:09+00:00"
+ "time": "2025-01-27T14:24:01+00:00"
},
{
"name": "laravel/ui",
- "version": "v3.4.6",
+ "version": "v4.6.1",
"source": {
"type": "git",
"url": "https://github.com/laravel/ui.git",
- "reference": "65ec5c03f7fee2c8ecae785795b829a15be48c2c"
+ "reference": "7d6ffa38d79f19c9b3e70a751a9af845e8f41d88"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/ui/zipball/65ec5c03f7fee2c8ecae785795b829a15be48c2c",
- "reference": "65ec5c03f7fee2c8ecae785795b829a15be48c2c",
+ "url": "https://api.github.com/repos/laravel/ui/zipball/7d6ffa38d79f19c9b3e70a751a9af845e8f41d88",
+ "reference": "7d6ffa38d79f19c9b3e70a751a9af845e8f41d88",
"shasum": ""
},
"require": {
- "illuminate/console": "^8.42|^9.0",
- "illuminate/filesystem": "^8.42|^9.0",
- "illuminate/support": "^8.82|^9.0",
- "illuminate/validation": "^8.42|^9.0",
- "php": "^7.3|^8.0"
+ "illuminate/console": "^9.21|^10.0|^11.0|^12.0",
+ "illuminate/filesystem": "^9.21|^10.0|^11.0|^12.0",
+ "illuminate/support": "^9.21|^10.0|^11.0|^12.0",
+ "illuminate/validation": "^9.21|^10.0|^11.0|^12.0",
+ "php": "^8.0",
+ "symfony/console": "^6.0|^7.0"
},
"require-dev": {
- "orchestra/testbench": "^6.23|^7.0"
+ "orchestra/testbench": "^7.35|^8.15|^9.0|^10.0",
+ "phpunit/phpunit": "^9.3|^10.4|^11.5"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "3.x-dev"
- },
"laravel": {
"providers": [
"Laravel\\Ui\\UiServiceProvider"
]
+ },
+ "branch-alias": {
+ "dev-master": "4.x-dev"
}
},
"autoload": {
@@ -2542,219 +2883,61 @@
"ui"
],
"support": {
- "source": "https://github.com/laravel/ui/tree/v3.4.6"
+ "source": "https://github.com/laravel/ui/tree/v4.6.1"
},
- "time": "2022-05-20T13:38:08+00:00"
- },
- {
- "name": "ldc/web-admin-secure-laravel",
- "version": "1.0.1",
- "source": {
- "type": "git",
- "url": "https://lab.s-web.fr/ldc-web/projets/ldc-web-admin-secure-laravel.git",
- "reference": "c538f5d349b119ac64cb62b33e6368bef6be90bc"
- },
- "dist": {
- "type": "zip",
- "url": "https://lab.s-web.fr/api/v4/projects/20/packages/composer/archives/ldc/web-admin-secure-laravel.zip?sha=c538f5d349b119ac64cb62b33e6368bef6be90bc",
- "reference": "c538f5d349b119ac64cb62b33e6368bef6be90bc",
- "shasum": ""
- },
- "require": {
- "illuminate/support": "~8|~9",
- "laravel/framework": "~8|~9",
- "php": "~7.3|7.4|~8"
- },
- "require-dev": {
- "orchestra/testbench": "^6.24",
- "phpunit/php-code-coverage": "^9.2",
- "phpunit/phpunit": "~9.0",
- "slevomat/coding-standard": "^7.0",
- "squizlabs/php_codesniffer": "^3.5"
- },
- "type": "library",
- "extra": {
- "laravel": {
- "providers": [
- "LDC\\WebAdminSecureLaravel\\AdminSecureServiceProvider"
- ]
- }
- },
- "autoload": {
- "psr-4": {
- "LDC\\WebAdminSecureLaravel\\": "src/"
- }
- },
- "autoload-dev": {
- "psr-4": {
- "LDC\\WebAdminSecureLaravel\\Tests\\": "tests"
- }
- },
- "scripts": {
- "test": [
- "vendor/bin/phpunit"
- ],
- "post-autoload-dump": [
- "@php ./vendor/bin/testbench package:discover --ansi"
- ]
- },
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Vincent BRIDIER",
- "email": "vincent.bridier@ldc.fr",
- "homepage": "https://www.ldc.fr"
- }
- ],
- "description": "Restrict access to LDC Network"
- },
- {
- "name": "ldc/web-status-checker",
- "version": "1.1.0",
- "source": {
- "type": "git",
- "url": "https://lab.s-web.fr/ldc-web/projets/ldc-web-status-checker.git",
- "reference": "7ce62449f3eb052de2d7bfa2e32d37d4524d60b0"
- },
- "dist": {
- "type": "zip",
- "url": "https://lab.s-web.fr/api/v4/projects/21/packages/composer/archives/ldc/web-status-checker.zip?sha=7ce62449f3eb052de2d7bfa2e32d37d4524d60b0",
- "reference": "7ce62449f3eb052de2d7bfa2e32d37d4524d60b0",
- "shasum": ""
- },
- "require": {
- "ext-curl": "*",
- "php": "~7.3|7.4|~8"
- },
- "require-dev": {
- "slevomat/coding-standard": "^7.0",
- "squizlabs/php_codesniffer": "^3.5"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "LDC\\WebStatusChecker\\": "src/"
- }
- },
- "autoload-dev": {
- "psr-4": {
- "LDC\\WebStatusChecker\\Tests\\": "tests"
- }
- },
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Jérémy Munsch",
- "email": "jeremy.munsch@ldc.fr",
- "homepage": "https://jeremydev.ovh"
- }
- ],
- "description": "Status checker: report status to ldc-web"
- },
- {
- "name": "ldc/web-status-checker-laravel",
- "version": "1.1.0",
- "source": {
- "type": "git",
- "url": "https://lab.s-web.fr/ldc-web/projets/ldc-web-status-checker-laravel.git",
- "reference": "3918891846f1e8440ba54b23dc47422f005070b9"
- },
- "dist": {
- "type": "zip",
- "url": "https://lab.s-web.fr/api/v4/projects/22/packages/composer/archives/ldc/web-status-checker-laravel.zip?sha=3918891846f1e8440ba54b23dc47422f005070b9",
- "reference": "3918891846f1e8440ba54b23dc47422f005070b9",
- "shasum": ""
- },
- "require": {
- "illuminate/support": "~8|~9|~10",
- "laravel/framework": "~8|~9|~10",
- "ldc/web-status-checker": "^1.1.0",
- "php": "~7.3|7.4|~8"
- },
- "require-dev": {
- "slevomat/coding-standard": "^7.0",
- "squizlabs/php_codesniffer": "^3.5"
- },
- "type": "library",
- "extra": {
- "laravel": {
- "providers": [
- "LDC\\WebStatusCheckerLaravel\\StatusCheckerServiceProvider"
- ]
- }
- },
- "autoload": {
- "psr-4": {
- "LDC\\WebStatusCheckerLaravel\\": "src/"
- }
- },
- "autoload-dev": {
- "psr-4": {
- "LDC\\WebStatusCheckerLaravel\\Tests\\": "tests"
- }
- },
- "scripts": {
- "test": [
- "vendor/bin/phpunit"
- ],
- "post-autoload-dump": [
- "@php ./vendor/bin/testbench package:discover --ansi"
- ]
- },
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Jérémy Munsch",
- "email": "jeremy.munsch@ldc.fr",
- "homepage": "https://jeremydev.ovh"
- }
- ],
- "description": "Status checker: report status to ldc-web"
+ "time": "2025-01-28T15:15:29+00:00"
},
{
"name": "league/commonmark",
- "version": "1.6.7",
+ "version": "2.7.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/commonmark.git",
- "reference": "2b8185c13bc9578367a5bf901881d1c1b5bbd09b"
+ "reference": "6fbb36d44824ed4091adbcf4c7d4a3923cdb3405"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/2b8185c13bc9578367a5bf901881d1c1b5bbd09b",
- "reference": "2b8185c13bc9578367a5bf901881d1c1b5bbd09b",
+ "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/6fbb36d44824ed4091adbcf4c7d4a3923cdb3405",
+ "reference": "6fbb36d44824ed4091adbcf4c7d4a3923cdb3405",
"shasum": ""
},
"require": {
"ext-mbstring": "*",
- "php": "^7.1 || ^8.0"
- },
- "conflict": {
- "scrutinizer/ocular": "1.7.*"
+ "league/config": "^1.1.1",
+ "php": "^7.4 || ^8.0",
+ "psr/event-dispatcher": "^1.0",
+ "symfony/deprecation-contracts": "^2.1 || ^3.0",
+ "symfony/polyfill-php80": "^1.16"
},
"require-dev": {
- "cebe/markdown": "~1.0",
- "commonmark/commonmark.js": "0.29.2",
- "erusev/parsedown": "~1.0",
+ "cebe/markdown": "^1.0",
+ "commonmark/cmark": "0.31.1",
+ "commonmark/commonmark.js": "0.31.1",
+ "composer/package-versions-deprecated": "^1.8",
+ "embed/embed": "^4.4",
+ "erusev/parsedown": "^1.0",
"ext-json": "*",
"github/gfm": "0.29.0",
- "michelf/php-markdown": "~1.4",
- "mikehaertl/php-shellcommand": "^1.4",
- "phpstan/phpstan": "^0.12.90",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.2",
- "scrutinizer/ocular": "^1.5",
- "symfony/finder": "^4.2"
+ "michelf/php-markdown": "^1.4 || ^2.0",
+ "nyholm/psr7": "^1.5",
+ "phpstan/phpstan": "^1.8.2",
+ "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0",
+ "scrutinizer/ocular": "^1.8.1",
+ "symfony/finder": "^5.3 | ^6.0 | ^7.0",
+ "symfony/process": "^5.4 | ^6.0 | ^7.0",
+ "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0 | ^7.0",
+ "unleashedtech/php-coding-standard": "^3.1.1",
+ "vimeo/psalm": "^4.24.0 || ^5.0.0"
+ },
+ "suggest": {
+ "symfony/yaml": "v2.3+ required if using the Front Matter extension"
},
- "bin": [
- "bin/commonmark"
- ],
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.8-dev"
+ }
+ },
"autoload": {
"psr-4": {
"League\\CommonMark\\": "src"
@@ -2772,7 +2955,7 @@
"role": "Lead Developer"
}
],
- "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and Github-Flavored Markdown (GFM)",
+ "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and GitHub-Flavored Markdown (GFM)",
"homepage": "https://commonmark.thephpleague.com",
"keywords": [
"commonmark",
@@ -2786,6 +2969,7 @@
],
"support": {
"docs": "https://commonmark.thephpleague.com/",
+ "forum": "https://github.com/thephpleague/commonmark/discussions",
"issues": "https://github.com/thephpleague/commonmark/issues",
"rss": "https://github.com/thephpleague/commonmark/releases.atom",
"source": "https://github.com/thephpleague/commonmark"
@@ -2808,39 +2992,128 @@
"type": "tidelift"
}
],
- "time": "2022-01-13T17:18:13+00:00"
+ "time": "2025-05-05T12:20:28+00:00"
},
{
- "name": "league/csv",
- "version": "9.7.4",
+ "name": "league/config",
+ "version": "v1.2.0",
"source": {
"type": "git",
- "url": "https://github.com/thephpleague/csv.git",
- "reference": "002f55f649e7511710dc7154ff44c7be32c8195c"
+ "url": "https://github.com/thephpleague/config.git",
+ "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/csv/zipball/002f55f649e7511710dc7154ff44c7be32c8195c",
- "reference": "002f55f649e7511710dc7154ff44c7be32c8195c",
+ "url": "https://api.github.com/repos/thephpleague/config/zipball/754b3604fb2984c71f4af4a9cbe7b57f346ec1f3",
+ "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3",
"shasum": ""
},
"require": {
- "ext-json": "*",
- "ext-mbstring": "*",
- "php": "^7.3 || ^8.0"
+ "dflydev/dot-access-data": "^3.0.1",
+ "nette/schema": "^1.2",
+ "php": "^7.4 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.8.2",
+ "phpunit/phpunit": "^9.5.5",
+ "scrutinizer/ocular": "^1.8.1",
+ "unleashedtech/php-coding-standard": "^3.1",
+ "vimeo/psalm": "^4.7.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.2-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "League\\Config\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Colin O'Dell",
+ "email": "colinodell@gmail.com",
+ "homepage": "https://www.colinodell.com",
+ "role": "Lead Developer"
+ }
+ ],
+ "description": "Define configuration arrays with strict schemas and access values with dot notation",
+ "homepage": "https://config.thephpleague.com",
+ "keywords": [
+ "array",
+ "config",
+ "configuration",
+ "dot",
+ "dot-access",
+ "nested",
+ "schema"
+ ],
+ "support": {
+ "docs": "https://config.thephpleague.com/",
+ "issues": "https://github.com/thephpleague/config/issues",
+ "rss": "https://github.com/thephpleague/config/releases.atom",
+ "source": "https://github.com/thephpleague/config"
+ },
+ "funding": [
+ {
+ "url": "https://www.colinodell.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.paypal.me/colinpodell/10.00",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/colinodell",
+ "type": "github"
+ }
+ ],
+ "time": "2022-12-11T20:36:23+00:00"
+ },
+ {
+ "name": "league/csv",
+ "version": "9.23.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/csv.git",
+ "reference": "774008ad8a634448e4f8e288905e070e8b317ff3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/csv/zipball/774008ad8a634448e4f8e288905e070e8b317ff3",
+ "reference": "774008ad8a634448e4f8e288905e070e8b317ff3",
+ "shasum": ""
+ },
+ "require": {
+ "ext-filter": "*",
+ "php": "^8.1.2"
},
"require-dev": {
- "ext-curl": "*",
"ext-dom": "*",
- "friendsofphp/php-cs-fixer": "^3.0",
- "phpstan/phpstan": "^1.0",
- "phpstan/phpstan-phpunit": "^1.0.0",
- "phpstan/phpstan-strict-rules": "^1.0",
- "phpunit/phpunit": "^9.5"
+ "ext-xdebug": "*",
+ "friendsofphp/php-cs-fixer": "^3.69.0",
+ "phpbench/phpbench": "^1.4.0",
+ "phpstan/phpstan": "^1.12.18",
+ "phpstan/phpstan-deprecation-rules": "^1.2.1",
+ "phpstan/phpstan-phpunit": "^1.4.2",
+ "phpstan/phpstan-strict-rules": "^1.6.2",
+ "phpunit/phpunit": "^10.5.16 || ^11.5.7",
+ "symfony/var-dumper": "^6.4.8 || ^7.2.3"
},
"suggest": {
- "ext-dom": "Required to use the XMLConverter and or the HTMLConverter classes",
- "ext-iconv": "Needed to ease transcoding CSV using iconv stream filters"
+ "ext-dom": "Required to use the XMLConverter and the HTMLConverter classes",
+ "ext-iconv": "Needed to ease transcoding CSV using iconv stream filters",
+ "ext-mbstring": "Needed to ease transcoding CSV using mb stream filters",
+ "ext-mysqli": "Requiered to use the package with the MySQLi extension",
+ "ext-pdo": "Required to use the package with the PDO extension",
+ "ext-pgsql": "Requiered to use the package with the PgSQL extension",
+ "ext-sqlite3": "Required to use the package with the SQLite3 extension"
},
"type": "library",
"extra": {
@@ -2869,7 +3142,7 @@
}
],
"description": "CSV data manipulation made easy in PHP",
- "homepage": "http://csv.thephpleague.com",
+ "homepage": "https://csv.thephpleague.com",
"keywords": [
"convert",
"csv",
@@ -2892,58 +3165,59 @@
"type": "github"
}
],
- "time": "2021-11-30T07:09:34+00:00"
+ "time": "2025-03-28T06:52:04+00:00"
},
{
"name": "league/flysystem",
- "version": "1.1.10",
+ "version": "3.29.1",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem.git",
- "reference": "3239285c825c152bcc315fe0e87d6b55f5972ed1"
+ "reference": "edc1bb7c86fab0776c3287dbd19b5fa278347319"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/3239285c825c152bcc315fe0e87d6b55f5972ed1",
- "reference": "3239285c825c152bcc315fe0e87d6b55f5972ed1",
+ "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/edc1bb7c86fab0776c3287dbd19b5fa278347319",
+ "reference": "edc1bb7c86fab0776c3287dbd19b5fa278347319",
"shasum": ""
},
"require": {
- "ext-fileinfo": "*",
- "league/mime-type-detection": "^1.3",
- "php": "^7.2.5 || ^8.0"
+ "league/flysystem-local": "^3.0.0",
+ "league/mime-type-detection": "^1.0.0",
+ "php": "^8.0.2"
},
"conflict": {
- "league/flysystem-sftp": "<1.0.6"
+ "async-aws/core": "<1.19.0",
+ "async-aws/s3": "<1.14.0",
+ "aws/aws-sdk-php": "3.209.31 || 3.210.0",
+ "guzzlehttp/guzzle": "<7.0",
+ "guzzlehttp/ringphp": "<1.1.1",
+ "phpseclib/phpseclib": "3.0.15",
+ "symfony/http-client": "<5.2"
},
"require-dev": {
- "phpspec/prophecy": "^1.11.1",
- "phpunit/phpunit": "^8.5.8"
- },
- "suggest": {
- "ext-ftp": "Allows you to use FTP server storage",
- "ext-openssl": "Allows you to use FTPS server storage",
- "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2",
- "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3",
- "league/flysystem-azure": "Allows you to use Windows Azure Blob storage",
- "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching",
- "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem",
- "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files",
- "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib",
- "league/flysystem-webdav": "Allows you to use WebDAV storage",
- "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter",
- "spatie/flysystem-dropbox": "Allows you to use Dropbox storage",
- "srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications"
+ "async-aws/s3": "^1.5 || ^2.0",
+ "async-aws/simple-s3": "^1.1 || ^2.0",
+ "aws/aws-sdk-php": "^3.295.10",
+ "composer/semver": "^3.0",
+ "ext-fileinfo": "*",
+ "ext-ftp": "*",
+ "ext-mongodb": "^1.3",
+ "ext-zip": "*",
+ "friendsofphp/php-cs-fixer": "^3.5",
+ "google/cloud-storage": "^1.23",
+ "guzzlehttp/psr7": "^2.6",
+ "microsoft/azure-storage-blob": "^1.1",
+ "mongodb/mongodb": "^1.2",
+ "phpseclib/phpseclib": "^3.0.36",
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^9.5.11|^10.0",
+ "sabre/dav": "^4.6.0"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.1-dev"
- }
- },
"autoload": {
"psr-4": {
- "League\\Flysystem\\": "src/"
+ "League\\Flysystem\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -2953,63 +3227,100 @@
"authors": [
{
"name": "Frank de Jonge",
- "email": "info@frenky.net"
+ "email": "info@frankdejonge.nl"
}
],
- "description": "Filesystem abstraction: Many filesystems, one API.",
+ "description": "File storage abstraction for PHP",
"keywords": [
- "Cloud Files",
"WebDAV",
- "abstraction",
"aws",
"cloud",
- "copy.com",
- "dropbox",
- "file systems",
+ "file",
"files",
"filesystem",
"filesystems",
"ftp",
- "rackspace",
- "remote",
"s3",
"sftp",
"storage"
],
"support": {
"issues": "https://github.com/thephpleague/flysystem/issues",
- "source": "https://github.com/thephpleague/flysystem/tree/1.1.10"
+ "source": "https://github.com/thephpleague/flysystem/tree/3.29.1"
},
- "funding": [
- {
- "url": "https://offset.earth/frankdejonge",
- "type": "other"
- }
- ],
- "time": "2022-10-04T09:16:37+00:00"
+ "time": "2024-10-08T08:58:34+00:00"
},
{
- "name": "league/mime-type-detection",
- "version": "1.12.0",
+ "name": "league/flysystem-local",
+ "version": "3.29.0",
"source": {
"type": "git",
- "url": "https://github.com/thephpleague/mime-type-detection.git",
- "reference": "c7f2872fb273bf493811473dafc88d60ae829f48"
+ "url": "https://github.com/thephpleague/flysystem-local.git",
+ "reference": "e0e8d52ce4b2ed154148453d321e97c8e931bd27"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/c7f2872fb273bf493811473dafc88d60ae829f48",
- "reference": "c7f2872fb273bf493811473dafc88d60ae829f48",
+ "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/e0e8d52ce4b2ed154148453d321e97c8e931bd27",
+ "reference": "e0e8d52ce4b2ed154148453d321e97c8e931bd27",
"shasum": ""
},
"require": {
"ext-fileinfo": "*",
- "php": "^7.2 || ^8.0"
+ "league/flysystem": "^3.0.0",
+ "league/mime-type-detection": "^1.0.0",
+ "php": "^8.0.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "League\\Flysystem\\Local\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Frank de Jonge",
+ "email": "info@frankdejonge.nl"
+ }
+ ],
+ "description": "Local filesystem adapter for Flysystem.",
+ "keywords": [
+ "Flysystem",
+ "file",
+ "files",
+ "filesystem",
+ "local"
+ ],
+ "support": {
+ "source": "https://github.com/thephpleague/flysystem-local/tree/3.29.0"
+ },
+ "time": "2024-08-09T21:24:39+00:00"
+ },
+ {
+ "name": "league/mime-type-detection",
+ "version": "1.16.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/mime-type-detection.git",
+ "reference": "2d6702ff215bf922936ccc1ad31007edc76451b9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/2d6702ff215bf922936ccc1ad31007edc76451b9",
+ "reference": "2d6702ff215bf922936ccc1ad31007edc76451b9",
+ "shasum": ""
+ },
+ "require": {
+ "ext-fileinfo": "*",
+ "php": "^7.4 || ^8.0"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^3.2",
"phpstan/phpstan": "^0.12.68",
- "phpunit/phpunit": "^8.5.8 || ^9.3"
+ "phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0"
},
"type": "library",
"autoload": {
@@ -3030,7 +3341,7 @@
"description": "Mime-type detection for Flysystem",
"support": {
"issues": "https://github.com/thephpleague/mime-type-detection/issues",
- "source": "https://github.com/thephpleague/mime-type-detection/tree/1.12.0"
+ "source": "https://github.com/thephpleague/mime-type-detection/tree/1.16.0"
},
"funding": [
{
@@ -3042,43 +3353,218 @@
"type": "tidelift"
}
],
- "time": "2023-08-03T07:14:11+00:00"
+ "time": "2024-09-21T08:32:55+00:00"
},
{
- "name": "maatwebsite/excel",
- "version": "3.1.48",
+ "name": "league/uri",
+ "version": "7.5.1",
"source": {
"type": "git",
- "url": "https://github.com/SpartnerNL/Laravel-Excel.git",
- "reference": "6d0fe2a1d195960c7af7bf0de760582da02a34b9"
+ "url": "https://github.com/thephpleague/uri.git",
+ "reference": "81fb5145d2644324614cc532b28efd0215bda430"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/SpartnerNL/Laravel-Excel/zipball/6d0fe2a1d195960c7af7bf0de760582da02a34b9",
- "reference": "6d0fe2a1d195960c7af7bf0de760582da02a34b9",
+ "url": "https://api.github.com/repos/thephpleague/uri/zipball/81fb5145d2644324614cc532b28efd0215bda430",
+ "reference": "81fb5145d2644324614cc532b28efd0215bda430",
+ "shasum": ""
+ },
+ "require": {
+ "league/uri-interfaces": "^7.5",
+ "php": "^8.1"
+ },
+ "conflict": {
+ "league/uri-schemes": "^1.0"
+ },
+ "suggest": {
+ "ext-bcmath": "to improve IPV4 host parsing",
+ "ext-fileinfo": "to create Data URI from file contennts",
+ "ext-gmp": "to improve IPV4 host parsing",
+ "ext-intl": "to handle IDN host with the best performance",
+ "jeremykendall/php-domain-parser": "to resolve Public Suffix and Top Level Domain",
+ "league/uri-components": "Needed to easily manipulate URI objects components",
+ "php-64bit": "to improve IPV4 host parsing",
+ "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "7.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "League\\Uri\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ignace Nyamagana Butera",
+ "email": "nyamsprod@gmail.com",
+ "homepage": "https://nyamsprod.com"
+ }
+ ],
+ "description": "URI manipulation library",
+ "homepage": "https://uri.thephpleague.com",
+ "keywords": [
+ "data-uri",
+ "file-uri",
+ "ftp",
+ "hostname",
+ "http",
+ "https",
+ "middleware",
+ "parse_str",
+ "parse_url",
+ "psr-7",
+ "query-string",
+ "querystring",
+ "rfc3986",
+ "rfc3987",
+ "rfc6570",
+ "uri",
+ "uri-template",
+ "url",
+ "ws"
+ ],
+ "support": {
+ "docs": "https://uri.thephpleague.com",
+ "forum": "https://thephpleague.slack.com",
+ "issues": "https://github.com/thephpleague/uri-src/issues",
+ "source": "https://github.com/thephpleague/uri/tree/7.5.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/nyamsprod",
+ "type": "github"
+ }
+ ],
+ "time": "2024-12-08T08:40:02+00:00"
+ },
+ {
+ "name": "league/uri-interfaces",
+ "version": "7.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/uri-interfaces.git",
+ "reference": "08cfc6c4f3d811584fb09c37e2849e6a7f9b0742"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/08cfc6c4f3d811584fb09c37e2849e6a7f9b0742",
+ "reference": "08cfc6c4f3d811584fb09c37e2849e6a7f9b0742",
+ "shasum": ""
+ },
+ "require": {
+ "ext-filter": "*",
+ "php": "^8.1",
+ "psr/http-factory": "^1",
+ "psr/http-message": "^1.1 || ^2.0"
+ },
+ "suggest": {
+ "ext-bcmath": "to improve IPV4 host parsing",
+ "ext-gmp": "to improve IPV4 host parsing",
+ "ext-intl": "to handle IDN host with the best performance",
+ "php-64bit": "to improve IPV4 host parsing",
+ "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "7.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "League\\Uri\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ignace Nyamagana Butera",
+ "email": "nyamsprod@gmail.com",
+ "homepage": "https://nyamsprod.com"
+ }
+ ],
+ "description": "Common interfaces and classes for URI representation and interaction",
+ "homepage": "https://uri.thephpleague.com",
+ "keywords": [
+ "data-uri",
+ "file-uri",
+ "ftp",
+ "hostname",
+ "http",
+ "https",
+ "parse_str",
+ "parse_url",
+ "psr-7",
+ "query-string",
+ "querystring",
+ "rfc3986",
+ "rfc3987",
+ "rfc6570",
+ "uri",
+ "url",
+ "ws"
+ ],
+ "support": {
+ "docs": "https://uri.thephpleague.com",
+ "forum": "https://thephpleague.slack.com",
+ "issues": "https://github.com/thephpleague/uri-src/issues",
+ "source": "https://github.com/thephpleague/uri-interfaces/tree/7.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/nyamsprod",
+ "type": "github"
+ }
+ ],
+ "time": "2024-12-08T08:18:47+00:00"
+ },
+ {
+ "name": "maatwebsite/excel",
+ "version": "3.1.64",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/SpartnerNL/Laravel-Excel.git",
+ "reference": "e25d44a2d91da9179cd2d7fec952313548597a79"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/SpartnerNL/Laravel-Excel/zipball/e25d44a2d91da9179cd2d7fec952313548597a79",
+ "reference": "e25d44a2d91da9179cd2d7fec952313548597a79",
"shasum": ""
},
"require": {
"composer/semver": "^3.3",
"ext-json": "*",
- "illuminate/support": "5.8.*|^6.0|^7.0|^8.0|^9.0|^10.0",
- "php": "^7.0|^8.0",
- "phpoffice/phpspreadsheet": "^1.18",
- "psr/simple-cache": "^1.0|^2.0|^3.0"
+ "illuminate/support": "5.8.*||^6.0||^7.0||^8.0||^9.0||^10.0||^11.0||^12.0",
+ "php": "^7.0||^8.0",
+ "phpoffice/phpspreadsheet": "^1.29.9",
+ "psr/simple-cache": "^1.0||^2.0||^3.0"
},
"require-dev": {
- "orchestra/testbench": "^6.0|^7.0|^8.0",
+ "laravel/scout": "^7.0||^8.0||^9.0||^10.0",
+ "orchestra/testbench": "^6.0||^7.0||^8.0||^9.0||^10.0",
"predis/predis": "^1.1"
},
"type": "library",
"extra": {
"laravel": {
- "providers": [
- "Maatwebsite\\Excel\\ExcelServiceProvider"
- ],
"aliases": {
"Excel": "Maatwebsite\\Excel\\Facades\\Excel"
- }
+ },
+ "providers": [
+ "Maatwebsite\\Excel\\ExcelServiceProvider"
+ ]
}
},
"autoload": {
@@ -3110,7 +3596,7 @@
],
"support": {
"issues": "https://github.com/SpartnerNL/Laravel-Excel/issues",
- "source": "https://github.com/SpartnerNL/Laravel-Excel/tree/3.1.48"
+ "source": "https://github.com/SpartnerNL/Laravel-Excel/tree/3.1.64"
},
"funding": [
{
@@ -3122,33 +3608,40 @@
"type": "github"
}
],
- "time": "2023-02-22T21:01:38+00:00"
+ "time": "2025-02-24T11:12:50+00:00"
},
{
"name": "maennchen/zipstream-php",
- "version": "2.1.0",
+ "version": "3.1.2",
"source": {
"type": "git",
"url": "https://github.com/maennchen/ZipStream-PHP.git",
- "reference": "c4c5803cc1f93df3d2448478ef79394a5981cc58"
+ "reference": "aeadcf5c412332eb426c0f9b4485f6accba2a99f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/c4c5803cc1f93df3d2448478ef79394a5981cc58",
- "reference": "c4c5803cc1f93df3d2448478ef79394a5981cc58",
+ "url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/aeadcf5c412332eb426c0f9b4485f6accba2a99f",
+ "reference": "aeadcf5c412332eb426c0f9b4485f6accba2a99f",
"shasum": ""
},
"require": {
- "myclabs/php-enum": "^1.5",
- "php": ">= 7.1",
- "psr/http-message": "^1.0",
- "symfony/polyfill-mbstring": "^1.0"
+ "ext-mbstring": "*",
+ "ext-zlib": "*",
+ "php-64bit": "^8.2"
},
"require-dev": {
+ "brianium/paratest": "^7.7",
"ext-zip": "*",
- "guzzlehttp/guzzle": ">= 6.3",
+ "friendsofphp/php-cs-fixer": "^3.16",
+ "guzzlehttp/guzzle": "^7.5",
"mikey179/vfsstream": "^1.6",
- "phpunit/phpunit": ">= 7.5"
+ "php-coveralls/php-coveralls": "^2.5",
+ "phpunit/phpunit": "^11.0",
+ "vimeo/psalm": "^6.0"
+ },
+ "suggest": {
+ "guzzlehttp/psr7": "^2.4",
+ "psr/http-message": "^2.0"
},
"type": "library",
"autoload": {
@@ -3185,19 +3678,15 @@
],
"support": {
"issues": "https://github.com/maennchen/ZipStream-PHP/issues",
- "source": "https://github.com/maennchen/ZipStream-PHP/tree/2.1.0"
+ "source": "https://github.com/maennchen/ZipStream-PHP/tree/3.1.2"
},
"funding": [
{
"url": "https://github.com/maennchen",
"type": "github"
- },
- {
- "url": "https://opencollective.com/zipstream",
- "type": "open_collective"
}
],
- "time": "2020-05-30T13:11:16+00:00"
+ "time": "2025-01-27T12:07:53+00:00"
},
{
"name": "markbaker/complex",
@@ -3308,27 +3797,27 @@
},
{
"name": "mews/purifier",
- "version": "3.4.1",
+ "version": "3.4.3",
"source": {
"type": "git",
"url": "https://github.com/mewebstudio/Purifier.git",
- "reference": "48e7bddc18140412d7cd815b6eea2fc7a141c432"
+ "reference": "acc71bc512dcf9b87144546d0e3055fc76d244ff"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/mewebstudio/Purifier/zipball/48e7bddc18140412d7cd815b6eea2fc7a141c432",
- "reference": "48e7bddc18140412d7cd815b6eea2fc7a141c432",
+ "url": "https://api.github.com/repos/mewebstudio/Purifier/zipball/acc71bc512dcf9b87144546d0e3055fc76d244ff",
+ "reference": "acc71bc512dcf9b87144546d0e3055fc76d244ff",
"shasum": ""
},
"require": {
"ezyang/htmlpurifier": "^4.16.0",
- "illuminate/config": "^5.8|^6.0|^7.0|^8.0|^9.0|^10.0",
- "illuminate/filesystem": "^5.8|^6.0|^7.0|^8.0|^9.0|^10.0",
- "illuminate/support": "^5.8|^6.0|^7.0|^8.0|^9.0|^10.0",
+ "illuminate/config": "^5.8|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0",
+ "illuminate/filesystem": "^5.8|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0",
+ "illuminate/support": "^5.8|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0",
"php": "^7.2|^8.0"
},
"require-dev": {
- "graham-campbell/testbench": "^3.2|^5.5.1",
+ "graham-campbell/testbench": "^3.2|^5.5.1|^6.1",
"mockery/mockery": "^1.3.3",
"phpunit/phpunit": "^8.0|^9.0|^10.0"
},
@@ -3339,12 +3828,12 @@
"type": "package",
"extra": {
"laravel": {
- "providers": [
- "Mews\\Purifier\\PurifierServiceProvider"
- ],
"aliases": {
"Purifier": "Mews\\Purifier\\Facades\\Purifier"
- }
+ },
+ "providers": [
+ "Mews\\Purifier\\PurifierServiceProvider"
+ ]
}
},
"autoload": {
@@ -3380,48 +3869,49 @@
],
"support": {
"issues": "https://github.com/mewebstudio/Purifier/issues",
- "source": "https://github.com/mewebstudio/Purifier/tree/3.4.1"
+ "source": "https://github.com/mewebstudio/Purifier/tree/3.4.3"
},
- "time": "2023-03-14T08:28:28+00:00"
+ "time": "2025-02-24T16:00:29+00:00"
},
{
"name": "monolog/monolog",
- "version": "2.9.1",
+ "version": "3.9.0",
"source": {
"type": "git",
"url": "https://github.com/Seldaek/monolog.git",
- "reference": "f259e2b15fb95494c83f52d3caad003bbf5ffaa1"
+ "reference": "10d85740180ecba7896c87e06a166e0c95a0e3b6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f259e2b15fb95494c83f52d3caad003bbf5ffaa1",
- "reference": "f259e2b15fb95494c83f52d3caad003bbf5ffaa1",
+ "url": "https://api.github.com/repos/Seldaek/monolog/zipball/10d85740180ecba7896c87e06a166e0c95a0e3b6",
+ "reference": "10d85740180ecba7896c87e06a166e0c95a0e3b6",
"shasum": ""
},
"require": {
- "php": ">=7.2",
- "psr/log": "^1.0.1 || ^2.0 || ^3.0"
+ "php": ">=8.1",
+ "psr/log": "^2.0 || ^3.0"
},
"provide": {
- "psr/log-implementation": "1.0.0 || 2.0.0 || 3.0.0"
+ "psr/log-implementation": "3.0.0"
},
"require-dev": {
- "aws/aws-sdk-php": "^2.4.9 || ^3.0",
+ "aws/aws-sdk-php": "^3.0",
"doctrine/couchdb": "~1.0@dev",
"elasticsearch/elasticsearch": "^7 || ^8",
"ext-json": "*",
- "graylog2/gelf-php": "^1.4.2 || ^2@dev",
- "guzzlehttp/guzzle": "^7.4",
+ "graylog2/gelf-php": "^1.4.2 || ^2.0",
+ "guzzlehttp/guzzle": "^7.4.5",
"guzzlehttp/psr7": "^2.2",
"mongodb/mongodb": "^1.8",
"php-amqplib/php-amqplib": "~2.4 || ^3",
- "phpspec/prophecy": "^1.15",
- "phpstan/phpstan": "^0.12.91",
- "phpunit/phpunit": "^8.5.14",
- "predis/predis": "^1.1 || ^2.0",
- "rollbar/rollbar": "^1.3 || ^2 || ^3",
- "ruflin/elastica": "^7",
- "swiftmailer/swiftmailer": "^5.3|^6.0",
+ "php-console/php-console": "^3.1.8",
+ "phpstan/phpstan": "^2",
+ "phpstan/phpstan-deprecation-rules": "^2",
+ "phpstan/phpstan-strict-rules": "^2",
+ "phpunit/phpunit": "^10.5.17 || ^11.0.7",
+ "predis/predis": "^1.1 || ^2",
+ "rollbar/rollbar": "^4.0",
+ "ruflin/elastica": "^7 || ^8",
"symfony/mailer": "^5.4 || ^6",
"symfony/mime": "^5.4 || ^6"
},
@@ -3444,7 +3934,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "2.x-dev"
+ "dev-main": "3.x-dev"
}
},
"autoload": {
@@ -3472,7 +3962,7 @@
],
"support": {
"issues": "https://github.com/Seldaek/monolog/issues",
- "source": "https://github.com/Seldaek/monolog/tree/2.9.1"
+ "source": "https://github.com/Seldaek/monolog/tree/3.9.0"
},
"funding": [
{
@@ -3484,118 +3974,51 @@
"type": "tidelift"
}
],
- "time": "2023-02-06T13:44:46+00:00"
- },
- {
- "name": "myclabs/php-enum",
- "version": "1.8.4",
- "source": {
- "type": "git",
- "url": "https://github.com/myclabs/php-enum.git",
- "reference": "a867478eae49c9f59ece437ae7f9506bfaa27483"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/myclabs/php-enum/zipball/a867478eae49c9f59ece437ae7f9506bfaa27483",
- "reference": "a867478eae49c9f59ece437ae7f9506bfaa27483",
- "shasum": ""
- },
- "require": {
- "ext-json": "*",
- "php": "^7.3 || ^8.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^9.5",
- "squizlabs/php_codesniffer": "1.*",
- "vimeo/psalm": "^4.6.2"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "MyCLabs\\Enum\\": "src/"
- },
- "classmap": [
- "stubs/Stringable.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP Enum contributors",
- "homepage": "https://github.com/myclabs/php-enum/graphs/contributors"
- }
- ],
- "description": "PHP Enum implementation",
- "homepage": "http://github.com/myclabs/php-enum",
- "keywords": [
- "enum"
- ],
- "support": {
- "issues": "https://github.com/myclabs/php-enum/issues",
- "source": "https://github.com/myclabs/php-enum/tree/1.8.4"
- },
- "funding": [
- {
- "url": "https://github.com/mnapoli",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/myclabs/php-enum",
- "type": "tidelift"
- }
- ],
- "time": "2022-08-04T09:53:51+00:00"
+ "time": "2025-03-24T10:02:05+00:00"
},
{
"name": "nesbot/carbon",
- "version": "2.69.0",
+ "version": "3.9.1",
"source": {
"type": "git",
- "url": "https://github.com/briannesbitt/Carbon.git",
- "reference": "4308217830e4ca445583a37d1bf4aff4153fa81c"
+ "url": "https://github.com/CarbonPHP/carbon.git",
+ "reference": "ced71f79398ece168e24f7f7710462f462310d4d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/4308217830e4ca445583a37d1bf4aff4153fa81c",
- "reference": "4308217830e4ca445583a37d1bf4aff4153fa81c",
+ "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/ced71f79398ece168e24f7f7710462f462310d4d",
+ "reference": "ced71f79398ece168e24f7f7710462f462310d4d",
"shasum": ""
},
"require": {
+ "carbonphp/carbon-doctrine-types": "<100.0",
"ext-json": "*",
- "php": "^7.1.8 || ^8.0",
+ "php": "^8.1",
"psr/clock": "^1.0",
+ "symfony/clock": "^6.3 || ^7.0",
"symfony/polyfill-mbstring": "^1.0",
- "symfony/polyfill-php80": "^1.16",
- "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0"
+ "symfony/translation": "^4.4.18 || ^5.2.1|| ^6.0 || ^7.0"
},
"provide": {
"psr/clock-implementation": "1.0"
},
"require-dev": {
- "doctrine/dbal": "^2.0 || ^3.1.4",
- "doctrine/orm": "^2.7",
- "friendsofphp/php-cs-fixer": "^3.0",
- "kylekatarnls/multi-tester": "^2.0",
- "ondrejmirtes/better-reflection": "*",
- "phpmd/phpmd": "^2.9",
- "phpstan/extension-installer": "^1.0",
- "phpstan/phpstan": "^0.12.99 || ^1.7.14",
- "phpunit/php-file-iterator": "^2.0.5 || ^3.0.6",
- "phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20",
- "squizlabs/php_codesniffer": "^3.4"
+ "doctrine/dbal": "^3.6.3 || ^4.0",
+ "doctrine/orm": "^2.15.2 || ^3.0",
+ "friendsofphp/php-cs-fixer": "^3.57.2",
+ "kylekatarnls/multi-tester": "^2.5.3",
+ "ondrejmirtes/better-reflection": "^6.25.0.4",
+ "phpmd/phpmd": "^2.15.0",
+ "phpstan/extension-installer": "^1.3.1",
+ "phpstan/phpstan": "^1.11.2",
+ "phpunit/phpunit": "^10.5.20",
+ "squizlabs/php_codesniffer": "^3.9.0"
},
"bin": [
"bin/carbon"
],
"type": "library",
"extra": {
- "branch-alias": {
- "dev-3.x": "3.x-dev",
- "dev-master": "2.x-dev"
- },
"laravel": {
"providers": [
"Carbon\\Laravel\\ServiceProvider"
@@ -3605,6 +4028,10 @@
"includes": [
"extension.neon"
]
+ },
+ "branch-alias": {
+ "dev-2.x": "2.x-dev",
+ "dev-master": "3.x-dev"
}
},
"autoload": {
@@ -3636,8 +4063,8 @@
],
"support": {
"docs": "https://carbon.nesbot.com/docs",
- "issues": "https://github.com/briannesbitt/Carbon/issues",
- "source": "https://github.com/briannesbitt/Carbon"
+ "issues": "https://github.com/CarbonPHP/carbon/issues",
+ "source": "https://github.com/CarbonPHP/carbon"
},
"funding": [
{
@@ -3653,29 +4080,179 @@
"type": "tidelift"
}
],
- "time": "2023-08-03T09:00:52+00:00"
+ "time": "2025-05-01T19:51:51+00:00"
},
{
- "name": "nikic/php-parser",
- "version": "v4.17.1",
+ "name": "nette/schema",
+ "version": "v1.3.2",
"source": {
"type": "git",
- "url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d"
+ "url": "https://github.com/nette/schema.git",
+ "reference": "da801d52f0354f70a638673c4a0f04e16529431d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d",
- "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d",
+ "url": "https://api.github.com/repos/nette/schema/zipball/da801d52f0354f70a638673c4a0f04e16529431d",
+ "reference": "da801d52f0354f70a638673c4a0f04e16529431d",
"shasum": ""
},
"require": {
+ "nette/utils": "^4.0",
+ "php": "8.1 - 8.4"
+ },
+ "require-dev": {
+ "nette/tester": "^2.5.2",
+ "phpstan/phpstan-nette": "^1.0",
+ "tracy/tracy": "^2.8"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.3-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause",
+ "GPL-2.0-only",
+ "GPL-3.0-only"
+ ],
+ "authors": [
+ {
+ "name": "David Grudl",
+ "homepage": "https://davidgrudl.com"
+ },
+ {
+ "name": "Nette Community",
+ "homepage": "https://nette.org/contributors"
+ }
+ ],
+ "description": "📐 Nette Schema: validating data structures against a given Schema.",
+ "homepage": "https://nette.org",
+ "keywords": [
+ "config",
+ "nette"
+ ],
+ "support": {
+ "issues": "https://github.com/nette/schema/issues",
+ "source": "https://github.com/nette/schema/tree/v1.3.2"
+ },
+ "time": "2024-10-06T23:10:23+00:00"
+ },
+ {
+ "name": "nette/utils",
+ "version": "v4.0.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nette/utils.git",
+ "reference": "ce708655043c7050eb050df361c5e313cf708309"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nette/utils/zipball/ce708655043c7050eb050df361c5e313cf708309",
+ "reference": "ce708655043c7050eb050df361c5e313cf708309",
+ "shasum": ""
+ },
+ "require": {
+ "php": "8.0 - 8.4"
+ },
+ "conflict": {
+ "nette/finder": "<3",
+ "nette/schema": "<1.2.2"
+ },
+ "require-dev": {
+ "jetbrains/phpstorm-attributes": "dev-master",
+ "nette/tester": "^2.5",
+ "phpstan/phpstan": "^1.0",
+ "tracy/tracy": "^2.9"
+ },
+ "suggest": {
+ "ext-gd": "to use Image",
+ "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()",
+ "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()",
+ "ext-json": "to use Nette\\Utils\\Json",
+ "ext-mbstring": "to use Strings::lower() etc...",
+ "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause",
+ "GPL-2.0-only",
+ "GPL-3.0-only"
+ ],
+ "authors": [
+ {
+ "name": "David Grudl",
+ "homepage": "https://davidgrudl.com"
+ },
+ {
+ "name": "Nette Community",
+ "homepage": "https://nette.org/contributors"
+ }
+ ],
+ "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.",
+ "homepage": "https://nette.org",
+ "keywords": [
+ "array",
+ "core",
+ "datetime",
+ "images",
+ "json",
+ "nette",
+ "paginator",
+ "password",
+ "slugify",
+ "string",
+ "unicode",
+ "utf-8",
+ "utility",
+ "validation"
+ ],
+ "support": {
+ "issues": "https://github.com/nette/utils/issues",
+ "source": "https://github.com/nette/utils/tree/v4.0.6"
+ },
+ "time": "2025-03-30T21:06:30+00:00"
+ },
+ {
+ "name": "nikic/php-parser",
+ "version": "v5.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nikic/PHP-Parser.git",
+ "reference": "447a020a1f875a434d62f2a401f53b82a396e494"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/447a020a1f875a434d62f2a401f53b82a396e494",
+ "reference": "447a020a1f875a434d62f2a401f53b82a396e494",
+ "shasum": ""
+ },
+ "require": {
+ "ext-ctype": "*",
+ "ext-json": "*",
"ext-tokenizer": "*",
- "php": ">=7.0"
+ "php": ">=7.4"
},
"require-dev": {
"ircmaxell/php-yacc": "^0.0.7",
- "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
+ "phpunit/phpunit": "^9.0"
},
"bin": [
"bin/php-parse"
@@ -3683,7 +4260,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.9-dev"
+ "dev-master": "5.0-dev"
}
},
"autoload": {
@@ -3707,22 +4284,109 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1"
+ "source": "https://github.com/nikic/PHP-Parser/tree/v5.4.0"
},
- "time": "2023-08-13T19:53:39+00:00"
+ "time": "2024-12-30T11:07:19+00:00"
},
{
- "name": "nyholm/psr7",
- "version": "1.8.0",
+ "name": "nunomaduro/termwind",
+ "version": "v2.3.1",
"source": {
"type": "git",
- "url": "https://github.com/Nyholm/psr7.git",
- "reference": "3cb4d163b58589e47b35103e8e5e6a6a475b47be"
+ "url": "https://github.com/nunomaduro/termwind.git",
+ "reference": "dfa08f390e509967a15c22493dc0bac5733d9123"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Nyholm/psr7/zipball/3cb4d163b58589e47b35103e8e5e6a6a475b47be",
- "reference": "3cb4d163b58589e47b35103e8e5e6a6a475b47be",
+ "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/dfa08f390e509967a15c22493dc0bac5733d9123",
+ "reference": "dfa08f390e509967a15c22493dc0bac5733d9123",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "php": "^8.2",
+ "symfony/console": "^7.2.6"
+ },
+ "require-dev": {
+ "illuminate/console": "^11.44.7",
+ "laravel/pint": "^1.22.0",
+ "mockery/mockery": "^1.6.12",
+ "pestphp/pest": "^2.36.0 || ^3.8.2",
+ "phpstan/phpstan": "^1.12.25",
+ "phpstan/phpstan-strict-rules": "^1.6.2",
+ "symfony/var-dumper": "^7.2.6",
+ "thecodingmachine/phpstan-strict-rules": "^1.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Termwind\\Laravel\\TermwindServiceProvider"
+ ]
+ },
+ "branch-alias": {
+ "dev-2.x": "2.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/Functions.php"
+ ],
+ "psr-4": {
+ "Termwind\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nuno Maduro",
+ "email": "enunomaduro@gmail.com"
+ }
+ ],
+ "description": "Its like Tailwind CSS, but for the console.",
+ "keywords": [
+ "cli",
+ "console",
+ "css",
+ "package",
+ "php",
+ "style"
+ ],
+ "support": {
+ "issues": "https://github.com/nunomaduro/termwind/issues",
+ "source": "https://github.com/nunomaduro/termwind/tree/v2.3.1"
+ },
+ "funding": [
+ {
+ "url": "https://www.paypal.com/paypalme/enunomaduro",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/nunomaduro",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/xiCO2k",
+ "type": "github"
+ }
+ ],
+ "time": "2025-05-08T08:14:37+00:00"
+ },
+ {
+ "name": "nyholm/psr7",
+ "version": "1.8.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Nyholm/psr7.git",
+ "reference": "a71f2b11690f4b24d099d6b16690a90ae14fc6f3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Nyholm/psr7/zipball/a71f2b11690f4b24d099d6b16690a90ae14fc6f3",
+ "reference": "a71f2b11690f4b24d099d6b16690a90ae14fc6f3",
"shasum": ""
},
"require": {
@@ -3775,7 +4439,7 @@
],
"support": {
"issues": "https://github.com/Nyholm/psr7/issues",
- "source": "https://github.com/Nyholm/psr7/tree/1.8.0"
+ "source": "https://github.com/Nyholm/psr7/tree/1.8.2"
},
"funding": [
{
@@ -3787,473 +4451,88 @@
"type": "github"
}
],
- "time": "2023-05-02T11:26:24+00:00"
+ "time": "2024-09-09T07:06:30+00:00"
},
{
- "name": "opis/closure",
- "version": "3.6.3",
+ "name": "onelogin/php-saml",
+ "version": "4.3.0",
"source": {
"type": "git",
- "url": "https://github.com/opis/closure.git",
- "reference": "3d81e4309d2a927abbe66df935f4bb60082805ad"
+ "url": "https://github.com/SAML-Toolkits/php-saml.git",
+ "reference": "bf5efce9f2df5d489d05e78c27003a0fc8bc50f0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/opis/closure/zipball/3d81e4309d2a927abbe66df935f4bb60082805ad",
- "reference": "3d81e4309d2a927abbe66df935f4bb60082805ad",
+ "url": "https://api.github.com/repos/SAML-Toolkits/php-saml/zipball/bf5efce9f2df5d489d05e78c27003a0fc8bc50f0",
+ "reference": "bf5efce9f2df5d489d05e78c27003a0fc8bc50f0",
"shasum": ""
},
"require": {
- "php": "^5.4 || ^7.0 || ^8.0"
+ "php": ">=7.3",
+ "robrichards/xmlseclibs": "^3.1"
},
"require-dev": {
- "jeremeamia/superclosure": "^2.0",
- "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.6.x-dev"
- }
- },
- "autoload": {
- "files": [
- "functions.php"
- ],
- "psr-4": {
- "Opis\\Closure\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Marius Sarca",
- "email": "marius.sarca@gmail.com"
- },
- {
- "name": "Sorin Sarca",
- "email": "sarca_sorin@hotmail.com"
- }
- ],
- "description": "A library that can be used to serialize closures (anonymous functions) and arbitrary objects.",
- "homepage": "https://opis.io/closure",
- "keywords": [
- "anonymous functions",
- "closure",
- "function",
- "serializable",
- "serialization",
- "serialize"
- ],
- "support": {
- "issues": "https://github.com/opis/closure/issues",
- "source": "https://github.com/opis/closure/tree/3.6.3"
- },
- "time": "2022-01-27T09:35:39+00:00"
- },
- {
- "name": "php-http/client-common",
- "version": "2.7.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-http/client-common.git",
- "reference": "880509727a447474d2a71b7d7fa5d268ddd3db4b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-http/client-common/zipball/880509727a447474d2a71b7d7fa5d268ddd3db4b",
- "reference": "880509727a447474d2a71b7d7fa5d268ddd3db4b",
- "shasum": ""
- },
- "require": {
- "php": "^7.1 || ^8.0",
- "php-http/httplug": "^2.0",
- "php-http/message": "^1.6",
- "psr/http-client": "^1.0",
- "psr/http-factory": "^1.0",
- "psr/http-message": "^1.0 || ^2.0",
- "symfony/options-resolver": "~4.0.15 || ~4.1.9 || ^4.2.1 || ^5.0 || ^6.0",
- "symfony/polyfill-php80": "^1.17"
- },
- "require-dev": {
- "doctrine/instantiator": "^1.1",
- "guzzlehttp/psr7": "^1.4",
- "nyholm/psr7": "^1.2",
- "phpspec/phpspec": "^5.1 || ^6.3 || ^7.1",
- "phpspec/prophecy": "^1.10.2",
- "phpunit/phpunit": "^7.5.20 || ^8.5.33 || ^9.6.7"
+ "pdepend/pdepend": "^2.8.0",
+ "php-coveralls/php-coveralls": "^2.0",
+ "phploc/phploc": "^4.0 || ^5.0 || ^6.0 || ^7.0",
+ "phpunit/phpunit": "^9.5",
+ "sebastian/phpcpd": "^4.0 || ^5.0 || ^6.0 ",
+ "squizlabs/php_codesniffer": "^3.5.8"
},
"suggest": {
- "ext-json": "To detect JSON responses with the ContentTypePlugin",
- "ext-libxml": "To detect XML responses with the ContentTypePlugin",
- "php-http/cache-plugin": "PSR-6 Cache plugin",
- "php-http/logger-plugin": "PSR-3 Logger plugin",
- "php-http/stopwatch-plugin": "Symfony Stopwatch plugin"
+ "ext-curl": "Install curl lib to be able to use the IdPMetadataParser for parsing remote XMLs",
+ "ext-dom": "Install xml lib",
+ "ext-openssl": "Install openssl lib in order to handle with x509 certs (require to support sign and encryption)",
+ "ext-zlib": "Install zlib"
},
"type": "library",
"autoload": {
"psr-4": {
- "Http\\Client\\Common\\": "src/"
+ "OneLogin\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
- "authors": [
- {
- "name": "Márk Sági-Kazár",
- "email": "mark.sagikazar@gmail.com"
- }
- ],
- "description": "Common HTTP Client implementations and tools for HTTPlug",
- "homepage": "http://httplug.io",
+ "description": "PHP SAML Toolkit",
+ "homepage": "https://github.com/SAML-Toolkits/php-saml",
"keywords": [
- "client",
- "common",
- "http",
- "httplug"
+ "Federation",
+ "SAML2",
+ "SSO",
+ "identity",
+ "saml"
],
"support": {
- "issues": "https://github.com/php-http/client-common/issues",
- "source": "https://github.com/php-http/client-common/tree/2.7.0"
+ "email": "sixto.martin.garcia@gmail.com",
+ "issues": "https://github.com/onelogin/SAML-Toolkits/issues",
+ "source": "https://github.com/onelogin/SAML-Toolkits/"
},
- "time": "2023-05-17T06:46:59+00:00"
- },
- {
- "name": "php-http/discovery",
- "version": "1.19.1",
- "source": {
- "type": "git",
- "url": "https://github.com/php-http/discovery.git",
- "reference": "57f3de01d32085fea20865f9b16fb0e69347c39e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-http/discovery/zipball/57f3de01d32085fea20865f9b16fb0e69347c39e",
- "reference": "57f3de01d32085fea20865f9b16fb0e69347c39e",
- "shasum": ""
- },
- "require": {
- "composer-plugin-api": "^1.0|^2.0",
- "php": "^7.1 || ^8.0"
- },
- "conflict": {
- "nyholm/psr7": "<1.0",
- "zendframework/zend-diactoros": "*"
- },
- "provide": {
- "php-http/async-client-implementation": "*",
- "php-http/client-implementation": "*",
- "psr/http-client-implementation": "*",
- "psr/http-factory-implementation": "*",
- "psr/http-message-implementation": "*"
- },
- "require-dev": {
- "composer/composer": "^1.0.2|^2.0",
- "graham-campbell/phpspec-skip-example-extension": "^5.0",
- "php-http/httplug": "^1.0 || ^2.0",
- "php-http/message-factory": "^1.0",
- "phpspec/phpspec": "^5.1 || ^6.1 || ^7.3",
- "symfony/phpunit-bridge": "^6.2"
- },
- "type": "composer-plugin",
- "extra": {
- "class": "Http\\Discovery\\Composer\\Plugin",
- "plugin-optional": true
- },
- "autoload": {
- "psr-4": {
- "Http\\Discovery\\": "src/"
- },
- "exclude-from-classmap": [
- "src/Composer/Plugin.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
+ "funding": [
{
- "name": "Márk Sági-Kazár",
- "email": "mark.sagikazar@gmail.com"
+ "url": "https://github.com/SAML-Toolkits",
+ "type": "github"
}
],
- "description": "Finds and installs PSR-7, PSR-17, PSR-18 and HTTPlug implementations",
- "homepage": "http://php-http.org",
- "keywords": [
- "adapter",
- "client",
- "discovery",
- "factory",
- "http",
- "message",
- "psr17",
- "psr7"
- ],
- "support": {
- "issues": "https://github.com/php-http/discovery/issues",
- "source": "https://github.com/php-http/discovery/tree/1.19.1"
- },
- "time": "2023-07-11T07:02:26+00:00"
- },
- {
- "name": "php-http/httplug",
- "version": "2.4.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-http/httplug.git",
- "reference": "625ad742c360c8ac580fcc647a1541d29e257f67"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-http/httplug/zipball/625ad742c360c8ac580fcc647a1541d29e257f67",
- "reference": "625ad742c360c8ac580fcc647a1541d29e257f67",
- "shasum": ""
- },
- "require": {
- "php": "^7.1 || ^8.0",
- "php-http/promise": "^1.1",
- "psr/http-client": "^1.0",
- "psr/http-message": "^1.0 || ^2.0"
- },
- "require-dev": {
- "friends-of-phpspec/phpspec-code-coverage": "^4.1 || ^5.0 || ^6.0",
- "phpspec/phpspec": "^5.1 || ^6.0 || ^7.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Http\\Client\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Eric GELOEN",
- "email": "geloen.eric@gmail.com"
- },
- {
- "name": "Márk Sági-Kazár",
- "email": "mark.sagikazar@gmail.com",
- "homepage": "https://sagikazarmark.hu"
- }
- ],
- "description": "HTTPlug, the HTTP client abstraction for PHP",
- "homepage": "http://httplug.io",
- "keywords": [
- "client",
- "http"
- ],
- "support": {
- "issues": "https://github.com/php-http/httplug/issues",
- "source": "https://github.com/php-http/httplug/tree/2.4.0"
- },
- "time": "2023-04-14T15:10:03+00:00"
- },
- {
- "name": "php-http/message",
- "version": "1.16.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-http/message.git",
- "reference": "47a14338bf4ebd67d317bf1144253d7db4ab55fd"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-http/message/zipball/47a14338bf4ebd67d317bf1144253d7db4ab55fd",
- "reference": "47a14338bf4ebd67d317bf1144253d7db4ab55fd",
- "shasum": ""
- },
- "require": {
- "clue/stream-filter": "^1.5",
- "php": "^7.2 || ^8.0",
- "psr/http-message": "^1.1 || ^2.0"
- },
- "provide": {
- "php-http/message-factory-implementation": "1.0"
- },
- "require-dev": {
- "ergebnis/composer-normalize": "^2.6",
- "ext-zlib": "*",
- "guzzlehttp/psr7": "^1.0 || ^2.0",
- "laminas/laminas-diactoros": "^2.0 || ^3.0",
- "php-http/message-factory": "^1.0.2",
- "phpspec/phpspec": "^5.1 || ^6.3 || ^7.1",
- "slim/slim": "^3.0"
- },
- "suggest": {
- "ext-zlib": "Used with compressor/decompressor streams",
- "guzzlehttp/psr7": "Used with Guzzle PSR-7 Factories",
- "laminas/laminas-diactoros": "Used with Diactoros Factories",
- "slim/slim": "Used with Slim Framework PSR-7 implementation"
- },
- "type": "library",
- "autoload": {
- "files": [
- "src/filters.php"
- ],
- "psr-4": {
- "Http\\Message\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Márk Sági-Kazár",
- "email": "mark.sagikazar@gmail.com"
- }
- ],
- "description": "HTTP Message related tools",
- "homepage": "http://php-http.org",
- "keywords": [
- "http",
- "message",
- "psr-7"
- ],
- "support": {
- "issues": "https://github.com/php-http/message/issues",
- "source": "https://github.com/php-http/message/tree/1.16.0"
- },
- "time": "2023-05-17T06:43:38+00:00"
- },
- {
- "name": "php-http/message-factory",
- "version": "1.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-http/message-factory.git",
- "reference": "4d8778e1c7d405cbb471574821c1ff5b68cc8f57"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-http/message-factory/zipball/4d8778e1c7d405cbb471574821c1ff5b68cc8f57",
- "reference": "4d8778e1c7d405cbb471574821c1ff5b68cc8f57",
- "shasum": ""
- },
- "require": {
- "php": ">=5.4",
- "psr/http-message": "^1.0 || ^2.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Http\\Message\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Márk Sági-Kazár",
- "email": "mark.sagikazar@gmail.com"
- }
- ],
- "description": "Factory interfaces for PSR-7 HTTP Message",
- "homepage": "http://php-http.org",
- "keywords": [
- "factory",
- "http",
- "message",
- "stream",
- "uri"
- ],
- "support": {
- "issues": "https://github.com/php-http/message-factory/issues",
- "source": "https://github.com/php-http/message-factory/tree/1.1.0"
- },
- "abandoned": "psr/http-factory",
- "time": "2023-04-14T14:16:17+00:00"
- },
- {
- "name": "php-http/promise",
- "version": "1.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-http/promise.git",
- "reference": "4c4c1f9b7289a2ec57cde7f1e9762a5789506f88"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-http/promise/zipball/4c4c1f9b7289a2ec57cde7f1e9762a5789506f88",
- "reference": "4c4c1f9b7289a2ec57cde7f1e9762a5789506f88",
- "shasum": ""
- },
- "require": {
- "php": "^7.1 || ^8.0"
- },
- "require-dev": {
- "friends-of-phpspec/phpspec-code-coverage": "^4.3.2",
- "phpspec/phpspec": "^5.1.2 || ^6.2"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.1-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Http\\Promise\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Joel Wurtz",
- "email": "joel.wurtz@gmail.com"
- },
- {
- "name": "Márk Sági-Kazár",
- "email": "mark.sagikazar@gmail.com"
- }
- ],
- "description": "Promise used for asynchronous HTTP requests",
- "homepage": "http://httplug.io",
- "keywords": [
- "promise"
- ],
- "support": {
- "issues": "https://github.com/php-http/promise/issues",
- "source": "https://github.com/php-http/promise/tree/1.1.0"
- },
- "time": "2020-07-07T09:29:14+00:00"
+ "time": "2025-05-25T14:28:00+00:00"
},
{
"name": "phpoffice/phpspreadsheet",
- "version": "1.25.2",
+ "version": "1.29.10",
"source": {
"type": "git",
"url": "https://github.com/PHPOffice/PhpSpreadsheet.git",
- "reference": "a317a09e7def49852400a4b3eca4a4b0790ceeb5"
+ "reference": "c80041b1628c4f18030407134fe88303661d4e4e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/a317a09e7def49852400a4b3eca4a4b0790ceeb5",
- "reference": "a317a09e7def49852400a4b3eca4a4b0790ceeb5",
+ "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/c80041b1628c4f18030407134fe88303661d4e4e",
+ "reference": "c80041b1628c4f18030407134fe88303661d4e4e",
"shasum": ""
},
"require": {
+ "composer/pcre": "^1||^2||^3",
"ext-ctype": "*",
"ext-dom": "*",
"ext-fileinfo": "*",
@@ -4268,26 +4547,26 @@
"ext-zip": "*",
"ext-zlib": "*",
"ezyang/htmlpurifier": "^4.15",
- "maennchen/zipstream-php": "^2.1",
+ "maennchen/zipstream-php": "^2.1 || ^3.0",
"markbaker/complex": "^3.0",
"markbaker/matrix": "^3.0",
- "php": "^7.3 || ^8.0",
+ "php": "^7.4 || ^8.0",
"psr/http-client": "^1.0",
"psr/http-factory": "^1.0",
"psr/simple-cache": "^1.0 || ^2.0 || ^3.0"
},
"require-dev": {
- "dealerdirect/phpcodesniffer-composer-installer": "dev-master",
- "dompdf/dompdf": "^1.0 || ^2.0",
+ "dealerdirect/phpcodesniffer-composer-installer": "dev-main",
+ "dompdf/dompdf": "^1.0 || ^2.0 || ^3.0",
"friendsofphp/php-cs-fixer": "^3.2",
- "mitoteam/jpgraph": "10.2.4",
- "mpdf/mpdf": "8.1.1",
+ "mitoteam/jpgraph": "^10.3",
+ "mpdf/mpdf": "^8.1.1",
"phpcompatibility/php-compatibility": "^9.3",
"phpstan/phpstan": "^1.1",
"phpstan/phpstan-phpunit": "^1.0",
"phpunit/phpunit": "^8.5 || ^9.0",
"squizlabs/php_codesniffer": "^3.7",
- "tecnickcom/tcpdf": "6.5"
+ "tecnickcom/tcpdf": "^6.5"
},
"suggest": {
"dompdf/dompdf": "Option for rendering PDF with PDF Writer",
@@ -4340,22 +4619,22 @@
],
"support": {
"issues": "https://github.com/PHPOffice/PhpSpreadsheet/issues",
- "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/1.25.2"
+ "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/1.29.10"
},
- "time": "2022-09-25T17:21:01+00:00"
+ "time": "2025-02-08T02:56:14+00:00"
},
{
"name": "phpoption/phpoption",
- "version": "1.9.1",
+ "version": "1.9.3",
"source": {
"type": "git",
"url": "https://github.com/schmittjoh/php-option.git",
- "reference": "dd3a383e599f49777d8b628dadbb90cae435b87e"
+ "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/dd3a383e599f49777d8b628dadbb90cae435b87e",
- "reference": "dd3a383e599f49777d8b628dadbb90cae435b87e",
+ "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/e3fac8b24f56113f7cb96af14958c0dd16330f54",
+ "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54",
"shasum": ""
},
"require": {
@@ -4363,13 +4642,13 @@
},
"require-dev": {
"bamarni/composer-bin-plugin": "^1.8.2",
- "phpunit/phpunit": "^8.5.32 || ^9.6.3 || ^10.0.12"
+ "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28"
},
"type": "library",
"extra": {
"bamarni-bin": {
"bin-links": true,
- "forward-command": true
+ "forward-command": false
},
"branch-alias": {
"dev-master": "1.9-dev"
@@ -4405,7 +4684,7 @@
],
"support": {
"issues": "https://github.com/schmittjoh/php-option/issues",
- "source": "https://github.com/schmittjoh/php-option/tree/1.9.1"
+ "source": "https://github.com/schmittjoh/php-option/tree/1.9.3"
},
"funding": [
{
@@ -4417,33 +4696,143 @@
"type": "tidelift"
}
],
- "time": "2023-02-25T19:38:58+00:00"
+ "time": "2024-07-20T21:41:07+00:00"
},
{
- "name": "pion/laravel-chunk-upload",
- "version": "v1.5.2",
+ "name": "phpseclib/phpseclib",
+ "version": "2.0.48",
"source": {
"type": "git",
- "url": "https://github.com/pionl/laravel-chunk-upload.git",
- "reference": "dcf5cf42059910242c31fc34d0ea147d07478473"
+ "url": "https://github.com/phpseclib/phpseclib.git",
+ "reference": "eaa7be704b8b93a6913b69eb7f645a59d7731b61"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/pionl/laravel-chunk-upload/zipball/dcf5cf42059910242c31fc34d0ea147d07478473",
- "reference": "dcf5cf42059910242c31fc34d0ea147d07478473",
+ "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/eaa7be704b8b93a6913b69eb7f645a59d7731b61",
+ "reference": "eaa7be704b8b93a6913b69eb7f645a59d7731b61",
"shasum": ""
},
"require": {
- "illuminate/console": "5.2 - 5.8 | ^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0",
- "illuminate/filesystem": "5.2 - 5.8 | ^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0",
- "illuminate/http": "5.2 - 5.8 | ^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0",
- "illuminate/support": "5.2 - 5.8 | ^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0"
+ "php": ">=5.3.3"
},
"require-dev": {
- "friendsofphp/php-cs-fixer": "^2.16.0",
- "mockery/mockery": "^1.1.0 | ^1.3.0",
- "overtrue/phplint": "^1.1 | ^2.0",
- "phpunit/phpunit": "5.7 | 6.0 | 7.0 | 7.5 | 8.4 | ^8.5 | ^9.3 | ^10.0"
+ "phing/phing": "~2.7",
+ "phpunit/phpunit": "^4.8.35|^5.7|^6.0|^9.4",
+ "squizlabs/php_codesniffer": "~2.0"
+ },
+ "suggest": {
+ "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.",
+ "ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.",
+ "ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.",
+ "ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations.",
+ "ext-xml": "Install the XML extension to load XML formatted public keys."
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "phpseclib/bootstrap.php"
+ ],
+ "psr-4": {
+ "phpseclib\\": "phpseclib/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jim Wigginton",
+ "email": "terrafrost@php.net",
+ "role": "Lead Developer"
+ },
+ {
+ "name": "Patrick Monnerat",
+ "email": "pm@datasphere.ch",
+ "role": "Developer"
+ },
+ {
+ "name": "Andreas Fischer",
+ "email": "bantu@phpbb.com",
+ "role": "Developer"
+ },
+ {
+ "name": "Hans-Jürgen Petrich",
+ "email": "petrich@tronic-media.com",
+ "role": "Developer"
+ },
+ {
+ "name": "Graham Campbell",
+ "email": "graham@alt-three.com",
+ "role": "Developer"
+ }
+ ],
+ "description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.",
+ "homepage": "http://phpseclib.sourceforge.net",
+ "keywords": [
+ "BigInteger",
+ "aes",
+ "asn.1",
+ "asn1",
+ "blowfish",
+ "crypto",
+ "cryptography",
+ "encryption",
+ "rsa",
+ "security",
+ "sftp",
+ "signature",
+ "signing",
+ "ssh",
+ "twofish",
+ "x.509",
+ "x509"
+ ],
+ "support": {
+ "issues": "https://github.com/phpseclib/phpseclib/issues",
+ "source": "https://github.com/phpseclib/phpseclib/tree/2.0.48"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/terrafrost",
+ "type": "github"
+ },
+ {
+ "url": "https://www.patreon.com/phpseclib",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/phpseclib/phpseclib",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-12-14T21:03:54+00:00"
+ },
+ {
+ "name": "pion/laravel-chunk-upload",
+ "version": "v1.5.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/pionl/laravel-chunk-upload.git",
+ "reference": "5cfdb8d9058bb4ecdf3a3100b6c7bb197c21e4d4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/pionl/laravel-chunk-upload/zipball/5cfdb8d9058bb4ecdf3a3100b6c7bb197c21e4d4",
+ "reference": "5cfdb8d9058bb4ecdf3a3100b6c7bb197c21e4d4",
+ "shasum": ""
+ },
+ "require": {
+ "illuminate/console": "5.2 - 5.8 | ^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0 | ^11.0 | ^12.0",
+ "illuminate/filesystem": "5.2 - 5.8 | ^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0 | ^11.0 | ^12.0",
+ "illuminate/http": "5.2 - 5.8 | ^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0 | ^11.0 | ^12.0",
+ "illuminate/support": "5.2 - 5.8 | ^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0 | ^11.0 | ^12.0"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "^2.16.0 | ^3.52.0",
+ "mockery/mockery": "^1.1.0 | ^1.3.0 | ^1.6.0",
+ "overtrue/phplint": "^1.1 | ^2.0 | ^9.1",
+ "phpunit/phpunit": "5.7 | 6.0 | 7.0 | 7.5 | 8.4 | ^8.5 | ^9.3 | ^10.0 | ^11.0"
},
"type": "library",
"extra": {
@@ -4471,7 +4860,7 @@
"description": "Service for chunked upload with several js providers",
"support": {
"issues": "https://github.com/pionl/laravel-chunk-upload/issues",
- "source": "https://github.com/pionl/laravel-chunk-upload/tree/v1.5.2"
+ "source": "https://github.com/pionl/laravel-chunk-upload/tree/v1.5.6"
},
"funding": [
{
@@ -4483,24 +4872,24 @@
"type": "github"
}
],
- "time": "2023-03-15T21:02:42+00:00"
+ "time": "2025-03-19T16:30:08+00:00"
},
{
"name": "psr/cache",
- "version": "1.0.1",
+ "version": "3.0.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/cache.git",
- "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8"
+ "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8",
- "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8",
+ "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
+ "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
"shasum": ""
},
"require": {
- "php": ">=5.3.0"
+ "php": ">=8.0.0"
},
"type": "library",
"extra": {
@@ -4520,7 +4909,7 @@
"authors": [
{
"name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
+ "homepage": "https://www.php-fig.org/"
}
],
"description": "Common interface for caching libraries",
@@ -4530,9 +4919,9 @@
"psr-6"
],
"support": {
- "source": "https://github.com/php-fig/cache/tree/master"
+ "source": "https://github.com/php-fig/cache/tree/3.0.0"
},
- "time": "2016-08-06T20:24:11+00:00"
+ "time": "2021-02-03T23:26:27+00:00"
},
{
"name": "psr/clock",
@@ -4584,22 +4973,27 @@
},
{
"name": "psr/container",
- "version": "1.1.1",
+ "version": "2.0.2",
"source": {
"type": "git",
"url": "https://github.com/php-fig/container.git",
- "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf"
+ "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf",
- "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963",
+ "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963",
"shasum": ""
},
"require": {
- "php": ">=7.2.0"
+ "php": ">=7.4.0"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
"autoload": {
"psr-4": {
"Psr\\Container\\": "src/"
@@ -4626,9 +5020,9 @@
],
"support": {
"issues": "https://github.com/php-fig/container/issues",
- "source": "https://github.com/php-fig/container/tree/1.1.1"
+ "source": "https://github.com/php-fig/container/tree/2.0.2"
},
- "time": "2021-03-05T17:36:06+00:00"
+ "time": "2021-11-05T16:47:00+00:00"
},
{
"name": "psr/event-dispatcher",
@@ -4682,16 +5076,16 @@
},
{
"name": "psr/http-client",
- "version": "1.0.2",
+ "version": "1.0.3",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-client.git",
- "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31"
+ "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-client/zipball/0955afe48220520692d2d09f7ab7e0f93ffd6a31",
- "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31",
+ "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90",
+ "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90",
"shasum": ""
},
"require": {
@@ -4728,26 +5122,26 @@
"psr-18"
],
"support": {
- "source": "https://github.com/php-fig/http-client/tree/1.0.2"
+ "source": "https://github.com/php-fig/http-client"
},
- "time": "2023-04-10T20:12:12+00:00"
+ "time": "2023-09-23T14:17:50+00:00"
},
{
"name": "psr/http-factory",
- "version": "1.0.2",
+ "version": "1.1.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-factory.git",
- "reference": "e616d01114759c4c489f93b099585439f795fe35"
+ "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35",
- "reference": "e616d01114759c4c489f93b099585439f795fe35",
+ "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
+ "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
"shasum": ""
},
"require": {
- "php": ">=7.0.0",
+ "php": ">=7.1",
"psr/http-message": "^1.0 || ^2.0"
},
"type": "library",
@@ -4771,7 +5165,7 @@
"homepage": "https://www.php-fig.org/"
}
],
- "description": "Common interfaces for PSR-7 HTTP message factories",
+ "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories",
"keywords": [
"factory",
"http",
@@ -4783,22 +5177,22 @@
"response"
],
"support": {
- "source": "https://github.com/php-fig/http-factory/tree/1.0.2"
+ "source": "https://github.com/php-fig/http-factory"
},
- "time": "2023-04-10T20:10:41+00:00"
+ "time": "2024-04-15T12:06:14+00:00"
},
{
"name": "psr/http-message",
- "version": "1.1",
+ "version": "2.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-message.git",
- "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba"
+ "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba",
- "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba",
+ "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71",
+ "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71",
"shasum": ""
},
"require": {
@@ -4807,7 +5201,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.1.x-dev"
+ "dev-master": "2.0.x-dev"
}
},
"autoload": {
@@ -4822,7 +5216,7 @@
"authors": [
{
"name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
+ "homepage": "https://www.php-fig.org/"
}
],
"description": "Common interface for HTTP messages",
@@ -4836,36 +5230,36 @@
"response"
],
"support": {
- "source": "https://github.com/php-fig/http-message/tree/1.1"
+ "source": "https://github.com/php-fig/http-message/tree/2.0"
},
- "time": "2023-04-04T09:50:52+00:00"
+ "time": "2023-04-04T09:54:51+00:00"
},
{
"name": "psr/log",
- "version": "1.1.4",
+ "version": "3.0.2",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
- "reference": "d49695b909c3b7628b6289db5479a1c204601f11"
+ "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11",
- "reference": "d49695b909c3b7628b6289db5479a1c204601f11",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3",
+ "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3",
"shasum": ""
},
"require": {
- "php": ">=5.3.0"
+ "php": ">=8.0.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.1.x-dev"
+ "dev-master": "3.x-dev"
}
},
"autoload": {
"psr-4": {
- "Psr\\Log\\": "Psr/Log/"
+ "Psr\\Log\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -4886,31 +5280,31 @@
"psr-3"
],
"support": {
- "source": "https://github.com/php-fig/log/tree/1.1.4"
+ "source": "https://github.com/php-fig/log/tree/3.0.2"
},
- "time": "2021-05-03T11:20:27+00:00"
+ "time": "2024-09-11T13:17:53+00:00"
},
{
"name": "psr/simple-cache",
- "version": "1.0.1",
+ "version": "3.0.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/simple-cache.git",
- "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b"
+ "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
- "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
+ "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/764e0b3939f5ca87cb904f570ef9be2d78a07865",
+ "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865",
"shasum": ""
},
"require": {
- "php": ">=5.3.0"
+ "php": ">=8.0.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0.x-dev"
+ "dev-master": "3.0.x-dev"
}
},
"autoload": {
@@ -4925,7 +5319,7 @@
"authors": [
{
"name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
+ "homepage": "https://www.php-fig.org/"
}
],
"description": "Common interfaces for simple caching",
@@ -4937,31 +5331,31 @@
"simple-cache"
],
"support": {
- "source": "https://github.com/php-fig/simple-cache/tree/master"
+ "source": "https://github.com/php-fig/simple-cache/tree/3.0.0"
},
- "time": "2017-10-23T01:57:42+00:00"
+ "time": "2021-10-29T13:26:27+00:00"
},
{
"name": "psy/psysh",
- "version": "v0.11.20",
+ "version": "v0.12.8",
"source": {
"type": "git",
"url": "https://github.com/bobthecow/psysh.git",
- "reference": "0fa27040553d1d280a67a4393194df5228afea5b"
+ "reference": "85057ceedee50c49d4f6ecaff73ee96adb3b3625"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/bobthecow/psysh/zipball/0fa27040553d1d280a67a4393194df5228afea5b",
- "reference": "0fa27040553d1d280a67a4393194df5228afea5b",
+ "url": "https://api.github.com/repos/bobthecow/psysh/zipball/85057ceedee50c49d4f6ecaff73ee96adb3b3625",
+ "reference": "85057ceedee50c49d4f6ecaff73ee96adb3b3625",
"shasum": ""
},
"require": {
"ext-json": "*",
"ext-tokenizer": "*",
- "nikic/php-parser": "^4.0 || ^3.1",
- "php": "^8.0 || ^7.0.8",
- "symfony/console": "^6.0 || ^5.0 || ^4.0 || ^3.4",
- "symfony/var-dumper": "^6.0 || ^5.0 || ^4.0 || ^3.4"
+ "nikic/php-parser": "^5.0 || ^4.0",
+ "php": "^8.0 || ^7.4",
+ "symfony/console": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4",
+ "symfony/var-dumper": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4"
},
"conflict": {
"symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4"
@@ -4972,16 +5366,19 @@
"suggest": {
"ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)",
"ext-pdo-sqlite": "The doc command requires SQLite to work.",
- "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.",
- "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history."
+ "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well."
},
"bin": [
"bin/psysh"
],
"type": "library",
"extra": {
+ "bamarni-bin": {
+ "bin-links": false,
+ "forward-command": false
+ },
"branch-alias": {
- "dev-main": "0.11.x-dev"
+ "dev-main": "0.12.x-dev"
}
},
"autoload": {
@@ -5013,9 +5410,9 @@
],
"support": {
"issues": "https://github.com/bobthecow/psysh/issues",
- "source": "https://github.com/bobthecow/psysh/tree/v0.11.20"
+ "source": "https://github.com/bobthecow/psysh/tree/v0.12.8"
},
- "time": "2023-07-31T14:32:22+00:00"
+ "time": "2025-03-16T03:05:19+00:00"
},
{
"name": "ralouphie/getallheaders",
@@ -5063,42 +5460,49 @@
},
{
"name": "ramsey/collection",
- "version": "1.2.2",
+ "version": "2.1.1",
"source": {
"type": "git",
"url": "https://github.com/ramsey/collection.git",
- "reference": "cccc74ee5e328031b15640b51056ee8d3bb66c0a"
+ "reference": "344572933ad0181accbf4ba763e85a0306a8c5e2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ramsey/collection/zipball/cccc74ee5e328031b15640b51056ee8d3bb66c0a",
- "reference": "cccc74ee5e328031b15640b51056ee8d3bb66c0a",
+ "url": "https://api.github.com/repos/ramsey/collection/zipball/344572933ad0181accbf4ba763e85a0306a8c5e2",
+ "reference": "344572933ad0181accbf4ba763e85a0306a8c5e2",
"shasum": ""
},
"require": {
- "php": "^7.3 || ^8",
- "symfony/polyfill-php81": "^1.23"
+ "php": "^8.1"
},
"require-dev": {
- "captainhook/captainhook": "^5.3",
- "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
- "ergebnis/composer-normalize": "^2.6",
- "fakerphp/faker": "^1.5",
- "hamcrest/hamcrest-php": "^2",
- "jangregor/phpstan-prophecy": "^0.8",
- "mockery/mockery": "^1.3",
- "phpspec/prophecy-phpunit": "^2.0",
- "phpstan/extension-installer": "^1",
- "phpstan/phpstan": "^0.12.32",
- "phpstan/phpstan-mockery": "^0.12.5",
- "phpstan/phpstan-phpunit": "^0.12.11",
- "phpunit/phpunit": "^8.5 || ^9",
- "psy/psysh": "^0.10.4",
- "slevomat/coding-standard": "^6.3",
- "squizlabs/php_codesniffer": "^3.5",
- "vimeo/psalm": "^4.4"
+ "captainhook/plugin-composer": "^5.3",
+ "ergebnis/composer-normalize": "^2.45",
+ "fakerphp/faker": "^1.24",
+ "hamcrest/hamcrest-php": "^2.0",
+ "jangregor/phpstan-prophecy": "^2.1",
+ "mockery/mockery": "^1.6",
+ "php-parallel-lint/php-console-highlighter": "^1.0",
+ "php-parallel-lint/php-parallel-lint": "^1.4",
+ "phpspec/prophecy-phpunit": "^2.3",
+ "phpstan/extension-installer": "^1.4",
+ "phpstan/phpstan": "^2.1",
+ "phpstan/phpstan-mockery": "^2.0",
+ "phpstan/phpstan-phpunit": "^2.0",
+ "phpunit/phpunit": "^10.5",
+ "ramsey/coding-standard": "^2.3",
+ "ramsey/conventional-commits": "^1.6",
+ "roave/security-advisories": "dev-latest"
},
"type": "library",
+ "extra": {
+ "captainhook": {
+ "force-install": true
+ },
+ "ramsey/conventional-commits": {
+ "configFile": "conventional-commits.json"
+ }
+ },
"autoload": {
"psr-4": {
"Ramsey\\Collection\\": "src/"
@@ -5126,41 +5530,29 @@
],
"support": {
"issues": "https://github.com/ramsey/collection/issues",
- "source": "https://github.com/ramsey/collection/tree/1.2.2"
+ "source": "https://github.com/ramsey/collection/tree/2.1.1"
},
- "funding": [
- {
- "url": "https://github.com/ramsey",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/ramsey/collection",
- "type": "tidelift"
- }
- ],
- "time": "2021-10-10T03:01:02+00:00"
+ "time": "2025-03-22T05:38:12+00:00"
},
{
"name": "ramsey/uuid",
- "version": "4.2.3",
+ "version": "4.7.6",
"source": {
"type": "git",
"url": "https://github.com/ramsey/uuid.git",
- "reference": "fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df"
+ "reference": "91039bc1faa45ba123c4328958e620d382ec7088"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ramsey/uuid/zipball/fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df",
- "reference": "fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df",
+ "url": "https://api.github.com/repos/ramsey/uuid/zipball/91039bc1faa45ba123c4328958e620d382ec7088",
+ "reference": "91039bc1faa45ba123c4328958e620d382ec7088",
"shasum": ""
},
"require": {
- "brick/math": "^0.8 || ^0.9",
+ "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12",
"ext-json": "*",
- "php": "^7.2 || ^8.0",
- "ramsey/collection": "^1.0",
- "symfony/polyfill-ctype": "^1.8",
- "symfony/polyfill-php80": "^1.14"
+ "php": "^8.0",
+ "ramsey/collection": "^1.2 || ^2.0"
},
"replace": {
"rhumsaa/uuid": "self.version"
@@ -5172,24 +5564,23 @@
"doctrine/annotations": "^1.8",
"ergebnis/composer-normalize": "^2.15",
"mockery/mockery": "^1.3",
- "moontoast/math": "^1.1",
"paragonie/random-lib": "^2",
"php-mock/php-mock": "^2.2",
"php-mock/php-mock-mockery": "^1.3",
"php-parallel-lint/php-parallel-lint": "^1.1",
"phpbench/phpbench": "^1.0",
- "phpstan/extension-installer": "^1.0",
- "phpstan/phpstan": "^0.12",
- "phpstan/phpstan-mockery": "^0.12",
- "phpstan/phpstan-phpunit": "^0.12",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan": "^1.8",
+ "phpstan/phpstan-mockery": "^1.1",
+ "phpstan/phpstan-phpunit": "^1.1",
"phpunit/phpunit": "^8.5 || ^9",
- "slevomat/coding-standard": "^7.0",
+ "ramsey/composer-repl": "^1.4",
+ "slevomat/coding-standard": "^8.4",
"squizlabs/php_codesniffer": "^3.5",
"vimeo/psalm": "^4.9"
},
"suggest": {
"ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.",
- "ext-ctype": "Enables faster processing of character classification using ctype functions.",
"ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.",
"ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.",
"paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter",
@@ -5197,9 +5588,6 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "4.x-dev"
- },
"captainhook": {
"force-install": true
}
@@ -5224,7 +5612,7 @@
],
"support": {
"issues": "https://github.com/ramsey/uuid/issues",
- "source": "https://github.com/ramsey/uuid/tree/4.2.3"
+ "source": "https://github.com/ramsey/uuid/tree/4.7.6"
},
"funding": [
{
@@ -5236,27 +5624,29 @@
"type": "tidelift"
}
],
- "time": "2021-09-25T23:10:38+00:00"
+ "time": "2024-04-27T21:32:50+00:00"
},
{
"name": "rize/uri-template",
- "version": "0.3.5",
+ "version": "0.4.0",
"source": {
"type": "git",
"url": "https://github.com/rize/UriTemplate.git",
- "reference": "5ed4ba8ea34af84485dea815d4b6b620794d1168"
+ "reference": "56f374a9a42c7c3998f8b55b6b21b224de90c58b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/rize/UriTemplate/zipball/5ed4ba8ea34af84485dea815d4b6b620794d1168",
- "reference": "5ed4ba8ea34af84485dea815d4b6b620794d1168",
+ "url": "https://api.github.com/repos/rize/UriTemplate/zipball/56f374a9a42c7c3998f8b55b6b21b224de90c58b",
+ "reference": "56f374a9a42c7c3998f8b55b6b21b224de90c58b",
"shasum": ""
},
"require": {
- "php": ">=5.3.0"
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "~4.8.36"
+ "friendsofphp/php-cs-fixer": "^3.63",
+ "phpstan/phpstan": "^1.12",
+ "phpunit/phpunit": "~10.0"
},
"type": "library",
"autoload": {
@@ -5282,7 +5672,7 @@
],
"support": {
"issues": "https://github.com/rize/UriTemplate/issues",
- "source": "https://github.com/rize/UriTemplate/tree/0.3.5"
+ "source": "https://github.com/rize/UriTemplate/tree/0.4.0"
},
"funding": [
{
@@ -5298,114 +5688,86 @@
"type": "open_collective"
}
],
- "time": "2022-10-12T17:22:51+00:00"
+ "time": "2024-11-27T12:13:42+00:00"
},
{
- "name": "sentry/sdk",
- "version": "3.5.0",
+ "name": "robrichards/xmlseclibs",
+ "version": "3.1.3",
"source": {
"type": "git",
- "url": "https://github.com/getsentry/sentry-php-sdk.git",
- "reference": "cd91b752f07c4bab9fb3b173f81af68a78a78d6d"
+ "url": "https://github.com/robrichards/xmlseclibs.git",
+ "reference": "2bdfd742624d739dfadbd415f00181b4a77aaf07"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/getsentry/sentry-php-sdk/zipball/cd91b752f07c4bab9fb3b173f81af68a78a78d6d",
- "reference": "cd91b752f07c4bab9fb3b173f81af68a78a78d6d",
+ "url": "https://api.github.com/repos/robrichards/xmlseclibs/zipball/2bdfd742624d739dfadbd415f00181b4a77aaf07",
+ "reference": "2bdfd742624d739dfadbd415f00181b4a77aaf07",
"shasum": ""
},
"require": {
- "http-interop/http-factory-guzzle": "^1.0",
- "sentry/sentry": "^3.19",
- "symfony/http-client": "^4.3|^5.0|^6.0"
+ "ext-openssl": "*",
+ "php": ">= 5.4"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "RobRichards\\XMLSecLibs\\": "src"
+ }
},
- "type": "metapackage",
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
],
- "authors": [
- {
- "name": "Sentry",
- "email": "accounts@sentry.io"
- }
- ],
- "description": "This is a metapackage shipping sentry/sentry with a recommended HTTP client.",
- "homepage": "http://sentry.io",
+ "description": "A PHP library for XML Security",
+ "homepage": "https://github.com/robrichards/xmlseclibs",
"keywords": [
- "crash-reporting",
- "crash-reports",
- "error-handler",
- "error-monitoring",
- "log",
- "logging",
- "sentry"
+ "security",
+ "signature",
+ "xml",
+ "xmldsig"
],
"support": {
- "issues": "https://github.com/getsentry/sentry-php-sdk/issues",
- "source": "https://github.com/getsentry/sentry-php-sdk/tree/3.5.0"
+ "issues": "https://github.com/robrichards/xmlseclibs/issues",
+ "source": "https://github.com/robrichards/xmlseclibs/tree/3.1.3"
},
- "funding": [
- {
- "url": "https://sentry.io/",
- "type": "custom"
- },
- {
- "url": "https://sentry.io/pricing/",
- "type": "custom"
- }
- ],
- "time": "2023-06-12T17:50:36+00:00"
+ "time": "2024-11-20T21:13:56+00:00"
},
{
"name": "sentry/sentry",
- "version": "3.21.0",
+ "version": "4.11.1",
"source": {
"type": "git",
"url": "https://github.com/getsentry/sentry-php.git",
- "reference": "624aafc22b84b089ffa43b71fb01e0096505ec4f"
+ "reference": "53dc0bcb6a667cac5b760b46f98d5380e63e02ca"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/624aafc22b84b089ffa43b71fb01e0096505ec4f",
- "reference": "624aafc22b84b089ffa43b71fb01e0096505ec4f",
+ "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/53dc0bcb6a667cac5b760b46f98d5380e63e02ca",
+ "reference": "53dc0bcb6a667cac5b760b46f98d5380e63e02ca",
"shasum": ""
},
"require": {
+ "ext-curl": "*",
"ext-json": "*",
"ext-mbstring": "*",
- "guzzlehttp/promises": "^1.5.3|^2.0",
+ "guzzlehttp/psr7": "^1.8.4|^2.1.1",
"jean85/pretty-package-versions": "^1.5|^2.0.4",
"php": "^7.2|^8.0",
- "php-http/async-client-implementation": "^1.0",
- "php-http/client-common": "^1.5|^2.0",
- "php-http/discovery": "^1.15",
- "php-http/httplug": "^1.1|^2.0",
- "php-http/message": "^1.5",
- "php-http/message-factory": "^1.1",
- "psr/http-factory": "^1.0",
- "psr/http-factory-implementation": "^1.0",
"psr/log": "^1.0|^2.0|^3.0",
- "symfony/options-resolver": "^3.4.43|^4.4.30|^5.0.11|^6.0",
- "symfony/polyfill-php80": "^1.17"
+ "symfony/options-resolver": "^4.4.30|^5.0.11|^6.0|^7.0"
},
"conflict": {
- "php-http/client-common": "1.8.0",
"raven/raven": "*"
},
"require-dev": {
- "friendsofphp/php-cs-fixer": "^2.19|3.4.*",
+ "friendsofphp/php-cs-fixer": "^3.4",
+ "guzzlehttp/promises": "^2.0.3",
"guzzlehttp/psr7": "^1.8.4|^2.1.1",
- "http-interop/http-factory-guzzle": "^1.0",
"monolog/monolog": "^1.6|^2.0|^3.0",
- "nikic/php-parser": "^4.10.3",
- "php-http/mock-client": "^1.3",
"phpbench/phpbench": "^1.0",
- "phpstan/extension-installer": "^1.0",
"phpstan/phpstan": "^1.3",
- "phpstan/phpstan-phpunit": "^1.0",
- "phpunit/phpunit": "^8.5.14|^9.4",
- "symfony/phpunit-bridge": "^5.2|^6.0",
+ "phpunit/phpunit": "^8.5|^9.6",
+ "symfony/phpunit-bridge": "^5.2|^6.0|^7.0",
"vimeo/psalm": "^4.17"
},
"suggest": {
@@ -5430,7 +5792,7 @@
"email": "accounts@sentry.io"
}
],
- "description": "A PHP SDK for Sentry (http://sentry.io)",
+ "description": "PHP SDK for Sentry (http://sentry.io)",
"homepage": "http://sentry.io",
"keywords": [
"crash-reporting",
@@ -5439,11 +5801,13 @@
"error-monitoring",
"log",
"logging",
- "sentry"
+ "profiling",
+ "sentry",
+ "tracing"
],
"support": {
"issues": "https://github.com/getsentry/sentry-php/issues",
- "source": "https://github.com/getsentry/sentry-php/tree/3.21.0"
+ "source": "https://github.com/getsentry/sentry-php/tree/4.11.1"
},
"funding": [
{
@@ -5455,54 +5819,50 @@
"type": "custom"
}
],
- "time": "2023-07-31T15:31:24+00:00"
+ "time": "2025-05-12T11:30:33+00:00"
},
{
"name": "sentry/sentry-laravel",
- "version": "3.7.3",
+ "version": "4.13.0",
"source": {
"type": "git",
"url": "https://github.com/getsentry/sentry-laravel.git",
- "reference": "2aee4ad217be8ef04ffcde6e9f7dd17af5a3b0bf"
+ "reference": "d232ac494258e0d50a77c575a5af5f1a426d3f87"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/getsentry/sentry-laravel/zipball/2aee4ad217be8ef04ffcde6e9f7dd17af5a3b0bf",
- "reference": "2aee4ad217be8ef04ffcde6e9f7dd17af5a3b0bf",
+ "url": "https://api.github.com/repos/getsentry/sentry-laravel/zipball/d232ac494258e0d50a77c575a5af5f1a426d3f87",
+ "reference": "d232ac494258e0d50a77c575a5af5f1a426d3f87",
"shasum": ""
},
"require": {
- "illuminate/support": "^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0",
+ "illuminate/support": "^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0 | ^11.0 | ^12.0",
"nyholm/psr7": "^1.0",
"php": "^7.2 | ^8.0",
- "sentry/sdk": "^3.4",
- "sentry/sentry": "^3.20.1",
- "symfony/psr-http-message-bridge": "^1.0 | ^2.0"
+ "sentry/sentry": "^4.10",
+ "symfony/psr-http-message-bridge": "^1.0 | ^2.0 | ^6.0 | ^7.0"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^3.11",
- "laravel/framework": "^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0",
+ "guzzlehttp/guzzle": "^7.2",
+ "laravel/folio": "^1.1",
+ "laravel/framework": "^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0 | ^11.0 | ^12.0",
+ "livewire/livewire": "^2.0 | ^3.0",
"mockery/mockery": "^1.3",
- "orchestra/testbench": "^4.7 | ^5.1 | ^6.0 | ^7.0 | ^8.0",
+ "orchestra/testbench": "^4.7 | ^5.1 | ^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0",
"phpstan/phpstan": "^1.10",
- "phpunit/phpunit": "^8.4 | ^9.3"
+ "phpunit/phpunit": "^8.4 | ^9.3 | ^10.4 | ^11.5"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "3.x-dev",
- "dev-2.x": "2.x-dev",
- "dev-1.x": "1.x-dev",
- "dev-0.x": "0.x-dev"
- },
"laravel": {
+ "aliases": {
+ "Sentry": "Sentry\\Laravel\\Facade"
+ },
"providers": [
"Sentry\\Laravel\\ServiceProvider",
"Sentry\\Laravel\\Tracing\\ServiceProvider"
- ],
- "aliases": {
- "Sentry": "Sentry\\Laravel\\Facade"
- }
+ ]
}
},
"autoload": {
@@ -5530,11 +5890,13 @@
"laravel",
"log",
"logging",
- "sentry"
+ "profiling",
+ "sentry",
+ "tracing"
],
"support": {
"issues": "https://github.com/getsentry/sentry-laravel/issues",
- "source": "https://github.com/getsentry/sentry-laravel/tree/3.7.3"
+ "source": "https://github.com/getsentry/sentry-laravel/tree/4.13.0"
},
"funding": [
{
@@ -5546,40 +5908,35 @@
"type": "custom"
}
],
- "time": "2023-08-03T10:10:23+00:00"
+ "time": "2025-02-18T10:09:29+00:00"
},
{
- "name": "spatie/laravel-mix-preload",
- "version": "1.3.1",
+ "name": "stancl/jobpipeline",
+ "version": "v1.8.0",
"source": {
"type": "git",
- "url": "https://github.com/spatie/laravel-mix-preload.git",
- "reference": "ac96497b06c45ffafbe66849b05385d28b0687e7"
+ "url": "https://github.com/archtechx/jobpipeline.git",
+ "reference": "a987f8ff698456bb807937225b1a98fd92ce3124"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/spatie/laravel-mix-preload/zipball/ac96497b06c45ffafbe66849b05385d28b0687e7",
- "reference": "ac96497b06c45ffafbe66849b05385d28b0687e7",
+ "url": "https://api.github.com/repos/archtechx/jobpipeline/zipball/a987f8ff698456bb807937225b1a98fd92ce3124",
+ "reference": "a987f8ff698456bb807937225b1a98fd92ce3124",
"shasum": ""
},
"require": {
- "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0",
- "php": "^7.3|^8.0"
+ "illuminate/support": "^10.0|^11.0|^12.0",
+ "php": "^8.0"
},
"require-dev": {
- "phpunit/phpunit": "^9.5.7"
+ "ext-redis": "*",
+ "orchestra/testbench": "^8.0|^9.0|^10.0",
+ "spatie/valuestore": "^1.2"
},
"type": "library",
- "extra": {
- "laravel": {
- "providers": [
- "Spatie\\MixPreload\\MixPreloadServiceProvider"
- ]
- }
- },
"autoload": {
"psr-4": {
- "Spatie\\MixPreload\\": "src"
+ "Stancl\\JobPipeline\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -5588,71 +5945,176 @@
],
"authors": [
{
- "name": "Sebastian De Deyne",
- "email": "sebastian@spatie.be",
- "homepage": "https://spatie.be",
- "role": "Developer"
+ "name": "Samuel Štancl",
+ "email": "samuel.stancl@gmail.com"
}
],
- "description": "Add preload and prefetch links based your Mix manifest",
- "homepage": "https://github.com/spatie/laravel-mix-preload",
- "keywords": [
- "laravel-mix-preload",
- "spatie"
- ],
+ "description": "Turn any series of jobs into Laravel listeners.",
"support": {
- "issues": "https://github.com/spatie/laravel-mix-preload/issues",
- "source": "https://github.com/spatie/laravel-mix-preload/tree/1.3.1"
+ "issues": "https://github.com/archtechx/jobpipeline/issues",
+ "source": "https://github.com/archtechx/jobpipeline/tree/v1.8.0"
},
- "funding": [
- {
- "url": "https://spatie.be/open-source/support-us",
- "type": "custom"
- },
- {
- "url": "https://www.patreon.com/spatie",
- "type": "patreon"
- }
- ],
- "time": "2023-02-01T18:17:38+00:00"
+ "time": "2025-02-25T11:59:50+00:00"
},
{
- "name": "swiftmailer/swiftmailer",
- "version": "v6.3.0",
+ "name": "stancl/tenancy",
+ "version": "v3.9.1",
"source": {
"type": "git",
- "url": "https://github.com/swiftmailer/swiftmailer.git",
- "reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c"
+ "url": "https://github.com/archtechx/tenancy.git",
+ "reference": "d98a170fbd2e114604bfec3bc6267a3d6e02dec1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/8a5d5072dca8f48460fce2f4131fcc495eec654c",
- "reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c",
+ "url": "https://api.github.com/repos/archtechx/tenancy/zipball/d98a170fbd2e114604bfec3bc6267a3d6e02dec1",
+ "reference": "d98a170fbd2e114604bfec3bc6267a3d6e02dec1",
"shasum": ""
},
"require": {
- "egulias/email-validator": "^2.0|^3.1",
- "php": ">=7.0.0",
- "symfony/polyfill-iconv": "^1.0",
- "symfony/polyfill-intl-idn": "^1.10",
- "symfony/polyfill-mbstring": "^1.0"
+ "ext-json": "*",
+ "facade/ignition-contracts": "^1.0.2",
+ "illuminate/support": "^10.0|^11.0|^12.0",
+ "php": "^8.0",
+ "ramsey/uuid": "^4.7.3",
+ "stancl/jobpipeline": "^1.8.0",
+ "stancl/virtualcolumn": "^1.5.0"
},
"require-dev": {
- "mockery/mockery": "^1.0",
- "symfony/phpunit-bridge": "^4.4|^5.4"
- },
- "suggest": {
- "ext-intl": "Needed to support internationalized email addresses"
+ "doctrine/dbal": "^3.6.0",
+ "laravel/framework": "^10.0|^11.0|^12.0",
+ "league/flysystem-aws-s3-v3": "^3.12.2",
+ "orchestra/testbench": "^8.0|^9.0|^10.0",
+ "spatie/valuestore": "^1.3.2"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "6.2-dev"
+ "laravel": {
+ "aliases": {
+ "Tenancy": "Stancl\\Tenancy\\Facades\\Tenancy",
+ "GlobalCache": "Stancl\\Tenancy\\Facades\\GlobalCache"
+ },
+ "providers": [
+ "Stancl\\Tenancy\\TenancyServiceProvider"
+ ]
}
},
"autoload": {
"files": [
- "lib/swift_required.php"
+ "src/helpers.php"
+ ],
+ "psr-4": {
+ "Stancl\\Tenancy\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Samuel Štancl",
+ "email": "samuel.stancl@gmail.com"
+ }
+ ],
+ "description": "Automatic multi-tenancy for your Laravel application.",
+ "keywords": [
+ "laravel",
+ "multi-database",
+ "multi-tenancy",
+ "tenancy"
+ ],
+ "support": {
+ "issues": "https://github.com/archtechx/tenancy/issues",
+ "source": "https://github.com/archtechx/tenancy/tree/v3.9.1"
+ },
+ "funding": [
+ {
+ "url": "https://tenancyforlaravel.com/donate",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/stancl",
+ "type": "github"
+ }
+ ],
+ "time": "2025-03-13T16:02:11+00:00"
+ },
+ {
+ "name": "stancl/virtualcolumn",
+ "version": "v1.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/archtechx/virtualcolumn.git",
+ "reference": "75718edcfeeb19abc1970f5395043f7d43cce5bc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/archtechx/virtualcolumn/zipball/75718edcfeeb19abc1970f5395043f7d43cce5bc",
+ "reference": "75718edcfeeb19abc1970f5395043f7d43cce5bc",
+ "shasum": ""
+ },
+ "require": {
+ "illuminate/database": ">=10.0",
+ "illuminate/support": ">=10.0"
+ },
+ "require-dev": {
+ "orchestra/testbench": ">=8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Stancl\\VirtualColumn\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Samuel Štancl",
+ "email": "samuel.stancl@gmail.com"
+ }
+ ],
+ "description": "Eloquent virtual column.",
+ "support": {
+ "issues": "https://github.com/archtechx/virtualcolumn/issues",
+ "source": "https://github.com/archtechx/virtualcolumn/tree/v1.5.0"
+ },
+ "time": "2025-02-25T13:12:44+00:00"
+ },
+ {
+ "name": "symfony/clock",
+ "version": "v7.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/clock.git",
+ "reference": "b81435fbd6648ea425d1ee96a2d8e68f4ceacd24"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/clock/zipball/b81435fbd6648ea425d1ee96a2d8e68f4ceacd24",
+ "reference": "b81435fbd6648ea425d1ee96a2d8e68f4ceacd24",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "psr/clock": "^1.0",
+ "symfony/polyfill-php83": "^1.28"
+ },
+ "provide": {
+ "psr/clock-implementation": "1.0"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "Resources/now.php"
+ ],
+ "psr-4": {
+ "Symfony\\Component\\Clock\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
@@ -5661,85 +6123,82 @@
],
"authors": [
{
- "name": "Chris Corbyn"
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
},
{
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Swiftmailer, free feature-rich PHP mailer",
- "homepage": "https://swiftmailer.symfony.com",
+ "description": "Decouples applications from the system clock",
+ "homepage": "https://symfony.com",
"keywords": [
- "email",
- "mail",
- "mailer"
+ "clock",
+ "psr20",
+ "time"
],
"support": {
- "issues": "https://github.com/swiftmailer/swiftmailer/issues",
- "source": "https://github.com/swiftmailer/swiftmailer/tree/v6.3.0"
+ "source": "https://github.com/symfony/clock/tree/v7.2.0"
},
"funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
{
"url": "https://github.com/fabpot",
"type": "github"
},
{
- "url": "https://tidelift.com/funding/github/packagist/swiftmailer/swiftmailer",
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "abandoned": "symfony/mailer",
- "time": "2021-10-18T15:26:12+00:00"
+ "time": "2024-09-25T14:21:43+00:00"
},
{
"name": "symfony/console",
- "version": "v5.4.26",
+ "version": "v7.2.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "b504a3d266ad2bb632f196c0936ef2af5ff6e273"
+ "reference": "0e2e3f38c192e93e622e41ec37f4ca70cfedf218"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/b504a3d266ad2bb632f196c0936ef2af5ff6e273",
- "reference": "b504a3d266ad2bb632f196c0936ef2af5ff6e273",
+ "url": "https://api.github.com/repos/symfony/console/zipball/0e2e3f38c192e93e622e41ec37f4ca70cfedf218",
+ "reference": "0e2e3f38c192e93e622e41ec37f4ca70cfedf218",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
+ "php": ">=8.2",
"symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php73": "^1.9",
- "symfony/polyfill-php80": "^1.16",
- "symfony/service-contracts": "^1.1|^2|^3",
- "symfony/string": "^5.1|^6.0"
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/string": "^6.4|^7.0"
},
"conflict": {
- "psr/log": ">=3",
- "symfony/dependency-injection": "<4.4",
- "symfony/dotenv": "<5.1",
- "symfony/event-dispatcher": "<4.4",
- "symfony/lock": "<4.4",
- "symfony/process": "<4.4"
+ "symfony/dependency-injection": "<6.4",
+ "symfony/dotenv": "<6.4",
+ "symfony/event-dispatcher": "<6.4",
+ "symfony/lock": "<6.4",
+ "symfony/process": "<6.4"
},
"provide": {
- "psr/log-implementation": "1.0|2.0"
+ "psr/log-implementation": "1.0|2.0|3.0"
},
"require-dev": {
- "psr/log": "^1|^2",
- "symfony/config": "^4.4|^5.0|^6.0",
- "symfony/dependency-injection": "^4.4|^5.0|^6.0",
- "symfony/event-dispatcher": "^4.4|^5.0|^6.0",
- "symfony/lock": "^4.4|^5.0|^6.0",
- "symfony/process": "^4.4|^5.0|^6.0",
- "symfony/var-dumper": "^4.4|^5.0|^6.0"
- },
- "suggest": {
- "psr/log": "For using the console logger",
- "symfony/event-dispatcher": "",
- "symfony/lock": "",
- "symfony/process": ""
+ "psr/log": "^1|^2|^3",
+ "symfony/config": "^6.4|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/event-dispatcher": "^6.4|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/lock": "^6.4|^7.0",
+ "symfony/messenger": "^6.4|^7.0",
+ "symfony/process": "^6.4|^7.0",
+ "symfony/stopwatch": "^6.4|^7.0",
+ "symfony/var-dumper": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -5773,7 +6232,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v5.4.26"
+ "source": "https://github.com/symfony/console/tree/v7.2.6"
},
"funding": [
{
@@ -5789,25 +6248,24 @@
"type": "tidelift"
}
],
- "time": "2023-07-19T20:11:33+00:00"
+ "time": "2025-04-07T19:09:28+00:00"
},
{
"name": "symfony/css-selector",
- "version": "v5.4.26",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
- "reference": "0ad3f7e9a1ab492c5b4214cf22a9dc55dcf8600a"
+ "reference": "601a5ce9aaad7bf10797e3663faefce9e26c24e2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/css-selector/zipball/0ad3f7e9a1ab492c5b4214cf22a9dc55dcf8600a",
- "reference": "0ad3f7e9a1ab492c5b4214cf22a9dc55dcf8600a",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/601a5ce9aaad7bf10797e3663faefce9e26c24e2",
+ "reference": "601a5ce9aaad7bf10797e3663faefce9e26c24e2",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.2"
},
"type": "library",
"autoload": {
@@ -5839,7 +6297,7 @@
"description": "Converts CSS selectors to XPath expressions",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/css-selector/tree/v5.4.26"
+ "source": "https://github.com/symfony/css-selector/tree/v7.2.0"
},
"funding": [
{
@@ -5855,33 +6313,33 @@
"type": "tidelift"
}
],
- "time": "2023-07-07T06:10:25+00:00"
+ "time": "2024-09-25T14:21:43+00:00"
},
{
"name": "symfony/deprecation-contracts",
- "version": "v2.5.2",
+ "version": "v3.6.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66"
+ "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66",
- "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62",
+ "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=8.1"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "2.5-dev"
- },
"thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
+ "branch-alias": {
+ "dev-main": "3.6-dev"
}
},
"autoload": {
@@ -5906,7 +6364,7 @@
"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.2"
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.0"
},
"funding": [
{
@@ -5922,31 +6380,35 @@
"type": "tidelift"
}
],
- "time": "2022-01-02T09:53:40+00:00"
+ "time": "2024-09-25T14:21:43+00:00"
},
{
"name": "symfony/error-handler",
- "version": "v5.4.26",
+ "version": "v7.2.5",
"source": {
"type": "git",
"url": "https://github.com/symfony/error-handler.git",
- "reference": "b26719213a39c9ba57520cbc5e52bfcc5e8d92f9"
+ "reference": "102be5e6a8e4f4f3eb3149bcbfa33a80d1ee374b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/error-handler/zipball/b26719213a39c9ba57520cbc5e52bfcc5e8d92f9",
- "reference": "b26719213a39c9ba57520cbc5e52bfcc5e8d92f9",
+ "url": "https://api.github.com/repos/symfony/error-handler/zipball/102be5e6a8e4f4f3eb3149bcbfa33a80d1ee374b",
+ "reference": "102be5e6a8e4f4f3eb3149bcbfa33a80d1ee374b",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
+ "php": ">=8.2",
"psr/log": "^1|^2|^3",
- "symfony/var-dumper": "^4.4|^5.0|^6.0"
+ "symfony/var-dumper": "^6.4|^7.0"
+ },
+ "conflict": {
+ "symfony/deprecation-contracts": "<2.5",
+ "symfony/http-kernel": "<6.4"
},
"require-dev": {
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/http-kernel": "^4.4|^5.0|^6.0",
- "symfony/serializer": "^4.4|^5.0|^6.0"
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/serializer": "^6.4|^7.0"
},
"bin": [
"Resources/bin/patch-type-declarations"
@@ -5977,7 +6439,7 @@
"description": "Provides tools to manage errors and ease debugging PHP code",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/error-handler/tree/v5.4.26"
+ "source": "https://github.com/symfony/error-handler/tree/v7.2.5"
},
"funding": [
{
@@ -5993,48 +6455,43 @@
"type": "tidelift"
}
],
- "time": "2023-07-16T16:48:57+00:00"
+ "time": "2025-03-03T07:12:39+00:00"
},
{
"name": "symfony/event-dispatcher",
- "version": "v5.4.26",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "5dcc00e03413f05c1e7900090927bb7247cb0aac"
+ "reference": "910c5db85a5356d0fea57680defec4e99eb9c8c1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/5dcc00e03413f05c1e7900090927bb7247cb0aac",
- "reference": "5dcc00e03413f05c1e7900090927bb7247cb0aac",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/910c5db85a5356d0fea57680defec4e99eb9c8c1",
+ "reference": "910c5db85a5356d0fea57680defec4e99eb9c8c1",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/event-dispatcher-contracts": "^2|^3",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.2",
+ "symfony/event-dispatcher-contracts": "^2.5|^3"
},
"conflict": {
- "symfony/dependency-injection": "<4.4"
+ "symfony/dependency-injection": "<6.4",
+ "symfony/service-contracts": "<2.5"
},
"provide": {
"psr/event-dispatcher-implementation": "1.0",
- "symfony/event-dispatcher-implementation": "2.0"
+ "symfony/event-dispatcher-implementation": "2.0|3.0"
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/config": "^4.4|^5.0|^6.0",
- "symfony/dependency-injection": "^4.4|^5.0|^6.0",
- "symfony/error-handler": "^4.4|^5.0|^6.0",
- "symfony/expression-language": "^4.4|^5.0|^6.0",
- "symfony/http-foundation": "^4.4|^5.0|^6.0",
- "symfony/service-contracts": "^1.1|^2|^3",
- "symfony/stopwatch": "^4.4|^5.0|^6.0"
- },
- "suggest": {
- "symfony/dependency-injection": "",
- "symfony/http-kernel": ""
+ "symfony/config": "^6.4|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/error-handler": "^6.4|^7.0",
+ "symfony/expression-language": "^6.4|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/stopwatch": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -6062,7 +6519,7 @@
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.26"
+ "source": "https://github.com/symfony/event-dispatcher/tree/v7.2.0"
},
"funding": [
{
@@ -6078,37 +6535,34 @@
"type": "tidelift"
}
],
- "time": "2023-07-06T06:34:20+00:00"
+ "time": "2024-09-25T14:21:43+00:00"
},
{
"name": "symfony/event-dispatcher-contracts",
- "version": "v2.5.2",
+ "version": "v3.6.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
- "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1"
+ "reference": "59eb412e93815df44f05f342958efa9f46b1e586"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/f98b54df6ad059855739db6fcbc2d36995283fe1",
- "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/59eb412e93815df44f05f342958efa9f46b1e586",
+ "reference": "59eb412e93815df44f05f342958efa9f46b1e586",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
+ "php": ">=8.1",
"psr/event-dispatcher": "^1"
},
- "suggest": {
- "symfony/event-dispatcher-implementation": ""
- },
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "2.5-dev"
- },
"thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
+ "branch-alias": {
+ "dev-main": "3.6-dev"
}
},
"autoload": {
@@ -6141,7 +6595,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.2"
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.6.0"
},
"funding": [
{
@@ -6157,26 +6611,27 @@
"type": "tidelift"
}
],
- "time": "2022-01-02T09:53:40+00:00"
+ "time": "2024-09-25T14:21:43+00:00"
},
{
"name": "symfony/finder",
- "version": "v5.4.27",
+ "version": "v7.2.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "ff4bce3c33451e7ec778070e45bd23f74214cd5d"
+ "reference": "87a71856f2f56e4100373e92529eed3171695cfb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/ff4bce3c33451e7ec778070e45bd23f74214cd5d",
- "reference": "ff4bce3c33451e7ec778070e45bd23f74214cd5d",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/87a71856f2f56e4100373e92529eed3171695cfb",
+ "reference": "87a71856f2f56e4100373e92529eed3171695cfb",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.2"
+ },
+ "require-dev": {
+ "symfony/filesystem": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -6204,7 +6659,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/finder/tree/v5.4.27"
+ "source": "https://github.com/symfony/finder/tree/v7.2.2"
},
"funding": [
{
@@ -6220,208 +6675,41 @@
"type": "tidelift"
}
],
- "time": "2023-07-31T08:02:31+00:00"
- },
- {
- "name": "symfony/http-client",
- "version": "v5.4.26",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/http-client.git",
- "reference": "19d48ef7f38e5057ed1789a503cd3eccef039bce"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/http-client/zipball/19d48ef7f38e5057ed1789a503cd3eccef039bce",
- "reference": "19d48ef7f38e5057ed1789a503cd3eccef039bce",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "psr/log": "^1|^2|^3",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/http-client-contracts": "^2.4",
- "symfony/polyfill-php73": "^1.11",
- "symfony/polyfill-php80": "^1.16",
- "symfony/service-contracts": "^1.0|^2|^3"
- },
- "provide": {
- "php-http/async-client-implementation": "*",
- "php-http/client-implementation": "*",
- "psr/http-client-implementation": "1.0",
- "symfony/http-client-implementation": "2.4"
- },
- "require-dev": {
- "amphp/amp": "^2.5",
- "amphp/http-client": "^4.2.1",
- "amphp/http-tunnel": "^1.0",
- "amphp/socket": "^1.1",
- "guzzlehttp/promises": "^1.4",
- "nyholm/psr7": "^1.0",
- "php-http/httplug": "^1.0|^2.0",
- "php-http/message-factory": "^1.0",
- "psr/http-client": "^1.0",
- "symfony/dependency-injection": "^4.4|^5.0|^6.0",
- "symfony/http-kernel": "^4.4.13|^5.1.5|^6.0",
- "symfony/process": "^4.4|^5.0|^6.0",
- "symfony/stopwatch": "^4.4|^5.0|^6.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\HttpClient\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "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": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously",
- "homepage": "https://symfony.com",
- "keywords": [
- "http"
- ],
- "support": {
- "source": "https://github.com/symfony/http-client/tree/v5.4.26"
- },
- "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-07-03T12:14:50+00:00"
- },
- {
- "name": "symfony/http-client-contracts",
- "version": "v2.5.2",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/http-client-contracts.git",
- "reference": "ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70",
- "reference": "ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5"
- },
- "suggest": {
- "symfony/http-client-implementation": ""
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "2.5-dev"
- },
- "thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Contracts\\HttpClient\\": ""
- }
- },
- "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": "Generic abstractions related to HTTP clients",
- "homepage": "https://symfony.com",
- "keywords": [
- "abstractions",
- "contracts",
- "decoupling",
- "interfaces",
- "interoperability",
- "standards"
- ],
- "support": {
- "source": "https://github.com/symfony/http-client-contracts/tree/v2.5.2"
- },
- "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": "2022-04-12T15:48:08+00:00"
+ "time": "2024-12-30T19:00:17+00:00"
},
{
"name": "symfony/http-foundation",
- "version": "v5.4.26",
+ "version": "v7.2.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
- "reference": "e7793151e99dc2ac1352ff3735d100fb3b3bfc08"
+ "reference": "6023ec7607254c87c5e69fb3558255aca440d72b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e7793151e99dc2ac1352ff3735d100fb3b3bfc08",
- "reference": "e7793151e99dc2ac1352ff3735d100fb3b3bfc08",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/6023ec7607254c87c5e69fb3558255aca440d72b",
+ "reference": "6023ec7607254c87c5e69fb3558255aca440d72b",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
+ "php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.5|^3.0",
"symfony/polyfill-mbstring": "~1.1",
- "symfony/polyfill-php80": "^1.16"
+ "symfony/polyfill-php83": "^1.27"
+ },
+ "conflict": {
+ "doctrine/dbal": "<3.6",
+ "symfony/cache": "<6.4.12|>=7.0,<7.1.5"
},
"require-dev": {
- "predis/predis": "~1.0",
- "symfony/cache": "^4.4|^5.0|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/expression-language": "^4.4|^5.0|^6.0",
- "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4",
- "symfony/mime": "^4.4|^5.0|^6.0",
- "symfony/rate-limiter": "^5.2|^6.0"
- },
- "suggest": {
- "symfony/mime": "To use the file extension guesser"
+ "doctrine/dbal": "^3.6|^4",
+ "predis/predis": "^1.1|^2.0",
+ "symfony/cache": "^6.4.12|^7.1.5",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/expression-language": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/mime": "^6.4|^7.0",
+ "symfony/rate-limiter": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -6449,7 +6737,7 @@
"description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-foundation/tree/v5.4.26"
+ "source": "https://github.com/symfony/http-foundation/tree/v7.2.6"
},
"funding": [
{
@@ -6465,75 +6753,77 @@
"type": "tidelift"
}
],
- "time": "2023-07-21T11:30:15+00:00"
+ "time": "2025-04-09T08:14:01+00:00"
},
{
"name": "symfony/http-kernel",
- "version": "v5.4.27",
+ "version": "v7.2.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
- "reference": "9f5624816c0b8d92f85666ac7ed2825a18fcd899"
+ "reference": "f9dec01e6094a063e738f8945ef69c0cfcf792ec"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-kernel/zipball/9f5624816c0b8d92f85666ac7ed2825a18fcd899",
- "reference": "9f5624816c0b8d92f85666ac7ed2825a18fcd899",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/f9dec01e6094a063e738f8945ef69c0cfcf792ec",
+ "reference": "f9dec01e6094a063e738f8945ef69c0cfcf792ec",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "psr/log": "^1|^2",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/error-handler": "^4.4|^5.0|^6.0",
- "symfony/event-dispatcher": "^5.0|^6.0",
- "symfony/http-foundation": "^5.4.21|^6.2.7",
- "symfony/polyfill-ctype": "^1.8",
- "symfony/polyfill-php73": "^1.9",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.2",
+ "psr/log": "^1|^2|^3",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/error-handler": "^6.4|^7.0",
+ "symfony/event-dispatcher": "^6.4|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/polyfill-ctype": "^1.8"
},
"conflict": {
- "symfony/browser-kit": "<5.4",
- "symfony/cache": "<5.0",
- "symfony/config": "<5.0",
- "symfony/console": "<4.4",
- "symfony/dependency-injection": "<5.3",
- "symfony/doctrine-bridge": "<5.0",
- "symfony/form": "<5.0",
- "symfony/http-client": "<5.0",
- "symfony/mailer": "<5.0",
- "symfony/messenger": "<5.0",
- "symfony/translation": "<5.0",
- "symfony/twig-bridge": "<5.0",
- "symfony/validator": "<5.0",
- "twig/twig": "<2.13"
+ "symfony/browser-kit": "<6.4",
+ "symfony/cache": "<6.4",
+ "symfony/config": "<6.4",
+ "symfony/console": "<6.4",
+ "symfony/dependency-injection": "<6.4",
+ "symfony/doctrine-bridge": "<6.4",
+ "symfony/form": "<6.4",
+ "symfony/http-client": "<6.4",
+ "symfony/http-client-contracts": "<2.5",
+ "symfony/mailer": "<6.4",
+ "symfony/messenger": "<6.4",
+ "symfony/translation": "<6.4",
+ "symfony/translation-contracts": "<2.5",
+ "symfony/twig-bridge": "<6.4",
+ "symfony/validator": "<6.4",
+ "symfony/var-dumper": "<6.4",
+ "twig/twig": "<3.12"
},
"provide": {
- "psr/log-implementation": "1.0|2.0"
+ "psr/log-implementation": "1.0|2.0|3.0"
},
"require-dev": {
"psr/cache": "^1.0|^2.0|^3.0",
- "symfony/browser-kit": "^5.4|^6.0",
- "symfony/config": "^5.0|^6.0",
- "symfony/console": "^4.4|^5.0|^6.0",
- "symfony/css-selector": "^4.4|^5.0|^6.0",
- "symfony/dependency-injection": "^5.3|^6.0",
- "symfony/dom-crawler": "^4.4|^5.0|^6.0",
- "symfony/expression-language": "^4.4|^5.0|^6.0",
- "symfony/finder": "^4.4|^5.0|^6.0",
- "symfony/http-client-contracts": "^1.1|^2|^3",
- "symfony/process": "^4.4|^5.0|^6.0",
- "symfony/routing": "^4.4|^5.0|^6.0",
- "symfony/stopwatch": "^4.4|^5.0|^6.0",
- "symfony/translation": "^4.4|^5.0|^6.0",
- "symfony/translation-contracts": "^1.1|^2|^3",
- "twig/twig": "^2.13|^3.0.4"
- },
- "suggest": {
- "symfony/browser-kit": "",
- "symfony/config": "",
- "symfony/console": "",
- "symfony/dependency-injection": ""
+ "symfony/browser-kit": "^6.4|^7.0",
+ "symfony/clock": "^6.4|^7.0",
+ "symfony/config": "^6.4|^7.0",
+ "symfony/console": "^6.4|^7.0",
+ "symfony/css-selector": "^6.4|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/dom-crawler": "^6.4|^7.0",
+ "symfony/expression-language": "^6.4|^7.0",
+ "symfony/finder": "^6.4|^7.0",
+ "symfony/http-client-contracts": "^2.5|^3",
+ "symfony/process": "^6.4|^7.0",
+ "symfony/property-access": "^7.1",
+ "symfony/routing": "^6.4|^7.0",
+ "symfony/serializer": "^7.1",
+ "symfony/stopwatch": "^6.4|^7.0",
+ "symfony/translation": "^6.4|^7.0",
+ "symfony/translation-contracts": "^2.5|^3",
+ "symfony/uid": "^6.4|^7.0",
+ "symfony/validator": "^6.4|^7.0",
+ "symfony/var-dumper": "^6.4|^7.0",
+ "symfony/var-exporter": "^6.4|^7.0",
+ "twig/twig": "^3.12"
},
"type": "library",
"autoload": {
@@ -6561,7 +6851,7 @@
"description": "Provides a structured process for converting a Request into a Response",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-kernel/tree/v5.4.27"
+ "source": "https://github.com/symfony/http-kernel/tree/v7.2.6"
},
"funding": [
{
@@ -6577,43 +6867,123 @@
"type": "tidelift"
}
],
- "time": "2023-07-31T10:18:38+00:00"
+ "time": "2025-05-02T09:04:03+00:00"
},
{
- "name": "symfony/mime",
- "version": "v5.4.26",
+ "name": "symfony/mailer",
+ "version": "v7.2.6",
"source": {
"type": "git",
- "url": "https://github.com/symfony/mime.git",
- "reference": "2ea06dfeee20000a319d8407cea1d47533d5a9d2"
+ "url": "https://github.com/symfony/mailer.git",
+ "reference": "998692469d6e698c6eadc7ef37a6530a9eabb356"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mime/zipball/2ea06dfeee20000a319d8407cea1d47533d5a9d2",
- "reference": "2ea06dfeee20000a319d8407cea1d47533d5a9d2",
+ "url": "https://api.github.com/repos/symfony/mailer/zipball/998692469d6e698c6eadc7ef37a6530a9eabb356",
+ "reference": "998692469d6e698c6eadc7ef37a6530a9eabb356",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
+ "egulias/email-validator": "^2.1.10|^3|^4",
+ "php": ">=8.2",
+ "psr/event-dispatcher": "^1",
+ "psr/log": "^1|^2|^3",
+ "symfony/event-dispatcher": "^6.4|^7.0",
+ "symfony/mime": "^7.2",
+ "symfony/service-contracts": "^2.5|^3"
+ },
+ "conflict": {
+ "symfony/http-client-contracts": "<2.5",
+ "symfony/http-kernel": "<6.4",
+ "symfony/messenger": "<6.4",
+ "symfony/mime": "<6.4",
+ "symfony/twig-bridge": "<6.4"
+ },
+ "require-dev": {
+ "symfony/console": "^6.4|^7.0",
+ "symfony/http-client": "^6.4|^7.0",
+ "symfony/messenger": "^6.4|^7.0",
+ "symfony/twig-bridge": "^6.4|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Mailer\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Helps sending emails",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/mailer/tree/v7.2.6"
+ },
+ "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": "2025-04-04T09:50:51+00:00"
+ },
+ {
+ "name": "symfony/mime",
+ "version": "v7.2.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/mime.git",
+ "reference": "706e65c72d402539a072d0d6ad105fff6c161ef1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/706e65c72d402539a072d0d6ad105fff6c161ef1",
+ "reference": "706e65c72d402539a072d0d6ad105fff6c161ef1",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
"symfony/polyfill-intl-idn": "^1.10",
- "symfony/polyfill-mbstring": "^1.0",
- "symfony/polyfill-php80": "^1.16"
+ "symfony/polyfill-mbstring": "^1.0"
},
"conflict": {
"egulias/email-validator": "~3.0.0",
"phpdocumentor/reflection-docblock": "<3.2.2",
"phpdocumentor/type-resolver": "<1.4.0",
- "symfony/mailer": "<4.4",
- "symfony/serializer": "<5.4.26|>=6,<6.2.13|>=6.3,<6.3.2"
+ "symfony/mailer": "<6.4",
+ "symfony/serializer": "<6.4.3|>7.0,<7.0.3"
},
"require-dev": {
"egulias/email-validator": "^2.1.10|^3.1|^4",
+ "league/html-to-markdown": "^5.0",
"phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
- "symfony/dependency-injection": "^4.4|^5.0|^6.0",
- "symfony/property-access": "^4.4|^5.1|^6.0",
- "symfony/property-info": "^4.4|^5.1|^6.0",
- "symfony/serializer": "^5.4.26|~6.2.13|^6.3.2"
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/process": "^6.4|^7.0",
+ "symfony/property-access": "^6.4|^7.0",
+ "symfony/property-info": "^6.4|^7.0",
+ "symfony/serializer": "^6.4.3|^7.0.3"
},
"type": "library",
"autoload": {
@@ -6645,7 +7015,7 @@
"mime-type"
],
"support": {
- "source": "https://github.com/symfony/mime/tree/v5.4.26"
+ "source": "https://github.com/symfony/mime/tree/v7.2.6"
},
"funding": [
{
@@ -6661,27 +7031,25 @@
"type": "tidelift"
}
],
- "time": "2023-07-27T06:29:31+00:00"
+ "time": "2025-04-27T13:34:41+00:00"
},
{
"name": "symfony/options-resolver",
- "version": "v5.4.21",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/options-resolver.git",
- "reference": "4fe5cf6ede71096839f0e4b4444d65dd3a7c1eb9"
+ "reference": "7da8fbac9dcfef75ffc212235d76b2754ce0cf50"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/options-resolver/zipball/4fe5cf6ede71096839f0e4b4444d65dd3a7c1eb9",
- "reference": "4fe5cf6ede71096839f0e4b4444d65dd3a7c1eb9",
+ "url": "https://api.github.com/repos/symfony/options-resolver/zipball/7da8fbac9dcfef75ffc212235d76b2754ce0cf50",
+ "reference": "7da8fbac9dcfef75ffc212235d76b2754ce0cf50",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/polyfill-php73": "~1.0",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.5|^3"
},
"type": "library",
"autoload": {
@@ -6714,7 +7082,7 @@
"options"
],
"support": {
- "source": "https://github.com/symfony/options-resolver/tree/v5.4.21"
+ "source": "https://github.com/symfony/options-resolver/tree/v7.2.0"
},
"funding": [
{
@@ -6730,24 +7098,24 @@
"type": "tidelift"
}
],
- "time": "2023-02-14T08:03:56+00:00"
+ "time": "2024-11-20T11:17:29+00:00"
},
{
"name": "symfony/polyfill-ctype",
- "version": "v1.27.0",
+ "version": "v1.32.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
- "reference": "5bbc823adecdae860bb64756d639ecfec17b050a"
+ "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a",
- "reference": "5bbc823adecdae860bb64756d639ecfec17b050a",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638",
+ "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"provide": {
"ext-ctype": "*"
@@ -6757,12 +7125,9 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -6796,7 +7161,7 @@
"portable"
],
"support": {
- "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.32.0"
},
"funding": [
{
@@ -6812,119 +7177,33 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
- },
- {
- "name": "symfony/polyfill-iconv",
- "version": "v1.27.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-iconv.git",
- "reference": "927013f3aac555983a5059aada98e1907d842695"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/927013f3aac555983a5059aada98e1907d842695",
- "reference": "927013f3aac555983a5059aada98e1907d842695",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "provide": {
- "ext-iconv": "*"
- },
- "suggest": {
- "ext-iconv": "For best performance"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Iconv\\": ""
- }
- },
- "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": "Symfony polyfill for the Iconv extension",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "iconv",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-iconv/tree/v1.27.0"
- },
- "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": "2022-11-03T14:55:06+00:00"
+ "time": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-intl-grapheme",
- "version": "v1.27.0",
+ "version": "v1.32.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
- "reference": "511a08c03c1960e08a883f4cffcacd219b758354"
+ "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354",
- "reference": "511a08c03c1960e08a883f4cffcacd219b758354",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe",
+ "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"suggest": {
"ext-intl": "For best performance"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -6960,7 +7239,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.32.0"
},
"funding": [
{
@@ -6976,38 +7255,34 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-intl-idn",
- "version": "v1.27.0",
+ "version": "v1.32.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-idn.git",
- "reference": "639084e360537a19f9ee352433b84ce831f3d2da"
+ "reference": "9614ac4d8061dc257ecc64cba1b140873dce8ad3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/639084e360537a19f9ee352433b84ce831f3d2da",
- "reference": "639084e360537a19f9ee352433b84ce831f3d2da",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/9614ac4d8061dc257ecc64cba1b140873dce8ad3",
+ "reference": "9614ac4d8061dc257ecc64cba1b140873dce8ad3",
"shasum": ""
},
"require": {
- "php": ">=7.1",
- "symfony/polyfill-intl-normalizer": "^1.10",
- "symfony/polyfill-php72": "^1.10"
+ "php": ">=7.2",
+ "symfony/polyfill-intl-normalizer": "^1.10"
},
"suggest": {
"ext-intl": "For best performance"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -7047,7 +7322,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.32.0"
},
"funding": [
{
@@ -7063,36 +7338,33 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2024-09-10T14:38:51+00:00"
},
{
"name": "symfony/polyfill-intl-normalizer",
- "version": "v1.27.0",
+ "version": "v1.32.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
- "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6"
+ "reference": "3833d7255cc303546435cb650316bff708a1c75c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6",
- "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c",
+ "reference": "3833d7255cc303546435cb650316bff708a1c75c",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"suggest": {
"ext-intl": "For best performance"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -7131,7 +7403,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.32.0"
},
"funding": [
{
@@ -7147,24 +7419,25 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-mbstring",
- "version": "v1.27.0",
+ "version": "v1.32.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534"
+ "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
- "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493",
+ "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "ext-iconv": "*",
+ "php": ">=7.2"
},
"provide": {
"ext-mbstring": "*"
@@ -7174,12 +7447,9 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -7214,7 +7484,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.32.0"
},
"funding": [
{
@@ -7230,188 +7500,30 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
- },
- {
- "name": "symfony/polyfill-php72",
- "version": "v1.27.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php72.git",
- "reference": "869329b1e9894268a8a61dabb69153029b7a8c97"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/869329b1e9894268a8a61dabb69153029b7a8c97",
- "reference": "869329b1e9894268a8a61dabb69153029b7a8c97",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Php72\\": ""
- }
- },
- "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": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-php72/tree/v1.27.0"
- },
- "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": "2022-11-03T14:55:06+00:00"
- },
- {
- "name": "symfony/polyfill-php73",
- "version": "v1.27.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php73.git",
- "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/9e8ecb5f92152187c4799efd3c96b78ccab18ff9",
- "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Php73\\": ""
- },
- "classmap": [
- "Resources/stubs"
- ]
- },
- "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": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-php73/tree/v1.27.0"
- },
- "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": "2022-11-03T14:55:06+00:00"
+ "time": "2024-12-23T08:48:59+00:00"
},
{
"name": "symfony/polyfill-php80",
- "version": "v1.27.0",
+ "version": "v1.32.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936"
+ "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936",
- "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/0cc9dd0f17f61d8131e7df6b84bd344899fe2608",
+ "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -7452,7 +7564,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.32.0"
},
"funding": [
{
@@ -7468,33 +7580,30 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2025-01-02T08:10:11+00:00"
},
{
- "name": "symfony/polyfill-php81",
- "version": "v1.27.0",
+ "name": "symfony/polyfill-php83",
+ "version": "v1.32.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/polyfill-php81.git",
- "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a"
+ "url": "https://github.com/symfony/polyfill-php83.git",
+ "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a",
- "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a",
+ "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/2fb86d65e2d424369ad2905e83b236a8805ba491",
+ "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -7502,7 +7611,7 @@
"bootstrap.php"
],
"psr-4": {
- "Symfony\\Polyfill\\Php81\\": ""
+ "Symfony\\Polyfill\\Php83\\": ""
},
"classmap": [
"Resources/stubs"
@@ -7522,7 +7631,7 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions",
+ "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
@@ -7531,7 +7640,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php81/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-php83/tree/v1.32.0"
},
"funding": [
{
@@ -7547,25 +7656,103 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2024-09-09T11:45:10+00:00"
},
{
- "name": "symfony/process",
- "version": "v5.4.26",
+ "name": "symfony/polyfill-uuid",
+ "version": "v1.32.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/process.git",
- "reference": "1a44dc377ec86a50fab40d066cd061e28a6b482f"
+ "url": "https://github.com/symfony/polyfill-uuid.git",
+ "reference": "21533be36c24be3f4b1669c4725c7d1d2bab4ae2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/1a44dc377ec86a50fab40d066cd061e28a6b482f",
- "reference": "1a44dc377ec86a50fab40d066cd061e28a6b482f",
+ "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/21533be36c24be3f4b1669c4725c7d1d2bab4ae2",
+ "reference": "21533be36c24be3f4b1669c4725c7d1d2bab4ae2",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=7.2"
+ },
+ "provide": {
+ "ext-uuid": "*"
+ },
+ "suggest": {
+ "ext-uuid": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Uuid\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Grégoire Pineau",
+ "email": "lyrixx@lyrixx.info"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for uuid functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "uuid"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-uuid/tree/v1.32.0"
+ },
+ "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": "2024-09-09T11:45:10+00:00"
+ },
+ {
+ "name": "symfony/process",
+ "version": "v7.2.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/process.git",
+ "reference": "87b7c93e57df9d8e39a093d32587702380ff045d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/process/zipball/87b7c93e57df9d8e39a093d32587702380ff045d",
+ "reference": "87b7c93e57df9d8e39a093d32587702380ff045d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2"
},
"type": "library",
"autoload": {
@@ -7593,7 +7780,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v5.4.26"
+ "source": "https://github.com/symfony/process/tree/v7.2.5"
},
"funding": [
{
@@ -7609,47 +7796,42 @@
"type": "tidelift"
}
],
- "time": "2023-07-12T15:44:31+00:00"
+ "time": "2025-03-13T12:21:46+00:00"
},
{
"name": "symfony/psr-http-message-bridge",
- "version": "v2.3.1",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/psr-http-message-bridge.git",
- "reference": "581ca6067eb62640de5ff08ee1ba6850a0ee472e"
+ "reference": "03f2f72319e7acaf2a9f6fcbe30ef17eec51594f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/581ca6067eb62640de5ff08ee1ba6850a0ee472e",
- "reference": "581ca6067eb62640de5ff08ee1ba6850a0ee472e",
+ "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/03f2f72319e7acaf2a9f6fcbe30ef17eec51594f",
+ "reference": "03f2f72319e7acaf2a9f6fcbe30ef17eec51594f",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "psr/http-message": "^1.0 || ^2.0",
- "symfony/deprecation-contracts": "^2.5 || ^3.0",
- "symfony/http-foundation": "^5.4 || ^6.0"
+ "php": ">=8.2",
+ "psr/http-message": "^1.0|^2.0",
+ "symfony/http-foundation": "^6.4|^7.0"
+ },
+ "conflict": {
+ "php-http/discovery": "<1.15",
+ "symfony/http-kernel": "<6.4"
},
"require-dev": {
"nyholm/psr7": "^1.1",
- "psr/log": "^1.1 || ^2 || ^3",
- "symfony/browser-kit": "^5.4 || ^6.0",
- "symfony/config": "^5.4 || ^6.0",
- "symfony/event-dispatcher": "^5.4 || ^6.0",
- "symfony/framework-bundle": "^5.4 || ^6.0",
- "symfony/http-kernel": "^5.4 || ^6.0",
- "symfony/phpunit-bridge": "^6.2"
- },
- "suggest": {
- "nyholm/psr7": "For a super lightweight PSR-7/17 implementation"
+ "php-http/discovery": "^1.15",
+ "psr/log": "^1.1.4|^2|^3",
+ "symfony/browser-kit": "^6.4|^7.0",
+ "symfony/config": "^6.4|^7.0",
+ "symfony/event-dispatcher": "^6.4|^7.0",
+ "symfony/framework-bundle": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0"
},
"type": "symfony-bridge",
- "extra": {
- "branch-alias": {
- "dev-main": "2.3-dev"
- }
- },
"autoload": {
"psr-4": {
"Symfony\\Bridge\\PsrHttpMessage\\": ""
@@ -7669,11 +7851,11 @@
},
{
"name": "Symfony Community",
- "homepage": "http://symfony.com/contributors"
+ "homepage": "https://symfony.com/contributors"
}
],
"description": "PSR HTTP message bridge",
- "homepage": "http://symfony.com",
+ "homepage": "https://symfony.com",
"keywords": [
"http",
"http-message",
@@ -7681,8 +7863,7 @@
"psr-7"
],
"support": {
- "issues": "https://github.com/symfony/psr-http-message-bridge/issues",
- "source": "https://github.com/symfony/psr-http-message-bridge/tree/v2.3.1"
+ "source": "https://github.com/symfony/psr-http-message-bridge/tree/v7.2.0"
},
"funding": [
{
@@ -7698,47 +7879,38 @@
"type": "tidelift"
}
],
- "time": "2023-07-26T11:53:26+00:00"
+ "time": "2024-09-26T08:57:56+00:00"
},
{
"name": "symfony/routing",
- "version": "v5.4.26",
+ "version": "v7.2.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
- "reference": "853fc7df96befc468692de0a48831b38f04d2cb2"
+ "reference": "ee9a67edc6baa33e5fae662f94f91fd262930996"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/routing/zipball/853fc7df96befc468692de0a48831b38f04d2cb2",
- "reference": "853fc7df96befc468692de0a48831b38f04d2cb2",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/ee9a67edc6baa33e5fae662f94f91fd262930996",
+ "reference": "ee9a67edc6baa33e5fae662f94f91fd262930996",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.5|^3"
},
"conflict": {
- "doctrine/annotations": "<1.12",
- "symfony/config": "<5.3",
- "symfony/dependency-injection": "<4.4",
- "symfony/yaml": "<4.4"
+ "symfony/config": "<6.4",
+ "symfony/dependency-injection": "<6.4",
+ "symfony/yaml": "<6.4"
},
"require-dev": {
- "doctrine/annotations": "^1.12|^2",
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.3|^6.0",
- "symfony/dependency-injection": "^4.4|^5.0|^6.0",
- "symfony/expression-language": "^4.4|^5.0|^6.0",
- "symfony/http-foundation": "^4.4|^5.0|^6.0",
- "symfony/yaml": "^4.4|^5.0|^6.0"
- },
- "suggest": {
- "symfony/config": "For using the all-in-one router or any loader",
- "symfony/expression-language": "For using expression matching",
- "symfony/http-foundation": "For using a Symfony Request object",
- "symfony/yaml": "For using the YAML loader"
+ "symfony/config": "^6.4|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/expression-language": "^6.4|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/yaml": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -7772,7 +7944,7 @@
"url"
],
"support": {
- "source": "https://github.com/symfony/routing/tree/v5.4.26"
+ "source": "https://github.com/symfony/routing/tree/v7.2.3"
},
"funding": [
{
@@ -7788,47 +7960,47 @@
"type": "tidelift"
}
],
- "time": "2023-07-24T13:28:37+00:00"
+ "time": "2025-01-17T10:56:55+00:00"
},
{
"name": "symfony/service-contracts",
- "version": "v2.5.2",
+ "version": "v3.6.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
- "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c"
+ "reference": "f021b05a130d35510bd6b25fe9053c2a8a15d5d4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c",
- "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f021b05a130d35510bd6b25fe9053c2a8a15d5d4",
+ "reference": "f021b05a130d35510bd6b25fe9053c2a8a15d5d4",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "psr/container": "^1.1",
- "symfony/deprecation-contracts": "^2.1|^3"
+ "php": ">=8.1",
+ "psr/container": "^1.1|^2.0",
+ "symfony/deprecation-contracts": "^2.5|^3"
},
"conflict": {
"ext-psr": "<1.1|>=2"
},
- "suggest": {
- "symfony/service-implementation": ""
- },
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "2.5-dev"
- },
"thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
+ "branch-alias": {
+ "dev-main": "3.6-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Contracts\\Service\\": ""
- }
+ },
+ "exclude-from-classmap": [
+ "/Test/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -7855,7 +8027,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/service-contracts/tree/v2.5.2"
+ "source": "https://github.com/symfony/service-contracts/tree/v3.6.0"
},
"funding": [
{
@@ -7871,38 +8043,39 @@
"type": "tidelift"
}
],
- "time": "2022-05-30T19:17:29+00:00"
+ "time": "2025-04-25T09:37:31+00:00"
},
{
"name": "symfony/string",
- "version": "v5.4.26",
+ "version": "v7.2.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "1181fe9270e373537475e826873b5867b863883c"
+ "reference": "a214fe7d62bd4df2a76447c67c6b26e1d5e74931"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/1181fe9270e373537475e826873b5867b863883c",
- "reference": "1181fe9270e373537475e826873b5867b863883c",
+ "url": "https://api.github.com/repos/symfony/string/zipball/a214fe7d62bd4df2a76447c67c6b26e1d5e74931",
+ "reference": "a214fe7d62bd4df2a76447c67c6b26e1d5e74931",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
+ "php": ">=8.2",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-intl-grapheme": "~1.0",
"symfony/polyfill-intl-normalizer": "~1.0",
- "symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php80": "~1.15"
+ "symfony/polyfill-mbstring": "~1.0"
},
"conflict": {
- "symfony/translation-contracts": ">=3.0"
+ "symfony/translation-contracts": "<2.5"
},
"require-dev": {
- "symfony/error-handler": "^4.4|^5.0|^6.0",
- "symfony/http-client": "^4.4|^5.0|^6.0",
- "symfony/translation-contracts": "^1.1|^2",
- "symfony/var-exporter": "^4.4|^5.0|^6.0"
+ "symfony/emoji": "^7.1",
+ "symfony/error-handler": "^6.4|^7.0",
+ "symfony/http-client": "^6.4|^7.0",
+ "symfony/intl": "^6.4|^7.0",
+ "symfony/translation-contracts": "^2.5|^3.0",
+ "symfony/var-exporter": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -7941,7 +8114,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v5.4.26"
+ "source": "https://github.com/symfony/string/tree/v7.2.6"
},
"funding": [
{
@@ -7957,57 +8130,55 @@
"type": "tidelift"
}
],
- "time": "2023-06-28T12:46:07+00:00"
+ "time": "2025-04-20T20:18:16+00:00"
},
{
"name": "symfony/translation",
- "version": "v5.4.24",
+ "version": "v7.2.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
- "reference": "de237e59c5833422342be67402d487fbf50334ff"
+ "reference": "e7fd8e2a4239b79a0fd9fb1fef3e0e7f969c6dc6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation/zipball/de237e59c5833422342be67402d487fbf50334ff",
- "reference": "de237e59c5833422342be67402d487fbf50334ff",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/e7fd8e2a4239b79a0fd9fb1fef3e0e7f969c6dc6",
+ "reference": "e7fd8e2a4239b79a0fd9fb1fef3e0e7f969c6dc6",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
+ "php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php80": "^1.16",
- "symfony/translation-contracts": "^2.3"
+ "symfony/translation-contracts": "^2.5|^3.0"
},
"conflict": {
- "symfony/config": "<4.4",
- "symfony/console": "<5.3",
- "symfony/dependency-injection": "<5.0",
- "symfony/http-kernel": "<5.0",
- "symfony/twig-bundle": "<5.0",
- "symfony/yaml": "<4.4"
+ "symfony/config": "<6.4",
+ "symfony/console": "<6.4",
+ "symfony/dependency-injection": "<6.4",
+ "symfony/http-client-contracts": "<2.5",
+ "symfony/http-kernel": "<6.4",
+ "symfony/service-contracts": "<2.5",
+ "symfony/twig-bundle": "<6.4",
+ "symfony/yaml": "<6.4"
},
"provide": {
- "symfony/translation-implementation": "2.3"
+ "symfony/translation-implementation": "2.3|3.0"
},
"require-dev": {
+ "nikic/php-parser": "^4.18|^5.0",
"psr/log": "^1|^2|^3",
- "symfony/config": "^4.4|^5.0|^6.0",
- "symfony/console": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.0|^6.0",
- "symfony/finder": "^4.4|^5.0|^6.0",
- "symfony/http-client-contracts": "^1.1|^2.0|^3.0",
- "symfony/http-kernel": "^5.0|^6.0",
- "symfony/intl": "^4.4|^5.0|^6.0",
+ "symfony/config": "^6.4|^7.0",
+ "symfony/console": "^6.4|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/finder": "^6.4|^7.0",
+ "symfony/http-client-contracts": "^2.5|^3.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/intl": "^6.4|^7.0",
"symfony/polyfill-intl-icu": "^1.21",
- "symfony/service-contracts": "^1.1.2|^2|^3",
- "symfony/yaml": "^4.4|^5.0|^6.0"
- },
- "suggest": {
- "psr/log-implementation": "To use logging capability in translator",
- "symfony/config": "",
- "symfony/yaml": ""
+ "symfony/routing": "^6.4|^7.0",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/yaml": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -8038,7 +8209,7 @@
"description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/translation/tree/v5.4.24"
+ "source": "https://github.com/symfony/translation/tree/v7.2.6"
},
"funding": [
{
@@ -8054,42 +8225,42 @@
"type": "tidelift"
}
],
- "time": "2023-05-19T12:34:17+00:00"
+ "time": "2025-04-07T19:09:28+00:00"
},
{
"name": "symfony/translation-contracts",
- "version": "v2.5.2",
+ "version": "v3.6.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation-contracts.git",
- "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe"
+ "reference": "df210c7a2573f1913b2d17cc95f90f53a73d8f7d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/136b19dd05cdf0709db6537d058bcab6dd6e2dbe",
- "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe",
+ "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/df210c7a2573f1913b2d17cc95f90f53a73d8f7d",
+ "reference": "df210c7a2573f1913b2d17cc95f90f53a73d8f7d",
"shasum": ""
},
"require": {
- "php": ">=7.2.5"
- },
- "suggest": {
- "symfony/translation-implementation": ""
+ "php": ">=8.1"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "2.5-dev"
- },
"thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
+ "branch-alias": {
+ "dev-main": "3.6-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Contracts\\Translation\\": ""
- }
+ },
+ "exclude-from-classmap": [
+ "/Test/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -8116,7 +8287,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/translation-contracts/tree/v2.5.2"
+ "source": "https://github.com/symfony/translation-contracts/tree/v3.6.0"
},
"funding": [
{
@@ -8132,42 +8303,110 @@
"type": "tidelift"
}
],
- "time": "2022-06-27T16:58:25+00:00"
+ "time": "2024-09-27T08:32:26+00:00"
},
{
- "name": "symfony/var-dumper",
- "version": "v5.4.26",
+ "name": "symfony/uid",
+ "version": "v7.2.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/var-dumper.git",
- "reference": "e706c99b4a6f4d9383b52b80dd8c74880501e314"
+ "url": "https://github.com/symfony/uid.git",
+ "reference": "2d294d0c48df244c71c105a169d0190bfb080426"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/e706c99b4a6f4d9383b52b80dd8c74880501e314",
- "reference": "e706c99b4a6f4d9383b52b80dd8c74880501e314",
+ "url": "https://api.github.com/repos/symfony/uid/zipball/2d294d0c48df244c71c105a169d0190bfb080426",
+ "reference": "2d294d0c48df244c71c105a169d0190bfb080426",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.2",
+ "symfony/polyfill-uuid": "^1.15"
+ },
+ "require-dev": {
+ "symfony/console": "^6.4|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Uid\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Grégoire Pineau",
+ "email": "lyrixx@lyrixx.info"
+ },
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides an object-oriented API to generate and represent UIDs",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "UID",
+ "ulid",
+ "uuid"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/uid/tree/v7.2.0"
+ },
+ "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": "2024-09-25T14:21:43+00:00"
+ },
+ {
+ "name": "symfony/var-dumper",
+ "version": "v7.2.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/var-dumper.git",
+ "reference": "9c46038cd4ed68952166cf7001b54eb539184ccb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/9c46038cd4ed68952166cf7001b54eb539184ccb",
+ "reference": "9c46038cd4ed68952166cf7001b54eb539184ccb",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "symfony/polyfill-mbstring": "~1.0"
},
"conflict": {
- "symfony/console": "<4.4"
+ "symfony/console": "<6.4"
},
"require-dev": {
"ext-iconv": "*",
- "symfony/console": "^4.4|^5.0|^6.0",
- "symfony/http-kernel": "^4.4|^5.0|^6.0",
- "symfony/process": "^4.4|^5.0|^6.0",
- "symfony/uid": "^5.1|^6.0",
- "twig/twig": "^2.13|^3.0.4"
- },
- "suggest": {
- "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).",
- "ext-intl": "To show region name in time zone dump",
- "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script"
+ "symfony/console": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/process": "^6.4|^7.0",
+ "symfony/uid": "^6.4|^7.0",
+ "twig/twig": "^3.12"
},
"bin": [
"Resources/bin/var-dump-server"
@@ -8205,7 +8444,7 @@
"dump"
],
"support": {
- "source": "https://github.com/symfony/var-dumper/tree/v5.4.26"
+ "source": "https://github.com/symfony/var-dumper/tree/v7.2.6"
},
"funding": [
{
@@ -8221,35 +8460,37 @@
"type": "tidelift"
}
],
- "time": "2023-07-13T07:32:46+00:00"
+ "time": "2025-04-09T08:14:01+00:00"
},
{
"name": "tijsverkoyen/css-to-inline-styles",
- "version": "2.2.6",
+ "version": "v2.3.0",
"source": {
"type": "git",
"url": "https://github.com/tijsverkoyen/CssToInlineStyles.git",
- "reference": "c42125b83a4fa63b187fdf29f9c93cb7733da30c"
+ "reference": "0d72ac1c00084279c1816675284073c5a337c20d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/c42125b83a4fa63b187fdf29f9c93cb7733da30c",
- "reference": "c42125b83a4fa63b187fdf29f9c93cb7733da30c",
+ "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/0d72ac1c00084279c1816675284073c5a337c20d",
+ "reference": "0d72ac1c00084279c1816675284073c5a337c20d",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-libxml": "*",
- "php": "^5.5 || ^7.0 || ^8.0",
- "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0"
+ "php": "^7.4 || ^8.0",
+ "symfony/css-selector": "^5.4 || ^6.0 || ^7.0"
},
"require-dev": {
- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5 || ^8.5.21 || ^9.5.10"
+ "phpstan/phpstan": "^2.0",
+ "phpstan/phpstan-phpunit": "^2.0",
+ "phpunit/phpunit": "^8.5.21 || ^9.5.10"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.2.x-dev"
+ "dev-master": "2.x-dev"
}
},
"autoload": {
@@ -8272,9 +8513,9 @@
"homepage": "https://github.com/tijsverkoyen/CssToInlineStyles",
"support": {
"issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues",
- "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/2.2.6"
+ "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/v2.3.0"
},
- "time": "2023-01-03T09:29:04+00:00"
+ "time": "2024-12-21T16:25:41+00:00"
},
{
"name": "usmanhalalit/laracsv",
@@ -8337,32 +8578,221 @@
"time": "2020-06-19T09:31:32+00:00"
},
{
- "name": "vlucas/phpdotenv",
- "version": "v5.5.0",
+ "name": "uwil/admin-secure-laravel",
+ "version": "4.0.0",
"source": {
"type": "git",
- "url": "https://github.com/vlucas/phpdotenv.git",
- "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7"
+ "url": "git@lab.s-web.fr:ldc-web/projets/ldc-web-admin-secure-laravel.git",
+ "reference": "26f818b6b9251090fa5960a40750716e4fdbbe9d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7",
- "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7",
+ "url": "https://lab.s-web.fr/api/v4/projects/20/packages/composer/archives/uwil/admin-secure-laravel.zip?sha=26f818b6b9251090fa5960a40750716e4fdbbe9d",
+ "reference": "26f818b6b9251090fa5960a40750716e4fdbbe9d",
+ "shasum": ""
+ },
+ "require": {
+ "dxw/cidr": "^3.2",
+ "illuminate/support": "~11|~12",
+ "laravel/framework": "~11|~12",
+ "php": "^8.3",
+ "symfony/options-resolver": "^7.0"
+ },
+ "require-dev": {
+ "larastan/larastan": "^2.9",
+ "orchestra/testbench": "^9",
+ "phpunit/php-code-coverage": "^11",
+ "phpunit/phpunit": "^11",
+ "slevomat/coding-standard": "^8",
+ "squizlabs/php_codesniffer": "^3"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Uwil\\AdminSecure\\Laravel\\AdminSecureServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Uwil\\AdminSecure\\Laravel\\": "src/"
+ }
+ },
+ "autoload-dev": {
+ "psr-4": {
+ "Uwil\\AdminSecure\\Laravel\\Tests\\": "tests"
+ }
+ },
+ "scripts": {
+ "test": [
+ "vendor/bin/phpunit"
+ ],
+ "post-autoload-dump": [
+ "@php ./vendor/bin/testbench package:discover --ansi"
+ ]
+ },
+ "license": [
+ "MIT"
+ ],
+ "description": "Restrict access to LDC Network",
+ "support": {
+ "email": "equipe.web@ldc.fr",
+ "issues": "https://lab.s-web.fr/ldc-web/projets/ldc-web-admin-secure-laravel/-/issues"
+ }
+ },
+ {
+ "name": "uwil/k8s-laravel",
+ "version": "2.0.0",
+ "source": {
+ "type": "git",
+ "url": "git@lab.s-web.fr:ldc-web/projets/k8s-laravel.git",
+ "reference": "050fb59ac50ed676661cca2a44050f116ef996fb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://lab.s-web.fr/api/v4/projects/90/packages/composer/archives/uwil/k8s-laravel.zip?sha=050fb59ac50ed676661cca2a44050f116ef996fb",
+ "reference": "050fb59ac50ed676661cca2a44050f116ef996fb",
+ "shasum": ""
+ },
+ "require": {
+ "illuminate/support": "~8|~9|~10|~11|~12",
+ "laravel/framework": "~8|~9|~10|~11|~12",
+ "php": "~7.3|~7.4|~8"
+ },
+ "require-dev": {
+ "orchestra/testbench": "^8.5",
+ "phpunit/php-code-coverage": "^9.2",
+ "phpunit/phpunit": "^9.6",
+ "slevomat/coding-standard": "^8.3",
+ "squizlabs/php_codesniffer": "^3.7"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Uwil\\K8S\\Laravel\\K8SServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Uwil\\K8S\\Laravel\\": "src/"
+ }
+ },
+ "autoload-dev": {
+ "psr-4": {
+ "Uwil\\K8S\\Laravel\\Tests\\": "tests"
+ }
+ },
+ "scripts": {
+ "test": [
+ "vendor/bin/phpunit"
+ ],
+ "post-autoload-dump": [
+ "@php ./vendor/bin/testbench package:discover --ansi"
+ ]
+ },
+ "license": [
+ "MIT"
+ ],
+ "description": "Laravel requirements for k8s",
+ "support": {
+ "email": "equipe.web@ldc.fr",
+ "issues": "https://lab.s-web.fr/ldc-web/projets/k8s-laravel/-/issues"
+ }
+ },
+ {
+ "name": "uwil/laravel-common",
+ "version": "3.1.2",
+ "source": {
+ "type": "git",
+ "url": "git@lab.s-web.fr:ldc-web/projets/laravel-common.git",
+ "reference": "e4daddcb3e4bd17d4ed660a38f1800912318f689"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://lab.s-web.fr/api/v4/projects/215/packages/composer/archives/uwil/laravel-common.zip?sha=e4daddcb3e4bd17d4ed660a38f1800912318f689",
+ "reference": "e4daddcb3e4bd17d4ed660a38f1800912318f689",
+ "shasum": ""
+ },
+ "require": {
+ "illuminate/support": "~11|~12",
+ "kwaadpepper/image-resizer": "^3.0",
+ "laravel/framework": "~11|~12",
+ "mews/purifier": "^3.4",
+ "php": "~8.3",
+ "sentry/sentry-laravel": "^4.10"
+ },
+ "require-dev": {
+ "larastan/larastan": "^2.9",
+ "orchestra/testbench": "^9.0",
+ "phpunit/php-code-coverage": "^11.0",
+ "phpunit/phpunit": "^11.0",
+ "slevomat/coding-standard": "^8.3",
+ "squizlabs/php_codesniffer": "^3.7"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Uwil\\LaravelCommon\\CommonServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/Helpers/methods.php"
+ ],
+ "psr-4": {
+ "Uwil\\LaravelCommon\\": "src/"
+ }
+ },
+ "autoload-dev": {
+ "psr-4": {
+ "Uwil\\LaravelCommon\\Tests\\": "tests"
+ }
+ },
+ "scripts": {
+ "test": [
+ "vendor/bin/phpunit"
+ ],
+ "post-autoload-dump": [
+ "@php ./vendor/bin/testbench package:discover --ansi"
+ ]
+ },
+ "license": [
+ "MIT"
+ ],
+ "description": "UWIL Laravel common utils"
+ },
+ {
+ "name": "vlucas/phpdotenv",
+ "version": "v5.6.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/vlucas/phpdotenv.git",
+ "reference": "24ac4c74f91ee2c193fa1aaa5c249cb0822809af"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/24ac4c74f91ee2c193fa1aaa5c249cb0822809af",
+ "reference": "24ac4c74f91ee2c193fa1aaa5c249cb0822809af",
"shasum": ""
},
"require": {
"ext-pcre": "*",
- "graham-campbell/result-type": "^1.0.2",
- "php": "^7.1.3 || ^8.0",
- "phpoption/phpoption": "^1.8",
- "symfony/polyfill-ctype": "^1.23",
- "symfony/polyfill-mbstring": "^1.23.1",
- "symfony/polyfill-php80": "^1.23.1"
+ "graham-campbell/result-type": "^1.1.3",
+ "php": "^7.2.5 || ^8.0",
+ "phpoption/phpoption": "^1.9.3",
+ "symfony/polyfill-ctype": "^1.24",
+ "symfony/polyfill-mbstring": "^1.24",
+ "symfony/polyfill-php80": "^1.24"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.4.1",
+ "bamarni/composer-bin-plugin": "^1.8.2",
"ext-filter": "*",
- "phpunit/phpunit": "^7.5.20 || ^8.5.30 || ^9.5.25"
+ "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2"
},
"suggest": {
"ext-filter": "Required to use the boolean validator."
@@ -8371,10 +8801,10 @@
"extra": {
"bamarni-bin": {
"bin-links": true,
- "forward-command": true
+ "forward-command": false
},
"branch-alias": {
- "dev-master": "5.5-dev"
+ "dev-master": "5.6-dev"
}
},
"autoload": {
@@ -8406,7 +8836,7 @@
],
"support": {
"issues": "https://github.com/vlucas/phpdotenv/issues",
- "source": "https://github.com/vlucas/phpdotenv/tree/v5.5.0"
+ "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.2"
},
"funding": [
{
@@ -8418,20 +8848,20 @@
"type": "tidelift"
}
],
- "time": "2022-10-16T01:01:54+00:00"
+ "time": "2025-04-30T23:37:27+00:00"
},
{
"name": "voku/portable-ascii",
- "version": "1.6.1",
+ "version": "2.0.3",
"source": {
"type": "git",
"url": "https://github.com/voku/portable-ascii.git",
- "reference": "87337c91b9dfacee02452244ee14ab3c43bc485a"
+ "reference": "b1d923f88091c6bf09699efcd7c8a1b1bfd7351d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/voku/portable-ascii/zipball/87337c91b9dfacee02452244ee14ab3c43bc485a",
- "reference": "87337c91b9dfacee02452244ee14ab3c43bc485a",
+ "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b1d923f88091c6bf09699efcd7c8a1b1bfd7351d",
+ "reference": "b1d923f88091c6bf09699efcd7c8a1b1bfd7351d",
"shasum": ""
},
"require": {
@@ -8456,7 +8886,7 @@
"authors": [
{
"name": "Lars Moelleken",
- "homepage": "http://www.moelleken.org/"
+ "homepage": "https://www.moelleken.org/"
}
],
"description": "Portable ASCII library - performance optimized (ascii) string functions for php.",
@@ -8468,7 +8898,7 @@
],
"support": {
"issues": "https://github.com/voku/portable-ascii/issues",
- "source": "https://github.com/voku/portable-ascii/tree/1.6.1"
+ "source": "https://github.com/voku/portable-ascii/tree/2.0.3"
},
"funding": [
{
@@ -8492,7 +8922,7 @@
"type": "tidelift"
}
],
- "time": "2022-01-24T18:55:24+00:00"
+ "time": "2024-11-21T01:49:47+00:00"
},
{
"name": "webmozart/assert",
@@ -8632,578 +9062,22 @@
},
"time": "2023-01-05T11:28:13+00:00"
},
- {
- "name": "doctrine/cache",
- "version": "2.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/cache.git",
- "reference": "1ca8f21980e770095a31456042471a57bc4c68fb"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/cache/zipball/1ca8f21980e770095a31456042471a57bc4c68fb",
- "reference": "1ca8f21980e770095a31456042471a57bc4c68fb",
- "shasum": ""
- },
- "require": {
- "php": "~7.1 || ^8.0"
- },
- "conflict": {
- "doctrine/common": ">2.2,<2.4"
- },
- "require-dev": {
- "cache/integration-tests": "dev-master",
- "doctrine/coding-standard": "^9",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "psr/cache": "^1.0 || ^2.0 || ^3.0",
- "symfony/cache": "^4.4 || ^5.4 || ^6",
- "symfony/var-exporter": "^4.4 || ^5.4 || ^6"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Benjamin Eberlei",
- "email": "kontakt@beberlei.de"
- },
- {
- "name": "Jonathan Wage",
- "email": "jonwage@gmail.com"
- },
- {
- "name": "Johannes Schmitt",
- "email": "schmittjoh@gmail.com"
- }
- ],
- "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.",
- "homepage": "https://www.doctrine-project.org/projects/cache.html",
- "keywords": [
- "abstraction",
- "apcu",
- "cache",
- "caching",
- "couchdb",
- "memcached",
- "php",
- "redis",
- "xcache"
- ],
- "support": {
- "issues": "https://github.com/doctrine/cache/issues",
- "source": "https://github.com/doctrine/cache/tree/2.2.0"
- },
- "funding": [
- {
- "url": "https://www.doctrine-project.org/sponsorship.html",
- "type": "custom"
- },
- {
- "url": "https://www.patreon.com/phpdoctrine",
- "type": "patreon"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcache",
- "type": "tidelift"
- }
- ],
- "time": "2022-05-20T20:07:39+00:00"
- },
- {
- "name": "doctrine/dbal",
- "version": "3.3.8",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/dbal.git",
- "reference": "f873a820227bc352d023791775a01f078a30dfe1"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/dbal/zipball/f873a820227bc352d023791775a01f078a30dfe1",
- "reference": "f873a820227bc352d023791775a01f078a30dfe1",
- "shasum": ""
- },
- "require": {
- "composer-runtime-api": "^2",
- "doctrine/cache": "^1.11|^2.0",
- "doctrine/deprecations": "^0.5.3|^1",
- "doctrine/event-manager": "^1.0",
- "php": "^7.3 || ^8.0",
- "psr/cache": "^1|^2|^3",
- "psr/log": "^1|^2|^3"
- },
- "require-dev": {
- "doctrine/coding-standard": "9.0.0",
- "jetbrains/phpstorm-stubs": "2022.1",
- "phpstan/phpstan": "1.8.2",
- "phpstan/phpstan-strict-rules": "^1.3",
- "phpunit/phpunit": "9.5.21",
- "psalm/plugin-phpunit": "0.17.0",
- "squizlabs/php_codesniffer": "3.7.1",
- "symfony/cache": "^5.2|^6.0",
- "symfony/console": "^2.7|^3.0|^4.0|^5.0|^6.0",
- "vimeo/psalm": "4.24.0"
- },
- "suggest": {
- "symfony/console": "For helpful console commands such as SQL execution and import of files."
- },
- "bin": [
- "bin/doctrine-dbal"
- ],
- "type": "library",
- "autoload": {
- "psr-4": {
- "Doctrine\\DBAL\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Benjamin Eberlei",
- "email": "kontakt@beberlei.de"
- },
- {
- "name": "Jonathan Wage",
- "email": "jonwage@gmail.com"
- }
- ],
- "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.",
- "homepage": "https://www.doctrine-project.org/projects/dbal.html",
- "keywords": [
- "abstraction",
- "database",
- "db2",
- "dbal",
- "mariadb",
- "mssql",
- "mysql",
- "oci8",
- "oracle",
- "pdo",
- "pgsql",
- "postgresql",
- "queryobject",
- "sasql",
- "sql",
- "sqlite",
- "sqlserver",
- "sqlsrv"
- ],
- "support": {
- "issues": "https://github.com/doctrine/dbal/issues",
- "source": "https://github.com/doctrine/dbal/tree/3.3.8"
- },
- "funding": [
- {
- "url": "https://www.doctrine-project.org/sponsorship.html",
- "type": "custom"
- },
- {
- "url": "https://www.patreon.com/phpdoctrine",
- "type": "patreon"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal",
- "type": "tidelift"
- }
- ],
- "time": "2022-08-05T15:35:35+00:00"
- },
- {
- "name": "doctrine/deprecations",
- "version": "v1.1.1",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/deprecations.git",
- "reference": "612a3ee5ab0d5dd97b7cf3874a6efe24325efac3"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/deprecations/zipball/612a3ee5ab0d5dd97b7cf3874a6efe24325efac3",
- "reference": "612a3ee5ab0d5dd97b7cf3874a6efe24325efac3",
- "shasum": ""
- },
- "require": {
- "php": "^7.1 || ^8.0"
- },
- "require-dev": {
- "doctrine/coding-standard": "^9",
- "phpstan/phpstan": "1.4.10 || 1.10.15",
- "phpstan/phpstan-phpunit": "^1.0",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "psalm/plugin-phpunit": "0.18.4",
- "psr/log": "^1 || ^2 || ^3",
- "vimeo/psalm": "4.30.0 || 5.12.0"
- },
- "suggest": {
- "psr/log": "Allows logging deprecations via PSR-3 logger implementation"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.",
- "homepage": "https://www.doctrine-project.org/",
- "support": {
- "issues": "https://github.com/doctrine/deprecations/issues",
- "source": "https://github.com/doctrine/deprecations/tree/v1.1.1"
- },
- "time": "2023-06-03T09:27:29+00:00"
- },
- {
- "name": "doctrine/event-manager",
- "version": "1.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/event-manager.git",
- "reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/event-manager/zipball/95aa4cb529f1e96576f3fda9f5705ada4056a520",
- "reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520",
- "shasum": ""
- },
- "require": {
- "doctrine/deprecations": "^0.5.3 || ^1",
- "php": "^7.1 || ^8.0"
- },
- "conflict": {
- "doctrine/common": "<2.9"
- },
- "require-dev": {
- "doctrine/coding-standard": "^9 || ^10",
- "phpstan/phpstan": "~1.4.10 || ^1.8.8",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "vimeo/psalm": "^4.24"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Doctrine\\Common\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Benjamin Eberlei",
- "email": "kontakt@beberlei.de"
- },
- {
- "name": "Jonathan Wage",
- "email": "jonwage@gmail.com"
- },
- {
- "name": "Johannes Schmitt",
- "email": "schmittjoh@gmail.com"
- },
- {
- "name": "Marco Pivetta",
- "email": "ocramius@gmail.com"
- }
- ],
- "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.",
- "homepage": "https://www.doctrine-project.org/projects/event-manager.html",
- "keywords": [
- "event",
- "event dispatcher",
- "event manager",
- "event system",
- "events"
- ],
- "support": {
- "issues": "https://github.com/doctrine/event-manager/issues",
- "source": "https://github.com/doctrine/event-manager/tree/1.2.0"
- },
- "funding": [
- {
- "url": "https://www.doctrine-project.org/sponsorship.html",
- "type": "custom"
- },
- {
- "url": "https://www.patreon.com/phpdoctrine",
- "type": "patreon"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fevent-manager",
- "type": "tidelift"
- }
- ],
- "time": "2022-10-12T20:51:15+00:00"
- },
- {
- "name": "doctrine/instantiator",
- "version": "1.5.0",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/instantiator.git",
- "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b",
- "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b",
- "shasum": ""
- },
- "require": {
- "php": "^7.1 || ^8.0"
- },
- "require-dev": {
- "doctrine/coding-standard": "^9 || ^11",
- "ext-pdo": "*",
- "ext-phar": "*",
- "phpbench/phpbench": "^0.16 || ^1",
- "phpstan/phpstan": "^1.4",
- "phpstan/phpstan-phpunit": "^1",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "vimeo/psalm": "^4.30 || ^5.4"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Marco Pivetta",
- "email": "ocramius@gmail.com",
- "homepage": "https://ocramius.github.io/"
- }
- ],
- "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
- "homepage": "https://www.doctrine-project.org/projects/instantiator.html",
- "keywords": [
- "constructor",
- "instantiate"
- ],
- "support": {
- "issues": "https://github.com/doctrine/instantiator/issues",
- "source": "https://github.com/doctrine/instantiator/tree/1.5.0"
- },
- "funding": [
- {
- "url": "https://www.doctrine-project.org/sponsorship.html",
- "type": "custom"
- },
- {
- "url": "https://www.patreon.com/phpdoctrine",
- "type": "patreon"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator",
- "type": "tidelift"
- }
- ],
- "time": "2022-12-30T00:15:36+00:00"
- },
- {
- "name": "facade/flare-client-php",
- "version": "1.10.0",
- "source": {
- "type": "git",
- "url": "https://github.com/facade/flare-client-php.git",
- "reference": "213fa2c69e120bca4c51ba3e82ed1834ef3f41b8"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/facade/flare-client-php/zipball/213fa2c69e120bca4c51ba3e82ed1834ef3f41b8",
- "reference": "213fa2c69e120bca4c51ba3e82ed1834ef3f41b8",
- "shasum": ""
- },
- "require": {
- "facade/ignition-contracts": "~1.0",
- "illuminate/pipeline": "^5.5|^6.0|^7.0|^8.0",
- "php": "^7.1|^8.0",
- "symfony/http-foundation": "^3.3|^4.1|^5.0",
- "symfony/mime": "^3.4|^4.0|^5.1",
- "symfony/var-dumper": "^3.4|^4.0|^5.0"
- },
- "require-dev": {
- "friendsofphp/php-cs-fixer": "^2.14",
- "phpunit/phpunit": "^7.5",
- "spatie/phpunit-snapshot-assertions": "^2.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0-dev"
- }
- },
- "autoload": {
- "files": [
- "src/helpers.php"
- ],
- "psr-4": {
- "Facade\\FlareClient\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "Send PHP errors to Flare",
- "homepage": "https://github.com/facade/flare-client-php",
- "keywords": [
- "exception",
- "facade",
- "flare",
- "reporting"
- ],
- "support": {
- "issues": "https://github.com/facade/flare-client-php/issues",
- "source": "https://github.com/facade/flare-client-php/tree/1.10.0"
- },
- "funding": [
- {
- "url": "https://github.com/spatie",
- "type": "github"
- }
- ],
- "time": "2022-08-09T11:23:57+00:00"
- },
- {
- "name": "facade/ignition",
- "version": "2.17.7",
- "source": {
- "type": "git",
- "url": "https://github.com/facade/ignition.git",
- "reference": "b4f5955825bb4b74cba0f94001761c46335c33e9"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/facade/ignition/zipball/b4f5955825bb4b74cba0f94001761c46335c33e9",
- "reference": "b4f5955825bb4b74cba0f94001761c46335c33e9",
- "shasum": ""
- },
- "require": {
- "ext-curl": "*",
- "ext-json": "*",
- "ext-mbstring": "*",
- "facade/flare-client-php": "^1.9.1",
- "facade/ignition-contracts": "^1.0.2",
- "illuminate/support": "^7.0|^8.0",
- "monolog/monolog": "^2.0",
- "php": "^7.2.5|^8.0",
- "symfony/console": "^5.0",
- "symfony/var-dumper": "^5.0"
- },
- "require-dev": {
- "friendsofphp/php-cs-fixer": "^2.14",
- "livewire/livewire": "^2.4",
- "mockery/mockery": "^1.3",
- "orchestra/testbench": "^5.0|^6.0",
- "psalm/plugin-laravel": "^1.2"
- },
- "suggest": {
- "laravel/telescope": "^3.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.x-dev"
- },
- "laravel": {
- "providers": [
- "Facade\\Ignition\\IgnitionServiceProvider"
- ],
- "aliases": {
- "Flare": "Facade\\Ignition\\Facades\\Flare"
- }
- }
- },
- "autoload": {
- "files": [
- "src/helpers.php"
- ],
- "psr-4": {
- "Facade\\Ignition\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "A beautiful error page for Laravel applications.",
- "homepage": "https://github.com/facade/ignition",
- "keywords": [
- "error",
- "flare",
- "laravel",
- "page"
- ],
- "support": {
- "docs": "https://flareapp.io/docs/ignition-for-laravel/introduction",
- "forum": "https://twitter.com/flareappio",
- "issues": "https://github.com/facade/ignition/issues",
- "source": "https://github.com/facade/ignition"
- },
- "time": "2023-01-26T12:34:59+00:00"
- },
{
"name": "fakerphp/faker",
- "version": "v1.20.0",
+ "version": "v1.24.1",
"source": {
"type": "git",
"url": "https://github.com/FakerPHP/Faker.git",
- "reference": "37f751c67a5372d4e26353bd9384bc03744ec77b"
+ "reference": "e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/37f751c67a5372d4e26353bd9384bc03744ec77b",
- "reference": "37f751c67a5372d4e26353bd9384bc03744ec77b",
+ "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5",
+ "reference": "e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5",
"shasum": ""
},
"require": {
- "php": "^7.1 || ^8.0",
+ "php": "^7.4 || ^8.0",
"psr/container": "^1.0 || ^2.0",
"symfony/deprecation-contracts": "^2.2 || ^3.0"
},
@@ -9214,7 +9088,8 @@
"bamarni/composer-bin-plugin": "^1.4.1",
"doctrine/persistence": "^1.3 || ^2.0",
"ext-intl": "*",
- "symfony/phpunit-bridge": "^4.4 || ^5.2"
+ "phpunit/phpunit": "^9.5.26",
+ "symfony/phpunit-bridge": "^5.4.16"
},
"suggest": {
"doctrine/orm": "Required to use Faker\\ORM\\Doctrine",
@@ -9224,11 +9099,6 @@
"ext-mbstring": "Required for multibyte Unicode string functionality."
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "v1.20-dev"
- }
- },
"autoload": {
"psr-4": {
"Faker\\": "src/Faker/"
@@ -9251,32 +9121,32 @@
],
"support": {
"issues": "https://github.com/FakerPHP/Faker/issues",
- "source": "https://github.com/FakerPHP/Faker/tree/v1.20.0"
+ "source": "https://github.com/FakerPHP/Faker/tree/v1.24.1"
},
- "time": "2022-07-20T13:12:54+00:00"
+ "time": "2024-11-21T13:46:39+00:00"
},
{
"name": "filp/whoops",
- "version": "2.15.3",
+ "version": "2.18.0",
"source": {
"type": "git",
"url": "https://github.com/filp/whoops.git",
- "reference": "c83e88a30524f9360b11f585f71e6b17313b7187"
+ "reference": "a7de6c3c6c3c022f5cfc337f8ede6a14460cf77e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/filp/whoops/zipball/c83e88a30524f9360b11f585f71e6b17313b7187",
- "reference": "c83e88a30524f9360b11f585f71e6b17313b7187",
+ "url": "https://api.github.com/repos/filp/whoops/zipball/a7de6c3c6c3c022f5cfc337f8ede6a14460cf77e",
+ "reference": "a7de6c3c6c3c022f5cfc337f8ede6a14460cf77e",
"shasum": ""
},
"require": {
- "php": "^5.5.9 || ^7.0 || ^8.0",
+ "php": "^7.1 || ^8.0",
"psr/log": "^1.0.1 || ^2.0 || ^3.0"
},
"require-dev": {
- "mockery/mockery": "^0.9 || ^1.0",
- "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.3",
- "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0 || ^5.0"
+ "mockery/mockery": "^1.0",
+ "phpunit/phpunit": "^7.5.20 || ^8.5.8 || ^9.3.3",
+ "symfony/var-dumper": "^4.0 || ^5.0"
},
"suggest": {
"symfony/var-dumper": "Pretty print complex values better with var-dumper available",
@@ -9316,7 +9186,7 @@
],
"support": {
"issues": "https://github.com/filp/whoops/issues",
- "source": "https://github.com/filp/whoops/tree/2.15.3"
+ "source": "https://github.com/filp/whoops/tree/2.18.0"
},
"funding": [
{
@@ -9324,24 +9194,24 @@
"type": "github"
}
],
- "time": "2023-07-13T12:00:00+00:00"
+ "time": "2025-03-15T12:00:00+00:00"
},
{
"name": "hamcrest/hamcrest-php",
- "version": "v2.0.1",
+ "version": "v2.1.1",
"source": {
"type": "git",
"url": "https://github.com/hamcrest/hamcrest-php.git",
- "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3"
+ "reference": "f8b1c0173b22fa6ec77a81fe63e5b01eba7e6487"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3",
- "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3",
+ "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/f8b1c0173b22fa6ec77a81fe63e5b01eba7e6487",
+ "reference": "f8b1c0173b22fa6ec77a81fe63e5b01eba7e6487",
"shasum": ""
},
"require": {
- "php": "^5.3|^7.0|^8.0"
+ "php": "^7.4|^8.0"
},
"replace": {
"cordoval/hamcrest-php": "*",
@@ -9349,8 +9219,8 @@
"kodova/hamcrest-php": "*"
},
"require-dev": {
- "phpunit/php-file-iterator": "^1.4 || ^2.0",
- "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0"
+ "phpunit/php-file-iterator": "^1.4 || ^2.0 || ^3.0",
+ "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0 || ^8.0 || ^9.0"
},
"type": "library",
"extra": {
@@ -9373,39 +9243,79 @@
],
"support": {
"issues": "https://github.com/hamcrest/hamcrest-php/issues",
- "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1"
+ "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.1.1"
},
- "time": "2020-07-09T08:09:16+00:00"
+ "time": "2025-04-30T06:54:44+00:00"
},
{
- "name": "kitloong/laravel-migrations-generator",
- "version": "v6.10.0",
+ "name": "iamcal/sql-parser",
+ "version": "v0.6",
"source": {
"type": "git",
- "url": "https://github.com/kitloong/laravel-migrations-generator.git",
- "reference": "116f50fab918b7f1363a40ebd954ce250f6aedcd"
+ "url": "https://github.com/iamcal/SQLParser.git",
+ "reference": "947083e2dca211a6f12fb1beb67a01e387de9b62"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/kitloong/laravel-migrations-generator/zipball/116f50fab918b7f1363a40ebd954ce250f6aedcd",
- "reference": "116f50fab918b7f1363a40ebd954ce250f6aedcd",
+ "url": "https://api.github.com/repos/iamcal/SQLParser/zipball/947083e2dca211a6f12fb1beb67a01e387de9b62",
+ "reference": "947083e2dca211a6f12fb1beb67a01e387de9b62",
+ "shasum": ""
+ },
+ "require-dev": {
+ "php-coveralls/php-coveralls": "^1.0",
+ "phpunit/phpunit": "^5|^6|^7|^8|^9"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "iamcal\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Cal Henderson",
+ "email": "cal@iamcal.com"
+ }
+ ],
+ "description": "MySQL schema parser",
+ "support": {
+ "issues": "https://github.com/iamcal/SQLParser/issues",
+ "source": "https://github.com/iamcal/SQLParser/tree/v0.6"
+ },
+ "time": "2025-03-17T16:59:46+00:00"
+ },
+ {
+ "name": "kitloong/laravel-migrations-generator",
+ "version": "v7.1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/kitloong/laravel-migrations-generator.git",
+ "reference": "e46bdbe9308c211fd896cdc834b28d6b9f0dce3f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/kitloong/laravel-migrations-generator/zipball/e46bdbe9308c211fd896cdc834b28d6b9f0dce3f",
+ "reference": "e46bdbe9308c211fd896cdc834b28d6b9f0dce3f",
"shasum": ""
},
"require": {
- "doctrine/dbal": "^2.4|^3.0",
"ext-pdo": "*",
- "illuminate/support": "^5.6|^6.0|^7.0|^8.0|^9.0|^10.0",
- "myclabs/php-enum": "^1.6|^1.7|^1.8",
- "php": ">=7.1.3"
+ "illuminate/support": "^11.0|^12.0",
+ "php": "^8.2"
},
"require-dev": {
- "barryvdh/laravel-ide-helper": "^2.5",
- "friendsofphp/php-cs-fixer": "^2.19.0|^3.1",
+ "barryvdh/laravel-ide-helper": "^3.0",
+ "friendsofphp/php-cs-fixer": "^3.1",
+ "larastan/larastan": "^2.0|^3.0",
"mockery/mockery": "^1.0",
- "nunomaduro/larastan": "^0.4|^0.5|^0.6|^0.7|^1.0|^2.0",
- "orchestra/testbench": "^3.6|^4.0|^5.0|^6.0|^7.0|^8.0",
+ "orchestra/testbench": "^9.0|^10.0",
"phpmd/phpmd": "^2.10",
- "slevomat/coding-standard": "^6.0|^7.0|^8.5",
+ "phpstan/phpstan-mockery": "^1.0|^2.0",
+ "slevomat/coding-standard": "^8.0",
"squizlabs/php_codesniffer": "^3.5"
},
"type": "library",
@@ -9442,44 +9352,140 @@
],
"support": {
"issues": "https://github.com/kitloong/laravel-migrations-generator/issues",
- "source": "https://github.com/kitloong/laravel-migrations-generator/tree/v6.10.0"
+ "source": "https://github.com/kitloong/laravel-migrations-generator/tree/v7.1.2"
},
"funding": [
{
"url": "https://www.buymeacoffee.com/kitloong",
- "type": "custom"
+ "type": "buy_me_a_coffee"
+ },
+ {
+ "url": "https://github.com/kitloong",
+ "type": "github"
}
],
- "time": "2023-03-26T07:37:00+00:00"
+ "time": "2025-02-27T12:06:46+00:00"
},
{
- "name": "laravel/sail",
- "version": "v1.19.0",
+ "name": "larastan/larastan",
+ "version": "v3.4.0",
"source": {
"type": "git",
- "url": "https://github.com/laravel/sail.git",
- "reference": "4f230634a3163f3442def6a4e6ffdb02b02e14d6"
+ "url": "https://github.com/larastan/larastan.git",
+ "reference": "1042fa0c2ee490bb6da7381f3323f7292ad68222"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/sail/zipball/4f230634a3163f3442def6a4e6ffdb02b02e14d6",
- "reference": "4f230634a3163f3442def6a4e6ffdb02b02e14d6",
+ "url": "https://api.github.com/repos/larastan/larastan/zipball/1042fa0c2ee490bb6da7381f3323f7292ad68222",
+ "reference": "1042fa0c2ee490bb6da7381f3323f7292ad68222",
"shasum": ""
},
"require": {
- "illuminate/console": "^8.0|^9.0|^10.0",
- "illuminate/contracts": "^8.0|^9.0|^10.0",
- "illuminate/support": "^8.0|^9.0|^10.0",
- "php": "^7.3|^8.0"
+ "ext-json": "*",
+ "iamcal/sql-parser": "^0.6.0",
+ "illuminate/console": "^11.44.2 || ^12.4.1",
+ "illuminate/container": "^11.44.2 || ^12.4.1",
+ "illuminate/contracts": "^11.44.2 || ^12.4.1",
+ "illuminate/database": "^11.44.2 || ^12.4.1",
+ "illuminate/http": "^11.44.2 || ^12.4.1",
+ "illuminate/pipeline": "^11.44.2 || ^12.4.1",
+ "illuminate/support": "^11.44.2 || ^12.4.1",
+ "php": "^8.2",
+ "phpstan/phpstan": "^2.1.11"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^13",
+ "laravel/framework": "^11.44.2 || ^12.7.2",
+ "mockery/mockery": "^1.6.12",
+ "nikic/php-parser": "^5.4",
+ "orchestra/canvas": "^v9.2.2 || ^10.0.1",
+ "orchestra/testbench-core": "^9.12.0 || ^10.1",
+ "phpstan/phpstan-deprecation-rules": "^2.0.1",
+ "phpunit/phpunit": "^10.5.35 || ^11.5.15"
+ },
+ "suggest": {
+ "orchestra/testbench": "Using Larastan for analysing a package needs Testbench"
+ },
+ "type": "phpstan-extension",
+ "extra": {
+ "phpstan": {
+ "includes": [
+ "extension.neon"
+ ]
+ },
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Larastan\\Larastan\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Can Vural",
+ "email": "can9119@gmail.com"
+ }
+ ],
+ "description": "Larastan - Discover bugs in your code without running it. A phpstan/phpstan extension for Laravel",
+ "keywords": [
+ "PHPStan",
+ "code analyse",
+ "code analysis",
+ "larastan",
+ "laravel",
+ "package",
+ "php",
+ "static analysis"
+ ],
+ "support": {
+ "issues": "https://github.com/larastan/larastan/issues",
+ "source": "https://github.com/larastan/larastan/tree/v3.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/canvural",
+ "type": "github"
+ }
+ ],
+ "time": "2025-04-22T09:44:59+00:00"
+ },
+ {
+ "name": "laravel/sail",
+ "version": "v1.43.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/sail.git",
+ "reference": "71a509b14b2621ce58574274a74290f933c687f7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/sail/zipball/71a509b14b2621ce58574274a74290f933c687f7",
+ "reference": "71a509b14b2621ce58574274a74290f933c687f7",
+ "shasum": ""
+ },
+ "require": {
+ "illuminate/console": "^9.52.16|^10.0|^11.0|^12.0",
+ "illuminate/contracts": "^9.52.16|^10.0|^11.0|^12.0",
+ "illuminate/support": "^9.52.16|^10.0|^11.0|^12.0",
+ "php": "^8.0",
+ "symfony/console": "^6.0|^7.0",
+ "symfony/yaml": "^6.0|^7.0"
+ },
+ "require-dev": {
+ "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0",
+ "phpstan/phpstan": "^1.10"
},
"bin": [
"bin/sail"
],
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "1.x-dev"
- },
"laravel": {
"providers": [
"Laravel\\Sail\\SailServiceProvider"
@@ -9510,20 +9516,20 @@
"issues": "https://github.com/laravel/sail/issues",
"source": "https://github.com/laravel/sail"
},
- "time": "2023-01-31T13:37:57+00:00"
+ "time": "2025-05-13T13:34:34+00:00"
},
{
"name": "mockery/mockery",
- "version": "1.6.6",
+ "version": "1.6.12",
"source": {
"type": "git",
"url": "https://github.com/mockery/mockery.git",
- "reference": "b8e0bb7d8c604046539c1115994632c74dcb361e"
+ "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/mockery/mockery/zipball/b8e0bb7d8c604046539c1115994632c74dcb361e",
- "reference": "b8e0bb7d8c604046539c1115994632c74dcb361e",
+ "url": "https://api.github.com/repos/mockery/mockery/zipball/1f4efdd7d3beafe9807b08156dfcb176d18f1699",
+ "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699",
"shasum": ""
},
"require": {
@@ -9535,10 +9541,8 @@
"phpunit/phpunit": "<8.0"
},
"require-dev": {
- "phpunit/phpunit": "^8.5 || ^9.6.10",
- "psalm/plugin-phpunit": "^0.18.4",
- "symplify/easy-coding-standard": "^11.5.0",
- "vimeo/psalm": "^4.30"
+ "phpunit/phpunit": "^8.5 || ^9.6.17",
+ "symplify/easy-coding-standard": "^12.1.14"
},
"type": "library",
"autoload": {
@@ -9595,20 +9599,20 @@
"security": "https://github.com/mockery/mockery/security/advisories",
"source": "https://github.com/mockery/mockery"
},
- "time": "2023-08-09T00:03:52+00:00"
+ "time": "2024-05-16T03:13:13+00:00"
},
{
"name": "myclabs/deep-copy",
- "version": "1.11.1",
+ "version": "1.13.1",
"source": {
"type": "git",
"url": "https://github.com/myclabs/DeepCopy.git",
- "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c"
+ "reference": "1720ddd719e16cf0db4eb1c6eca108031636d46c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
- "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/1720ddd719e16cf0db4eb1c6eca108031636d46c",
+ "reference": "1720ddd719e16cf0db4eb1c6eca108031636d46c",
"shasum": ""
},
"require": {
@@ -9616,11 +9620,12 @@
},
"conflict": {
"doctrine/collections": "<1.6.8",
- "doctrine/common": "<2.13.3 || >=3,<3.2.2"
+ "doctrine/common": "<2.13.3 || >=3 <3.2.2"
},
"require-dev": {
"doctrine/collections": "^1.6.8",
"doctrine/common": "^2.13.3 || ^3.2.2",
+ "phpspec/prophecy": "^1.10",
"phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13"
},
"type": "library",
@@ -9646,7 +9651,7 @@
],
"support": {
"issues": "https://github.com/myclabs/DeepCopy/issues",
- "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1"
+ "source": "https://github.com/myclabs/DeepCopy/tree/1.13.1"
},
"funding": [
{
@@ -9654,38 +9659,43 @@
"type": "tidelift"
}
],
- "time": "2023-03-08T13:26:56+00:00"
+ "time": "2025-04-29T12:36:36+00:00"
},
{
"name": "nunomaduro/collision",
- "version": "v5.11.0",
+ "version": "v8.8.0",
"source": {
"type": "git",
"url": "https://github.com/nunomaduro/collision.git",
- "reference": "8b610eef8582ccdc05d8f2ab23305e2d37049461"
+ "reference": "4cf9f3b47afff38b139fb79ce54fc71799022ce8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nunomaduro/collision/zipball/8b610eef8582ccdc05d8f2ab23305e2d37049461",
- "reference": "8b610eef8582ccdc05d8f2ab23305e2d37049461",
+ "url": "https://api.github.com/repos/nunomaduro/collision/zipball/4cf9f3b47afff38b139fb79ce54fc71799022ce8",
+ "reference": "4cf9f3b47afff38b139fb79ce54fc71799022ce8",
"shasum": ""
},
"require": {
- "facade/ignition-contracts": "^1.0",
- "filp/whoops": "^2.14.3",
- "php": "^7.3 || ^8.0",
- "symfony/console": "^5.0"
+ "filp/whoops": "^2.18.0",
+ "nunomaduro/termwind": "^2.3.0",
+ "php": "^8.2.0",
+ "symfony/console": "^7.2.5"
+ },
+ "conflict": {
+ "laravel/framework": "<11.44.2 || >=13.0.0",
+ "phpunit/phpunit": "<11.5.15 || >=13.0.0"
},
"require-dev": {
- "brianium/paratest": "^6.1",
- "fideloper/proxy": "^4.4.1",
- "fruitcake/laravel-cors": "^2.0.3",
- "laravel/framework": "8.x-dev",
- "nunomaduro/larastan": "^0.6.2",
- "nunomaduro/mock-final-classes": "^1.0",
- "orchestra/testbench": "^6.0",
- "phpstan/phpstan": "^0.12.64",
- "phpunit/phpunit": "^9.5.0"
+ "brianium/paratest": "^7.8.3",
+ "larastan/larastan": "^3.2",
+ "laravel/framework": "^11.44.2 || ^12.6",
+ "laravel/pint": "^1.21.2",
+ "laravel/sail": "^1.41.0",
+ "laravel/sanctum": "^4.0.8",
+ "laravel/tinker": "^2.10.1",
+ "orchestra/testbench-core": "^9.12.0 || ^10.1",
+ "pestphp/pest": "^3.8.0",
+ "sebastian/environment": "^7.2.0 || ^8.0"
},
"type": "library",
"extra": {
@@ -9693,9 +9703,15 @@
"providers": [
"NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider"
]
+ },
+ "branch-alias": {
+ "dev-8.x": "8.x-dev"
}
},
"autoload": {
+ "files": [
+ "./src/Adapters/Phpunit/Autoload.php"
+ ],
"psr-4": {
"NunoMaduro\\Collision\\": "src/"
}
@@ -9716,6 +9732,7 @@
"cli",
"command-line",
"console",
+ "dev",
"error",
"handling",
"laravel",
@@ -9741,24 +9758,25 @@
"type": "patreon"
}
],
- "time": "2022-01-10T16:22:52+00:00"
+ "time": "2025-04-03T14:33:09+00:00"
},
{
"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",
@@ -9799,9 +9817,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",
@@ -9856,30 +9880,30 @@
},
{
"name": "phpstan/phpdoc-parser",
- "version": "1.23.1",
+ "version": "2.1.0",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpdoc-parser.git",
- "reference": "846ae76eef31c6d7790fac9bc399ecee45160b26"
+ "reference": "9b30d6fd026b2c132b3985ce6b23bec09ab3aa68"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/846ae76eef31c6d7790fac9bc399ecee45160b26",
- "reference": "846ae76eef31c6d7790fac9bc399ecee45160b26",
+ "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/9b30d6fd026b2c132b3985ce6b23bec09ab3aa68",
+ "reference": "9b30d6fd026b2c132b3985ce6b23bec09ab3aa68",
"shasum": ""
},
"require": {
- "php": "^7.2 || ^8.0"
+ "php": "^7.4 || ^8.0"
},
"require-dev": {
"doctrine/annotations": "^2.0",
- "nikic/php-parser": "^4.15",
+ "nikic/php-parser": "^5.3.0",
"php-parallel-lint/php-parallel-lint": "^1.2",
"phpstan/extension-installer": "^1.0",
- "phpstan/phpstan": "^1.5",
- "phpstan/phpstan-phpunit": "^1.1",
- "phpstan/phpstan-strict-rules": "^1.0",
- "phpunit/phpunit": "^9.5",
+ "phpstan/phpstan": "^2.0",
+ "phpstan/phpstan-phpunit": "^2.0",
+ "phpstan/phpstan-strict-rules": "^2.0",
+ "phpunit/phpunit": "^9.6",
"symfony/process": "^5.2"
},
"type": "library",
@@ -9897,41 +9921,99 @@
"description": "PHPDoc parser with support for nullable, intersection and generic types",
"support": {
"issues": "https://github.com/phpstan/phpdoc-parser/issues",
- "source": "https://github.com/phpstan/phpdoc-parser/tree/1.23.1"
+ "source": "https://github.com/phpstan/phpdoc-parser/tree/2.1.0"
},
- "time": "2023-08-03T16:32:59+00:00"
+ "time": "2025-02-19T13:28:12+00:00"
},
{
- "name": "phpunit/php-code-coverage",
- "version": "9.2.27",
+ "name": "phpstan/phpstan",
+ "version": "2.1.17",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "b0a88255cb70d52653d80c890bd7f38740ea50d1"
+ "url": "https://github.com/phpstan/phpstan.git",
+ "reference": "89b5ef665716fa2a52ecd2633f21007a6a349053"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/b0a88255cb70d52653d80c890bd7f38740ea50d1",
- "reference": "b0a88255cb70d52653d80c890bd7f38740ea50d1",
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/89b5ef665716fa2a52ecd2633f21007a6a349053",
+ "reference": "89b5ef665716fa2a52ecd2633f21007a6a349053",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4|^8.0"
+ },
+ "conflict": {
+ "phpstan/phpstan-shim": "*"
+ },
+ "bin": [
+ "phpstan",
+ "phpstan.phar"
+ ],
+ "type": "library",
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "PHPStan - PHP Static Analysis Tool",
+ "keywords": [
+ "dev",
+ "static analysis"
+ ],
+ "support": {
+ "docs": "https://phpstan.org/user-guide/getting-started",
+ "forum": "https://github.com/phpstan/phpstan/discussions",
+ "issues": "https://github.com/phpstan/phpstan/issues",
+ "security": "https://github.com/phpstan/phpstan/security/policy",
+ "source": "https://github.com/phpstan/phpstan-src"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/ondrejmirtes",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/phpstan",
+ "type": "github"
+ }
+ ],
+ "time": "2025-05-21T20:55:28+00:00"
+ },
+ {
+ "name": "phpunit/php-code-coverage",
+ "version": "11.0.9",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
+ "reference": "14d63fbcca18457e49c6f8bebaa91a87e8e188d7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/14d63fbcca18457e49c6f8bebaa91a87e8e188d7",
+ "reference": "14d63fbcca18457e49c6f8bebaa91a87e8e188d7",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-libxml": "*",
"ext-xmlwriter": "*",
- "nikic/php-parser": "^4.15",
- "php": ">=7.3",
- "phpunit/php-file-iterator": "^3.0.3",
- "phpunit/php-text-template": "^2.0.2",
- "sebastian/code-unit-reverse-lookup": "^2.0.2",
- "sebastian/complexity": "^2.0",
- "sebastian/environment": "^5.1.2",
- "sebastian/lines-of-code": "^1.0.3",
- "sebastian/version": "^3.0.1",
- "theseer/tokenizer": "^1.2.0"
+ "nikic/php-parser": "^5.4.0",
+ "php": ">=8.2",
+ "phpunit/php-file-iterator": "^5.1.0",
+ "phpunit/php-text-template": "^4.0.1",
+ "sebastian/code-unit-reverse-lookup": "^4.0.1",
+ "sebastian/complexity": "^4.0.1",
+ "sebastian/environment": "^7.2.0",
+ "sebastian/lines-of-code": "^3.0.1",
+ "sebastian/version": "^5.0.2",
+ "theseer/tokenizer": "^1.2.3"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^11.5.2"
},
"suggest": {
"ext-pcov": "PHP extension that provides line coverage",
@@ -9940,7 +10022,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "9.2-dev"
+ "dev-main": "11.0.x-dev"
}
},
"autoload": {
@@ -9969,7 +10051,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
"security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.27"
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.9"
},
"funding": [
{
@@ -9977,32 +10059,32 @@
"type": "github"
}
],
- "time": "2023-07-26T13:44:30+00:00"
+ "time": "2025-02-25T13:26:39+00:00"
},
{
"name": "phpunit/php-file-iterator",
- "version": "3.0.6",
+ "version": "5.1.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-file-iterator.git",
- "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf"
+ "reference": "118cfaaa8bc5aef3287bf315b6060b1174754af6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
- "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/118cfaaa8bc5aef3287bf315b6060b1174754af6",
+ "reference": "118cfaaa8bc5aef3287bf315b6060b1174754af6",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^11.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.0-dev"
+ "dev-main": "5.0-dev"
}
},
"autoload": {
@@ -10029,7 +10111,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
- "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6"
+ "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/5.1.0"
},
"funding": [
{
@@ -10037,28 +10120,28 @@
"type": "github"
}
],
- "time": "2021-12-02T12:48:52+00:00"
+ "time": "2024-08-27T05:02:59+00:00"
},
{
"name": "phpunit/php-invoker",
- "version": "3.1.1",
+ "version": "5.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-invoker.git",
- "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67"
+ "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
- "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/c1ca3814734c07492b3d4c5f794f4b0995333da2",
+ "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.2"
},
"require-dev": {
"ext-pcntl": "*",
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^11.0"
},
"suggest": {
"ext-pcntl": "*"
@@ -10066,7 +10149,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.1-dev"
+ "dev-main": "5.0-dev"
}
},
"autoload": {
@@ -10092,7 +10175,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-invoker/issues",
- "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1"
+ "security": "https://github.com/sebastianbergmann/php-invoker/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-invoker/tree/5.0.1"
},
"funding": [
{
@@ -10100,32 +10184,32 @@
"type": "github"
}
],
- "time": "2020-09-28T05:58:55+00:00"
+ "time": "2024-07-03T05:07:44+00:00"
},
{
"name": "phpunit/php-text-template",
- "version": "2.0.4",
+ "version": "4.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-text-template.git",
- "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28"
+ "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
- "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/3e0404dc6b300e6bf56415467ebcb3fe4f33e964",
+ "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^11.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0-dev"
+ "dev-main": "4.0-dev"
}
},
"autoload": {
@@ -10151,7 +10235,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-text-template/issues",
- "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4"
+ "security": "https://github.com/sebastianbergmann/php-text-template/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-text-template/tree/4.0.1"
},
"funding": [
{
@@ -10159,32 +10244,32 @@
"type": "github"
}
],
- "time": "2020-10-26T05:33:50+00:00"
+ "time": "2024-07-03T05:08:43+00:00"
},
{
"name": "phpunit/php-timer",
- "version": "5.0.3",
+ "version": "7.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-timer.git",
- "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2"
+ "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
- "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3b415def83fbcb41f991d9ebf16ae4ad8b7837b3",
+ "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^11.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "5.0-dev"
+ "dev-main": "7.0-dev"
}
},
"autoload": {
@@ -10210,7 +10295,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-timer/issues",
- "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3"
+ "security": "https://github.com/sebastianbergmann/php-timer/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-timer/tree/7.0.1"
},
"funding": [
{
@@ -10218,54 +10304,52 @@
"type": "github"
}
],
- "time": "2020-10-26T13:16:10+00:00"
+ "time": "2024-07-03T05:09:35+00:00"
},
{
"name": "phpunit/phpunit",
- "version": "9.6.11",
+ "version": "11.5.21",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "810500e92855eba8a7a5319ae913be2da6f957b0"
+ "reference": "d565e2cdc21a7db9dc6c399c1fc2083b8010f289"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/810500e92855eba8a7a5319ae913be2da6f957b0",
- "reference": "810500e92855eba8a7a5319ae913be2da6f957b0",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d565e2cdc21a7db9dc6c399c1fc2083b8010f289",
+ "reference": "d565e2cdc21a7db9dc6c399c1fc2083b8010f289",
"shasum": ""
},
"require": {
- "doctrine/instantiator": "^1.3.1 || ^2",
"ext-dom": "*",
"ext-json": "*",
"ext-libxml": "*",
"ext-mbstring": "*",
"ext-xml": "*",
"ext-xmlwriter": "*",
- "myclabs/deep-copy": "^1.10.1",
- "phar-io/manifest": "^2.0.3",
- "phar-io/version": "^3.0.2",
- "php": ">=7.3",
- "phpunit/php-code-coverage": "^9.2.13",
- "phpunit/php-file-iterator": "^3.0.5",
- "phpunit/php-invoker": "^3.1.1",
- "phpunit/php-text-template": "^2.0.3",
- "phpunit/php-timer": "^5.0.2",
- "sebastian/cli-parser": "^1.0.1",
- "sebastian/code-unit": "^1.0.6",
- "sebastian/comparator": "^4.0.8",
- "sebastian/diff": "^4.0.3",
- "sebastian/environment": "^5.1.3",
- "sebastian/exporter": "^4.0.5",
- "sebastian/global-state": "^5.0.1",
- "sebastian/object-enumerator": "^4.0.3",
- "sebastian/resource-operations": "^3.0.3",
- "sebastian/type": "^3.2",
- "sebastian/version": "^3.0.2"
+ "myclabs/deep-copy": "^1.13.1",
+ "phar-io/manifest": "^2.0.4",
+ "phar-io/version": "^3.2.1",
+ "php": ">=8.2",
+ "phpunit/php-code-coverage": "^11.0.9",
+ "phpunit/php-file-iterator": "^5.1.0",
+ "phpunit/php-invoker": "^5.0.1",
+ "phpunit/php-text-template": "^4.0.1",
+ "phpunit/php-timer": "^7.0.1",
+ "sebastian/cli-parser": "^3.0.2",
+ "sebastian/code-unit": "^3.0.3",
+ "sebastian/comparator": "^6.3.1",
+ "sebastian/diff": "^6.0.2",
+ "sebastian/environment": "^7.2.1",
+ "sebastian/exporter": "^6.3.0",
+ "sebastian/global-state": "^7.0.2",
+ "sebastian/object-enumerator": "^6.0.1",
+ "sebastian/type": "^5.1.2",
+ "sebastian/version": "^5.0.2",
+ "staabm/side-effects-detector": "^1.0.5"
},
"suggest": {
- "ext-soap": "To be able to generate mocks based on WSDL files",
- "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
+ "ext-soap": "To be able to generate mocks based on WSDL files"
},
"bin": [
"phpunit"
@@ -10273,7 +10357,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "9.6-dev"
+ "dev-main": "11.5-dev"
}
},
"autoload": {
@@ -10305,7 +10389,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.11"
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.21"
},
"funding": [
{
@@ -10316,37 +10400,45 @@
"url": "https://github.com/sebastianbergmann",
"type": "github"
},
+ {
+ "url": "https://liberapay.com/sebastianbergmann",
+ "type": "liberapay"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/sebastianbergmann",
+ "type": "thanks_dev"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit",
"type": "tidelift"
}
],
- "time": "2023-08-19T07:10:56+00:00"
+ "time": "2025-05-21T12:35:00+00:00"
},
{
"name": "sebastian/cli-parser",
- "version": "1.0.1",
+ "version": "3.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/cli-parser.git",
- "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2"
+ "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2",
- "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2",
+ "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/15c5dd40dc4f38794d383bb95465193f5e0ae180",
+ "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^11.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0-dev"
+ "dev-main": "3.0-dev"
}
},
"autoload": {
@@ -10369,7 +10461,8 @@
"homepage": "https://github.com/sebastianbergmann/cli-parser",
"support": {
"issues": "https://github.com/sebastianbergmann/cli-parser/issues",
- "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1"
+ "security": "https://github.com/sebastianbergmann/cli-parser/security/policy",
+ "source": "https://github.com/sebastianbergmann/cli-parser/tree/3.0.2"
},
"funding": [
{
@@ -10377,32 +10470,32 @@
"type": "github"
}
],
- "time": "2020-09-28T06:08:49+00:00"
+ "time": "2024-07-03T04:41:36+00:00"
},
{
"name": "sebastian/code-unit",
- "version": "1.0.8",
+ "version": "3.0.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/code-unit.git",
- "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120"
+ "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120",
- "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/54391c61e4af8078e5b276ab082b6d3c54c9ad64",
+ "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^11.5"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0-dev"
+ "dev-main": "3.0-dev"
}
},
"autoload": {
@@ -10425,7 +10518,8 @@
"homepage": "https://github.com/sebastianbergmann/code-unit",
"support": {
"issues": "https://github.com/sebastianbergmann/code-unit/issues",
- "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8"
+ "security": "https://github.com/sebastianbergmann/code-unit/security/policy",
+ "source": "https://github.com/sebastianbergmann/code-unit/tree/3.0.3"
},
"funding": [
{
@@ -10433,32 +10527,32 @@
"type": "github"
}
],
- "time": "2020-10-26T13:08:54+00:00"
+ "time": "2025-03-19T07:56:08+00:00"
},
{
"name": "sebastian/code-unit-reverse-lookup",
- "version": "2.0.3",
+ "version": "4.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
- "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5"
+ "reference": "183a9b2632194febd219bb9246eee421dad8d45e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
- "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/183a9b2632194febd219bb9246eee421dad8d45e",
+ "reference": "183a9b2632194febd219bb9246eee421dad8d45e",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^11.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0-dev"
+ "dev-main": "4.0-dev"
}
},
"autoload": {
@@ -10480,7 +10574,8 @@
"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/2.0.3"
+ "security": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/security/policy",
+ "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/4.0.1"
},
"funding": [
{
@@ -10488,34 +10583,39 @@
"type": "github"
}
],
- "time": "2020-09-28T05:30:19+00:00"
+ "time": "2024-07-03T04:45:54+00:00"
},
{
"name": "sebastian/comparator",
- "version": "4.0.8",
+ "version": "6.3.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "fa0f136dd2334583309d32b62544682ee972b51a"
+ "reference": "24b8fbc2c8e201bb1308e7b05148d6ab393b6959"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a",
- "reference": "fa0f136dd2334583309d32b62544682ee972b51a",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/24b8fbc2c8e201bb1308e7b05148d6ab393b6959",
+ "reference": "24b8fbc2c8e201bb1308e7b05148d6ab393b6959",
"shasum": ""
},
"require": {
- "php": ">=7.3",
- "sebastian/diff": "^4.0",
- "sebastian/exporter": "^4.0"
+ "ext-dom": "*",
+ "ext-mbstring": "*",
+ "php": ">=8.2",
+ "sebastian/diff": "^6.0",
+ "sebastian/exporter": "^6.0"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^11.4"
+ },
+ "suggest": {
+ "ext-bcmath": "For comparing BcMath\\Number objects"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.0-dev"
+ "dev-main": "6.3-dev"
}
},
"autoload": {
@@ -10554,7 +10654,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/comparator/issues",
- "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8"
+ "security": "https://github.com/sebastianbergmann/comparator/security/policy",
+ "source": "https://github.com/sebastianbergmann/comparator/tree/6.3.1"
},
"funding": [
{
@@ -10562,33 +10663,33 @@
"type": "github"
}
],
- "time": "2022-09-14T12:41:17+00:00"
+ "time": "2025-03-07T06:57:01+00:00"
},
{
"name": "sebastian/complexity",
- "version": "2.0.2",
+ "version": "4.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/complexity.git",
- "reference": "739b35e53379900cc9ac327b2147867b8b6efd88"
+ "reference": "ee41d384ab1906c68852636b6de493846e13e5a0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88",
- "reference": "739b35e53379900cc9ac327b2147867b8b6efd88",
+ "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/ee41d384ab1906c68852636b6de493846e13e5a0",
+ "reference": "ee41d384ab1906c68852636b6de493846e13e5a0",
"shasum": ""
},
"require": {
- "nikic/php-parser": "^4.7",
- "php": ">=7.3"
+ "nikic/php-parser": "^5.0",
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^11.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0-dev"
+ "dev-main": "4.0-dev"
}
},
"autoload": {
@@ -10611,7 +10712,8 @@
"homepage": "https://github.com/sebastianbergmann/complexity",
"support": {
"issues": "https://github.com/sebastianbergmann/complexity/issues",
- "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2"
+ "security": "https://github.com/sebastianbergmann/complexity/security/policy",
+ "source": "https://github.com/sebastianbergmann/complexity/tree/4.0.1"
},
"funding": [
{
@@ -10619,33 +10721,33 @@
"type": "github"
}
],
- "time": "2020-10-26T15:52:27+00:00"
+ "time": "2024-07-03T04:49:50+00:00"
},
{
"name": "sebastian/diff",
- "version": "4.0.5",
+ "version": "6.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131"
+ "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131",
- "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b4ccd857127db5d41a5b676f24b51371d76d8544",
+ "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^9.3",
+ "phpunit/phpunit": "^11.0",
"symfony/process": "^4.2 || ^5"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.0-dev"
+ "dev-main": "6.0-dev"
}
},
"autoload": {
@@ -10677,7 +10779,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/diff/issues",
- "source": "https://github.com/sebastianbergmann/diff/tree/4.0.5"
+ "security": "https://github.com/sebastianbergmann/diff/security/policy",
+ "source": "https://github.com/sebastianbergmann/diff/tree/6.0.2"
},
"funding": [
{
@@ -10685,27 +10788,27 @@
"type": "github"
}
],
- "time": "2023-05-07T05:35:17+00:00"
+ "time": "2024-07-03T04:53:05+00:00"
},
{
"name": "sebastian/environment",
- "version": "5.1.5",
+ "version": "7.2.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed"
+ "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
- "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/a5c75038693ad2e8d4b6c15ba2403532647830c4",
+ "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^11.3"
},
"suggest": {
"ext-posix": "*"
@@ -10713,7 +10816,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "5.1-dev"
+ "dev-main": "7.2-dev"
}
},
"autoload": {
@@ -10732,7 +10835,7 @@
}
],
"description": "Provides functionality to handle HHVM/PHP environments",
- "homepage": "http://www.github.com/sebastianbergmann/environment",
+ "homepage": "https://github.com/sebastianbergmann/environment",
"keywords": [
"Xdebug",
"environment",
@@ -10740,42 +10843,55 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/environment/issues",
- "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5"
+ "security": "https://github.com/sebastianbergmann/environment/security/policy",
+ "source": "https://github.com/sebastianbergmann/environment/tree/7.2.1"
},
"funding": [
{
"url": "https://github.com/sebastianbergmann",
"type": "github"
+ },
+ {
+ "url": "https://liberapay.com/sebastianbergmann",
+ "type": "liberapay"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/sebastianbergmann",
+ "type": "thanks_dev"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/sebastian/environment",
+ "type": "tidelift"
}
],
- "time": "2023-02-03T06:03:51+00:00"
+ "time": "2025-05-21T11:55:47+00:00"
},
{
"name": "sebastian/exporter",
- "version": "4.0.5",
+ "version": "6.3.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d"
+ "reference": "3473f61172093b2da7de1fb5782e1f24cc036dc3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
- "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/3473f61172093b2da7de1fb5782e1f24cc036dc3",
+ "reference": "3473f61172093b2da7de1fb5782e1f24cc036dc3",
"shasum": ""
},
"require": {
- "php": ">=7.3",
- "sebastian/recursion-context": "^4.0"
+ "ext-mbstring": "*",
+ "php": ">=8.2",
+ "sebastian/recursion-context": "^6.0"
},
"require-dev": {
- "ext-mbstring": "*",
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^11.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.0-dev"
+ "dev-main": "6.1-dev"
}
},
"autoload": {
@@ -10817,7 +10933,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/exporter/issues",
- "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5"
+ "security": "https://github.com/sebastianbergmann/exporter/security/policy",
+ "source": "https://github.com/sebastianbergmann/exporter/tree/6.3.0"
},
"funding": [
{
@@ -10825,38 +10942,35 @@
"type": "github"
}
],
- "time": "2022-09-14T06:03:37+00:00"
+ "time": "2024-12-05T09:17:50+00:00"
},
{
"name": "sebastian/global-state",
- "version": "5.0.6",
+ "version": "7.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "bde739e7565280bda77be70044ac1047bc007e34"
+ "reference": "3be331570a721f9a4b5917f4209773de17f747d7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bde739e7565280bda77be70044ac1047bc007e34",
- "reference": "bde739e7565280bda77be70044ac1047bc007e34",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/3be331570a721f9a4b5917f4209773de17f747d7",
+ "reference": "3be331570a721f9a4b5917f4209773de17f747d7",
"shasum": ""
},
"require": {
- "php": ">=7.3",
- "sebastian/object-reflector": "^2.0",
- "sebastian/recursion-context": "^4.0"
+ "php": ">=8.2",
+ "sebastian/object-reflector": "^4.0",
+ "sebastian/recursion-context": "^6.0"
},
"require-dev": {
"ext-dom": "*",
- "phpunit/phpunit": "^9.3"
- },
- "suggest": {
- "ext-uopz": "*"
+ "phpunit/phpunit": "^11.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "5.0-dev"
+ "dev-main": "7.0-dev"
}
},
"autoload": {
@@ -10875,13 +10989,14 @@
}
],
"description": "Snapshotting of global state",
- "homepage": "http://www.github.com/sebastianbergmann/global-state",
+ "homepage": "https://www.github.com/sebastianbergmann/global-state",
"keywords": [
"global state"
],
"support": {
"issues": "https://github.com/sebastianbergmann/global-state/issues",
- "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.6"
+ "security": "https://github.com/sebastianbergmann/global-state/security/policy",
+ "source": "https://github.com/sebastianbergmann/global-state/tree/7.0.2"
},
"funding": [
{
@@ -10889,33 +11004,33 @@
"type": "github"
}
],
- "time": "2023-08-02T09:26:13+00:00"
+ "time": "2024-07-03T04:57:36+00:00"
},
{
"name": "sebastian/lines-of-code",
- "version": "1.0.3",
+ "version": "3.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/lines-of-code.git",
- "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc"
+ "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc",
- "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc",
+ "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/d36ad0d782e5756913e42ad87cb2890f4ffe467a",
+ "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a",
"shasum": ""
},
"require": {
- "nikic/php-parser": "^4.6",
- "php": ">=7.3"
+ "nikic/php-parser": "^5.0",
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^11.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0-dev"
+ "dev-main": "3.0-dev"
}
},
"autoload": {
@@ -10938,7 +11053,8 @@
"homepage": "https://github.com/sebastianbergmann/lines-of-code",
"support": {
"issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
- "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3"
+ "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy",
+ "source": "https://github.com/sebastianbergmann/lines-of-code/tree/3.0.1"
},
"funding": [
{
@@ -10946,34 +11062,34 @@
"type": "github"
}
],
- "time": "2020-11-28T06:42:11+00:00"
+ "time": "2024-07-03T04:58:38+00:00"
},
{
"name": "sebastian/object-enumerator",
- "version": "4.0.4",
+ "version": "6.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/object-enumerator.git",
- "reference": "5c9eeac41b290a3712d88851518825ad78f45c71"
+ "reference": "f5b498e631a74204185071eb41f33f38d64608aa"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71",
- "reference": "5c9eeac41b290a3712d88851518825ad78f45c71",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/f5b498e631a74204185071eb41f33f38d64608aa",
+ "reference": "f5b498e631a74204185071eb41f33f38d64608aa",
"shasum": ""
},
"require": {
- "php": ">=7.3",
- "sebastian/object-reflector": "^2.0",
- "sebastian/recursion-context": "^4.0"
+ "php": ">=8.2",
+ "sebastian/object-reflector": "^4.0",
+ "sebastian/recursion-context": "^6.0"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^11.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.0-dev"
+ "dev-main": "6.0-dev"
}
},
"autoload": {
@@ -10995,7 +11111,8 @@
"homepage": "https://github.com/sebastianbergmann/object-enumerator/",
"support": {
"issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
- "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4"
+ "security": "https://github.com/sebastianbergmann/object-enumerator/security/policy",
+ "source": "https://github.com/sebastianbergmann/object-enumerator/tree/6.0.1"
},
"funding": [
{
@@ -11003,32 +11120,32 @@
"type": "github"
}
],
- "time": "2020-10-26T13:12:34+00:00"
+ "time": "2024-07-03T05:00:13+00:00"
},
{
"name": "sebastian/object-reflector",
- "version": "2.0.4",
+ "version": "4.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/object-reflector.git",
- "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7"
+ "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
- "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/6e1a43b411b2ad34146dee7524cb13a068bb35f9",
+ "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^11.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0-dev"
+ "dev-main": "4.0-dev"
}
},
"autoload": {
@@ -11050,7 +11167,8 @@
"homepage": "https://github.com/sebastianbergmann/object-reflector/",
"support": {
"issues": "https://github.com/sebastianbergmann/object-reflector/issues",
- "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4"
+ "security": "https://github.com/sebastianbergmann/object-reflector/security/policy",
+ "source": "https://github.com/sebastianbergmann/object-reflector/tree/4.0.1"
},
"funding": [
{
@@ -11058,32 +11176,32 @@
"type": "github"
}
],
- "time": "2020-10-26T13:14:26+00:00"
+ "time": "2024-07-03T05:01:32+00:00"
},
{
"name": "sebastian/recursion-context",
- "version": "4.0.5",
+ "version": "6.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/recursion-context.git",
- "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1"
+ "reference": "694d156164372abbd149a4b85ccda2e4670c0e16"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1",
- "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/694d156164372abbd149a4b85ccda2e4670c0e16",
+ "reference": "694d156164372abbd149a4b85ccda2e4670c0e16",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^11.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.0-dev"
+ "dev-main": "6.0-dev"
}
},
"autoload": {
@@ -11113,7 +11231,8 @@
"homepage": "https://github.com/sebastianbergmann/recursion-context",
"support": {
"issues": "https://github.com/sebastianbergmann/recursion-context/issues",
- "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5"
+ "security": "https://github.com/sebastianbergmann/recursion-context/security/policy",
+ "source": "https://github.com/sebastianbergmann/recursion-context/tree/6.0.2"
},
"funding": [
{
@@ -11121,87 +11240,32 @@
"type": "github"
}
],
- "time": "2023-02-03T06:07:39+00:00"
- },
- {
- "name": "sebastian/resource-operations",
- "version": "3.0.3",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/resource-operations.git",
- "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
- "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
- "shasum": ""
- },
- "require": {
- "php": ">=7.3"
- },
- "require-dev": {
- "phpunit/phpunit": "^9.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "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/3.0.3"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2020-09-28T06:45:17+00:00"
+ "time": "2024-07-03T05:10:34+00:00"
},
{
"name": "sebastian/type",
- "version": "3.2.1",
+ "version": "5.1.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/type.git",
- "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7"
+ "reference": "a8a7e30534b0eb0c77cd9d07e82de1a114389f5e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
- "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/a8a7e30534b0eb0c77cd9d07e82de1a114389f5e",
+ "reference": "a8a7e30534b0eb0c77cd9d07e82de1a114389f5e",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^9.5"
+ "phpunit/phpunit": "^11.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.2-dev"
+ "dev-main": "5.1-dev"
}
},
"autoload": {
@@ -11224,7 +11288,8 @@
"homepage": "https://github.com/sebastianbergmann/type",
"support": {
"issues": "https://github.com/sebastianbergmann/type/issues",
- "source": "https://github.com/sebastianbergmann/type/tree/3.2.1"
+ "security": "https://github.com/sebastianbergmann/type/security/policy",
+ "source": "https://github.com/sebastianbergmann/type/tree/5.1.2"
},
"funding": [
{
@@ -11232,29 +11297,29 @@
"type": "github"
}
],
- "time": "2023-02-03T06:13:03+00:00"
+ "time": "2025-03-18T13:35:50+00:00"
},
{
"name": "sebastian/version",
- "version": "3.0.2",
+ "version": "5.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/version.git",
- "reference": "c6c1022351a901512170118436c764e473f6de8c"
+ "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c",
- "reference": "c6c1022351a901512170118436c764e473f6de8c",
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c687e3387b99f5b03b6caa64c74b63e2936ff874",
+ "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.2"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.0-dev"
+ "dev-main": "5.0-dev"
}
},
"autoload": {
@@ -11277,7 +11342,8 @@
"homepage": "https://github.com/sebastianbergmann/version",
"support": {
"issues": "https://github.com/sebastianbergmann/version/issues",
- "source": "https://github.com/sebastianbergmann/version/tree/3.0.2"
+ "security": "https://github.com/sebastianbergmann/version/security/policy",
+ "source": "https://github.com/sebastianbergmann/version/tree/5.0.2"
},
"funding": [
{
@@ -11285,36 +11351,36 @@
"type": "github"
}
],
- "time": "2020-09-28T06:39:44+00:00"
+ "time": "2024-10-09T05:16:32+00:00"
},
{
"name": "slevomat/coding-standard",
- "version": "8.13.4",
+ "version": "8.18.1",
"source": {
"type": "git",
"url": "https://github.com/slevomat/coding-standard.git",
- "reference": "4b2af2fb17773656d02fbfb5d18024ebd19fe322"
+ "reference": "06b18b3f64979ab31d27c37021838439f3ed5919"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/4b2af2fb17773656d02fbfb5d18024ebd19fe322",
- "reference": "4b2af2fb17773656d02fbfb5d18024ebd19fe322",
+ "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/06b18b3f64979ab31d27c37021838439f3ed5919",
+ "reference": "06b18b3f64979ab31d27c37021838439f3ed5919",
"shasum": ""
},
"require": {
"dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7 || ^1.0",
- "php": "^7.2 || ^8.0",
- "phpstan/phpdoc-parser": "^1.23.0",
- "squizlabs/php_codesniffer": "^3.7.1"
+ "php": "^7.4 || ^8.0",
+ "phpstan/phpdoc-parser": "^2.1.0",
+ "squizlabs/php_codesniffer": "^3.13.0"
},
"require-dev": {
- "phing/phing": "2.17.4",
- "php-parallel-lint/php-parallel-lint": "1.3.2",
- "phpstan/phpstan": "1.10.26",
- "phpstan/phpstan-deprecation-rules": "1.1.3",
- "phpstan/phpstan-phpunit": "1.3.13",
- "phpstan/phpstan-strict-rules": "1.5.1",
- "phpunit/phpunit": "7.5.20|8.5.21|9.6.8|10.2.6"
+ "phing/phing": "3.0.1",
+ "php-parallel-lint/php-parallel-lint": "1.4.0",
+ "phpstan/phpstan": "2.1.17",
+ "phpstan/phpstan-deprecation-rules": "2.0.3",
+ "phpstan/phpstan-phpunit": "2.0.6",
+ "phpstan/phpstan-strict-rules": "2.0.4",
+ "phpunit/phpunit": "9.6.8|10.5.45|11.4.4|11.5.21|12.1.3"
},
"type": "phpcodesniffer-standard",
"extra": {
@@ -11338,7 +11404,7 @@
],
"support": {
"issues": "https://github.com/slevomat/coding-standard/issues",
- "source": "https://github.com/slevomat/coding-standard/tree/8.13.4"
+ "source": "https://github.com/slevomat/coding-standard/tree/8.18.1"
},
"funding": [
{
@@ -11350,20 +11416,400 @@
"type": "tidelift"
}
],
- "time": "2023-07-25T10:28:55+00:00"
+ "time": "2025-05-22T14:32:30+00:00"
},
{
- "name": "squizlabs/php_codesniffer",
- "version": "3.7.2",
+ "name": "spatie/backtrace",
+ "version": "1.7.4",
"source": {
"type": "git",
- "url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
- "reference": "ed8e00df0a83aa96acf703f8c2979ff33341f879"
+ "url": "https://github.com/spatie/backtrace.git",
+ "reference": "cd37a49fce7137359ac30ecc44ef3e16404cccbe"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/ed8e00df0a83aa96acf703f8c2979ff33341f879",
- "reference": "ed8e00df0a83aa96acf703f8c2979ff33341f879",
+ "url": "https://api.github.com/repos/spatie/backtrace/zipball/cd37a49fce7137359ac30ecc44ef3e16404cccbe",
+ "reference": "cd37a49fce7137359ac30ecc44ef3e16404cccbe",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.3 || ^8.0"
+ },
+ "require-dev": {
+ "ext-json": "*",
+ "laravel/serializable-closure": "^1.3 || ^2.0",
+ "phpunit/phpunit": "^9.3 || ^11.4.3",
+ "spatie/phpunit-snapshot-assertions": "^4.2 || ^5.1.6",
+ "symfony/var-dumper": "^5.1 || ^6.0 || ^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Spatie\\Backtrace\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Freek Van de Herten",
+ "email": "freek@spatie.be",
+ "homepage": "https://spatie.be",
+ "role": "Developer"
+ }
+ ],
+ "description": "A better backtrace",
+ "homepage": "https://github.com/spatie/backtrace",
+ "keywords": [
+ "Backtrace",
+ "spatie"
+ ],
+ "support": {
+ "source": "https://github.com/spatie/backtrace/tree/1.7.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/spatie",
+ "type": "github"
+ },
+ {
+ "url": "https://spatie.be/open-source/support-us",
+ "type": "other"
+ }
+ ],
+ "time": "2025-05-08T15:41:09+00:00"
+ },
+ {
+ "name": "spatie/error-solutions",
+ "version": "1.1.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/error-solutions.git",
+ "reference": "e495d7178ca524f2dd0fe6a1d99a1e608e1c9936"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/error-solutions/zipball/e495d7178ca524f2dd0fe6a1d99a1e608e1c9936",
+ "reference": "e495d7178ca524f2dd0fe6a1d99a1e608e1c9936",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0"
+ },
+ "require-dev": {
+ "illuminate/broadcasting": "^10.0|^11.0|^12.0",
+ "illuminate/cache": "^10.0|^11.0|^12.0",
+ "illuminate/support": "^10.0|^11.0|^12.0",
+ "livewire/livewire": "^2.11|^3.5.20",
+ "openai-php/client": "^0.10.1",
+ "orchestra/testbench": "8.22.3|^9.0|^10.0",
+ "pestphp/pest": "^2.20|^3.0",
+ "phpstan/phpstan": "^2.1",
+ "psr/simple-cache": "^3.0",
+ "psr/simple-cache-implementation": "^3.0",
+ "spatie/ray": "^1.28",
+ "symfony/cache": "^5.4|^6.0|^7.0",
+ "symfony/process": "^5.4|^6.0|^7.0",
+ "vlucas/phpdotenv": "^5.5"
+ },
+ "suggest": {
+ "openai-php/client": "Require get solutions from OpenAI",
+ "simple-cache-implementation": "To cache solutions from OpenAI"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Spatie\\Ignition\\": "legacy/ignition",
+ "Spatie\\ErrorSolutions\\": "src",
+ "Spatie\\LaravelIgnition\\": "legacy/laravel-ignition"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ruben Van Assche",
+ "email": "ruben@spatie.be",
+ "role": "Developer"
+ }
+ ],
+ "description": "This is my package error-solutions",
+ "homepage": "https://github.com/spatie/error-solutions",
+ "keywords": [
+ "error-solutions",
+ "spatie"
+ ],
+ "support": {
+ "issues": "https://github.com/spatie/error-solutions/issues",
+ "source": "https://github.com/spatie/error-solutions/tree/1.1.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/Spatie",
+ "type": "github"
+ }
+ ],
+ "time": "2025-02-14T12:29:50+00:00"
+ },
+ {
+ "name": "spatie/flare-client-php",
+ "version": "1.10.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/flare-client-php.git",
+ "reference": "bf1716eb98bd689451b071548ae9e70738dce62f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/bf1716eb98bd689451b071548ae9e70738dce62f",
+ "reference": "bf1716eb98bd689451b071548ae9e70738dce62f",
+ "shasum": ""
+ },
+ "require": {
+ "illuminate/pipeline": "^8.0|^9.0|^10.0|^11.0|^12.0",
+ "php": "^8.0",
+ "spatie/backtrace": "^1.6.1",
+ "symfony/http-foundation": "^5.2|^6.0|^7.0",
+ "symfony/mime": "^5.2|^6.0|^7.0",
+ "symfony/process": "^5.2|^6.0|^7.0",
+ "symfony/var-dumper": "^5.2|^6.0|^7.0"
+ },
+ "require-dev": {
+ "dms/phpunit-arraysubset-asserts": "^0.5.0",
+ "pestphp/pest": "^1.20|^2.0",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan-deprecation-rules": "^1.0",
+ "phpstan/phpstan-phpunit": "^1.0",
+ "spatie/pest-plugin-snapshots": "^1.0|^2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.3.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/helpers.php"
+ ],
+ "psr-4": {
+ "Spatie\\FlareClient\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Send PHP errors to Flare",
+ "homepage": "https://github.com/spatie/flare-client-php",
+ "keywords": [
+ "exception",
+ "flare",
+ "reporting",
+ "spatie"
+ ],
+ "support": {
+ "issues": "https://github.com/spatie/flare-client-php/issues",
+ "source": "https://github.com/spatie/flare-client-php/tree/1.10.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/spatie",
+ "type": "github"
+ }
+ ],
+ "time": "2025-02-14T13:42:06+00:00"
+ },
+ {
+ "name": "spatie/ignition",
+ "version": "1.15.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/ignition.git",
+ "reference": "31f314153020aee5af3537e507fef892ffbf8c85"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/ignition/zipball/31f314153020aee5af3537e507fef892ffbf8c85",
+ "reference": "31f314153020aee5af3537e507fef892ffbf8c85",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "php": "^8.0",
+ "spatie/error-solutions": "^1.0",
+ "spatie/flare-client-php": "^1.7",
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/var-dumper": "^5.4|^6.0|^7.0"
+ },
+ "require-dev": {
+ "illuminate/cache": "^9.52|^10.0|^11.0|^12.0",
+ "mockery/mockery": "^1.4",
+ "pestphp/pest": "^1.20|^2.0",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan-deprecation-rules": "^1.0",
+ "phpstan/phpstan-phpunit": "^1.0",
+ "psr/simple-cache-implementation": "*",
+ "symfony/cache": "^5.4|^6.0|^7.0",
+ "symfony/process": "^5.4|^6.0|^7.0",
+ "vlucas/phpdotenv": "^5.5"
+ },
+ "suggest": {
+ "openai-php/client": "Require get solutions from OpenAI",
+ "simple-cache-implementation": "To cache solutions from OpenAI"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.5.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Spatie\\Ignition\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Spatie",
+ "email": "info@spatie.be",
+ "role": "Developer"
+ }
+ ],
+ "description": "A beautiful error page for PHP applications.",
+ "homepage": "https://flareapp.io/ignition",
+ "keywords": [
+ "error",
+ "flare",
+ "laravel",
+ "page"
+ ],
+ "support": {
+ "docs": "https://flareapp.io/docs/ignition-for-laravel/introduction",
+ "forum": "https://twitter.com/flareappio",
+ "issues": "https://github.com/spatie/ignition/issues",
+ "source": "https://github.com/spatie/ignition"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/spatie",
+ "type": "github"
+ }
+ ],
+ "time": "2025-02-21T14:31:39+00:00"
+ },
+ {
+ "name": "spatie/laravel-ignition",
+ "version": "2.9.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/laravel-ignition.git",
+ "reference": "1baee07216d6748ebd3a65ba97381b051838707a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/1baee07216d6748ebd3a65ba97381b051838707a",
+ "reference": "1baee07216d6748ebd3a65ba97381b051838707a",
+ "shasum": ""
+ },
+ "require": {
+ "ext-curl": "*",
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "illuminate/support": "^10.0|^11.0|^12.0",
+ "php": "^8.1",
+ "spatie/ignition": "^1.15",
+ "symfony/console": "^6.2.3|^7.0",
+ "symfony/var-dumper": "^6.2.3|^7.0"
+ },
+ "require-dev": {
+ "livewire/livewire": "^2.11|^3.3.5",
+ "mockery/mockery": "^1.5.1",
+ "openai-php/client": "^0.8.1|^0.10",
+ "orchestra/testbench": "8.22.3|^9.0|^10.0",
+ "pestphp/pest": "^2.34|^3.7",
+ "phpstan/extension-installer": "^1.3.1",
+ "phpstan/phpstan-deprecation-rules": "^1.1.1|^2.0",
+ "phpstan/phpstan-phpunit": "^1.3.16|^2.0",
+ "vlucas/phpdotenv": "^5.5"
+ },
+ "suggest": {
+ "openai-php/client": "Require get solutions from OpenAI",
+ "psr/simple-cache-implementation": "Needed to cache solutions from OpenAI"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "aliases": {
+ "Flare": "Spatie\\LaravelIgnition\\Facades\\Flare"
+ },
+ "providers": [
+ "Spatie\\LaravelIgnition\\IgnitionServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/helpers.php"
+ ],
+ "psr-4": {
+ "Spatie\\LaravelIgnition\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Spatie",
+ "email": "info@spatie.be",
+ "role": "Developer"
+ }
+ ],
+ "description": "A beautiful error page for Laravel applications.",
+ "homepage": "https://flareapp.io/ignition",
+ "keywords": [
+ "error",
+ "flare",
+ "laravel",
+ "page"
+ ],
+ "support": {
+ "docs": "https://flareapp.io/docs/ignition-for-laravel/introduction",
+ "forum": "https://twitter.com/flareappio",
+ "issues": "https://github.com/spatie/laravel-ignition/issues",
+ "source": "https://github.com/spatie/laravel-ignition"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/spatie",
+ "type": "github"
+ }
+ ],
+ "time": "2025-02-20T13:13:55+00:00"
+ },
+ {
+ "name": "squizlabs/php_codesniffer",
+ "version": "3.13.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git",
+ "reference": "65ff2489553b83b4597e89c3b8b721487011d186"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/65ff2489553b83b4597e89c3b8b721487011d186",
+ "reference": "65ff2489553b83b4597e89c3b8b721487011d186",
"shasum": ""
},
"require": {
@@ -11373,11 +11819,11 @@
"php": ">=5.4.0"
},
"require-dev": {
- "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
+ "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4"
},
"bin": [
- "bin/phpcs",
- "bin/phpcbf"
+ "bin/phpcbf",
+ "bin/phpcs"
],
"type": "library",
"extra": {
@@ -11392,35 +11838,186 @@
"authors": [
{
"name": "Greg Sherwood",
- "role": "lead"
+ "role": "Former lead"
+ },
+ {
+ "name": "Juliette Reinders Folmer",
+ "role": "Current lead"
+ },
+ {
+ "name": "Contributors",
+ "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer/graphs/contributors"
}
],
"description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
- "homepage": "https://github.com/squizlabs/PHP_CodeSniffer",
+ "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer",
"keywords": [
"phpcs",
"standards",
"static analysis"
],
"support": {
- "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues",
- "source": "https://github.com/squizlabs/PHP_CodeSniffer",
- "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki"
+ "issues": "https://github.com/PHPCSStandards/PHP_CodeSniffer/issues",
+ "security": "https://github.com/PHPCSStandards/PHP_CodeSniffer/security/policy",
+ "source": "https://github.com/PHPCSStandards/PHP_CodeSniffer",
+ "wiki": "https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki"
},
- "time": "2023-02-22T23:07:41+00:00"
+ "funding": [
+ {
+ "url": "https://github.com/PHPCSStandards",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/jrfnl",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/php_codesniffer",
+ "type": "open_collective"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/phpcsstandards",
+ "type": "thanks_dev"
+ }
+ ],
+ "time": "2025-05-11T03:36:00+00:00"
},
{
- "name": "theseer/tokenizer",
- "version": "1.2.1",
+ "name": "staabm/side-effects-detector",
+ "version": "1.0.5",
"source": {
"type": "git",
- "url": "https://github.com/theseer/tokenizer.git",
- "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e"
+ "url": "https://github.com/staabm/side-effects-detector.git",
+ "reference": "d8334211a140ce329c13726d4a715adbddd0a163"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e",
- "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e",
+ "url": "https://api.github.com/repos/staabm/side-effects-detector/zipball/d8334211a140ce329c13726d4a715adbddd0a163",
+ "reference": "d8334211a140ce329c13726d4a715adbddd0a163",
+ "shasum": ""
+ },
+ "require": {
+ "ext-tokenizer": "*",
+ "php": "^7.4 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/extension-installer": "^1.4.3",
+ "phpstan/phpstan": "^1.12.6",
+ "phpunit/phpunit": "^9.6.21",
+ "symfony/var-dumper": "^5.4.43",
+ "tomasvotruba/type-coverage": "1.0.0",
+ "tomasvotruba/unused-public": "1.0.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "lib/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "A static analysis tool to detect side effects in PHP code",
+ "keywords": [
+ "static analysis"
+ ],
+ "support": {
+ "issues": "https://github.com/staabm/side-effects-detector/issues",
+ "source": "https://github.com/staabm/side-effects-detector/tree/1.0.5"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/staabm",
+ "type": "github"
+ }
+ ],
+ "time": "2024-10-20T05:08:20+00:00"
+ },
+ {
+ "name": "symfony/yaml",
+ "version": "v7.2.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/yaml.git",
+ "reference": "0feafffb843860624ddfd13478f481f4c3cd8b23"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/0feafffb843860624ddfd13478f481f4c3cd8b23",
+ "reference": "0feafffb843860624ddfd13478f481f4c3cd8b23",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.5|^3.0",
+ "symfony/polyfill-ctype": "^1.8"
+ },
+ "conflict": {
+ "symfony/console": "<6.4"
+ },
+ "require-dev": {
+ "symfony/console": "^6.4|^7.0"
+ },
+ "bin": [
+ "Resources/bin/yaml-lint"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Yaml\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Loads and dumps YAML files",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/yaml/tree/v7.2.6"
+ },
+ "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": "2025-04-04T10:10:11+00:00"
+ },
+ {
+ "name": "theseer/tokenizer",
+ "version": "1.2.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/theseer/tokenizer.git",
+ "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
+ "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
"shasum": ""
},
"require": {
@@ -11449,7 +12046,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.1"
+ "source": "https://github.com/theseer/tokenizer/tree/1.2.3"
},
"funding": [
{
@@ -11457,17 +12054,17 @@
"type": "github"
}
],
- "time": "2021-07-28T10:34:58+00:00"
+ "time": "2024-03-03T12:36:25+00:00"
}
],
"aliases": [],
"minimum-stability": "dev",
- "stability-flags": [],
+ "stability-flags": {},
"prefer-stable": true,
"prefer-lowest": false,
"platform": {
- "php": "^7.3"
+ "php": "^8.3"
},
- "platform-dev": [],
- "plugin-api-version": "2.3.0"
+ "platform-dev": {},
+ "plugin-api-version": "2.6.0"
}
diff --git a/config/app.php b/config/app.php
index 1316f9a..68bbb83 100644
--- a/config/app.php
+++ b/config/app.php
@@ -1,8 +1,8 @@
env('BRAND', 'LDC'),
+return [
/*
|--------------------------------------------------------------------------
@@ -41,7 +41,7 @@ return [
|
*/
- 'debug' => (bool)env('APP_DEBUG', false),
+ 'debug' => (bool) env('APP_DEBUG', false),
/*
|--------------------------------------------------------------------------
@@ -169,6 +169,7 @@ return [
* Package Service Providers...
*/
+ Uwil\K8S\Laravel\K8SServiceProvider::class,
Maatwebsite\Excel\ExcelServiceProvider::class,
/*
@@ -194,46 +195,7 @@ return [
|
*/
- 'aliases' => [
-
- 'App' => Illuminate\Support\Facades\App::class,
- 'Arr' => Illuminate\Support\Arr::class,
- 'Artisan' => Illuminate\Support\Facades\Artisan::class,
- 'Auth' => Illuminate\Support\Facades\Auth::class,
- 'Blade' => Illuminate\Support\Facades\Blade::class,
- 'Broadcast' => Illuminate\Support\Facades\Broadcast::class,
- 'Bus' => Illuminate\Support\Facades\Bus::class,
- 'Cache' => Illuminate\Support\Facades\Cache::class,
- 'Config' => Illuminate\Support\Facades\Config::class,
- 'Cookie' => Illuminate\Support\Facades\Cookie::class,
- 'Crypt' => Illuminate\Support\Facades\Crypt::class,
- 'Date' => Illuminate\Support\Facades\Date::class,
- 'DB' => Illuminate\Support\Facades\DB::class,
- 'Eloquent' => Illuminate\Database\Eloquent\Model::class,
- 'Event' => Illuminate\Support\Facades\Event::class,
- 'File' => Illuminate\Support\Facades\File::class,
- 'Gate' => Illuminate\Support\Facades\Gate::class,
- 'Hash' => Illuminate\Support\Facades\Hash::class,
- 'Http' => Illuminate\Support\Facades\Http::class,
- 'Js' => Illuminate\Support\Js::class,
- 'Lang' => Illuminate\Support\Facades\Lang::class,
- 'Log' => Illuminate\Support\Facades\Log::class,
- 'Mail' => Illuminate\Support\Facades\Mail::class,
- 'Notification' => Illuminate\Support\Facades\Notification::class,
- 'Password' => Illuminate\Support\Facades\Password::class,
- 'Queue' => Illuminate\Support\Facades\Queue::class,
- 'RateLimiter' => Illuminate\Support\Facades\RateLimiter::class,
- 'Redirect' => Illuminate\Support\Facades\Redirect::class,
- 'Request' => Illuminate\Support\Facades\Request::class,
- 'Response' => Illuminate\Support\Facades\Response::class,
- 'Route' => Illuminate\Support\Facades\Route::class,
- 'Schema' => Illuminate\Support\Facades\Schema::class,
- 'Session' => Illuminate\Support\Facades\Session::class,
- 'Storage' => Illuminate\Support\Facades\Storage::class,
- 'Str' => Illuminate\Support\Str::class,
- 'URL' => Illuminate\Support\Facades\URL::class,
- 'Validator' => Illuminate\Support\Facades\Validator::class,
- 'View' => Illuminate\Support\Facades\View::class,
- 'Excel' => Maatwebsite\Excel\Facades\Excel::class,
- ],
+ 'aliases' => Facade::defaultAliases()->merge([
+ 'Carbon' => \Illuminate\Support\Carbon::class,
+ ])->toArray(),
];
diff --git a/config/auth.php b/config/auth.php
index 7540dba..5213dee 100644
--- a/config/auth.php
+++ b/config/auth.php
@@ -16,7 +16,7 @@ return [
'API_TOKEN' => env('API_TOKEN'),
'defaults' => [
- 'guard' => 'frontend',
+ 'guard' => 'frontend',
'passwords' => 'users',
],
@@ -38,13 +38,13 @@ return [
*/
'guards' => [
- 'backend' => [
- 'driver' => 'session',
+ 'backend' => [
+ 'driver' => 'session',
'provider' => 'users',
],
'frontend' => [
- 'driver' => 'session',
+ 'driver' => 'session',
// ! Remplacer "users" par le model authenticable voulu
'provider' => 'users',
],
@@ -70,7 +70,7 @@ return [
'providers' => [
'users' => [
'driver' => 'eloquent',
- 'model' => App\Models\User::class,
+ 'model' => App\Models\User::class,
],
],
@@ -92,8 +92,8 @@ return [
'passwords' => [
'users' => [
'provider' => 'users',
- 'table' => 'password_resets',
- 'expire' => 60,
+ 'table' => 'password_resets',
+ 'expire' => 60,
'throttle' => 60,
],
],
diff --git a/config/breadcrumbs.php b/config/breadcrumbs.php
new file mode 100644
index 0000000..290a566
--- /dev/null
+++ b/config/breadcrumbs.php
@@ -0,0 +1,77 @@
+ 'modules/breadcrumbs/breadcrumb-layout',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Breadcrumbs File(s)
+ |--------------------------------------------------------------------------
+ |
+ | The file(s) where breadcrumbs are defined. e.g.
+ |
+ | - base_path('routes/breadcrumbs.php')
+ | - glob(base_path('breadcrumbs/*.php'))
+ |
+ */
+
+ 'files' => [
+ base_path('routes/breadcrumbs-bo.php'),
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Exceptions
+ |--------------------------------------------------------------------------
+ |
+ | Determine when to throw an exception.
+ |
+ */
+
+ // * When route-bound breadcrumbs are used but the current route doesn't have a name (UnnamedRouteException)
+ 'unnamed-route-exception' => true,
+
+ // * When route-bound breadcrumbs are used and the matching breadcrumb doesn't exist (InvalidBreadcrumbException)
+ 'missing-route-bound-breadcrumb-exception' => true,
+
+ // * When a named breadcrumb is used but doesn't exist (InvalidBreadcrumbException)
+ 'invalid-named-breadcrumb-exception' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Classes
+ |--------------------------------------------------------------------------
+ |
+ | Subclass the default classes for more advanced customisations.
+ |
+ */
+
+ // * Manager
+ 'manager-class' => Diglactic\Breadcrumbs\Manager::class,
+
+ // * Generator
+ 'generator-class' => Diglactic\Breadcrumbs\Generator::class,
+
+];
diff --git a/config/broadcasting.php b/config/broadcasting.php
index b80d371..1293dee 100644
--- a/config/broadcasting.php
+++ b/config/broadcasting.php
@@ -31,31 +31,31 @@ return [
'connections' => [
'pusher' => [
- 'driver' => 'pusher',
- 'key' => env('PUSHER_APP_KEY'),
- 'secret' => env('PUSHER_APP_SECRET'),
- 'app_id' => env('PUSHER_APP_ID'),
+ 'driver' => 'pusher',
+ 'key' => env('PUSHER_APP_KEY'),
+ 'secret' => env('PUSHER_APP_SECRET'),
+ 'app_id' => env('PUSHER_APP_ID'),
'options' => [
'cluster' => env('PUSHER_APP_CLUSTER'),
- 'useTLS' => true,
+ 'useTLS' => true,
],
],
- 'ably' => [
+ 'ably' => [
'driver' => 'ably',
- 'key' => env('ABLY_KEY'),
+ 'key' => env('ABLY_KEY'),
],
- 'redis' => [
- 'driver' => 'redis',
+ 'redis' => [
+ 'driver' => 'redis',
'connection' => 'default',
],
- 'log' => [
+ 'log' => [
'driver' => 'log',
],
- 'null' => [
+ 'null' => [
'driver' => 'null',
],
diff --git a/config/cache.php b/config/cache.php
index 2d198fd..153a481 100644
--- a/config/cache.php
+++ b/config/cache.php
@@ -33,62 +33,62 @@ return [
'stores' => [
- 'apc' => [
+ 'apc' => [
'driver' => 'apc',
],
- 'array' => [
- 'driver' => 'array',
+ 'array' => [
+ 'driver' => 'array',
'serialize' => false,
],
- 'database' => [
- 'driver' => 'database',
- 'table' => 'cache',
- 'connection' => null,
+ 'database' => [
+ 'driver' => 'database',
+ 'table' => 'cache',
+ 'connection' => null,
'lock_connection' => null,
],
- 'file' => [
+ 'file' => [
'driver' => 'file',
- 'path' => storage_path('framework/cache/data'),
+ 'path' => storage_path('framework/cache/data'),
],
'memcached' => [
- 'driver' => 'memcached',
+ 'driver' => 'memcached',
'persistent_id' => env('MEMCACHED_PERSISTENT_ID'),
- 'sasl' => [
+ 'sasl' => [
env('MEMCACHED_USERNAME'),
env('MEMCACHED_PASSWORD'),
],
- 'options' => [
+ 'options' => [
// Memcached::OPT_CONNECT_TIMEOUT => 2000, .
],
- 'servers' => [
+ 'servers' => [
[
- 'host' => env('MEMCACHED_HOST', '127.0.0.1'),
- 'port' => env('MEMCACHED_PORT', 11211),
+ 'host' => env('MEMCACHED_HOST', '127.0.0.1'),
+ 'port' => env('MEMCACHED_PORT', 11211),
'weight' => 100,
],
],
],
- 'redis' => [
- 'driver' => 'redis',
- 'connection' => 'cache',
+ 'redis' => [
+ 'driver' => 'redis',
+ 'connection' => 'cache',
'lock_connection' => 'default',
],
- 'dynamodb' => [
- 'driver' => 'dynamodb',
- 'key' => env('AWS_ACCESS_KEY_ID'),
- 'secret' => env('AWS_SECRET_ACCESS_KEY'),
- 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
- 'table' => env('DYNAMODB_CACHE_TABLE', 'cache'),
+ 'dynamodb' => [
+ 'driver' => 'dynamodb',
+ 'key' => env('AWS_ACCESS_KEY_ID'),
+ 'secret' => env('AWS_SECRET_ACCESS_KEY'),
+ 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
+ 'table' => env('DYNAMODB_CACHE_TABLE', 'cache'),
'endpoint' => env('DYNAMODB_ENDPOINT'),
],
- 'octane' => [
+ 'octane' => [
'driver' => 'octane',
],
diff --git a/config/chunk-upload.php b/config/chunk-upload.php
index 94f2698..90318f0 100644
--- a/config/chunk-upload.php
+++ b/config/chunk-upload.php
@@ -10,29 +10,29 @@ return [
* The storage config
*/
- 'storage' => [
+ 'storage' => [
/*
* Returns the folder name of the chunks. The location is in storage/app/{folder_name}
*/
'chunks' => 'chunks',
- 'disk' => 'local',
+ 'disk' => 'local',
],
- 'clear' => [
+ 'clear' => [
/*
* How old chunks we should delete
*/
'timestamp' => '-3 HOURS',
- 'schedule' => [
+ 'schedule' => [
'enabled' => true,
// Run every hour on the 25th minute.
- 'cron' => '25 * * * *',
+ 'cron' => '25 * * * *',
],
],
- 'chunk' => [
+ 'chunk' => [
// Setup for the chunk naming setup to ensure same name upload at same time.
'name' => [
'use' => [
@@ -45,7 +45,7 @@ return [
],
'handlers' => [
// A list of handlers/providers that will be appended to existing list of handlers.
- 'custom' => [],
+ 'custom' => [],
// Overrides the list of handlers - use only what you really want.
'override' => [],
],
diff --git a/config/database.php b/config/database.php
index ac4559f..6dd1331 100644
--- a/config/database.php
+++ b/config/database.php
@@ -36,58 +36,58 @@ return [
'connections' => [
'sqlite' => [
- 'driver' => 'sqlite',
- 'url' => env('DATABASE_URL'),
- 'database' => env('DB_DATABASE', database_path('database.sqlite')),
- 'prefix' => '',
+ 'driver' => 'sqlite',
+ 'url' => env('DATABASE_URL'),
+ 'database' => env('DB_DATABASE', database_path('database.sqlite')),
+ 'prefix' => '',
'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
],
'mysql' => [
- 'driver' => 'mysql',
- 'url' => env('DATABASE_URL'),
- 'host' => env('DB_HOST', '127.0.0.1'),
- 'port' => env('DB_PORT', '3306'),
- 'database' => env('DB_DATABASE', 'forge'),
- 'username' => env('DB_USERNAME', 'forge'),
- 'password' => env('DB_PASSWORD', ''),
- 'unix_socket' => env('DB_SOCKET', ''),
- 'charset' => 'utf8mb4',
- 'collation' => 'utf8mb4_unicode_ci',
- 'prefix' => '',
+ 'driver' => 'mysql',
+ 'url' => env('DATABASE_URL'),
+ 'host' => env('DB_HOST', '127.0.0.1'),
+ 'port' => env('DB_PORT', '3306'),
+ 'database' => env('DB_DATABASE', 'forge'),
+ 'username' => env('DB_USERNAME', 'forge'),
+ 'password' => env('DB_PASSWORD', ''),
+ 'unix_socket' => env('DB_SOCKET', ''),
+ 'charset' => 'utf8mb4',
+ 'collation' => 'utf8mb4_unicode_ci',
+ 'prefix' => '',
'prefix_indexes' => true,
- 'strict' => true,
- 'engine' => null,
- 'options' => extension_loaded('pdo_mysql') ? array_filter([
+ 'strict' => true,
+ 'engine' => null,
+ 'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],
'pgsql' => [
- 'driver' => 'pgsql',
- 'url' => env('DATABASE_URL'),
- 'host' => env('DB_HOST', '127.0.0.1'),
- 'port' => env('DB_PORT', '5432'),
- 'database' => env('DB_DATABASE', 'forge'),
- 'username' => env('DB_USERNAME', 'forge'),
- 'password' => env('DB_PASSWORD', ''),
- 'charset' => 'utf8',
- 'prefix' => '',
+ 'driver' => 'pgsql',
+ 'url' => env('DATABASE_URL'),
+ 'host' => env('DB_HOST', '127.0.0.1'),
+ 'port' => env('DB_PORT', '5432'),
+ 'database' => env('DB_DATABASE', 'forge'),
+ 'username' => env('DB_USERNAME', 'forge'),
+ 'password' => env('DB_PASSWORD', ''),
+ 'charset' => 'utf8',
+ 'prefix' => '',
'prefix_indexes' => true,
- 'schema' => 'public',
- 'sslmode' => 'prefer',
+ 'schema' => 'public',
+ 'sslmode' => 'prefer',
],
'sqlsrv' => [
- 'driver' => 'sqlsrv',
- 'url' => env('DATABASE_URL'),
- 'host' => env('DB_HOST', 'localhost'),
- 'port' => env('DB_PORT', '1433'),
- 'database' => env('DB_DATABASE', 'forge'),
- 'username' => env('DB_USERNAME', 'forge'),
- 'password' => env('DB_PASSWORD', ''),
- 'charset' => 'utf8',
- 'prefix' => '',
+ 'driver' => 'sqlsrv',
+ 'url' => env('DATABASE_URL'),
+ 'host' => env('DB_HOST', 'localhost'),
+ 'port' => env('DB_PORT', '1433'),
+ 'database' => env('DB_DATABASE', 'forge'),
+ 'username' => env('DB_USERNAME', 'forge'),
+ 'password' => env('DB_PASSWORD', ''),
+ 'charset' => 'utf8',
+ 'prefix' => '',
'prefix_indexes' => true,
],
@@ -123,22 +123,22 @@ return [
'options' => [
'cluster' => env('REDIS_CLUSTER', 'redis'),
- 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_') . '_database_'),
+ 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_') . '_database_'),
],
'default' => [
- 'url' => env('REDIS_URL'),
- 'host' => env('REDIS_HOST', '127.0.0.1'),
+ 'url' => env('REDIS_URL'),
+ 'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
- 'port' => env('REDIS_PORT', '6379'),
+ 'port' => env('REDIS_PORT', '6379'),
'database' => env('REDIS_DB', '0'),
],
'cache' => [
- 'url' => env('REDIS_URL'),
- 'host' => env('REDIS_HOST', '127.0.0.1'),
+ 'url' => env('REDIS_URL'),
+ 'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
- 'port' => env('REDIS_PORT', '6379'),
+ 'port' => env('REDIS_PORT', '6379'),
'database' => env('REDIS_CACHE_DB', '1'),
],
diff --git a/config/filesystems.php b/config/filesystems.php
index cca7538..550d7bd 100644
--- a/config/filesystems.php
+++ b/config/filesystems.php
@@ -32,31 +32,31 @@ return [
'local' => [
'driver' => 'local',
- 'root' => storage_path('app'),
+ 'root' => storage_path('app'),
],
'public' => [
- 'driver' => 'local',
- 'root' => storage_path('app/public'),
- 'url' => env('APP_URL') . '/storage',
+ 'driver' => 'local',
+ 'root' => storage_path('app/public'),
+ 'url' => env('APP_URL') . '/storage',
'visibility' => 'public',
],
'docs' => [
- 'driver' => 'local',
- 'root' => storage_path('app/public/docs'),
- 'url' => env('APP_URL') . '/storage/docs',
+ 'driver' => 'local',
+ 'root' => storage_path('app/public/docs'),
+ 'url' => env('APP_URL') . '/storage/docs',
'visibility' => 'public',
],
's3' => [
- 'driver' => 's3',
- 'key' => env('AWS_ACCESS_KEY_ID'),
- 'secret' => env('AWS_SECRET_ACCESS_KEY'),
- 'region' => env('AWS_DEFAULT_REGION'),
- 'bucket' => env('AWS_BUCKET'),
- 'url' => env('AWS_URL'),
- 'endpoint' => env('AWS_ENDPOINT'),
+ 'driver' => 's3',
+ 'key' => env('AWS_ACCESS_KEY_ID'),
+ 'secret' => env('AWS_SECRET_ACCESS_KEY'),
+ 'region' => env('AWS_DEFAULT_REGION'),
+ 'bucket' => env('AWS_BUCKET'),
+ 'url' => env('AWS_URL'),
+ 'endpoint' => env('AWS_ENDPOINT'),
'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false),
],
diff --git a/config/hashing.php b/config/hashing.php
index db3d9dd..4db560a 100644
--- a/config/hashing.php
+++ b/config/hashing.php
@@ -44,9 +44,9 @@ return [
*/
'argon' => [
- 'memory' => 65536,
+ 'memory' => 65536,
'threads' => 1,
- 'time' => 4,
+ 'time' => 4,
],
];
diff --git a/config/logging.php b/config/logging.php
index fc2a1ed..04402c5 100644
--- a/config/logging.php
+++ b/config/logging.php
@@ -49,41 +49,41 @@ return [
'channels' => [
'stack' => [
- 'driver' => 'stack',
- 'channels' => ['single', 'sentry'],
+ 'driver' => 'stack',
+ 'channels' => ['single', 'sentry'],
'ignore_exceptions' => false,
],
'single' => [
'driver' => 'single',
- 'path' => storage_path('logs/laravel.log'),
- 'level' => env('LOG_LEVEL', 'debug'),
+ 'path' => storage_path('logs/laravel.log'),
+ 'level' => env('LOG_LEVEL', 'debug'),
],
'sentry' => [
'driver' => 'sentry',
- 'level' => env('LOG_LEVEL', 'error'),
+ 'level' => env('LOG_LEVEL', 'error'),
],
'daily' => [
'driver' => 'daily',
- 'path' => storage_path('logs/laravel.log'),
- 'level' => env('LOG_LEVEL', 'debug'),
- 'days' => 14,
+ 'path' => storage_path('logs/laravel.log'),
+ 'level' => env('LOG_LEVEL', 'debug'),
+ 'days' => 14,
],
'slack' => [
- 'driver' => 'slack',
- 'url' => env('LOG_SLACK_WEBHOOK_URL'),
+ 'driver' => 'slack',
+ 'url' => env('LOG_SLACK_WEBHOOK_URL'),
'username' => 'Laravel Log',
- 'emoji' => ':boom:',
- 'level' => env('LOG_LEVEL', 'critical'),
+ 'emoji' => ':boom:',
+ 'level' => env('LOG_LEVEL', 'critical'),
],
'papertrail' => [
- 'driver' => 'monolog',
- 'level' => env('LOG_LEVEL', 'debug'),
- 'handler' => SyslogUdpHandler::class,
+ 'driver' => 'monolog',
+ 'level' => env('LOG_LEVEL', 'debug'),
+ 'handler' => SyslogUdpHandler::class,
'handler_with' => [
'host' => env('PAPERTRAIL_URL'),
'port' => env('PAPERTRAIL_PORT'),
@@ -91,33 +91,50 @@ return [
],
'stderr' => [
- 'driver' => 'monolog',
- 'level' => env('LOG_LEVEL', 'debug'),
- 'handler' => StreamHandler::class,
+ 'driver' => 'monolog',
+ 'level' => env('LOG_LEVEL', 'debug'),
+ 'handler' => StreamHandler::class,
'formatter' => env('LOG_STDERR_FORMATTER'),
- 'with' => [
+ 'with' => [
'stream' => 'php://stderr',
],
],
'syslog' => [
'driver' => 'syslog',
- 'level' => env('LOG_LEVEL', 'debug'),
+ 'level' => env('LOG_LEVEL', 'debug'),
],
'errorlog' => [
'driver' => 'errorlog',
- 'level' => env('LOG_LEVEL', 'debug'),
+ 'level' => env('LOG_LEVEL', 'debug'),
],
'null' => [
- 'driver' => 'monolog',
+ 'driver' => 'monolog',
'handler' => NullHandler::class,
],
'emergency' => [
- 'path' => storage_path('logs/laravel.log'),
+ 'path' => storage_path('logs/laravel.log'),
],
+
+ 'stdout' => [
+ 'driver' => 'monolog',
+ 'level' => env('LOG_LEVEL', 'debug'),
+ 'handler' => StreamHandler::class,
+ 'formatter' => env('LOG_STDOUT_FORMATTER'),
+ 'with' => [
+ 'stream' => 'php://stdout',
+ ],
+ ],
+
+ 'k8s' => [
+ 'driver' => 'stack',
+ 'channels' => ['daily', 'stdout'],
+ 'ignore_exceptions' => false,
+ ],
+
],
];
diff --git a/config/mail.php b/config/mail.php
index 21fc106..7f55939 100644
--- a/config/mail.php
+++ b/config/mail.php
@@ -35,14 +35,14 @@ return [
'mailers' => [
'smtp' => [
- 'transport' => 'smtp',
- 'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
- 'port' => env('MAIL_PORT', 587),
+ 'transport' => 'smtp',
+ 'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
+ 'port' => env('MAIL_PORT', 587),
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
- 'username' => env('MAIL_USERNAME'),
- 'password' => env('MAIL_PASSWORD'),
- 'timeout' => null,
- 'auth_mode' => null,
+ 'username' => env('MAIL_USERNAME'),
+ 'password' => env('MAIL_PASSWORD'),
+ 'timeout' => null,
+ 'auth_mode' => null,
],
'ses' => [
@@ -59,12 +59,12 @@ return [
'sendmail' => [
'transport' => 'sendmail',
- 'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -t -i'),
+ 'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -t -i'),
],
'log' => [
'transport' => 'log',
- 'channel' => env('MAIL_LOG_CHANNEL'),
+ 'channel' => env('MAIL_LOG_CHANNEL'),
],
'array' => [
@@ -73,7 +73,7 @@ return [
'failover' => [
'transport' => 'failover',
- 'mailers' => [
+ 'mailers' => [
'smtp',
'log',
],
@@ -93,7 +93,12 @@ return [
'from' => [
'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'),
- 'name' => env('MAIL_FROM_NAME', 'Example'),
+ 'name' => env('MAIL_FROM_NAME', 'Example'),
+ ],
+
+ 'to' => [
+ 'address' => explode(",", env('MAIL_TO_ADDRESS', 'hello@example.com')),
+ 'name' => env('MAIL_TO_NAME', 'Example'),
],
/*
diff --git a/config/purifier.php b/config/purifier.php
index 35a8914..e38299c 100644
--- a/config/purifier.php
+++ b/config/purifier.php
@@ -29,7 +29,6 @@ return [
// * For iframes
'URI.SafeIframeRegexp' => "%^(http://|https://|//)(www.youtube.com/embed/|player.vimeo.com/video/|vimeo.com/)%",
'HTML.Doctype' => 'HTML 4.01 Transitional',
- // TODO: Rules en FULL CKEDITOR.
// * Legacy filter en full avec safe legacy.
// 'HTML.Allowed' => 'h1[style],h2[style],h3[style],h4[style],h5[style],h6[style],figure[class|style],oembed[url],div[style],b,strong,i,em,u,a[href|title|target|rel],ul[style],ol[style],dl[style],li,p[style],br,span[style|class],img[width|height|alt|src|style|class|title],iframe[src|width|height|class|frameborder|style],table[style|align|border|cellspacing|cellpadding|width],thead,tbody,th[colspan|align|valign|style],tr[align|valign|style],td[style|colspan|rowspan|scope|align|valign],hr,dl,dt',
// * Restricted basics.
diff --git a/config/queue.php b/config/queue.php
index c312794..b2899cd 100644
--- a/config/queue.php
+++ b/config/queue.php
@@ -35,39 +35,39 @@ return [
],
'database' => [
- 'driver' => 'database',
- 'table' => 'jobs',
- 'queue' => 'default',
- 'retry_after' => 90,
+ 'driver' => 'database',
+ 'table' => 'jobs',
+ 'queue' => 'default',
+ 'retry_after' => 90,
'after_commit' => false,
],
'beanstalkd' => [
- 'driver' => 'beanstalkd',
- 'host' => 'localhost',
- 'queue' => 'default',
- 'retry_after' => 90,
- 'block_for' => 0,
+ 'driver' => 'beanstalkd',
+ 'host' => 'localhost',
+ 'queue' => 'default',
+ 'retry_after' => 90,
+ 'block_for' => 0,
'after_commit' => false,
],
'sqs' => [
- 'driver' => 'sqs',
- 'key' => env('AWS_ACCESS_KEY_ID'),
- 'secret' => env('AWS_SECRET_ACCESS_KEY'),
- 'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'),
- 'queue' => env('SQS_QUEUE', 'default'),
- 'suffix' => env('SQS_SUFFIX'),
- 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
+ 'driver' => 'sqs',
+ 'key' => env('AWS_ACCESS_KEY_ID'),
+ 'secret' => env('AWS_SECRET_ACCESS_KEY'),
+ 'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'),
+ 'queue' => env('SQS_QUEUE', 'default'),
+ 'suffix' => env('SQS_SUFFIX'),
+ 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
'after_commit' => false,
],
'redis' => [
- 'driver' => 'redis',
- 'connection' => 'default',
- 'queue' => env('REDIS_QUEUE', 'default'),
- 'retry_after' => 90,
- 'block_for' => null,
+ 'driver' => 'redis',
+ 'connection' => 'default',
+ 'queue' => env('REDIS_QUEUE', 'default'),
+ 'retry_after' => 90,
+ 'block_for' => null,
'after_commit' => false,
],
@@ -85,9 +85,9 @@ return [
*/
'failed' => [
- 'driver' => env('QUEUE_FAILED_DRIVER', 'database-uuids'),
+ 'driver' => env('QUEUE_FAILED_DRIVER', 'database-uuids'),
'database' => env('DB_CONNECTION', 'mysql'),
- 'table' => 'failed_jobs',
+ 'table' => 'failed_jobs',
],
];
diff --git a/config/saml2.php b/config/saml2.php
new file mode 100644
index 0000000..7687a41
--- /dev/null
+++ b/config/saml2.php
@@ -0,0 +1,397 @@
+ \Slides\Saml2\Models\Tenant::class,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Use built-in routes
+ |--------------------------------------------------------------------------
+ |
+ | If "useRoutes" set to true, the package defines five new routes:
+ |
+ | Method | URI | Name
+ | -------|---------------------------------|------------------
+ | POST | {routesPrefix}/{uuid}/acs | saml.acs
+ | GET | {routesPrefix}/{uuid}/login | saml.login
+ | GET | {routesPrefix}/{uuid}/logout | saml.logout
+ | GET | {routesPrefix}/{uuid}/metadata | saml.metadata
+ | GET | {routesPrefix}/{uuid}/sls | saml.sls
+ |
+ */
+
+ 'useRoutes' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Built-in routes prefix
+ |--------------------------------------------------------------------------
+ |
+ | Here you may define the prefix for built-in routes.
+ |
+ */
+
+ 'routesPrefix' => '/saml2',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Middle groups to use for the SAML routes
+ |--------------------------------------------------------------------------
+ |
+ | Note, Laravel 5.2 requires a group which includes StartSession
+ |
+ */
+
+ 'routesMiddleware' => ['saml'],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Signature validation
+ |--------------------------------------------------------------------------
+ |
+ | Set to true if you want to use parameters from $_SERVER to validate the signature.
+ |
+ */
+
+ 'retrieveParametersFromServer' => false,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Login redirection URL.
+ |--------------------------------------------------------------------------
+ |
+ | The redirection URL after successful login.
+ |
+ */
+
+ 'loginRoute' => '/bo',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Logout redirection URL.
+ |--------------------------------------------------------------------------
+ |
+ | The redirection URL after successful logout.
+ |
+ */
+
+ 'logoutRoute' => '/bo',
+
+
+ /*
+ |--------------------------------------------------------------------------
+ | Login error redirection URL.
+ |--------------------------------------------------------------------------
+ |
+ | The redirection URL after login failing.
+ |
+ */
+
+ 'errorRoute' => '/bo/login-error',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Strict mode.
+ |--------------------------------------------------------------------------
+ |
+ | If 'strict' is True, then the PHP Toolkit will reject unsigned
+ | or unencrypted messages if it expects them signed or encrypted
+ | Also will reject the messages if not strictly follow the SAML
+ | standard: Destination, NameId, Conditions... are validated too.
+ |
+ */
+
+ 'strict' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Debug mode.
+ |--------------------------------------------------------------------------
+ |
+ | When enabled, errors must be printed.
+ |
+ */
+
+ 'debug' => env('SAML2_DEBUG', env('APP_DEBUG', false)),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Whether to use `X-Forwarded-*` headers to determine port/domain/protocol.
+ |--------------------------------------------------------------------------
+ |
+ | If 'proxyVars' is True, then the Saml lib will trust proxy headers
+ | e.g X-Forwarded-Proto / HTTP_X_FORWARDED_PROTO. This is useful if
+ | your application is running behind a load balancer which terminates SSL.
+ |
+ */
+
+ 'proxyVars' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Service Provider configuration.
+ |--------------------------------------------------------------------------
+ |
+ | General setting of the service provider.
+ |
+ */
+
+ 'sp' => [
+
+ /*
+ |--------------------------------------------------------------------------
+ | NameID format.
+ |--------------------------------------------------------------------------
+ |
+ | Specifies constraints on the name identifier to be used to
+ | represent the requested subject.
+ |
+ */
+
+ 'NameIDFormat' => 'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress',
+
+ /*
+ |--------------------------------------------------------------------------
+ | SP Certificates.
+ |--------------------------------------------------------------------------
+ |
+ | Usually x509cert and privateKey of the SP are provided by files placed at
+ | the certs folder. But we can also provide them with the following parameters.
+ |
+ */
+
+ 'x509cert' => env('SAML2_SP_CERT_x509', ''),
+ 'privateKey' => env('SAML2_SP_CERT_PRIVATEKEY', ''),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Identifier (URI) of the SP entity.
+ |--------------------------------------------------------------------------
+ |
+ | Leave blank to use the 'saml.metadata' route.
+ |
+ */
+
+ 'entityId' => env('SAML2_SP_ENTITYID', ''),
+
+ /*
+ |--------------------------------------------------------------------------
+ | The Assertion Consumer Service (ACS) URL.
+ |--------------------------------------------------------------------------
+ |
+ | URL Location where the from the IdP will be returned, using HTTP-POST binding.
+ | Leave blank to use the 'saml.acs' route.
+ |
+ */
+
+ 'assertionConsumerService' => [
+ 'url' => '',
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | The Single Logout Service URL.
+ |--------------------------------------------------------------------------
+ |
+ | Specifies info about where and how the message MUST be
+ | returned to the requester, in this case our SP.
+ |
+ | URL Location where the from the IdP will be returned, using HTTP-Redirect binding.
+ | Leave blank to use the 'saml.sls' route.
+ |
+ */
+
+ 'singleLogoutService' => [
+ 'url' => ''
+ ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | OneLogin security settings.
+ |--------------------------------------------------------------------------
+ |
+ |
+ |
+ */
+
+ 'security' => [
+
+ 'signatureAlgorithm' => 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha256',
+ 'digestAlgorithm' => 'http://www.w3.org/2001/04/xmlenc#sha256',
+
+ /*
+ |--------------------------------------------------------------------------
+ | NameId encryption
+ |--------------------------------------------------------------------------
+ |
+ | Indicates that the nameID of the sent by this SP
+ | will be encrypted.
+ |
+ */
+
+ 'nameIdEncrypted' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | AuthnRequest signage
+ |--------------------------------------------------------------------------
+ |
+ | Indicates whether the messages sent by
+ | this SP will be signed. The Metadata of the SP will offer this info
+ |
+ */
+
+ 'authnRequestsSigned' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Logout request signage
+ |--------------------------------------------------------------------------
+ |
+ | Indicates whether the messages sent by this SP
+ | will be signed.
+ |
+ */
+
+ 'logoutRequestSigned' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Logout response signage
+ |--------------------------------------------------------------------------
+ |
+ | Indicates whether the messages sent by this SP
+ | will be signed.
+ |
+ */
+
+ 'logoutResponseSigned' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Whether need to sign metadata.
+ |--------------------------------------------------------------------------
+ |
+ | The possible values:
+ | - false
+ | - true (use certs)
+ | - array:
+ | ```
+ | [
+ | 'keyFileName' => 'metadata.key',
+ | 'certFileName' => 'metadata.crt'
+ | ]
+ | ```
+ |
+ */
+
+ 'signMetadata' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Requirement to sign messages.
+ |--------------------------------------------------------------------------
+ |
+ | Indicates a requirement for the , and
+ | elements received by this SP to be signed.
+ |
+ */
+
+ 'wantMessagesSigned' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Requirement to sign assertion elements.
+ |--------------------------------------------------------------------------
+ |
+ | Indicates a requirement for the elements received by
+ | this SP to be signed.
+ |
+ */
+
+ 'wantAssertionsSigned' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Requirement to encrypt NameID.
+ |--------------------------------------------------------------------------
+ |
+ | Indicates a requirement for the NameID received by this SP to be encrypted.
+ |
+ */
+
+ 'wantNameIdEncrypted' => false,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Authentication context.
+ |--------------------------------------------------------------------------
+ |
+ | Set to false and no AuthContext will be sent in the AuthNRequest,
+ |
+ | Set true or don't present this parameter and you will get an
+ | AuthContext 'exact' 'urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport'
+ |
+ | Set an array with the possible auth context values:
+ | ['urn:oasis:names:tc:SAML:2.0:ac:classes:Password', 'urn:oasis:names:tc:SAML:2.0:ac:classes:X509']
+ |
+ */
+
+ 'requestedAuthnContext' => true,
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Contact information.
+ |--------------------------------------------------------------------------
+ |
+ | It is recommended to supply a technical and support contacts.
+ |
+ */
+
+ 'contactPerson' => [
+ 'technical' => [
+ 'givenName' => env('SAML2_CONTACT_TECHNICAL_NAME', env('APP_NAME', 'Technical')),
+ 'emailAddress' => env('SAML2_CONTACT_TECHNICAL_EMAIL', 'no@reply.com')
+ ],
+ 'support' => [
+ 'givenName' => env('SAML2_CONTACT_SUPPORT_NAME', env('APP_NAME', 'Support')),
+ 'emailAddress' => env('SAML2_CONTACT_SUPPORT_EMAIL', 'no@reply.com')
+ ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Organization information.
+ |--------------------------------------------------------------------------
+ |
+ | The info in en_US lang is recommended, add more if required.
+ |
+ */
+
+ 'organization' => [
+ 'en-US' => [
+ 'name' => env('SAML2_ORGANIZATION_NAME', env('APP_NAME', 'Name')),
+ 'displayname' => env('SAML2_ORGANIZATION_NAME', env('APP_NAME', 'Name')),
+ 'url' => env('SAML2_ORGANIZATION_URL', env('APP_URL', 'http://url'))
+ ],
+ ],
+
+ /**
+ * Default tenant UUID
+ */
+
+ 'default_tenant_uuid' => env('SAML2_DEFAULT_TENANT_UUID', null)
+
+];
diff --git a/config/sentry.php b/config/sentry.php
index 29627fe..8c0063e 100644
--- a/config/sentry.php
+++ b/config/sentry.php
@@ -55,7 +55,7 @@ return [
'send_default_pii' => env('SENTRY_SEND_DEFAULT_PII', false),
// @see: https://docs.sentry.io/platforms/php/guides/laravel/configuration/options/#traces-sample-rate.
- 'traces_sample_rate' => env('SENTRY_TRACES_SAMPLE_RATE') === null ? null : (float)env('SENTRY_TRACES_SAMPLE_RATE'),
+ 'traces_sample_rate' => env('SENTRY_TRACES_SAMPLE_RATE') === null ? null : (float) env('SENTRY_TRACES_SAMPLE_RATE'),
- 'before_send' => [\App\Lib\Helpers\ExceptionsHelper::class, 'sentryEventHandler'],
+ 'before_send' => [Uwil\LaravelCommon\Helpers\ExceptionsHelper::class, 'sentryEventHandler'],
];
diff --git a/config/services.php b/config/services.php
index 915dfe7..29984b7 100644
--- a/config/services.php
+++ b/config/services.php
@@ -15,8 +15,8 @@ return [
*/
'mailgun' => [
- 'domain' => env('MAILGUN_DOMAIN'),
- 'secret' => env('MAILGUN_SECRET'),
+ 'domain' => env('MAILGUN_DOMAIN'),
+ 'secret' => env('MAILGUN_SECRET'),
'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'),
],
@@ -25,7 +25,7 @@ return [
],
'ses' => [
- 'key' => env('AWS_ACCESS_KEY_ID'),
+ 'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
],
diff --git a/config/tenancy.php b/config/tenancy.php
new file mode 100644
index 0000000..d6d5019
--- /dev/null
+++ b/config/tenancy.php
@@ -0,0 +1,207 @@
+ \App\Models\Tenant::class,
+ 'id_generator' => Stancl\Tenancy\UUIDGenerator::class,
+
+ 'domain_model' => Domain::class,
+
+ /**
+ * The list of domains hosting your central app.
+ *
+ * Only relevant if you're using the domain or subdomain identification middleware.
+ */
+ 'central_domains' => [],
+
+ /**
+ * Tenancy bootstrappers are executed when tenancy is initialized.
+ * Their responsibility is making Laravel features tenant-aware.
+ *
+ * To configure their behavior, see the config keys below.
+ */
+ 'bootstrappers' => [
+ // Stancl\Tenancy\Bootstrappers\DatabaseTenancyBootstrapper::class,
+ Stancl\Tenancy\Bootstrappers\CacheTenancyBootstrapper::class,
+ Stancl\Tenancy\Bootstrappers\FilesystemTenancyBootstrapper::class,
+ Stancl\Tenancy\Bootstrappers\QueueTenancyBootstrapper::class,
+ // Stancl\Tenancy\Bootstrappers\RedisTenancyBootstrapper::class, // Note: phpredis is needed
+ ],
+
+ /**
+ * Database tenancy config. Used by DatabaseTenancyBootstrapper.
+ */
+ 'database' => [
+ 'central_connection' => env('DB_CONNECTION', 'central'),
+
+ /**
+ * Connection used as a "template" for the dynamically created tenant database connection.
+ * Note: don't name your template connection tenant. That name is reserved by package.
+ */
+ 'template_tenant_connection' => null,
+
+ /**
+ * Tenant database names are created like this:
+ * prefix + tenant_id + suffix.
+ */
+ 'prefix' => 'tenant',
+ 'suffix' => '',
+
+ /**
+ * TenantDatabaseManagers are classes that handle the creation & deletion of tenant databases.
+ */
+ 'managers' => [
+ 'sqlite' => Stancl\Tenancy\TenantDatabaseManagers\SQLiteDatabaseManager::class,
+ 'mysql' => Stancl\Tenancy\TenantDatabaseManagers\MySQLDatabaseManager::class,
+ 'pgsql' => Stancl\Tenancy\TenantDatabaseManagers\PostgreSQLDatabaseManager::class,
+
+ /**
+ * Use this database manager for MySQL to have a DB user created for each tenant database.
+ * You can customize the grants given to these users by changing the $grants property.
+ */
+ // 'mysql' => Stancl\Tenancy\TenantDatabaseManagers\PermissionControlledMySQLDatabaseManager::class,
+
+ /**
+ * Disable the pgsql manager above, and enable the one below if you
+ * want to separate tenant DBs by schemas rather than databases.
+ */
+ // Separate by schema instead of database
+ // 'pgsql' => Stancl\Tenancy\TenantDatabaseManagers\PostgreSQLSchemaManager::class,
+ ],
+ ],
+
+ /**
+ * Cache tenancy config. Used by CacheTenancyBootstrapper.
+ *
+ * This works for all Cache facade calls, cache() helper
+ * calls and direct calls to injected cache stores.
+ *
+ * Each key in cache will have a tag applied on it. This tag is used to
+ * scope the cache both when writing to it and when reading from it.
+ *
+ * You can clear cache selectively by specifying the tag.
+ */
+ 'cache' => [
+ // This tag_base, followed by the tenant_id, will form a tag that will be applied on each cache call.
+ 'tag_base' => 'tenant',
+ ],
+
+ /**
+ * Filesystem tenancy config. Used by FilesystemTenancyBootstrapper.
+ * https://tenancyforlaravel.com/docs/v3/tenancy-bootstrappers/#filesystem-tenancy-boostrapper.
+ */
+ 'filesystem' => [
+ /**
+ * Each disk listed in the 'disks' array will be suffixed by the suffix_base, followed by the tenant_id.
+ */
+ 'suffix_base' => 'tenant',
+ 'disks' => [
+ 'local',
+ 'public',
+ // 's3',
+ ],
+
+ /**
+ * Use this for local disks.
+ *
+ * See https://tenancyforlaravel.com/docs/v3/tenancy-bootstrappers/#filesystem-tenancy-boostrapper
+ */
+ 'root_override' => [
+ // Disks whose roots should be overridden after storage_path() is suffixed.
+ 'local' => '%storage_path%/app/',
+ 'public' => '%storage_path%/app/public/',
+ ],
+
+ /**
+ * Should storage_path() be suffixed.
+ *
+ * Note: Disabling this will likely break local disk tenancy.
+ * Only disable this if you're using an external file storage service like S3.
+ *
+ * For the vast majority of applications, this feature should be enabled. But in some
+ * edge cases, it can cause issues (like using Passport with Vapor - see #196), so
+ * you may want to disable this if you are experiencing these edge case issues.
+ */
+ 'suffix_storage_path' => true,
+
+ /**
+ * By default, asset() calls are made multi-tenant too. You can use global_asset() and mix()
+ * for global, non-tenant-specific assets. However, you might have some issues when using
+ * packages that use asset() calls inside the tenant app. To avoid such issues, you can
+ * disable asset() helper tenancy and explicitly use tenant_asset() calls in places
+ * where you want to use tenant-specific assets (product images, avatars, etc).
+ */
+ 'asset_helper_tenancy' => true,
+ ],
+
+ /**
+ * Redis tenancy config. Used by RedisTenancyBootstrapper.
+ *
+ * Note: You need phpredis to use Redis tenancy.
+ *
+ * Note: You don't need to use this if you're using Redis only for cache.
+ * Redis tenancy is only relevant if you're making direct Redis calls,
+ * either using the Redis facade or by injecting it as a dependency.
+ */
+ 'redis' => [
+ // Each key in Redis will be prepended by this prefix_base, followed by the tenant id.
+ 'prefix_base' => 'tenant',
+ // Redis connections whose keys are prefixed, to separate one tenant's keys from another.
+ 'prefixed_connections' => [
+ // 'default',
+ ],
+ ],
+
+ /**
+ * Features are classes that provide additional functionality
+ * not needed for tenancy to be bootstrapped. They are run
+ * regardless of whether tenancy has been initialized.
+ *
+ * See the documentation page for each class to
+ * understand which ones you want to enable.
+ */
+ 'features' => [
+ // Stancl\Tenancy\Features\UserImpersonation::class,
+ // Stancl\Tenancy\Features\TelescopeTags::class,
+ // Stancl\Tenancy\Features\UniversalRoutes::class,
+ // https://tenancyforlaravel.com/docs/v3/features/tenant-config
+ // Stancl\Tenancy\Features\TenantConfig::class,
+ // https://tenancyforlaravel.com/docs/v3/features/cross-domain-redirect
+ // Stancl\Tenancy\Features\CrossDomainRedirect::class,
+ // Stancl\Tenancy\Features\ViteBundler::class,
+ ],
+
+ /**
+ * Should tenancy routes be registered.
+ *
+ * Tenancy routes include tenant asset routes. By default, this route is
+ * enabled. But it may be useful to disable them if you use external
+ * storage (e.g. S3 / Dropbox) or have a custom asset controller.
+ */
+ 'routes' => true,
+
+ /**
+ * Parameters used by the tenants:migrate command.
+ */
+ 'migration_parameters' => [
+ // This needs to be true to run migrations in production.
+ '--force' => true,
+ '--path' => [database_path('migrations/tenant')],
+ '--realpath' => true,
+ ],
+
+ /**
+ * Parameters used by the tenants:seed command.
+ */
+ 'seeder_parameters' => [
+ // Root seeder class.
+ '--class' => 'DatabaseSeeder',
+ // This needs to be true to seed tenant databases in production.
+ // '--force' => true,
+ ],
+];
diff --git a/database/factories/AppUserFactory.php b/database/factories/AppUserFactory.php
index 249e4e1..138c319 100644
--- a/database/factories/AppUserFactory.php
+++ b/database/factories/AppUserFactory.php
@@ -4,6 +4,7 @@ namespace Database\Factories;
use App\Enums\AppUserRolesEnum;
use App\Models\AppUser;
+use App\Models\Tenant;
use Illuminate\Database\Eloquent\Factories\Factory;
/**
@@ -23,15 +24,16 @@ class AppUserFactory extends Factory
*
* @return array
*/
- public function definition()
+ public function definition(): array
{
return [
'firstname' => $this->faker->unique()->firstname(),
- 'lastname' => $this->faker->unique()->lastName(),
- 'email' => $this->faker->unique()->safeEmail(),
- 'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi',
- 'status' => $this->faker->boolean(75),
- 'role' => collect(AppUserRolesEnum::toArray())->random(),
+ 'lastname' => $this->faker->unique()->lastName(),
+ 'email' => $this->faker->unique()->safeEmail(),
+ 'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi',
+ 'status' => $this->faker->boolean(75),
+ 'role' => collect(AppUserRolesEnum::cases())->random(),
+ 'tenant_id' => Tenant::query()->first('id'),
];
}
}
diff --git a/database/factories/ContactFactory.php b/database/factories/ContactFactory.php
index c816ffe..70510be 100644
--- a/database/factories/ContactFactory.php
+++ b/database/factories/ContactFactory.php
@@ -2,10 +2,7 @@
namespace Database\Factories;
-use App\Enums\Formularies\InputTypeEnum;
-use App\Lib\Inputs\Definition\InputData;
use App\Models\Contact;
-use App\Models\Formulary;
use Illuminate\Database\Eloquent\Factories\Factory;
class ContactFactory extends Factory
@@ -22,60 +19,23 @@ class ContactFactory extends Factory
*
* @return array
*/
- public function definition()
+ public function definition(): array
{
- /** @var \Illuminate\Database\Eloquent\Collection<\App\Models\Formulary> */
- $formularies = $this->factoryForModel(Formulary::class)->count($this->faker->numberBetween(3, 9))->make();
return [
- 'email' => $this->faker->unique()->email(),
- 'lastname' => $this->faker->boolean() ? $this->faker->unique()->lastName() : '',
- 'firstname' => $this->faker->boolean() ? $this->faker->unique()->firstName() : '',
- 'phone' => $this->faker->boolean() ? $this->faker->unique()->phoneNumber() : '',
- 'notes' => $this->faker->boolean() ? $this->faker->text() : null,
- 'visits' => \collect(range(0, $this->faker->numberBetween(1, 5)))->mapWithKeys(function () {
+ 'email' => $this->faker->unique()->email(),
+ 'lastname' => $this->faker->boolean() ? $this->faker->unique()->lastName() : null,
+ 'firstname' => $this->faker->boolean() ? $this->faker->unique()->firstName() : null,
+ 'phone' => $this->faker->boolean() ? $this->faker->unique()->phoneNumber() : null,
+ 'notes' => $this->faker->boolean() ? $this->faker->text() : null,
+ 'visits' => \collect(range(0, $this->faker->numberBetween(1, 5)))->mapWithKeys(function () {
return [
- 'title' => 'Visite du ' . $this->faker->dateTime()->format('D/M/Y H:i'),
- 'note' => $this->faker->text()
+ [
+ 'title' => 'Visite du ' . $this->faker->dateTime()->format('D/M/Y H:i'),
+ 'note' => $this->faker->text(),
+ ]
];
}),
- 'data' => $formularies->map(function (Formulary $formulary) {
- $inputClass = $formulary->type->inputClass;
- $details = \collect($formulary->details)->map(function (array $details) {
- return $details['fr'];
- });
-
- $data = $this->faker->words(3, true);
-
- if ($formulary->type->equals(InputTypeEnum::email())) {
- $data = $this->faker->unique()->email();
- }
- if ($formulary->type->equals(InputTypeEnum::phone())) {
- $data = $this->faker->phoneNumber();
- }
- if (
- in_array($formulary->type->value, [
- InputTypeEnum::selectMultiple()->value,
- InputTypeEnum::checkbox()->value
- ])
- ) {
- $data = \collect($details->random(min($details->count(), 2)))->all();
- }
- if (
- in_array($formulary->type->value, [
- InputTypeEnum::select()->value,
- InputTypeEnum::radio()->value
- ])
- ) {
- $data = $details->random();
- }
-
- return $inputClass::from(InputData::make(
- $formulary->placeholder['fr'],
- $formulary->type,
- $data,
- $formulary->required
- ), $formulary->required);
- })
+ 'data' => null,
];
}
}
diff --git a/database/factories/DirectoryFactory.php b/database/factories/DirectoryFactory.php
index 88d7a88..99c5446 100644
--- a/database/factories/DirectoryFactory.php
+++ b/database/factories/DirectoryFactory.php
@@ -3,6 +3,7 @@
namespace Database\Factories;
use App\Models\Directory;
+use App\Models\Tenant;
use Illuminate\Database\Eloquent\Factories\Factory;
/**
@@ -22,18 +23,19 @@ class DirectoryFactory extends Factory
*
* @return array
*/
- public function definition()
+ public function definition(): array
{
return [
- 'name' => [
+ 'name' => [
"fr" => $this->faker->unique()->word,
"en" => $this->faker->unique()->word,
"de" => $this->faker->unique()->word,
"nl" => $this->faker->unique()->word,
],
- 'directory_id' => null,
+ 'directory_id' => null,
'needAuthorization' => $this->faker->boolean(50),
- 'is_system' => 0,
+ 'is_system' => 0,
+ 'tenant_id' => Tenant::query()->first('id'),
];
}
}
diff --git a/database/factories/FormularyFactory.php b/database/factories/FormularyFactory.php
index 914eb6d..bcf4734 100644
--- a/database/factories/FormularyFactory.php
+++ b/database/factories/FormularyFactory.php
@@ -4,6 +4,7 @@ namespace Database\Factories;
use App\Enums\Formularies\InputStatusEnum;
use App\Enums\Formularies\InputTypeEnum;
+use App\Models\Tenant;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str;
@@ -14,7 +15,7 @@ class FormularyFactory extends Factory
*
* @return array
*/
- public function definition()
+ public function definition(): array
{
$mandatoryLocales = ['fr', 'en', 'de', 'nl'];
$name = $this->faker->unique()->company;
@@ -22,27 +23,30 @@ class FormularyFactory extends Factory
$details = null;
if (
\in_array($type, [
- InputTypeEnum::selectMultiple(), InputTypeEnum::select(),
- InputTypeEnum::radio(), InputTypeEnum::checkbox()
+ InputTypeEnum::selectMultiple,
+ InputTypeEnum::select,
+ InputTypeEnum::radio,
+ InputTypeEnum::checkbox
])
) {
$details = $this->faker->words(\count($mandatoryLocales));
}
return [
- 'type' => $type,
- 'name' => $name,
- 'slug' => Str::of($name)->slug(),
+ 'type' => $type,
+ 'name' => $name,
+ 'slug' => Str::of($name)->slug(),
'placeholder' => \collect($mandatoryLocales)->mapWithKeys(function ($locale) {
return [$locale => "{$locale} {$this->faker->company}"];
})->all(),
- 'details' => !empty($details) ? \collect($details)->map(function ($word) use ($mandatoryLocales) {
+ 'details' => !empty($details) ? \collect($details)->map(function ($word) use ($mandatoryLocales) {
return \collect($mandatoryLocales)->mapWithKeys(function ($locale) use ($word) {
return [$locale => "{$locale} {$word}"];
})->all();
})->all() : null,
- 'is_visible' => $this->faker->boolean(75),
- 'required' => $this->faker->boolean(75),
- 'status' => InputStatusEnum::default(),
+ 'is_visible' => $this->faker->boolean(75),
+ 'required' => $this->faker->boolean(75),
+ 'status' => InputStatusEnum::default,
+ 'tenant_id' => Tenant::query()->first('id'),
];
}
}
diff --git a/database/factories/TagFactory.php b/database/factories/TagFactory.php
index 4c23234..1fc414b 100644
--- a/database/factories/TagFactory.php
+++ b/database/factories/TagFactory.php
@@ -3,6 +3,7 @@
namespace Database\Factories;
use App\Models\Tag;
+use App\Models\Tenant;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str;
@@ -23,12 +24,13 @@ final class TagFactory extends Factory
*
* @return array
*/
- public function definition()
+ public function definition(): array
{
$name = $this->faker->unique()->word;
return [
- 'name' => $name,
- 'slug' => Str::slug($name),
+ 'name' => $name,
+ 'slug' => Str::slug($name),
+ 'tenant_id' => Tenant::query()->first('id'),
];
}
}
diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php
index 75fe678..345ad50 100644
--- a/database/factories/UserFactory.php
+++ b/database/factories/UserFactory.php
@@ -2,6 +2,7 @@
namespace Database\Factories;
+use App\Models\Tenant;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str;
@@ -12,16 +13,16 @@ class UserFactory extends Factory
*
* @return array
*/
- public function definition()
+ public function definition(): array
{
return [
- 'firstname' => $this->faker->firstname(),
- 'lastname' => $this->faker->lastname(),
- 'email' => $this->faker->unique()->safeEmail(),
+ 'firstname' => $this->faker->firstname(),
+ 'lastname' => $this->faker->lastname(),
+ 'email' => $this->faker->unique()->safeEmail(),
'email_verified_at' => now(),
- // * password
- 'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi',
- 'remember_token' => Str::random(10),
+ 'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi',
+ 'remember_token' => Str::random(10),
+ 'tenant_id' => Tenant::query()->first('id'),
];
}
@@ -30,7 +31,7 @@ class UserFactory extends Factory
*
* @return \Illuminate\Database\Eloquent\Factories\Factory
*/
- public function unverified()
+ public function unverified(): \Illuminate\Database\Eloquent\Factories\Factory
{
return $this->state(function () {
return [
diff --git a/database/migrations/2023_03_14_150900_create_app_users_table.php b/database/migrations/2023_03_14_150900_create_app_users_table.php
index abdcc68..98db63f 100644
--- a/database/migrations/2023_03_14_150900_create_app_users_table.php
+++ b/database/migrations/2023_03_14_150900_create_app_users_table.php
@@ -2,8 +2,6 @@
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
-use Illuminate\Support\Facades\DB;
-use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
@@ -13,14 +11,8 @@ return new class extends Migration
*
* @return void
*/
- public function up()
+ public function up(): void
{
- DB::table('migrations')->truncate();
- Log::debug('truncate migrations');
- if (Schema::hasTable('app_users')) {
- Log::debug('already has app_users');
- return;
- }
Schema::create('app_users', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('email')->unique();
@@ -39,7 +31,7 @@ return new class extends Migration
*
* @return void
*/
- public function down()
+ public function down(): void
{
Schema::dropIfExists('app_users');
}
diff --git a/database/migrations/2023_03_14_150900_create_contacts_table.php b/database/migrations/2023_03_14_150900_create_contacts_table.php
index cc2e6c0..996272c 100644
--- a/database/migrations/2023_03_14_150900_create_contacts_table.php
+++ b/database/migrations/2023_03_14_150900_create_contacts_table.php
@@ -2,7 +2,6 @@
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
-use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
@@ -12,12 +11,8 @@ return new class extends Migration
*
* @return void
*/
- public function up()
+ public function up(): void
{
- if (Schema::hasTable('contacts')) {
- Log::debug('already has contacts');
- return;
- }
Schema::create('contacts', function (Blueprint $table) {
$table->string('id', 50)->primary();
$table->string('email');
@@ -44,7 +39,7 @@ return new class extends Migration
*
* @return void
*/
- public function down()
+ public function down(): void
{
Schema::dropIfExists('contacts');
}
diff --git a/database/migrations/2023_03_14_150900_create_directories_table.php b/database/migrations/2023_03_14_150900_create_directories_table.php
index 9915227..c0149e3 100644
--- a/database/migrations/2023_03_14_150900_create_directories_table.php
+++ b/database/migrations/2023_03_14_150900_create_directories_table.php
@@ -2,7 +2,6 @@
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
-use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
@@ -12,12 +11,8 @@ return new class extends Migration
*
* @return void
*/
- public function up()
+ public function up(): void
{
- if (Schema::hasTable('directories')) {
- Log::debug('already has directories');
- return;
- }
Schema::create('directories', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
@@ -33,7 +28,7 @@ return new class extends Migration
*
* @return void
*/
- public function down()
+ public function down(): void
{
Schema::dropIfExists('directories');
}
diff --git a/database/migrations/2023_03_14_150900_create_documents_table.php b/database/migrations/2023_03_14_150900_create_documents_table.php
index 62161eb..bfca110 100644
--- a/database/migrations/2023_03_14_150900_create_documents_table.php
+++ b/database/migrations/2023_03_14_150900_create_documents_table.php
@@ -2,7 +2,6 @@
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
-use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
@@ -12,12 +11,8 @@ return new class extends Migration
*
* @return void
*/
- public function up()
+ public function up(): void
{
- if (Schema::hasTable('documents')) {
- Log::debug('already has documents');
- return;
- }
Schema::create('documents', function (Blueprint $table) {
$table->bigIncrements('id');
$table->char('uuid', 36)->nullable();
@@ -37,7 +32,7 @@ return new class extends Migration
*
* @return void
*/
- public function down()
+ public function down(): void
{
Schema::dropIfExists('documents');
}
diff --git a/database/migrations/2023_03_14_150900_create_settings_table.php b/database/migrations/2023_03_14_150900_create_settings_table.php
index 8fe1a7a..5ddf29c 100644
--- a/database/migrations/2023_03_14_150900_create_settings_table.php
+++ b/database/migrations/2023_03_14_150900_create_settings_table.php
@@ -2,7 +2,6 @@
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
-use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
@@ -12,16 +11,12 @@ return new class extends Migration
*
* @return void
*/
- public function up()
+ public function up(): void
{
- if (Schema::hasTable('settings')) {
- Log::debug('already has settings');
- return;
- }
Schema::create('settings', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('key')->unique();
- $table->text('value')->default('');
+ $table->text('value');
$table->integer('type');
$table->timestamps();
});
@@ -32,7 +27,7 @@ return new class extends Migration
*
* @return void
*/
- public function down()
+ public function down(): void
{
Schema::dropIfExists('settings');
}
diff --git a/database/migrations/2023_03_14_150900_create_users_table.php b/database/migrations/2023_03_14_150900_create_users_table.php
index 517bd69..a897319 100644
--- a/database/migrations/2023_03_14_150900_create_users_table.php
+++ b/database/migrations/2023_03_14_150900_create_users_table.php
@@ -1,12 +1,7 @@
getDoctrineSchemaManager()
- ->listTableColumns('users')
- )->mapWithKeys(function (Column $column) {
- return [$column->getName() => $column];
- });
- if (Schema::hasTable('users')) {
- Log::debug('already has users');
-
- if ($columns->has('role')) {
- Log::debug('already has role column');
- return;
- }
- Log::debug('adding role');
- if (!Type::hasType('integer')) {
- Type::addType('integer', SmallIntType::class);
- }
- Schema::table('users', function (Blueprint $table) {
- $table->smallInteger('role')->nullable()->after('remember_token');
- });
- DB::table('users')->get()->each(function (object $user) {
- DB::table('users')->where('id', $user->id)
- ->update(['role' => in_array($user->email, [
- 'informatique.internet@ldc.fr',
- 'equipe.web@ldc.fr'
- ]) ? 1 : 2]);
- });
- Schema::table('users', function (Blueprint $table) {
- $table->smallInteger('role')->change();
- });
- return;
- } //end if
Schema::create('users', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name', 100)->default('0');
@@ -67,7 +29,7 @@ return new class extends Migration
*
* @return void
*/
- public function down()
+ public function down(): void
{
Schema::dropIfExists('users');
}
diff --git a/database/migrations/2023_03_14_150901_add_foreign_keys_to_contacts_table.php b/database/migrations/2023_03_14_150901_add_foreign_keys_to_contacts_table.php
index 30d8012..288f78f 100644
--- a/database/migrations/2023_03_14_150901_add_foreign_keys_to_contacts_table.php
+++ b/database/migrations/2023_03_14_150901_add_foreign_keys_to_contacts_table.php
@@ -2,7 +2,6 @@
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
-use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
@@ -12,12 +11,8 @@ return new class extends Migration
*
* @return void
*/
- public function up()
+ public function up(): void
{
- if ($this->hasForeign('contacts', 'user_id', 'app_users', 'id')) {
- Log::debug('already has foreign user_id');
- return;
- }
Schema::table('contacts', function (Blueprint $table) {
$table->foreign(['user_id'])->references(['id'])->on('app_users');
});
@@ -28,45 +23,10 @@ return new class extends Migration
*
* @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('contacts', function (Blueprint $table) {
$table->dropForeign('contacts_user_id_foreign');
});
}
-
- /**
- * Check if a foreign key exists
- *
- * @param string $table
- * @param string $column
- * @param string $foreignTable
- * @param string $foreignColumn
- * @return boolean
- */
- private function hasForeign(
- string $table,
- string $column,
- string $foreignTable,
- string $foreignColumn
- ) {
-
- // * Get the foreign keys for the table
- $fkColumns = Schema::getConnection()
- ->getDoctrineSchemaManager()
- ->listTableForeignKeys($table);
-
- // * Check if the foreign key exists
- foreach ($fkColumns as $fkColumn) {
- if (
- $fkColumn->getLocalColumns()[0] == $column &&
- $fkColumn->getForeignColumns()[0] == $foreignColumn &&
- $fkColumn->getForeignTableName() == $foreignTable
- ) {
- return true;
- }
- }
-
- return false;
- }
};
diff --git a/database/migrations/2023_03_14_150901_add_foreign_keys_to_directories_table.php b/database/migrations/2023_03_14_150901_add_foreign_keys_to_directories_table.php
index a9c399d..f70c6d9 100644
--- a/database/migrations/2023_03_14_150901_add_foreign_keys_to_directories_table.php
+++ b/database/migrations/2023_03_14_150901_add_foreign_keys_to_directories_table.php
@@ -2,7 +2,6 @@
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
-use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
@@ -12,12 +11,8 @@ return new class extends Migration
*
* @return void
*/
- public function up()
+ public function up(): void
{
- if ($this->hasForeign('directories', 'parent', 'directories', 'id')) {
- Log::debug('already has foreign parent');
- return;
- }
Schema::table('directories', function (Blueprint $table) {
$table->foreign(['parent'])->references(['id'])->on('directories');
});
@@ -28,45 +23,10 @@ return new class extends Migration
*
* @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('directories', function (Blueprint $table) {
$table->dropForeign('directories_parent_foreign');
});
}
-
- /**
- * Check if a foreign key exists
- *
- * @param string $table
- * @param string $column
- * @param string $foreignTable
- * @param string $foreignColumn
- * @return boolean
- */
- private function hasForeign(
- string $table,
- string $column,
- string $foreignTable,
- string $foreignColumn
- ) {
-
- // * Get the foreign keys for the table
- $fkColumns = Schema::getConnection()
- ->getDoctrineSchemaManager()
- ->listTableForeignKeys($table);
-
- // * Check if the foreign key exists
- foreach ($fkColumns as $fkColumn) {
- if (
- $fkColumn->getLocalColumns()[0] == $column &&
- $fkColumn->getForeignColumns()[0] == $foreignColumn &&
- $fkColumn->getForeignTableName() == $foreignTable
- ) {
- return true;
- }
- }
-
- return false;
- }
};
diff --git a/database/migrations/2023_03_14_150901_add_foreign_keys_to_documents_table.php b/database/migrations/2023_03_14_150901_add_foreign_keys_to_documents_table.php
index dfaa2a9..f9f8167 100644
--- a/database/migrations/2023_03_14_150901_add_foreign_keys_to_documents_table.php
+++ b/database/migrations/2023_03_14_150901_add_foreign_keys_to_documents_table.php
@@ -2,7 +2,6 @@
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
-use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
@@ -12,12 +11,8 @@ return new class extends Migration
*
* @return void
*/
- public function up()
+ public function up(): void
{
- if ($this->hasForeign('documents', 'directory', 'directories', 'id')) {
- Log::debug('already has foreign directory');
- return;
- }
Schema::table('documents', function (Blueprint $table) {
$table->foreign(['directory'])->references(['id'])->on('directories');
});
@@ -28,45 +23,10 @@ return new class extends Migration
*
* @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('documents', function (Blueprint $table) {
$table->dropForeign('documents_directory_foreign');
});
}
-
- /**
- * Check if a foreign key exists
- *
- * @param string $table
- * @param string $column
- * @param string $foreignTable
- * @param string $foreignColumn
- * @return boolean
- */
- private function hasForeign(
- string $table,
- string $column,
- string $foreignTable,
- string $foreignColumn
- ) {
-
- // * Get the foreign keys for the table
- $fkColumns = Schema::getConnection()
- ->getDoctrineSchemaManager()
- ->listTableForeignKeys($table);
-
- // * Check if the foreign key exists
- foreach ($fkColumns as $fkColumn) {
- if (
- $fkColumn->getLocalColumns()[0] == $column &&
- $fkColumn->getForeignColumns()[0] == $foreignColumn &&
- $fkColumn->getForeignTableName() == $foreignTable
- ) {
- return true;
- }
- }
-
- return false;
- }
};
diff --git a/database/migrations/2023_03_14_152343_create_jobs_table.php b/database/migrations/2023_03_14_152343_create_jobs_table.php
index de4b6a8..c631c90 100644
--- a/database/migrations/2023_03_14_152343_create_jobs_table.php
+++ b/database/migrations/2023_03_14_152343_create_jobs_table.php
@@ -2,7 +2,6 @@
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
-use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Schema;
class CreateJobsTable extends Migration
@@ -12,12 +11,8 @@ class CreateJobsTable extends Migration
*
* @return void
*/
- public function up()
+ public function up(): void
{
- if (Schema::hasTable('jobs')) {
- Log::debug('already has jobs');
- return;
- }
Schema::create('jobs', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('queue')->index();
@@ -34,7 +29,7 @@ class CreateJobsTable extends Migration
*
* @return void
*/
- public function down()
+ public function down(): void
{
Schema::dropIfExists('jobs');
}
diff --git a/database/migrations/2023_03_14_152416_create_failed_jobs_table.php b/database/migrations/2023_03_14_152416_create_failed_jobs_table.php
index 013f280..bd6f594 100644
--- a/database/migrations/2023_03_14_152416_create_failed_jobs_table.php
+++ b/database/migrations/2023_03_14_152416_create_failed_jobs_table.php
@@ -2,7 +2,6 @@
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
-use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Schema;
class CreateFailedJobsTable extends Migration
@@ -12,12 +11,8 @@ class CreateFailedJobsTable extends Migration
*
* @return void
*/
- public function up()
+ public function up(): void
{
- if (Schema::hasTable('failed_jobs')) {
- Log::debug('already has failed_jobs');
- return;
- }
Schema::create('failed_jobs', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('uuid')->unique();
@@ -34,7 +29,7 @@ class CreateFailedJobsTable extends Migration
*
* @return void
*/
- public function down()
+ public function down(): void
{
Schema::dropIfExists('failed_jobs');
}
diff --git a/database/migrations/2023_03_20_105223_update_directory_table.php b/database/migrations/2023_03_20_105223_update_directory_table.php
index 8add158..5bc3941 100644
--- a/database/migrations/2023_03_20_105223_update_directory_table.php
+++ b/database/migrations/2023_03_20_105223_update_directory_table.php
@@ -1,6 +1,7 @@
UPDATED_AT
//phpcs:ignore Generic.Files.LineLength.TooLong
@@ -23,7 +24,7 @@ class UpdateDirectoryTable extends Migration
$table->renameColumn('parent', 'directory_id');
$table->json('name')->change();
$table->boolean('is_system')->after('needAuthorization')->comment('Le dossier est-il administrable ?');
- $table->dateTime('created_at')->default('CURRENT_TIMESTAMP')->nullable()->change();
+ $table->dateTime('created_at')->default(Carbon::now())->nullable()->change();
});
Directory::each(function (Directory $model) {
@@ -39,7 +40,7 @@ class UpdateDirectoryTable extends Migration
*
* @return void
*/
- public function down()
+ public function down(): void
{
// * APP_USER->CREATED_AT
//phpcs:ignore Generic.Files.LineLength.TooLong
diff --git a/database/migrations/2023_03_20_110635_add_pivot_directory_table.php b/database/migrations/2023_03_20_110635_add_pivot_directory_table.php
index c3809f2..3572e01 100644
--- a/database/migrations/2023_03_20_110635_add_pivot_directory_table.php
+++ b/database/migrations/2023_03_20_110635_add_pivot_directory_table.php
@@ -11,7 +11,7 @@ class AddPivotDirectoryTable extends Migration
*
* @return void
*/
- public function up()
+ public function up(): void
{
Schema::create('directorables', function (Blueprint $table) {
$table->foreignId('directory_id')->references('id')->on('directories');
@@ -25,7 +25,7 @@ class AddPivotDirectoryTable extends Migration
*
* @return void
*/
- public function down()
+ public function down(): void
{
Schema::dropIfExists('directorables');
}
diff --git a/database/migrations/2023_03_24_171035_update_app_users_table.php b/database/migrations/2023_03_24_171035_update_app_users_table.php
index d39cbbd..4434e66 100644
--- a/database/migrations/2023_03_24_171035_update_app_users_table.php
+++ b/database/migrations/2023_03_24_171035_update_app_users_table.php
@@ -3,10 +3,10 @@
use App\Enums\AppUserRolesEnum;
use App\Models\AppUser;
use App\Models\Directory;
+use Carbon\Carbon;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\DB;
-use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Schema;
class UpdateAppUsersTable extends Migration
@@ -16,15 +16,15 @@ class UpdateAppUsersTable extends Migration
*
* @return void
*/
- public function up()
+ public function up(): void
{
// * APP_USER->UPDATED_AT
//phpcs:ignore Generic.Files.LineLength.TooLong
DB::statement('ALTER TABLE `app_users` CHANGE `updated_at` `updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP');
// * APP_USER->ROLE
- DB::table('app_users')->where('role', 'USER')->update(['role' => AppUserRolesEnum::user()->value]);
- DB::table('app_users')->where('role', 'TOTAL')->update(['role' => AppUserRolesEnum::total()->value]);
+ DB::table('app_users')->where('role', 'USER')->update(['role' => AppUserRolesEnum::user->value()]);
+ DB::table('app_users')->where('role', 'TOTAL')->update(['role' => AppUserRolesEnum::total->value()]);
DB::statement("ALTER TABLE app_users CHANGE COLUMN role role TINYINT NOT NULL");
// * APP_USER->PASSWORD
@@ -33,23 +33,12 @@ class UpdateAppUsersTable extends Migration
$appUsersOld = AppUser::get();
// * OTHERS
- try {
- Schema::table('app_users', function (Blueprint $table) {
- $table->dropUnique('email');
- });
- } catch (\Exception $e) {
- Log::debug('Failed to drop email unique');
- Schema::table('app_users', function (Blueprint $table) {
- $table->dropUnique(['email']);
- });
- }
Schema::table('app_users', function (Blueprint $table) {
- $table->unique(['email']);
$table->renameColumn('surname', 'lastname');
$table->renameColumn('activated', 'status');
$table->integer('order')->after('role')->comment('Ordonnance des utilisateurs de l\'applications.');
$table->dropColumn('authorizedFolders');
- $table->dateTime('created_at')->default('CURRENT_TIMESTAMP')->nullable()->change();
+ $table->dateTime('created_at')->default(Carbon::now())->nullable()->change();
});
AppUser::each(function (AppUser $appUserModel, int $key) use ($appUsersOld) {
@@ -68,12 +57,12 @@ class UpdateAppUsersTable extends Migration
*
* @return void
*/
- public function down()
+ public function down(): void
{
// * APP_USER->ROLE
DB::statement("ALTER TABLE app_users CHANGE COLUMN role role VARCHAR(50) NOT NULL");
- DB::table('app_users')->where('role', strval(AppUserRolesEnum::user()->value))->update(['role' => 'USER']);
- DB::table('app_users')->where('role', strval(AppUserRolesEnum::total()->value))->update(['role' => 'TOTAL']);
+ DB::table('app_users')->where('role', strval(AppUserRolesEnum::user->value()))->update(['role' => 'USER']);
+ DB::table('app_users')->where('role', strval(AppUserRolesEnum::total->value()))->update(['role' => 'TOTAL']);
// * APP_USER->CREATED_AT
//phpcs:ignore Generic.Files.LineLength.TooLong
diff --git a/database/migrations/2023_03_27_112237_update_users_table.php b/database/migrations/2023_03_27_112237_update_users_table.php
index 016f71a..b9c0f0f 100644
--- a/database/migrations/2023_03_27_112237_update_users_table.php
+++ b/database/migrations/2023_03_27_112237_update_users_table.php
@@ -1,6 +1,7 @@
renameColumn('name', 'firstname');
- $table->string('lastname')->nullable()->after('name');
- $table->dateTime('created_at')->default('CURRENT_TIMESTAMP')->nullable()->change();
+ $table->string('lastname')->nullable()->after('firstname');
+ $table->dateTime('created_at')->default(DB::raw('CURRENT_TIMESTAMP'))->nullable()->change();
});
$usersNew = User::get();
@@ -39,7 +40,7 @@ class UpdateUsersTable extends Migration
*
* @return void
*/
- public function down()
+ public function down(): void
{
// * APP_USER->CREATED_AT
//phpcs:ignore Generic.Files.LineLength.TooLong
diff --git a/database/migrations/2023_04_05_093932_update_document_table.php b/database/migrations/2023_04_05_093932_update_document_table.php
index e5678a4..08ec031 100644
--- a/database/migrations/2023_04_05_093932_update_document_table.php
+++ b/database/migrations/2023_04_05_093932_update_document_table.php
@@ -2,6 +2,7 @@
use App\Enums\Documents\LangEnum;
use App\Models\Document;
+use Carbon\Carbon;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\DB;
@@ -11,12 +12,14 @@ class UpdateDocumentTable extends Migration
{
/**
* Collection of old Documents.
+ *
* @var object[]
*/
private $documentsOld;
/**
* Collection of new Documents.
+ *
* @var object[]
*/
private $documentsNew;
@@ -26,7 +29,7 @@ class UpdateDocumentTable extends Migration
*
* @return void
*/
- public function up()
+ public function up(): void
{
$this->documentsOld = Document::get();
$this->documentsNew = Document::get();
@@ -40,13 +43,13 @@ class UpdateDocumentTable extends Migration
Schema::table('documents', function (Blueprint $table) {
$table->bigInteger('parent')->unsigned()->change();
$table->renameColumn('directory', 'directory_id');
- $table->unsignedBigInteger('document_id')->index()->nullable()->after('directory');
+ $table->unsignedBigInteger('document_id')->index()->nullable()->after('directory_id');
$table->foreign(['document_id'])->references(['id'])->on('documents')->constrained();
$table->integer('order')->after('published')->comment('Ordonnance des documents.');
$table->string('type', 255)->change();
$table->integer('lang')->nullable()->change();
$table->renameColumn('published', 'status');
- $table->dateTime('created_at')->default('CURRENT_TIMESTAMP')->nullable()->change();
+ $table->dateTime('created_at')->default(Carbon::now())->nullable()->change();
});
foreach ($this->documentsNew as $key => $documentNew) {
$documentNew->document_id =
@@ -60,7 +63,7 @@ class UpdateDocumentTable extends Migration
*
* @return void
*/
- public function down()
+ public function down(): void
{
$documentsOld = Document::get();
@@ -80,16 +83,16 @@ class UpdateDocumentTable extends Migration
$documentsNew = Document::get();
foreach ($documentsNew as $key => $documentNew) {
switch ($documentNew->lang) {
- case LangEnum::fr()->value:
+ case LangEnum::fr->value():
$documentNew->lang = 'fr';
break;
- case LangEnum::en()->value:
+ case LangEnum::en->value():
$documentNew->lang = 'en';
break;
- case LangEnum::de()->value:
+ case LangEnum::de->value():
$documentNew->lang = 'de';
break;
- case LangEnum::nl()->value:
+ case LangEnum::nl->value():
$documentNew->lang = 'nl';
break;
}
@@ -103,21 +106,21 @@ class UpdateDocumentTable extends Migration
*
* @return void
*/
- public function updateData()
+ public function updateData(): void
{
foreach ($this->documentsNew as $documentNew) {
switch ($documentNew->lang) {
case "fr":
- $documentNew->lang = LangEnum::fr()->value;
+ $documentNew->lang = LangEnum::fr->value();
break;
case "en":
- $documentNew->lang = LangEnum::en()->value;
+ $documentNew->lang = LangEnum::en->value();
break;
case "de":
- $documentNew->lang = LangEnum::de()->value;
+ $documentNew->lang = LangEnum::de->value();
break;
case "nl":
- $documentNew->lang = LangEnum::nl()->value;
+ $documentNew->lang = LangEnum::nl->value();
break;
}
$documentNew->saveOrFail();
diff --git a/database/migrations/2023_04_18_144609_update_settings_table.php b/database/migrations/2023_04_18_144609_update_settings_table.php
index 7dfed7a..77b129c 100644
--- a/database/migrations/2023_04_18_144609_update_settings_table.php
+++ b/database/migrations/2023_04_18_144609_update_settings_table.php
@@ -1,6 +1,7 @@
UPDATED_AT
//phpcs:ignore Generic.Files.LineLength.TooLong
@@ -33,7 +34,7 @@ class UpdateSettingsTable extends Migration
Schema::table('settings', function (Blueprint $table) {
$table->unique(['key']);
$table->text('value')->nullable()->default(null)->change();
- $table->dateTime('created_at')->default('CURRENT_TIMESTAMP')->nullable()->change();
+ $table->dateTime('created_at')->default(Carbon::now())->nullable()->change();
});
$settings = Setting::get();
@@ -60,7 +61,7 @@ class UpdateSettingsTable extends Migration
*
* @return void
*/
- public function down()
+ public function down(): void
{
// * APP_USER->CREATED_AT
//phpcs:ignore Generic.Files.LineLength.TooLong
diff --git a/database/migrations/2023_04_18_153753_create_tags_table.php b/database/migrations/2023_04_18_153753_create_tags_table.php
index d2d1a99..7199da9 100644
--- a/database/migrations/2023_04_18_153753_create_tags_table.php
+++ b/database/migrations/2023_04_18_153753_create_tags_table.php
@@ -11,7 +11,7 @@ class CreateTagsTable extends Migration
*
* @return void
*/
- public function up()
+ public function up(): void
{
Schema::create('tags', function (Blueprint $table) {
$table->id();
@@ -27,7 +27,7 @@ class CreateTagsTable extends Migration
*
* @return void
*/
- public function down()
+ public function down(): void
{
Schema::dropIfExists('tags');
}
diff --git a/database/migrations/2023_04_18_153812_create_taggables_table.php b/database/migrations/2023_04_18_153812_create_taggables_table.php
index afd2dac..24f849b 100644
--- a/database/migrations/2023_04_18_153812_create_taggables_table.php
+++ b/database/migrations/2023_04_18_153812_create_taggables_table.php
@@ -11,7 +11,7 @@ class CreateTaggablesTable extends Migration
*
* @return void
*/
- public function up()
+ public function up(): void
{
Schema::create('taggables', function (Blueprint $table) {
$table->foreignId('tag_id')->references('id')->on('tags');
@@ -25,7 +25,7 @@ class CreateTaggablesTable extends Migration
*
* @return void
*/
- public function down()
+ public function down(): void
{
Schema::dropIfExists('taggables');
}
diff --git a/database/migrations/2023_04_18_172743_update_contacts_table.php b/database/migrations/2023_04_18_172743_update_contacts_table.php
index 3b1c5ee..6d87a07 100644
--- a/database/migrations/2023_04_18_172743_update_contacts_table.php
+++ b/database/migrations/2023_04_18_172743_update_contacts_table.php
@@ -1,5 +1,6 @@
UPDATED_AT
//phpcs:ignore Generic.Files.LineLength.TooLong
@@ -21,7 +22,7 @@ class UpdateContactsTable extends Migration
Schema::table('contacts', function (Blueprint $table) {
$table->renameColumn('user_id', 'app_user_id');
$table->renameColumn('name', 'lastname');
- $table->dateTime('created_at')->default('CURRENT_TIMESTAMP')->nullable()->change();
+ $table->dateTime('created_at')->default(Carbon::now())->nullable()->change();
});
}
@@ -30,7 +31,7 @@ class UpdateContactsTable extends Migration
*
* @return void
*/
- public function down()
+ public function down(): void
{
// * APP_USER->CREATED_AT
//phpcs:ignore Generic.Files.LineLength.TooLong
diff --git a/database/migrations/2023_07_17_154420_create_formularies_table.php b/database/migrations/2023_07_17_154420_create_formularies_table.php
index 9d2ca9b..82c2df0 100644
--- a/database/migrations/2023_07_17_154420_create_formularies_table.php
+++ b/database/migrations/2023_07_17_154420_create_formularies_table.php
@@ -11,7 +11,7 @@ class CreateFormulariesTable extends Migration
*
* @return void
*/
- public function up()
+ public function up(): void
{
Schema::create('formularies', function (Blueprint $table) {
$table->id();
@@ -33,7 +33,7 @@ class CreateFormulariesTable extends Migration
*
* @return void
*/
- public function down()
+ public function down(): void
{
Schema::dropIfExists('formularies');
}
diff --git a/database/migrations/2023_08_22_093330_seed_mandatory_forms.php b/database/migrations/2023_08_22_093330_seed_mandatory_forms.php
deleted file mode 100644
index 1e084f0..0000000
--- a/database/migrations/2023_08_22_093330_seed_mandatory_forms.php
+++ /dev/null
@@ -1,27 +0,0 @@
-run();
- }
-
- /**
- * Reverse the migrations.
- *
- * @return void
- */
- public function down()
- {
- // * DO NOTHING
- }
-}
diff --git a/database/migrations/2023_08_22_171154_add_missing_remember_token_to_users.php b/database/migrations/2023_08_22_171154_add_missing_remember_token_to_users.php
index c9832a0..de45a02 100644
--- a/database/migrations/2023_08_22_171154_add_missing_remember_token_to_users.php
+++ b/database/migrations/2023_08_22_171154_add_missing_remember_token_to_users.php
@@ -1,9 +1,7 @@
getDoctrineSchemaManager()
- ->listTableColumns('users')
- )->mapWithKeys(function (Column $column) {
- return [$column->getName() => $column];
- });
- if ($columns->has('remember_token')) {
- Log::debug('already has remember_token column');
- return;
- }
Schema::table('users', function (Blueprint $table) {
$table->rememberToken()->after('password');
});
@@ -36,7 +23,7 @@ class AddMissingRememberTokenToUsers extends Migration
*
* @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('users', function (Blueprint $table) {
$table->dropRememberToken();
diff --git a/database/migrations/2023_08_25_093125_upgrade_contacts_table.php b/database/migrations/2023_08_25_093125_upgrade_contacts_table.php
index 9322f9d..95325a6 100644
--- a/database/migrations/2023_08_25_093125_upgrade_contacts_table.php
+++ b/database/migrations/2023_08_25_093125_upgrade_contacts_table.php
@@ -18,49 +18,45 @@ class UpgradeContactsTable extends Migration
*
* @return void
*/
- public function up()
+ public function up(): void
{
- DB::transaction(function () {
- $oldContacts = DB::table('contacts')->get();
- /**
- * Keep columns, id, notes, visits, app_user_id
- */
- Schema::table('contacts', function (Blueprint $table) {
- $table->string('email')->comment('Email du contact, Form Status: System')->change();
- $table->string('lastname')->nullable()->comment('Nom du contact, Form Status: Locked')->change();
- $table->string('firstname')->nullable()->comment('Prénom du contact, Form Status: Locked')->change();
- $table->string('phone')->nullable()->comment('Téléphone du contact, Form Status: Locked')->change();
- $table->text('notes')->nullable()->comment('Notes sur un contact')->change();
- $table->json('visits')->default('[]')
- ->comment('Visite d\'un contact, Array<{title:string,note:string}>')->change();
+ $oldContacts = DB::table('contacts')->get();
+ /**
+ * Keep columns, id, notes, visits, app_user_id
+ */
+ Schema::table('contacts', function (Blueprint $table) {
+ $table->string('email')->comment('Email du contact, Form Status: System')->change();
+ $table->string('lastname')->nullable()->comment('Nom du contact, Form Status: Locked')->change();
+ $table->string('firstname')->nullable()->comment('Prénom du contact, Form Status: Locked')->change();
+ $table->string('phone')->nullable()->comment('Téléphone du contact, Form Status: Locked')->change();
+ $table->text('notes')->nullable()->comment('Notes sur un contact')->change();
+ $table->json('visits')->comment('Visite d\'un contact, Array<{title:string,note:string}>')->change();
- $table->dropColumn('type');
- $table->dropColumn('other');
- $table->dropColumn('select1');
- $table->dropColumn('select2');
- $table->dropColumn('company');
- $table->dropColumn('address');
- $table->dropColumn('products');
- // * Just forget this column, dont migrate.
- $table->dropColumn('card_url');
- $table->json('data')->after('phone')
- ->comment('Array of \App\Lib\Inputs\Definition\InputData');
- });
+ $table->dropColumn('type');
+ $table->dropColumn('other');
+ $table->dropColumn('select1');
+ $table->dropColumn('select2');
+ $table->dropColumn('company');
+ $table->dropColumn('address');
+ $table->dropColumn('products');
+ // * Just forget this column, dont migrate.
+ $table->dropColumn('card_url');
+ $table->json('data')->after('phone')->comment('Array of \App\Lib\Inputs\Definition\InputData');
+ });
- /** @var \Illuminate\Support\Collection */
- $formularies = DB::table((new Formulary())->getTable())->pluck('slug')->flip();
+ /** @var \Illuminate\Support\Collection */
+ $formularies = DB::table((new Formulary())->getTable())->pluck('slug')->flip();
- $oldContacts->each(function (object $table) use ($formularies) {
- $contact = Contact::query()->where('id', $table->id)->firstOrFail();
+ $oldContacts->each(function (object $table) use ($formularies) {
+ $contact = Contact::query()->where('id', $table->id)->firstOrFail();
- // ! see this->getDataset.
- $contact->data = collect($this->getInputs($table))
- // * FILTER CONTACT DATA WITH ACTUAL FORMULARY
- ->filter(function (Input $input) use ($formularies) {
- return $formularies->has($input->data->formSlug);
- });
- $contact->saveQuietly();
- });
+ // ! see this->getDataset.
+ $contact->data = collect($this->getInputs($table))
+ // * FILTER CONTACT DATA WITH ACTUAL FORMULARY
+ ->filter(function (Input $input) use ($formularies) {
+ return $formularies->has($input->data->formSlug);
+ });
+ $contact->saveQuietly();
});
}
@@ -70,7 +66,7 @@ class UpgradeContactsTable extends Migration
* @return void
* @throws \RuntimeException Wont undo that.
*/
- public function down()
+ public function down(): void
{
throw new \RuntimeException('Wont undo that');
}
diff --git a/database/migrations/2025_05_20_140312_alter_order_table.php b/database/migrations/2025_05_20_140312_alter_order_table.php
new file mode 100644
index 0000000..51d81a1
--- /dev/null
+++ b/database/migrations/2025_05_20_140312_alter_order_table.php
@@ -0,0 +1,42 @@
+get()->map(function (AppUser $appUser, int $key) {
+ $appUser->order = $key + 1;
+ $appUser->saveQuietly();
+ });
+ Document::query()->get()->map(function (Document $document, int $key) {
+ $document->order = $key + 1;
+ $document->saveQuietly();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down(): void
+ {
+ AppUser::query()->get()->map(function (AppUser $appUser) {
+ $appUser->order = 0;
+ $appUser->saveQuietly();
+ });
+ Document::query()->get()->map(function (Document $document) {
+ $document->order = 0;
+ $document->saveQuietly();
+ });
+ }
+};
diff --git a/database/migrations/2025_05_20_144245_create_tenants_table.php b/database/migrations/2025_05_20_144245_create_tenants_table.php
new file mode 100644
index 0000000..f0731f0
--- /dev/null
+++ b/database/migrations/2025_05_20_144245_create_tenants_table.php
@@ -0,0 +1,35 @@
+string('id')->primary();
+ $table->string('name')->comment('Human-readable name of the tenant.');
+ $table->json('data')->nullable();
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('tenants');
+ }
+};
diff --git a/database/migrations/2025_05_20_144302_update_tables_for_multitenant.php b/database/migrations/2025_05_20_144302_update_tables_for_multitenant.php
new file mode 100644
index 0000000..6a8fda2
--- /dev/null
+++ b/database/migrations/2025_05_20_144302_update_tables_for_multitenant.php
@@ -0,0 +1,121 @@
+ 'app_users', 'after' => 'password'],
+ ['name' => 'directories', 'after' => 'name'],
+ ['name' => 'formularies', 'after' => 'details'],
+ ['name' => 'tags', 'after' => 'name'],
+ ['name' => 'settings', 'after' => 'value'],
+ ['name' => 'documents', 'after' => 'title'],
+ ];
+
+ collect($tables)->map(function ($entry) {
+ $tableName = $entry['name'];
+ $after = $entry['after'];
+
+ Schema::table($tableName, function (Blueprint $table) use ($after) {
+ $table->string('tenant_id')->nullable()->after($after)->comment('Tenant reference.');
+ });
+
+ Schema::table($tableName, function (Blueprint $table) use ($tableName) {
+ $table->foreign('tenant_id', $tableName . '_tenant_id_foreign')
+ ->references('id')
+ ->on('tenants')
+ ->onUpdate('cascade')
+ ->onDelete('cascade');
+ });
+ });
+
+ Schema::table('app_users', function (Blueprint $table) {
+ $table->dropUnique('app_users_email_unique');
+ $table->unique(['tenant_id', 'email']);
+ });
+
+ Schema::table('documents', function (Blueprint $table) {
+ $table->dropUnique('documents_uuid_unique');
+ $table->unique(['tenant_id', 'uuid']);
+ });
+
+ Schema::table('formularies', function (Blueprint $table) {
+ $table->dropUnique('formularies_slug_unique');
+ $table->unique(['tenant_id', 'slug']);
+ });
+
+ Schema::table('settings', function (Blueprint $table) {
+ $table->dropUnique('settings_key_unique');
+ $table->unique(['tenant_id', 'key']);
+ });
+
+ Schema::table('tags', function (Blueprint $table) {
+ $table->dropUnique('tags_slug_unique');
+ $table->unique(['tenant_id', 'slug']);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down(): void
+ {
+ $tables = [
+ 'app_users',
+ 'directories',
+ 'formularies',
+ 'tags',
+ 'settings',
+ 'documents',
+ ];
+
+ collect($tables)->map(function ($tableName) {
+ Schema::table($tableName, function (Blueprint $table) use ($tableName) {
+ $table->dropForeign($tableName . '_tenant_id_foreign');
+ });
+ });
+
+ Schema::table('app_users', function (Blueprint $table) {
+ $table->dropUnique('app_users_tenant_id_email_unique');
+ $table->unique(['email']);
+ });
+
+ Schema::table('documents', function (Blueprint $table) {
+ $table->dropUnique('documents_tenant_id_uuid_unique');
+ $table->unique(['uuid']);
+ });
+
+ Schema::table('formularies', function (Blueprint $table) {
+ $table->dropUnique('formularies_tenant_id_slug_unique');
+ $table->unique(['slug']);
+ });
+
+ Schema::table('settings', function (Blueprint $table) {
+ $table->dropUnique('settings_tenant_id_key_unique');
+ $table->unique(['key']);
+ });
+
+ Schema::table('tags', function (Blueprint $table) {
+ $table->dropUnique('tags_tenant_id_slug_unique');
+ $table->unique(['slug']);
+ });
+
+ collect($tables)->map(function ($tableName) {
+ Schema::table($tableName, function (Blueprint $table) {
+ $table->dropColumn('tenant_id');
+ });
+ });
+ }
+};
diff --git a/database/migrations/2025_05_21_131902_create_tenant_user_table.php b/database/migrations/2025_05_21_131902_create_tenant_user_table.php
new file mode 100644
index 0000000..193fe33
--- /dev/null
+++ b/database/migrations/2025_05_21_131902_create_tenant_user_table.php
@@ -0,0 +1,34 @@
+unsignedBigInteger('user_id');
+ $table->string('tenant_id', 255);
+ $table->primary(['user_id', 'tenant_id']);
+ $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
+ $table->foreign('tenant_id')->references('id')->on('tenants')->onDelete('cascade');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('tenant_user');
+ }
+};
diff --git a/database/migrations/2025_05_21_160123_alter_user_table_for_saml.php b/database/migrations/2025_05_21_160123_alter_user_table_for_saml.php
new file mode 100644
index 0000000..b72396a
--- /dev/null
+++ b/database/migrations/2025_05_21_160123_alter_user_table_for_saml.php
@@ -0,0 +1,44 @@
+dropColumn('email_verified_at');
+ $table->dropColumn('password');
+
+ $table->renameColumn('firstname', 'first_name');
+ $table->renameColumn('lastname', 'last_name');
+
+ $table->date('last_connection')->nullable()->after('role');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down(): void
+ {
+ Schema::table('users', function (Blueprint $table) {
+ $table->timestamp('email_verified_at')->nullable()->after('email');
+ $table->string('password')->after('email_verified_at');
+
+ $table->renameColumn('first_name', 'firstname');
+ $table->renameColumn('last_name', 'lastname');
+
+ $table->dropColumn('last_connection');
+ });
+ }
+};
diff --git a/database/migrations/2025_05_26_091952_alter_relations.php b/database/migrations/2025_05_26_091952_alter_relations.php
new file mode 100644
index 0000000..16dc144
--- /dev/null
+++ b/database/migrations/2025_05_26_091952_alter_relations.php
@@ -0,0 +1,99 @@
+dropForeign(['user_id']);
+ $table->foreign('app_user_id')
+ ->references('id')->on('app_users')
+ ->onDelete('cascade');
+ });
+ Schema::table('directorables', function (Blueprint $table) {
+ $table->dropForeign(['directory_id']);
+ $table->foreign('directory_id')
+ ->references('id')->on('directories')
+ ->onDelete('cascade');
+ });
+ Schema::table('directories', function (Blueprint $table) {
+ $table->dropForeign('directories_parent_foreign');
+ $table->foreign('directory_id')
+ ->references('id')
+ ->on('directories')
+ ->onDelete('cascade');
+ });
+ Schema::table('documents', function (Blueprint $table) {
+ $table->dropForeign('documents_directory_foreign');
+ $table->foreign('directory_id')
+ ->references('id')
+ ->on('directories')
+ ->onDelete('cascade');
+ $table->dropForeign('documents_document_id_foreign');
+ $table->foreign('document_id')
+ ->references('id')
+ ->on('documents')
+ ->onDelete('cascade');
+ $table->dropColumn('parent');
+ });
+ Schema::table('taggables', function (Blueprint $table) {
+ $table->dropForeign(['tag_id']);
+ $table->foreign('tag_id')
+ ->references('id')->on('tags')
+ ->onDelete('cascade');
+ $table->dropForeign(['taggable_id']);
+ $table->foreign('taggable_id')
+ ->references('id')->on('documents')
+ ->onDelete('cascade');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down(): void
+ {
+ Schema::table('contacts', function (Blueprint $table) {
+ $table->dropForeign(['app_user_id']);
+ $table->foreign('app_user_id')
+ ->references('id')->on('app_users');
+ });
+ Schema::table('directorables', function (Blueprint $table) {
+ $table->dropForeign(['directory_id']);
+ $table->foreign('directory_id')
+ ->references('id')->on('directories');
+ });
+ Schema::table('directories', function (Blueprint $table) {
+ $table->dropForeign(['directory_id']);
+ $table->foreign('directory_id')
+ ->references('id')
+ ->on('directories');
+ });
+ Schema::table('documents', function (Blueprint $table) {
+ $table->dropForeign(['directory_id']);
+ $table->foreign('directory_id')
+ ->references('id')
+ ->on('directories');
+ $table->dropForeign(['document_id']);
+ $table->foreign('document_id')
+ ->references('id')
+ ->on('documents');
+ });
+ Schema::table('taggables', function (Blueprint $table) {
+ $table->dropForeign(['tag_id']);
+ $table->foreign('tag_id')
+ ->references('id')->on('tags');
+ });
+ }
+};
diff --git a/database/seeders/AppUserSeeder.php b/database/seeders/AppUserSeeder.php
index 0743d9f..cede390 100644
--- a/database/seeders/AppUserSeeder.php
+++ b/database/seeders/AppUserSeeder.php
@@ -12,13 +12,8 @@ class AppUserSeeder extends Seeder
*
* @return void
*/
- public function run()
+ public function run(): void
{
- $i = \intval(AppUser::query()->max('order'));
- AppUser::factory(15)->make()->each(function (AppUser $appUser) use (&$i) {
- $appUser->order = $i;
- $appUser->saveOrFail();
- $i = $i + 1;
- });
+ AppUser::factory(15)->create();
}
}
diff --git a/database/seeders/ContactSeeder.php b/database/seeders/ContactSeeder.php
index db4ecce..c673cdc 100644
--- a/database/seeders/ContactSeeder.php
+++ b/database/seeders/ContactSeeder.php
@@ -14,7 +14,7 @@ class ContactSeeder extends Seeder
*
* @return void
*/
- public function run()
+ public function run(): void
{
DB::table((new Contact())->getTable())->truncate();
$appUsers = AppUser::all();
diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php
index e7ddd3c..52d53ce 100644
--- a/database/seeders/DatabaseSeeder.php
+++ b/database/seeders/DatabaseSeeder.php
@@ -11,14 +11,13 @@ class DatabaseSeeder extends Seeder
*
* @return void
*/
- public function run()
+ public function run(): void
{
$this->call([
+ TenantSeeder::class,
AppUserSeeder::class,
DirectorySeeder::class,
- SettingSeeder::class,
TagSeeder::class,
- FormularySeeder::class,
ContactSeeder::class,
]);
}
diff --git a/database/seeders/DirectorySeeder.php b/database/seeders/DirectorySeeder.php
index da5db9c..2b02f49 100644
--- a/database/seeders/DirectorySeeder.php
+++ b/database/seeders/DirectorySeeder.php
@@ -4,6 +4,7 @@ namespace Database\Seeders;
use App\Models\AppUser;
use App\Models\Directory;
+use App\Models\Tenant;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
@@ -14,28 +15,11 @@ class DirectorySeeder extends Seeder
*
* @return void
*/
- public function run()
+ public function run(): void
{
+ // Default "Salon" directory is created in the Tenant model.
- $directory = new Directory();
- $directory->name = [
- "fr" => "Salon",
- "en" => "Salon",
- "de" => "Wohnzimmer",
- "nl" => "Tentoonstelling",
- ];
- $directory->directory_id = null;
- $directory->needAuthorization = 0;
- $directory->is_system = 1;
- $directory->order = 1;
- $directory->saveOrFail();
-
- $i = 2;
- Directory::factory(14)->make()->each(function (Directory $directory) use (&$i) {
- $directory->order = $i;
- $directory->saveOrFail();
- $i = $i + 1;
- });
+ Directory::factory(14)->create();
// Seeder for directory_authorizations table.
$directories = Directory::query()->where('needAuthorization', true)->get();
diff --git a/database/seeders/FormularySeeder.php b/database/seeders/FormularySeeder.php
index dd4fc23..5753c95 100644
--- a/database/seeders/FormularySeeder.php
+++ b/database/seeders/FormularySeeder.php
@@ -4,7 +4,6 @@ namespace Database\Seeders;
use App\Models\Formulary;
use Illuminate\Database\Seeder;
-use Illuminate\Support\Facades\DB;
class FormularySeeder extends Seeder
{
@@ -13,10 +12,8 @@ class FormularySeeder extends Seeder
*
* @return void
*/
- public function run()
+ public function run(): void
{
- DB::table((new Formulary())->getTable())->truncate();
- $this->call(MandatoryFormularySeeder::class);
Formulary::factory(30)->create();
}
}
diff --git a/database/seeders/MandatoryFormularySeeder.php b/database/seeders/MandatoryFormularySeeder.php
deleted file mode 100644
index 7088fb1..0000000
--- a/database/seeders/MandatoryFormularySeeder.php
+++ /dev/null
@@ -1,108 +0,0 @@
-where('slug', 'firstname')->exists()) {
- $formulary = new Formulary();
- $formulary->type = InputTypeEnum::text();
- $formulary->name = "firstname";
- $formulary->slug = "firstname";
- $formulary->placeholder = ["fr" => "Prénom", "en" => "Firstname", "de" => "Vorname", "nl" => "Voornaam"];
- $formulary->details = null;
- $formulary->required = false;
- $formulary->is_visible = true;
- $formulary->status = InputStatusEnum::locked();
- $formulary->order = 1;
- $formulary->saveOrFail();
- }
-
- if (!Formulary::query()->where('slug', 'lastname')->exists()) {
- $formulary = new Formulary();
- $formulary->type = InputTypeEnum::text();
- $formulary->name = "lastname";
- $formulary->slug = "lastname";
- $formulary->placeholder = ["fr" => "Nom", "en" => "Lastname", "de" => "Name", "nl" => "Naam"];
- $formulary->details = null;
- $formulary->required = false;
- $formulary->is_visible = true;
- $formulary->status = InputStatusEnum::locked();
- $formulary->order = 2;
- $formulary->saveOrFail();
- }
-
- if (!Formulary::query()->where('slug', 'email')->exists()) {
- $formulary = new Formulary();
- $formulary->type = InputTypeEnum::email();
- $formulary->name = "email";
- $formulary->slug = "email";
- $formulary->placeholder = ["fr" => "E-mail", "en" => "E-mail", "de" => "E-mail", "nl" => "E-mail"];
- $formulary->details = null;
- $formulary->required = true;
- $formulary->is_visible = true;
- $formulary->status = InputStatusEnum::system();
- $formulary->order = 3;
- $formulary->saveOrFail();
- }
-
- // * HERE FOR DATA MIGRATION
- if (!Formulary::query()->where('slug', 'society')->exists()) {
- $formulary = new Formulary();
- $formulary->type = InputTypeEnum::text();
- $formulary->name = "society";
- $formulary->slug = "society";
- $formulary->placeholder = ["fr" => "Société", "en" => "Society", "de" => "Unternehmen", "nl" => "Bedrijf"];
- $formulary->details = null;
- $formulary->required = false;
- $formulary->is_visible = true;
- $formulary->status = InputStatusEnum::default();
- $formulary->order = 4;
- $formulary->saveOrFail();
- }
-
- // * HERE FOR DATA MIGRATION
- if (!Formulary::query()->where('slug', 'address')->exists()) {
- $formulary = new Formulary();
- $formulary->type = InputTypeEnum::text();
- $formulary->name = "address";
- $formulary->slug = "address";
- $formulary->placeholder = ["fr" => "Adresse", "en" => "Address", "de" => "Anschrift", "nl" => "Adres"];
- $formulary->details = null;
- $formulary->required = false;
- $formulary->is_visible = true;
- $formulary->status = InputStatusEnum::default();
- $formulary->order = 5;
- $formulary->saveOrFail();
- }
-
- if (!Formulary::query()->where('slug', 'phone')->exists()) {
- $formulary = new Formulary();
- $formulary->type = InputTypeEnum::phone();
- $formulary->name = "phone";
- $formulary->slug = "phone";
- $formulary->placeholder = ["fr" => "Téléphone", "en" => "Phone", "de" => "Telefon", "nl" => "Telefoon"];
- $formulary->details = null;
- $formulary->required = false;
- $formulary->is_visible = true;
- $formulary->status = InputStatusEnum::locked();
- $formulary->order = 6;
- $formulary->saveOrFail();
- }
-
- // * FIN Champs obligatoires
- }
-}
diff --git a/database/seeders/MigrationSeeder.php b/database/seeders/MigrationSeeder.php
index 5c2ef1e..7993d0c 100644
--- a/database/seeders/MigrationSeeder.php
+++ b/database/seeders/MigrationSeeder.php
@@ -12,7 +12,7 @@ class MigrationSeeder extends Seeder
*
* @return void
*/
- public function run()
+ public function run(): void
{
DB::table('migrations')->truncate();
DB::table('migrations')->insert([
diff --git a/database/seeders/SettingSeeder.php b/database/seeders/SettingSeeder.php
deleted file mode 100644
index 5ce5364..0000000
--- a/database/seeders/SettingSeeder.php
+++ /dev/null
@@ -1,137 +0,0 @@
-id = 1;
- $setting->key = "version";
- $setting->value = 1;
- $setting->type = 3;
- $setting->saveOrFail();
-
- $setting = new Setting();
- $setting->id = 2;
- $setting->key = "ShowIsActive";
- $setting->value = 0;
- $setting->type = 4;
- $setting->saveOrFail();
-
- $setting = new Setting();
- $setting->id = 3;
- $setting->key = "MainColor";
- $setting->value = "#000000";
- $setting->type = 6;
- $setting->saveOrFail();
-
- $setting = new Setting();
- $setting->id = 4;
- $setting->key = "SquaredLogo";
- $setting->value = FileStorageHelper::storeFile(
- $setting,
- new \SplFileInfo(\resource_path(
- '../database/factories/assets/settings/squared-logo-default.png'
- ))
- );
- $setting->type = 5;
- $setting->saveOrFail();
-
- $setting = new Setting();
- $setting->id = 5;
- $setting->key = "RectangleLogo";
- $setting->value = FileStorageHelper::storeFile(
- $setting,
- new \SplFileInfo(\resource_path(
- '../database/factories/assets/settings/rectangle-logo-default.png'
- ))
- );
- $setting->type = 5;
- $setting->saveOrFail();
-
- $setting = new Setting();
- $setting->id = 6;
- $setting->key = "BackgroundImage";
- $setting->value = FileStorageHelper::storeFile(
- $setting,
- new \SplFileInfo(\resource_path(
- '../database/factories/assets/settings/background-image-default.png'
- ))
- );
- $setting->type = 5;
- $setting->saveOrFail();
-
- $setting = new Setting();
- $setting->id = 7;
- $setting->key = "HomeButtonImage";
- $setting->value = FileStorageHelper::storeFile(
- $setting,
- new \SplFileInfo(\resource_path(
- '../database/factories/assets/settings/home-button-image-default.png'
- ))
- );
- $setting->type = 5;
- $setting->saveOrFail();
-
- $setting = new Setting();
- $setting->id = 8;
- $setting->key = "Button1";
- $setting->value = collect(Directory::whereNull('directory_id')->pluck('id'))->random();
- $setting->type = 7;
- $setting->saveOrFail();
-
- $setting = new Setting();
- $setting->id = 9;
- $setting->key = "Button2";
- $setting->value = collect(Directory::whereNull('directory_id')->pluck('id'))->random();
- $setting->type = 7;
- $setting->saveOrFail();
-
- $setting = new Setting();
- $setting->id = 10;
- $setting->key = "Button3";
- $setting->value = collect(Directory::whereNull('directory_id')->pluck('id'))->random();
- $setting->type = 7;
- $setting->saveOrFail();
-
- $setting = new Setting();
- $setting->id = 11;
- $setting->key = "AppStoreUUID";
- $setting->value = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";
- $setting->type = 1;
- $setting->saveOrFail();
-
- $setting = new Setting();
- $setting->id = 12;
- $setting->key = "FormSelect1";
- $setting->value = "[{}]";
- $setting->type = 2;
- $setting->saveOrFail();
-
- $setting = new Setting();
- $setting->id = 13;
- $setting->key = "FormSelect2";
- $setting->value = "[{}]";
- $setting->type = 2;
- $setting->saveOrFail();
-
- $setting = new Setting();
- $setting->id = 14;
- $setting->key = "FormCheck";
- $setting->value = "[{}]";
- $setting->type = 2;
- $setting->saveOrFail();
- }
-}
diff --git a/database/seeders/TagSeeder.php b/database/seeders/TagSeeder.php
index fc93018..829bba3 100644
--- a/database/seeders/TagSeeder.php
+++ b/database/seeders/TagSeeder.php
@@ -12,13 +12,8 @@ class TagSeeder extends Seeder
*
* @return void
*/
- public function run()
+ public function run(): void
{
- $i = 1;
- Tag::factory(15)->make()->each(function (Tag $tag) use (&$i) {
- $tag->order = $i;
- $tag->saveOrFail();
- $i = $i + 1;
- });
+ Tag::factory(15)->create();
}
}
diff --git a/database/seeders/TenantSeeder.php b/database/seeders/TenantSeeder.php
new file mode 100644
index 0000000..e2477a5
--- /dev/null
+++ b/database/seeders/TenantSeeder.php
@@ -0,0 +1,19 @@
+ 'Tenant 1']);
+ }
+}
diff --git a/k8s-queues.sh b/k8s-queues.sh
new file mode 100644
index 0000000..76dd2eb
--- /dev/null
+++ b/k8s-queues.sh
@@ -0,0 +1,30 @@
+#!/usr/bin/env bash
+
+# From https://stackoverflow.com/a/76488746/17320077
+
+work=true
+
+function stopQueues() {
+ echo "Stopping queues..."
+ work=false
+ php artisan queue:restart
+ sleep 45s
+ exit 0
+}
+
+# handle graceful shutdown
+trap "" SIGPIPE
+trap stopQueues EXIT
+
+echo "Starting PHP queue workers..."
+
+while $work; do
+ php artisan queue:work database --queue=default,database --sleep=3 --tries=3 --max-time=3600 --no-interaction
+ sleep 1
+done
+
+# Si besoin de plusieurs threads puis terminer par un done sans &
+#(while $work; do
+# php artisan queue:work --queue="$(grep -oP 'SQS_QUEUE=\K.*' .env)" --no-interaction
+# sleep 1
+#done &)
diff --git a/manifest.yaml b/manifest.yaml
new file mode 100644
index 0000000..2740b1f
--- /dev/null
+++ b/manifest.yaml
@@ -0,0 +1,182 @@
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: ${CI_PROJECT_PATH_SLUG}-config-map
+data:
+ APP_NAME: "${APP_APP_NAME}"
+ APP_ENV: "${APP_APP_ENV}"
+ APP_KEY: "${APP_APP_KEY}"
+ APP_DEBUG: "${APP_APP_DEBUG}"
+ APP_URL: "https://${APP_DOMAIN}"
+ LOG_CHANNEL: "k8s"
+ DB_HOST: "${APP_DB_HOST}"
+ DB_PORT: "${APP_DB_PORT}"
+ DB_DATABASE: "${APP_DB_DATABASE}"
+ DB_CONNECTION: "mysql"
+ DB_USERNAME: "${APP_DB_USERNAME}"
+ DB_PASSWORD: "${APP_DB_PASSWORD}"
+ MAIL_HOST: "${APP_MAIL_HOST}"
+ MAIL_PORT: "${APP_MAIL_PORT}"
+ MAIL_USERNAME: "${APP_MAIL_USERNAME}"
+ MAIL_PASSWORD: "${APP_MAIL_PASSWORD}"
+ MAIL_ENCRYPTION: "${APP_MAIL_ENCRYPTION}"
+ MAIL_FROM_ADDRESS: "${APP_MAIL_FROM_ADDRESS}"
+ MAIL_FROM_NAME: "${APP_APP_NAME}"
+ MAIL_TO_ADDRESS: "${APP_MAIL_TO_ADDRESS}"
+ MAIL_TO_NAME: "${APP_MAIL_TO_NAME}"
+ QUEUE_CONNECTION: "database"
+ SENTRY_LARAVEL_DSN: "${APP_SENTRY_LARAVEL_DSN}"
+ LDC_WEB_API_KEY: "${APP_LDC_WEB_API_KEY}"
+ API_TOKEN: "${APP_API_TOKEN}"
+ SAML2_SP_CERT_x509: "${APP_SAML2_SP_CERT_x509}"
+ SAML2_SP_CERT_PRIVATEKEY: "${APP_SAML2_SP_CERT_PRIVATEKEY}"
+ SAML2_CONTACT_TECHNICAL_EMAIL: "${APP_SAML2_CONTACT_TECHNICAL_EMAIL}"
+ SAML2_CONTACT_SUPPORT_EMAIL: "${APP_SAML2_CONTACT_SUPPORT_EMAIL}"
+ SAML2_DEFAULT_TENANT_UUID: "${APP_SAML2_DEFAULT_TENANT_UUID}"
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+ name: ${CI_PROJECT_PATH_SLUG}-pvc-storage
+spec:
+ storageClassName: "csi-cinder-classic"
+ accessModes:
+ - ReadWriteOnce
+ resources:
+ requests:
+ storage: $APP_PVC_SIZE
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: ${CI_PROJECT_PATH_SLUG}-deployment
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: ${CI_PROJECT_PATH_SLUG}-app
+ template:
+ metadata:
+ labels:
+ app: ${CI_PROJECT_PATH_SLUG}-app
+ spec:
+ containers:
+ - name: ${CI_PROJECT_PATH_SLUG}-container
+ image: $IMAGE_TAG
+ envFrom:
+ - configMapRef:
+ name: ${CI_PROJECT_PATH_SLUG}-config-map
+ volumeMounts:
+ - name: storage
+ mountPath: /app/srcs/storage
+ - name: ${CI_PROJECT_PATH_SLUG}-queue-worker
+ image: $IMAGE_TAG
+ lifecycle:
+ preStop:
+ exec:
+ command:
+ [
+ "/bin/sh",
+ "-c",
+ "kill -s TERM 1; while test $(ps ax | grep -v grep | grep bash | wc -l) -gt 0; do sleep 2s; done",
+ ]
+ command:
+ - "bash"
+ args:
+ - "k8s-queues.sh"
+ envFrom:
+ - configMapRef:
+ name: ${CI_PROJECT_PATH_SLUG}-config-map
+ volumeMounts:
+ - name: storage
+ mountPath: /app/srcs/storage
+ imagePullSecrets:
+ - name: docker-registry-credentials
+ securityContext:
+ runAsUser: 33
+ runAsGroup: 33
+ fsGroup: 33
+ fsGroupChangePolicy: "OnRootMismatch"
+ volumes:
+ - name: storage
+ persistentVolumeClaim:
+ claimName: ${CI_PROJECT_PATH_SLUG}-pvc-storage
+---
+apiVersion: v1
+kind: Service
+metadata:
+ name: ${CI_PROJECT_PATH_SLUG}-service
+spec:
+ selector:
+ app: ${CI_PROJECT_PATH_SLUG}-app
+ ports:
+ - port: 80
+ targetPort: 80
+---
+apiVersion: traefik.io/v1alpha1
+kind: IngressRoute
+metadata:
+ name: ${CI_PROJECT_PATH_SLUG}-ingress-route
+spec:
+ entryPoints:
+ - web
+ - websecure
+ routes:
+ - match: Host(`${APP_DOMAIN}`)
+ kind: Rule
+ services:
+ - name: ${CI_PROJECT_PATH_SLUG}-service
+ port: 80
+ tls:
+ secretName: ${CRT_TLS_NAME}
+---
+apiVersion: batch/v1
+kind: CronJob
+metadata:
+ name: ${CI_PROJECT_PATH_SLUG}-cronjob
+spec:
+ schedule: "* * * * *"
+ concurrencyPolicy: Forbid
+ jobTemplate:
+ spec:
+ template:
+ spec:
+ affinity:
+ podAffinity:
+ requiredDuringSchedulingIgnoredDuringExecution:
+ - labelSelector:
+ matchExpressions:
+ - key: app
+ operator: In
+ values:
+ - ${CI_PROJECT_PATH_SLUG}-app
+ topologyKey: "kubernetes.io/hostname"
+ namespaces: [ $KUBE_NAMESPACE ]
+ containers:
+ - name: ${CI_PROJECT_PATH_SLUG}-scheduled
+ image: $IMAGE_TAG
+ imagePullPolicy: IfNotPresent
+ command:
+ - "php"
+ args:
+ - "artisan"
+ - "schedule:run"
+ envFrom:
+ - configMapRef:
+ name: ${CI_PROJECT_PATH_SLUG}-config-map
+ volumeMounts:
+ - name: storage
+ mountPath: /app/srcs/storage
+ imagePullSecrets:
+ - name: docker-registry-credentials
+ volumes:
+ - name: storage
+ persistentVolumeClaim:
+ claimName: ${CI_PROJECT_PATH_SLUG}-pvc-storage
+ securityContext:
+ runAsUser: 33
+ runAsGroup: 33
+ fsGroup: 33
+ fsGroupChangePolicy: "OnRootMismatch"
+ restartPolicy: OnFailure
diff --git a/package-lock.json b/package-lock.json
index e4b8f79..220a5b3 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -5,119 +5,123 @@
"packages": {
"": {
"devDependencies": {
- "@ckpack/vue-color": "^1.1.9",
- "@fortawesome/fontawesome-svg-core": "^6.1.2",
- "@fortawesome/free-brands-svg-icons": "^6.1.2",
- "@fortawesome/free-regular-svg-icons": "^6.1.2",
- "@fortawesome/free-solid-svg-icons": "^6.1.2",
- "@fortawesome/vue-fontawesome": "^3.0.1",
- "@rushstack/eslint-patch": "^1.1.4",
+ "@babel/core": "^7.27.1",
+ "@babel/types": "^7.27.1",
+ "@ckpack/vue-color": "^1.6.0",
+ "@erbelion/vite-plugin-laravel-purgecss": "^0.3.4",
+ "@fortawesome/fontawesome-svg-core": "^6.7.2",
+ "@fortawesome/free-brands-svg-icons": "^6.7.2",
+ "@fortawesome/free-regular-svg-icons": "^6.7.2",
+ "@fortawesome/free-solid-svg-icons": "^6.7.2",
+ "@fortawesome/vue-fontawesome": "^3.0.8",
+ "@rushstack/eslint-patch": "^1.11.0",
"@sipec/vue3-tags-input": "^3.0.4",
- "@types/bootstrap": "^5.2.6",
- "@types/cropperjs": "^1.3.0",
- "@types/toastify-js": "^1.11.1",
- "@types/webpack-env": "^1.18.0",
- "@typescript-eslint/eslint-plugin": "^5.36.2",
- "@typescript-eslint/parser": "^5.36.2",
- "@vue/eslint-config-typescript": "^11.0.0",
- "axios": "^0.21",
- "bootstrap": "^5.2.3",
- "clean-webpack-plugin": "^4.0.0",
- "cropperjs": "^1.5.12",
- "eslint": "^8.23.0",
- "eslint-plugin-vue": "^9.4.0",
- "eslint-webpack-plugin": "^3.2.0",
- "laravel-mix": "^6.0.6",
- "laravel-mix-clean": "^0.1.0",
- "laravel-mix-eslint": "^0.2.0",
- "laravel-mix-polyfill": "^3.0.1",
- "laravel-mix-stylelint": "^1.0.0",
- "postcss": "^8.1.14",
- "prettier": "^2.7.1",
+ "@types/bootstrap": "^5.2.10",
+ "@types/cropperjs": "^1.3.3",
+ "@types/node": "^20.8.2",
+ "@types/toastify-js": "^1.12.4",
+ "@typescript-eslint/eslint-plugin": "^5.62.0",
+ "@typescript-eslint/parser": "^5.36.0",
+ "@vitejs/plugin-basic-ssl": "^1.0.1",
+ "@vitejs/plugin-vue": "^4.6.2",
+ "@vue/compiler-sfc": "^3.4.23",
+ "@vue/eslint-config-typescript": "^13.0.0",
+ "@vue/tsconfig": "^0.4.0",
+ "autoprefixer": "^10.4.21",
+ "axios": "^1.9.0",
+ "bootstrap": "^5.3.6",
+ "cropperjs": "^1.6.1",
+ "eslint": "^8.57.0",
+ "eslint-import-resolver-alias": "^1.1.2",
+ "eslint-plugin-vue": "^9.25.0",
+ "laravel-vite-plugin": "^0.8.1",
+ "postcss-discard-comments": "^6.0.2",
"resolve-url-loader": "^5.0.0",
"resumablejs": "^1.1.0",
- "sass": "^1.54.8",
- "sass-loader": "^12.6.0",
- "slugify": "^1.6.5",
- "stylelint": "^14.11.0",
- "stylelint-config-idiomatic-order": "^8.1.0",
- "stylelint-config-sass-guidelines": "^9.0.1",
- "stylelint-config-standard-scss": "^6.1.0",
- "stylelint-webpack-plugin": "^3.3.0",
- "sweetalert2": "^11.4.8",
+ "rollup-plugin-copy": "^3.5.0",
+ "sass": "^1.58.3",
+ "sass-loader": "^13.3.1",
+ "slugify": "^1.6.6",
+ "stylelint": "^15.11.0",
+ "stylelint-config-idiomatic-order": "^10.0.0",
+ "stylelint-config-sass-guidelines": "^10.0.0",
+ "stylelint-config-standard-scss": "^11.1.0",
+ "sweetalert2": "^11.21.0",
"toastify-js": "^1.12.0",
"ts-loader": "^9.3.1",
- "typescript": "^4.8.2",
- "typescript-eslint": "^0.0.1-alpha.0",
- "vue": "^3.2.38",
- "vue-eslint-parser": "^9.1.0",
- "vue-loader": "^16.8.3",
+ "typescript": ">=3.3.1 <5.2.0",
+ "vite": "^4.5.1",
+ "vite-plugin-babel": "^1.2.0",
+ "vite-plugin-checker": "^0.6.4",
+ "vite-plugin-eslint": "^1.8.1",
+ "vite-plugin-stylelint": "^5.3.1",
+ "vue": "^3.4.23",
+ "vue-eslint-parser": "^9.4.2",
+ "vue-loader": "^17.4.2",
+ "vue-tsc": "^1.8.11",
"vue3-nestable": "^3.0.3"
}
},
- "node_modules/@aashutoshrathi/word-wrap": {
- "version": "1.2.6",
- "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",
- "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/@ampproject/remapping": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
- "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
+ "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "@jridgewell/gen-mapping": "^0.3.0",
- "@jridgewell/trace-mapping": "^0.3.9"
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.24"
},
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@babel/code-frame": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz",
- "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz",
+ "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/highlight": "^7.22.5"
+ "@babel/helper-validator-identifier": "^7.27.1",
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.1.1"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/compat-data": {
- "version": "7.22.9",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz",
- "integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==",
+ "version": "7.27.2",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.2.tgz",
+ "integrity": "sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/core": {
- "version": "7.22.9",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.9.tgz",
- "integrity": "sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.1.tgz",
+ "integrity": "sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@ampproject/remapping": "^2.2.0",
- "@babel/code-frame": "^7.22.5",
- "@babel/generator": "^7.22.9",
- "@babel/helper-compilation-targets": "^7.22.9",
- "@babel/helper-module-transforms": "^7.22.9",
- "@babel/helpers": "^7.22.6",
- "@babel/parser": "^7.22.7",
- "@babel/template": "^7.22.5",
- "@babel/traverse": "^7.22.8",
- "@babel/types": "^7.22.5",
- "convert-source-map": "^1.7.0",
+ "@babel/code-frame": "^7.27.1",
+ "@babel/generator": "^7.27.1",
+ "@babel/helper-compilation-targets": "^7.27.1",
+ "@babel/helper-module-transforms": "^7.27.1",
+ "@babel/helpers": "^7.27.1",
+ "@babel/parser": "^7.27.1",
+ "@babel/template": "^7.27.1",
+ "@babel/traverse": "^7.27.1",
+ "@babel/types": "^7.27.1",
+ "convert-source-map": "^2.0.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
- "json5": "^2.2.2",
+ "json5": "^2.2.3",
"semver": "^6.3.1"
},
"engines": {
@@ -128,225 +132,64 @@
"url": "https://opencollective.com/babel"
}
},
- "node_modules/@babel/core/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
"node_modules/@babel/generator": {
- "version": "7.22.9",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.9.tgz",
- "integrity": "sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.1.tgz",
+ "integrity": "sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/types": "^7.22.5",
- "@jridgewell/gen-mapping": "^0.3.2",
- "@jridgewell/trace-mapping": "^0.3.17",
- "jsesc": "^2.5.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-annotate-as-pure": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz",
- "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz",
- "integrity": "sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.22.5"
+ "@babel/parser": "^7.27.1",
+ "@babel/types": "^7.27.1",
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.25",
+ "jsesc": "^3.0.2"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-compilation-targets": {
- "version": "7.22.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz",
- "integrity": "sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==",
+ "version": "7.27.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz",
+ "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/compat-data": "^7.22.9",
- "@babel/helper-validator-option": "^7.22.5",
- "browserslist": "^4.21.9",
+ "@babel/compat-data": "^7.27.2",
+ "@babel/helper-validator-option": "^7.27.1",
+ "browserslist": "^4.24.0",
"lru-cache": "^5.1.1",
"semver": "^6.3.1"
},
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@babel/helper-create-class-features-plugin": {
- "version": "7.22.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.9.tgz",
- "integrity": "sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-function-name": "^7.22.5",
- "@babel/helper-member-expression-to-functions": "^7.22.5",
- "@babel/helper-optimise-call-expression": "^7.22.5",
- "@babel/helper-replace-supers": "^7.22.9",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.6",
- "semver": "^6.3.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@babel/helper-create-regexp-features-plugin": {
- "version": "7.22.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.9.tgz",
- "integrity": "sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "regexpu-core": "^5.3.1",
- "semver": "^6.3.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@babel/helper-define-polyfill-provider": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.1.tgz",
- "integrity": "sha512-kX4oXixDxG197yhX+J3Wp+NpL2wuCFjWQAr6yX2jtCnflK9ulMI51ULFGIrWiX1jGfvAxdHp+XQCcP2bZGPs9A==",
- "dev": true,
- "dependencies": {
- "@babel/helper-compilation-targets": "^7.22.6",
- "@babel/helper-plugin-utils": "^7.22.5",
- "debug": "^4.1.1",
- "lodash.debounce": "^4.0.8",
- "resolve": "^1.14.2"
- },
- "peerDependencies": {
- "@babel/core": "^7.4.0-0"
- }
- },
- "node_modules/@babel/helper-environment-visitor": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz",
- "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-function-name": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz",
- "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==",
- "dev": true,
- "dependencies": {
- "@babel/template": "^7.22.5",
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-hoist-variables": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
- "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-member-expression-to-functions": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz",
- "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-module-imports": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz",
- "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz",
+ "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/types": "^7.22.5"
+ "@babel/traverse": "^7.27.1",
+ "@babel/types": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-module-transforms": {
- "version": "7.22.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz",
- "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.1.tgz",
+ "integrity": "sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-module-imports": "^7.22.5",
- "@babel/helper-simple-access": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.6",
- "@babel/helper-validator-identifier": "^7.22.5"
+ "@babel/helper-module-imports": "^7.27.1",
+ "@babel/helper-validator-identifier": "^7.27.1",
+ "@babel/traverse": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -355,242 +198,59 @@
"@babel/core": "^7.0.0"
}
},
- "node_modules/@babel/helper-optimise-call-expression": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz",
- "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-plugin-utils": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz",
- "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-remap-async-to-generator": {
- "version": "7.22.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz",
- "integrity": "sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-wrap-function": "^7.22.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-replace-supers": {
- "version": "7.22.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz",
- "integrity": "sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-member-expression-to-functions": "^7.22.5",
- "@babel/helper-optimise-call-expression": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-simple-access": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
- "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz",
- "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-split-export-declaration": {
- "version": "7.22.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
- "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
"node_modules/@babel/helper-string-parser": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
- "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
+ "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-identifier": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz",
- "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz",
+ "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-option": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz",
- "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz",
+ "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==",
"dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-wrap-function": {
- "version": "7.22.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.9.tgz",
- "integrity": "sha512-sZ+QzfauuUEfxSEjKFmi3qDSHgLsTPK/pEpoD/qonZKOtTPTLbf59oabPQ4rKekt9lFcj/hTZaOhWwFYrgjk+Q==",
- "dev": true,
- "dependencies": {
- "@babel/helper-function-name": "^7.22.5",
- "@babel/template": "^7.22.5",
- "@babel/types": "^7.22.5"
- },
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helpers": {
- "version": "7.22.6",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.6.tgz",
- "integrity": "sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.1.tgz",
+ "integrity": "sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/template": "^7.22.5",
- "@babel/traverse": "^7.22.6",
- "@babel/types": "^7.22.5"
+ "@babel/template": "^7.27.1",
+ "@babel/types": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
}
},
- "node_modules/@babel/highlight": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz",
- "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.22.5",
- "chalk": "^2.0.0",
- "js-tokens": "^4.0.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/highlight/node_modules/ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
- "dependencies": {
- "color-convert": "^1.9.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
- "dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/@babel/highlight/node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
- "node_modules/@babel/highlight/node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true,
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/@babel/highlight/node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
- "dependencies": {
- "has-flag": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/@babel/parser": {
- "version": "7.22.7",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz",
- "integrity": "sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==",
+ "version": "7.27.2",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.2.tgz",
+ "integrity": "sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.27.1"
+ },
"bin": {
"parser": "bin/babel-parser.js"
},
@@ -598,1330 +258,60 @@
"node": ">=6.0.0"
}
},
- "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz",
- "integrity": "sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz",
- "integrity": "sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
- "@babel/plugin-transform-optional-chaining": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.13.0"
- }
- },
- "node_modules/@babel/plugin-proposal-object-rest-spread": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz",
- "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==",
- "dev": true,
- "dependencies": {
- "@babel/compat-data": "^7.20.5",
- "@babel/helper-compilation-targets": "^7.20.7",
- "@babel/helper-plugin-utils": "^7.20.2",
- "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-transform-parameters": "^7.20.7"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-proposal-private-property-in-object": {
- "version": "7.21.0-placeholder-for-preset-env.2",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
- "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-proposal-unicode-property-regex": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz",
- "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==",
- "dev": true,
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
- },
- "engines": {
- "node": ">=4"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-async-generators": {
- "version": "7.8.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
- "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-class-properties": {
- "version": "7.12.13",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
- "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.12.13"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-class-static-block": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
- "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-dynamic-import": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
- "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-export-namespace-from": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
- "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.3"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-import-assertions": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz",
- "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-import-attributes": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz",
- "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-import-meta": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
- "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.10.4"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-json-strings": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
- "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-logical-assignment-operators": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
- "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.10.4"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
- "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-numeric-separator": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
- "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.10.4"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-object-rest-spread": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
- "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-optional-catch-binding": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
- "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-optional-chaining": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
- "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-private-property-in-object": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
- "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-top-level-await": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
- "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-unicode-sets-regex": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz",
- "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/plugin-transform-arrow-functions": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz",
- "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-async-generator-functions": {
- "version": "7.22.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.7.tgz",
- "integrity": "sha512-7HmE7pk/Fmke45TODvxvkxRMV9RazV+ZZzhOL9AG8G29TLrr3jkjwF7uJfxZ30EoXpO+LJkq4oA8NjO2DTnEDg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-remap-async-to-generator": "^7.22.5",
- "@babel/plugin-syntax-async-generators": "^7.8.4"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-async-to-generator": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz",
- "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-module-imports": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-remap-async-to-generator": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-block-scoped-functions": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz",
- "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-block-scoping": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz",
- "integrity": "sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-class-properties": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz",
- "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-class-static-block": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz",
- "integrity": "sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-class-static-block": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.12.0"
- }
- },
- "node_modules/@babel/plugin-transform-classes": {
- "version": "7.22.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz",
- "integrity": "sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-compilation-targets": "^7.22.6",
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-function-name": "^7.22.5",
- "@babel/helper-optimise-call-expression": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-replace-supers": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.6",
- "globals": "^11.1.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-classes/node_modules/globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/plugin-transform-computed-properties": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz",
- "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/template": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-destructuring": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.5.tgz",
- "integrity": "sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-dotall-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz",
- "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-duplicate-keys": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz",
- "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-dynamic-import": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz",
- "integrity": "sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-dynamic-import": "^7.8.3"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-exponentiation-operator": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz",
- "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==",
- "dev": true,
- "dependencies": {
- "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-export-namespace-from": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz",
- "integrity": "sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-for-of": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz",
- "integrity": "sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-function-name": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz",
- "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-compilation-targets": "^7.22.5",
- "@babel/helper-function-name": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-json-strings": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz",
- "integrity": "sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-json-strings": "^7.8.3"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-literals": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz",
- "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-logical-assignment-operators": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz",
- "integrity": "sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-member-expression-literals": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz",
- "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-modules-amd": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz",
- "integrity": "sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-module-transforms": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-modules-commonjs": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz",
- "integrity": "sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-module-transforms": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-simple-access": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-modules-systemjs": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz",
- "integrity": "sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-hoist-variables": "^7.22.5",
- "@babel/helper-module-transforms": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-validator-identifier": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-modules-umd": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz",
- "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-module-transforms": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz",
- "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/plugin-transform-new-target": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz",
- "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz",
- "integrity": "sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-numeric-separator": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz",
- "integrity": "sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-numeric-separator": "^7.10.4"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-object-rest-spread": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz",
- "integrity": "sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==",
- "dev": true,
- "dependencies": {
- "@babel/compat-data": "^7.22.5",
- "@babel/helper-compilation-targets": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-transform-parameters": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-object-super": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz",
- "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-replace-supers": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-optional-catch-binding": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz",
- "integrity": "sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-optional-chaining": {
- "version": "7.22.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.6.tgz",
- "integrity": "sha512-Vd5HiWml0mDVtcLHIoEU5sw6HOUW/Zk0acLs/SAeuLzkGNOPc9DB4nkUajemhCmTIz3eiaKREZn2hQQqF79YTg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
- "@babel/plugin-syntax-optional-chaining": "^7.8.3"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-parameters": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz",
- "integrity": "sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-private-methods": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz",
- "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-private-property-in-object": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz",
- "integrity": "sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-create-class-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-private-property-in-object": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-property-literals": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz",
- "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-regenerator": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.5.tgz",
- "integrity": "sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "regenerator-transform": "^0.15.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-reserved-words": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz",
- "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-runtime": {
- "version": "7.22.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.9.tgz",
- "integrity": "sha512-9KjBH61AGJetCPYp/IEyLEp47SyybZb0nDRpBvmtEkm+rUIwxdlKpyNHI1TmsGkeuLclJdleQHRZ8XLBnnh8CQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-module-imports": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "babel-plugin-polyfill-corejs2": "^0.4.4",
- "babel-plugin-polyfill-corejs3": "^0.8.2",
- "babel-plugin-polyfill-regenerator": "^0.5.1",
- "semver": "^6.3.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-runtime/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@babel/plugin-transform-shorthand-properties": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz",
- "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-spread": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz",
- "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-sticky-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz",
- "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-template-literals": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz",
- "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-typeof-symbol": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz",
- "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-unicode-escapes": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz",
- "integrity": "sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-unicode-property-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz",
- "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==",
- "dev": true,
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-unicode-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz",
- "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-unicode-sets-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz",
- "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/preset-env": {
- "version": "7.22.9",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.9.tgz",
- "integrity": "sha512-wNi5H/Emkhll/bqPjsjQorSykrlfY5OWakd6AulLvMEytpKasMVUpVy8RL4qBIBs5Ac6/5i0/Rv0b/Fg6Eag/g==",
- "dev": true,
- "dependencies": {
- "@babel/compat-data": "^7.22.9",
- "@babel/helper-compilation-targets": "^7.22.9",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-validator-option": "^7.22.5",
- "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.5",
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.5",
- "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
- "@babel/plugin-syntax-async-generators": "^7.8.4",
- "@babel/plugin-syntax-class-properties": "^7.12.13",
- "@babel/plugin-syntax-class-static-block": "^7.14.5",
- "@babel/plugin-syntax-dynamic-import": "^7.8.3",
- "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
- "@babel/plugin-syntax-import-assertions": "^7.22.5",
- "@babel/plugin-syntax-import-attributes": "^7.22.5",
- "@babel/plugin-syntax-import-meta": "^7.10.4",
- "@babel/plugin-syntax-json-strings": "^7.8.3",
- "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
- "@babel/plugin-syntax-numeric-separator": "^7.10.4",
- "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
- "@babel/plugin-syntax-optional-chaining": "^7.8.3",
- "@babel/plugin-syntax-private-property-in-object": "^7.14.5",
- "@babel/plugin-syntax-top-level-await": "^7.14.5",
- "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6",
- "@babel/plugin-transform-arrow-functions": "^7.22.5",
- "@babel/plugin-transform-async-generator-functions": "^7.22.7",
- "@babel/plugin-transform-async-to-generator": "^7.22.5",
- "@babel/plugin-transform-block-scoped-functions": "^7.22.5",
- "@babel/plugin-transform-block-scoping": "^7.22.5",
- "@babel/plugin-transform-class-properties": "^7.22.5",
- "@babel/plugin-transform-class-static-block": "^7.22.5",
- "@babel/plugin-transform-classes": "^7.22.6",
- "@babel/plugin-transform-computed-properties": "^7.22.5",
- "@babel/plugin-transform-destructuring": "^7.22.5",
- "@babel/plugin-transform-dotall-regex": "^7.22.5",
- "@babel/plugin-transform-duplicate-keys": "^7.22.5",
- "@babel/plugin-transform-dynamic-import": "^7.22.5",
- "@babel/plugin-transform-exponentiation-operator": "^7.22.5",
- "@babel/plugin-transform-export-namespace-from": "^7.22.5",
- "@babel/plugin-transform-for-of": "^7.22.5",
- "@babel/plugin-transform-function-name": "^7.22.5",
- "@babel/plugin-transform-json-strings": "^7.22.5",
- "@babel/plugin-transform-literals": "^7.22.5",
- "@babel/plugin-transform-logical-assignment-operators": "^7.22.5",
- "@babel/plugin-transform-member-expression-literals": "^7.22.5",
- "@babel/plugin-transform-modules-amd": "^7.22.5",
- "@babel/plugin-transform-modules-commonjs": "^7.22.5",
- "@babel/plugin-transform-modules-systemjs": "^7.22.5",
- "@babel/plugin-transform-modules-umd": "^7.22.5",
- "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5",
- "@babel/plugin-transform-new-target": "^7.22.5",
- "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.5",
- "@babel/plugin-transform-numeric-separator": "^7.22.5",
- "@babel/plugin-transform-object-rest-spread": "^7.22.5",
- "@babel/plugin-transform-object-super": "^7.22.5",
- "@babel/plugin-transform-optional-catch-binding": "^7.22.5",
- "@babel/plugin-transform-optional-chaining": "^7.22.6",
- "@babel/plugin-transform-parameters": "^7.22.5",
- "@babel/plugin-transform-private-methods": "^7.22.5",
- "@babel/plugin-transform-private-property-in-object": "^7.22.5",
- "@babel/plugin-transform-property-literals": "^7.22.5",
- "@babel/plugin-transform-regenerator": "^7.22.5",
- "@babel/plugin-transform-reserved-words": "^7.22.5",
- "@babel/plugin-transform-shorthand-properties": "^7.22.5",
- "@babel/plugin-transform-spread": "^7.22.5",
- "@babel/plugin-transform-sticky-regex": "^7.22.5",
- "@babel/plugin-transform-template-literals": "^7.22.5",
- "@babel/plugin-transform-typeof-symbol": "^7.22.5",
- "@babel/plugin-transform-unicode-escapes": "^7.22.5",
- "@babel/plugin-transform-unicode-property-regex": "^7.22.5",
- "@babel/plugin-transform-unicode-regex": "^7.22.5",
- "@babel/plugin-transform-unicode-sets-regex": "^7.22.5",
- "@babel/preset-modules": "^0.1.5",
- "@babel/types": "^7.22.5",
- "babel-plugin-polyfill-corejs2": "^0.4.4",
- "babel-plugin-polyfill-corejs3": "^0.8.2",
- "babel-plugin-polyfill-regenerator": "^0.5.1",
- "core-js-compat": "^3.31.0",
- "semver": "^6.3.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/preset-env/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@babel/preset-modules": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz",
- "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.0.0",
- "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
- "@babel/plugin-transform-dotall-regex": "^7.4.4",
- "@babel/types": "^7.4.4",
- "esutils": "^2.0.2"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/regjsgen": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz",
- "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==",
- "dev": true
- },
- "node_modules/@babel/runtime": {
- "version": "7.22.6",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.6.tgz",
- "integrity": "sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==",
- "dev": true,
- "dependencies": {
- "regenerator-runtime": "^0.13.11"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
"node_modules/@babel/template": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz",
- "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==",
+ "version": "7.27.2",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz",
+ "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/code-frame": "^7.22.5",
- "@babel/parser": "^7.22.5",
- "@babel/types": "^7.22.5"
+ "@babel/code-frame": "^7.27.1",
+ "@babel/parser": "^7.27.2",
+ "@babel/types": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/traverse": {
- "version": "7.22.8",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.8.tgz",
- "integrity": "sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.1.tgz",
+ "integrity": "sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/code-frame": "^7.22.5",
- "@babel/generator": "^7.22.7",
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-function-name": "^7.22.5",
- "@babel/helper-hoist-variables": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.6",
- "@babel/parser": "^7.22.7",
- "@babel/types": "^7.22.5",
- "debug": "^4.1.0",
+ "@babel/code-frame": "^7.27.1",
+ "@babel/generator": "^7.27.1",
+ "@babel/parser": "^7.27.1",
+ "@babel/template": "^7.27.1",
+ "@babel/types": "^7.27.1",
+ "debug": "^4.3.1",
"globals": "^11.1.0"
},
"engines": {
"node": ">=6.9.0"
}
},
- "node_modules/@babel/traverse/node_modules/globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/@babel/types": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz",
- "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.1.tgz",
+ "integrity": "sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-string-parser": "^7.22.5",
- "@babel/helper-validator-identifier": "^7.22.5",
- "to-fast-properties": "^2.0.0"
+ "@babel/helper-string-parser": "^7.27.1",
+ "@babel/helper-validator-identifier": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@ckpack/vue-color": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@ckpack/vue-color/-/vue-color-1.5.0.tgz",
- "integrity": "sha512-dj1zXVyay2m4LdlLJCQSdIS2FYwUl77BZqyKmUXiehyqjCP0bGYnPcL38lrShzYUc2FdkYQX8ANZZjRahd4PQw==",
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/@ckpack/vue-color/-/vue-color-1.6.0.tgz",
+ "integrity": "sha512-b9kFTKhYbNArfgP1lmnaVm0VNsWdZjqIbyHUYry7mZ+E7JeTQclbjq1+2xWn0SE3wzqRYlXmAVjECPOgteWmMQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@ctrl/tinycolor": "^3.6.0",
"material-colors": "^1.2.6"
@@ -1933,79 +323,528 @@
"vue": "^3.2.0"
}
},
- "node_modules/@colors/colors": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
- "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
- "dev": true,
- "optional": true,
- "engines": {
- "node": ">=0.1.90"
- }
- },
- "node_modules/@csstools/selector-specificity": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz",
- "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==",
+ "node_modules/@csstools/css-parser-algorithms": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.7.1.tgz",
+ "integrity": "sha512-2SJS42gxmACHgikc1WGesXLIT8d/q2l0UFM7TaEeIzdFCE/FPMtTiizcPGGJtlPo2xuQzY09OhrLTzRxqJqwGw==",
"dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
"engines": {
"node": "^14 || ^16 || >=18"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
+ "peerDependencies": {
+ "@csstools/css-tokenizer": "^2.4.1"
+ }
+ },
+ "node_modules/@csstools/css-tokenizer": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.4.1.tgz",
+ "integrity": "sha512-eQ9DIktFJBhGjioABJRtUucoWR2mwllurfnM8LuNGAqX3ViZXaUchqk+1s7jjtkFiT9ySdACsFEA3etErkALUg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": "^14 || ^16 || >=18"
+ }
+ },
+ "node_modules/@csstools/media-query-list-parser": {
+ "version": "2.1.13",
+ "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.13.tgz",
+ "integrity": "sha512-XaHr+16KRU9Gf8XLi3q8kDlI18d5vzKSKCY510Vrtc9iNR0NJzbY9hhTmwhzYZj/ZwGL4VmB3TA9hJW0Um2qFA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": "^14 || ^16 || >=18"
},
"peerDependencies": {
- "postcss-selector-parser": "^6.0.10"
+ "@csstools/css-parser-algorithms": "^2.7.1",
+ "@csstools/css-tokenizer": "^2.4.1"
+ }
+ },
+ "node_modules/@csstools/selector-specificity": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.1.1.tgz",
+ "integrity": "sha512-a7cxGcJ2wIlMFLlh8z2ONm+715QkPHiyJcxwQlKOz/03GPw1COpfhcmC9wm4xlZfp//jWHNNMwzjtqHXVWU9KA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "engines": {
+ "node": "^14 || ^16 || >=18"
+ },
+ "peerDependencies": {
+ "postcss-selector-parser": "^6.0.13"
}
},
"node_modules/@ctrl/tinycolor": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.0.tgz",
- "integrity": "sha512-/Z3l6pXthq0JvMYdUFyX9j0MaCltlIn6mfh9jLyQwg5aPKxkyNa0PTHtU1AlFXLNk55ZuAeJRcpvq+tmLfKmaQ==",
+ "version": "3.6.1",
+ "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz",
+ "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10"
}
},
- "node_modules/@discoveryjs/json-ext": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz",
- "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==",
+ "node_modules/@erbelion/vite-plugin-laravel-purgecss": {
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/@erbelion/vite-plugin-laravel-purgecss/-/vite-plugin-laravel-purgecss-0.3.4.tgz",
+ "integrity": "sha512-Z/7VSH9i7T/7TBmbjNiUJCpZcub5u2YXeqIUCh3Mi/6asbOER4lXnc1OxpEVRFderiBDficmVehx55lWa6cTfQ==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "purgecss": "^6.0.0"
+ },
+ "peerDependencies": {
+ "vite": ">=3 <=6"
+ }
+ },
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz",
+ "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
"engines": {
- "node": ">=10.0.0"
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-arm64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz",
+ "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-x64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz",
+ "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz",
+ "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/darwin-x64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz",
+ "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz",
+ "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/freebsd-x64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz",
+ "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-arm": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz",
+ "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-arm64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz",
+ "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-ia32": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz",
+ "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz",
+ "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-mips64el": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz",
+ "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-ppc64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz",
+ "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-riscv64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz",
+ "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-s390x": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz",
+ "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-x64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz",
+ "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/netbsd-x64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz",
+ "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/openbsd-x64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz",
+ "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/sunos-x64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz",
+ "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-arm64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz",
+ "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-ia32": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz",
+ "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz",
+ "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
}
},
"node_modules/@eslint-community/eslint-utils": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
- "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz",
+ "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "eslint-visitor-keys": "^3.3.0"
+ "eslint-visitor-keys": "^3.4.3"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ },
"peerDependencies": {
"eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
}
},
"node_modules/@eslint-community/regexpp": {
- "version": "4.5.1",
- "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz",
- "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==",
+ "version": "4.12.1",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz",
+ "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.0.0 || ^14.0.0 || >=16.0.0"
}
},
"node_modules/@eslint/eslintrc": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.0.tgz",
- "integrity": "sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==",
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
+ "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
@@ -2024,95 +863,128 @@
"url": "https://opencollective.com/eslint"
}
},
- "node_modules/@eslint/js": {
- "version": "8.44.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.44.0.tgz",
- "integrity": "sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==",
+ "node_modules/@eslint/eslintrc/node_modules/globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@eslint/js": {
+ "version": "8.57.1",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz",
+ "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==",
+ "dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
"node_modules/@fortawesome/fontawesome-common-types": {
- "version": "6.4.0",
- "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.4.0.tgz",
- "integrity": "sha512-HNii132xfomg5QVZw0HwXXpN22s7VBHQBv9CeOu9tfJnhsWQNd2lmTNi8CSrnw5B+5YOmzu1UoPAyxaXsJ6RgQ==",
+ "version": "6.7.2",
+ "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.7.2.tgz",
+ "integrity": "sha512-Zs+YeHUC5fkt7Mg1l6XTniei3k4bwG/yo3iFUtZWd/pMx9g3fdvkSK9E0FOC+++phXOka78uJcYb8JaFkW52Xg==",
"dev": true,
- "hasInstallScript": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/@fortawesome/fontawesome-svg-core": {
- "version": "6.4.0",
- "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.4.0.tgz",
- "integrity": "sha512-Bertv8xOiVELz5raB2FlXDPKt+m94MQ3JgDfsVbrqNpLU9+UE2E18GKjLKw+d3XbeYPqg1pzyQKGsrzbw+pPaw==",
+ "version": "6.7.2",
+ "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.7.2.tgz",
+ "integrity": "sha512-yxtOBWDrdi5DD5o1pmVdq3WMCvnobT0LU6R8RyyVXPvFRd2o79/0NCuQoCjNTeZz9EzA9xS3JxNWfv54RIHFEA==",
"dev": true,
- "hasInstallScript": true,
+ "license": "MIT",
"dependencies": {
- "@fortawesome/fontawesome-common-types": "6.4.0"
+ "@fortawesome/fontawesome-common-types": "6.7.2"
},
"engines": {
"node": ">=6"
}
},
"node_modules/@fortawesome/free-brands-svg-icons": {
- "version": "6.4.0",
- "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.4.0.tgz",
- "integrity": "sha512-qvxTCo0FQ5k2N+VCXb/PZQ+QMhqRVM4OORiO6MXdG6bKolIojGU/srQ1ptvKk0JTbRgaJOfL2qMqGvBEZG7Z6g==",
+ "version": "6.7.2",
+ "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.7.2.tgz",
+ "integrity": "sha512-zu0evbcRTgjKfrr77/2XX+bU+kuGfjm0LbajJHVIgBWNIDzrhpRxiCPNT8DW5AdmSsq7Mcf9D1bH0aSeSUSM+Q==",
"dev": true,
- "hasInstallScript": true,
+ "license": "(CC-BY-4.0 AND MIT)",
"dependencies": {
- "@fortawesome/fontawesome-common-types": "6.4.0"
+ "@fortawesome/fontawesome-common-types": "6.7.2"
},
"engines": {
"node": ">=6"
}
},
"node_modules/@fortawesome/free-regular-svg-icons": {
- "version": "6.4.0",
- "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.4.0.tgz",
- "integrity": "sha512-ZfycI7D0KWPZtf7wtMFnQxs8qjBXArRzczABuMQqecA/nXohquJ5J/RCR77PmY5qGWkxAZDxpnUFVXKwtY/jPw==",
+ "version": "6.7.2",
+ "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.7.2.tgz",
+ "integrity": "sha512-7Z/ur0gvCMW8G93dXIQOkQqHo2M5HLhYrRVC0//fakJXxcF1VmMPsxnG6Ee8qEylA8b8Q3peQXWMNZ62lYF28g==",
"dev": true,
- "hasInstallScript": true,
+ "license": "(CC-BY-4.0 AND MIT)",
"dependencies": {
- "@fortawesome/fontawesome-common-types": "6.4.0"
+ "@fortawesome/fontawesome-common-types": "6.7.2"
},
"engines": {
"node": ">=6"
}
},
"node_modules/@fortawesome/free-solid-svg-icons": {
- "version": "6.4.0",
- "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.4.0.tgz",
- "integrity": "sha512-kutPeRGWm8V5dltFP1zGjQOEAzaLZj4StdQhWVZnfGFCvAPVvHh8qk5bRrU4KXnRRRNni5tKQI9PBAdI6MP8nQ==",
+ "version": "6.7.2",
+ "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.7.2.tgz",
+ "integrity": "sha512-GsBrnOzU8uj0LECDfD5zomZJIjrPhIlWU82AHwa2s40FKH+kcxQaBvBo3Z4TxyZHIyX8XTDxsyA33/Vx9eFuQA==",
"dev": true,
- "hasInstallScript": true,
+ "license": "(CC-BY-4.0 AND MIT)",
"dependencies": {
- "@fortawesome/fontawesome-common-types": "6.4.0"
+ "@fortawesome/fontawesome-common-types": "6.7.2"
},
"engines": {
"node": ">=6"
}
},
"node_modules/@fortawesome/vue-fontawesome": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@fortawesome/vue-fontawesome/-/vue-fontawesome-3.0.3.tgz",
- "integrity": "sha512-KCPHi9QemVXGMrfuwf3nNnNo129resAIQWut9QTAMXmXqL2ErABC6ohd2yY5Ipq0CLWNbKHk8TMdTXL/Zf3ZhA==",
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/@fortawesome/vue-fontawesome/-/vue-fontawesome-3.0.8.tgz",
+ "integrity": "sha512-yyHHAj4G8pQIDfaIsMvQpwKMboIZtcHTUvPqXjOHyldh1O1vZfH4W03VDPv5RvI9P6DLTzJQlmVgj9wCf7c2Fw==",
"dev": true,
+ "license": "MIT",
"peerDependencies": {
"@fortawesome/fontawesome-svg-core": "~1 || ~6",
"vue": ">= 3.0.0 < 4"
}
},
"node_modules/@humanwhocodes/config-array": {
- "version": "0.11.10",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz",
- "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==",
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz",
+ "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==",
+ "deprecated": "Use @eslint/config-array instead",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "@humanwhocodes/object-schema": "^1.2.1",
- "debug": "^4.1.1",
+ "@humanwhocodes/object-schema": "^2.0.3",
+ "debug": "^4.3.1",
"minimatch": "^3.0.5"
},
"engines": {
@@ -2124,6 +996,7 @@
"resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
"integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": ">=12.22"
},
@@ -2133,88 +1006,123 @@
}
},
"node_modules/@humanwhocodes/object-schema": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
- "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
- "dev": true
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
+ "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
+ "deprecated": "Use @eslint/object-schema instead",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@isaacs/cliui": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
+ "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.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
+ "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
+ "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",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+ "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.3",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
- "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
+ "version": "0.3.8",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz",
+ "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/set-array": "^1.2.1",
"@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.9"
+ "@jridgewell/trace-mapping": "^0.3.24"
},
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
- "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@jridgewell/set-array": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
- "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+ "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@jridgewell/source-map": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz",
- "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==",
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz",
+ "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "@jridgewell/gen-mapping": "^0.3.0",
- "@jridgewell/trace-mapping": "^0.3.9"
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.25"
}
},
"node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.4.15",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
- "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
- "dev": true
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
+ "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.18",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz",
- "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==",
+ "version": "0.3.25",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+ "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@jridgewell/resolve-uri": "3.1.0",
- "@jridgewell/sourcemap-codec": "1.4.14"
- }
- },
- "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.4.14",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
- "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
- "dev": true
- },
- "node_modules/@leichtgewicht/ip-codec": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz",
- "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==",
- "dev": true
- },
- "node_modules/@nicolo-ribaudo/semver-v6": {
- "version": "6.3.3",
- "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz",
- "integrity": "sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
}
},
"node_modules/@nodelib/fs.scandir": {
@@ -2222,6 +1130,7 @@
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
"integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@nodelib/fs.stat": "2.0.5",
"run-parallel": "^1.1.9"
@@ -2235,6 +1144,7 @@
"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
"integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 8"
}
@@ -2244,6 +1154,7 @@
"resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
"integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@nodelib/fs.scandir": "2.1.5",
"fastq": "^1.6.0"
@@ -2252,27 +1163,373 @@
"node": ">= 8"
}
},
+ "node_modules/@parcel/watcher": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz",
+ "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "detect-libc": "^1.0.3",
+ "is-glob": "^4.0.3",
+ "micromatch": "^4.0.5",
+ "node-addon-api": "^7.0.0"
+ },
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "optionalDependencies": {
+ "@parcel/watcher-android-arm64": "2.5.1",
+ "@parcel/watcher-darwin-arm64": "2.5.1",
+ "@parcel/watcher-darwin-x64": "2.5.1",
+ "@parcel/watcher-freebsd-x64": "2.5.1",
+ "@parcel/watcher-linux-arm-glibc": "2.5.1",
+ "@parcel/watcher-linux-arm-musl": "2.5.1",
+ "@parcel/watcher-linux-arm64-glibc": "2.5.1",
+ "@parcel/watcher-linux-arm64-musl": "2.5.1",
+ "@parcel/watcher-linux-x64-glibc": "2.5.1",
+ "@parcel/watcher-linux-x64-musl": "2.5.1",
+ "@parcel/watcher-win32-arm64": "2.5.1",
+ "@parcel/watcher-win32-ia32": "2.5.1",
+ "@parcel/watcher-win32-x64": "2.5.1"
+ }
+ },
+ "node_modules/@parcel/watcher-android-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz",
+ "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-darwin-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz",
+ "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-darwin-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz",
+ "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-freebsd-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz",
+ "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz",
+ "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz",
+ "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm64-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz",
+ "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm64-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz",
+ "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-x64-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz",
+ "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-x64-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz",
+ "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz",
+ "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-ia32": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz",
+ "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz",
+ "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@pkgjs/parseargs": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
+ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=14"
+ }
+ },
"node_modules/@popperjs/core": {
"version": "2.11.8",
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
"integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
"dev": true,
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/popperjs"
}
},
+ "node_modules/@rollup/pluginutils": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz",
+ "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "estree-walker": "^2.0.1",
+ "picomatch": "^2.2.2"
+ },
+ "engines": {
+ "node": ">= 8.0.0"
+ }
+ },
+ "node_modules/@rtsao/scc": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz",
+ "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true
+ },
"node_modules/@rushstack/eslint-patch": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.3.2.tgz",
- "integrity": "sha512-V+MvGwaHH03hYhY+k6Ef/xKd6RYlc4q8WBx+2ANmipHJcKuktNcI/NgEsJgdSUF6Lw32njT6OnrRsKYCdgHjYw==",
- "dev": true
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.11.0.tgz",
+ "integrity": "sha512-zxnHvoMQVqewTJr/W4pKjF0bMGiKJv1WX7bSrkl46Hg0QjESbzBROWK0Wg4RphzSOS5Jiy7eFimmM3UgMrMZbQ==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@sipec/vue3-tags-input": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/@sipec/vue3-tags-input/-/vue3-tags-input-3.0.4.tgz",
"integrity": "sha512-zE4OiFkWvlvvGT3FZQ9hRrvJW935VPW0fe4K03SxM5Q/UQZMqph763UHXTuyK1orWNQMTbDx9tKPLIMZTiDXLA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"vue": "^3.0.0-beta.1"
},
@@ -2280,171 +1537,65 @@
"vue": "3.x"
}
},
- "node_modules/@trysound/sax": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz",
- "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==",
- "dev": true,
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/@types/babel__core": {
- "version": "7.20.1",
- "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz",
- "integrity": "sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==",
- "dev": true,
- "dependencies": {
- "@babel/parser": "^7.20.7",
- "@babel/types": "^7.20.7",
- "@types/babel__generator": "*",
- "@types/babel__template": "*",
- "@types/babel__traverse": "*"
- }
- },
- "node_modules/@types/babel__generator": {
- "version": "7.6.4",
- "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz",
- "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.0.0"
- }
- },
- "node_modules/@types/babel__template": {
- "version": "7.4.1",
- "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz",
- "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==",
- "dev": true,
- "dependencies": {
- "@babel/parser": "^7.1.0",
- "@babel/types": "^7.0.0"
- }
- },
- "node_modules/@types/babel__traverse": {
- "version": "7.20.1",
- "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.1.tgz",
- "integrity": "sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.20.7"
- }
- },
- "node_modules/@types/body-parser": {
- "version": "1.19.2",
- "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz",
- "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==",
- "dev": true,
- "dependencies": {
- "@types/connect": "*",
- "@types/node": "*"
- }
- },
- "node_modules/@types/bonjour": {
- "version": "3.5.10",
- "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz",
- "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
- },
"node_modules/@types/bootstrap": {
- "version": "5.2.6",
- "resolved": "https://registry.npmjs.org/@types/bootstrap/-/bootstrap-5.2.6.tgz",
- "integrity": "sha512-BlAc3YATdasbHoxMoBWODrSF6qwQO/E9X8wVxCCSa6rWjnaZfpkr2N6pUMCY6jj2+wf0muUtLySbvU9etX6YqA==",
+ "version": "5.2.10",
+ "resolved": "https://registry.npmjs.org/@types/bootstrap/-/bootstrap-5.2.10.tgz",
+ "integrity": "sha512-F2X+cd6551tep0MvVZ6nM8v7XgGN/twpdNDjqS1TUM7YFNEtQYWk+dKAnH+T1gr6QgCoGMPl487xw/9hXooa2g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@popperjs/core": "^2.9.2"
}
},
- "node_modules/@types/clean-css": {
- "version": "4.2.6",
- "resolved": "https://registry.npmjs.org/@types/clean-css/-/clean-css-4.2.6.tgz",
- "integrity": "sha512-Ze1tf+LnGPmG6hBFMi0B4TEB0mhF7EiMM5oyjLDNPE9hxrPU0W+5+bHvO+eFPA+bt0iC1zkQMoU/iGdRVjcRbw==",
- "dev": true,
- "dependencies": {
- "@types/node": "*",
- "source-map": "^0.6.0"
- }
- },
- "node_modules/@types/connect": {
- "version": "3.4.35",
- "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz",
- "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/connect-history-api-fallback": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz",
- "integrity": "sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig==",
- "dev": true,
- "dependencies": {
- "@types/express-serve-static-core": "*",
- "@types/node": "*"
- }
- },
"node_modules/@types/cropperjs": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@types/cropperjs/-/cropperjs-1.3.0.tgz",
- "integrity": "sha512-U3a/z302duKpXUHfMneFjrWDDoq5n+nsJ/YeJHoTI9LXSBtSsqMUyxEJPIMAzfDawF5nuG5c9FN2gY//ZGl5PA==",
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/@types/cropperjs/-/cropperjs-1.3.3.tgz",
+ "integrity": "sha512-xpX516HBzuFpvprQAB+djtV89eYBGhN8Hxw5jM2DPVW6VMmxW1y2keOcna2sKhlFO+QlqpzaJOINQGvX8ai5WQ==",
"deprecated": "This is a stub types definition. cropperjs provides its own type definitions, so you do not need this installed.",
"dev": true,
+ "license": "MIT",
"dependencies": {
"cropperjs": "*"
}
},
"node_modules/@types/eslint": {
- "version": "8.44.0",
- "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.0.tgz",
- "integrity": "sha512-gsF+c/0XOguWgaOgvFs+xnnRqt9GwgTvIks36WpE6ueeI4KCEHHd8K/CKHqhOqrJKsYH8m27kRzQEvWXAwXUTw==",
+ "version": "8.56.12",
+ "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.12.tgz",
+ "integrity": "sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/estree": "*",
"@types/json-schema": "*"
}
},
"node_modules/@types/eslint-scope": {
- "version": "3.7.4",
- "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz",
- "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==",
+ "version": "3.7.7",
+ "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz",
+ "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
"@types/eslint": "*",
"@types/estree": "*"
}
},
"node_modules/@types/estree": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz",
- "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==",
- "dev": true
- },
- "node_modules/@types/express": {
- "version": "4.17.17",
- "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz",
- "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz",
+ "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==",
"dev": true,
- "dependencies": {
- "@types/body-parser": "*",
- "@types/express-serve-static-core": "^4.17.33",
- "@types/qs": "*",
- "@types/serve-static": "*"
- }
+ "license": "MIT"
},
- "node_modules/@types/express-serve-static-core": {
- "version": "4.17.35",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz",
- "integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==",
+ "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==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/node": "*",
- "@types/qs": "*",
- "@types/range-parser": "*",
- "@types/send": "*"
+ "@types/node": "*"
}
},
"node_modules/@types/glob": {
@@ -2452,209 +1603,78 @@
"resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz",
"integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/minimatch": "*",
"@types/node": "*"
}
},
- "node_modules/@types/http-errors": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.1.tgz",
- "integrity": "sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==",
- "dev": true
- },
- "node_modules/@types/http-proxy": {
- "version": "1.17.11",
- "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.11.tgz",
- "integrity": "sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/imagemin": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/@types/imagemin/-/imagemin-8.0.1.tgz",
- "integrity": "sha512-DSpM//dRPzme7doePGkmR1uoquHi0h0ElaA5qFnxHECfFcB8z/jhMI8eqmxWNpHn9ZG18p4PC918sZLhR0cr5A==",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/imagemin-gifsicle": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/@types/imagemin-gifsicle/-/imagemin-gifsicle-7.0.1.tgz",
- "integrity": "sha512-kUz6sUh0P95JOS0RGEaaemWUrASuw+dLsWIveK2UZJx74id/B9epgblMkCk/r5MjUWbZ83wFvacG5Rb/f97gyA==",
- "dev": true,
- "dependencies": {
- "@types/imagemin": "*"
- }
- },
- "node_modules/@types/imagemin-mozjpeg": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/@types/imagemin-mozjpeg/-/imagemin-mozjpeg-8.0.1.tgz",
- "integrity": "sha512-kMQWEoKxxhlnH4POI3qfW9DjXlQfi80ux3l2b3j5R3eudSCoUIzKQLkfMjNJ6eMYnMWBcB+rfQOWqIzdIwFGKw==",
- "dev": true,
- "dependencies": {
- "@types/imagemin": "*"
- }
- },
- "node_modules/@types/imagemin-optipng": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/@types/imagemin-optipng/-/imagemin-optipng-5.2.1.tgz",
- "integrity": "sha512-XCM/3q+HUL7v4zOqMI+dJ5dTxT+MUukY9KU49DSnYb/4yWtSMHJyADP+WHSMVzTR63J2ZvfUOzSilzBNEQW78g==",
- "dev": true,
- "dependencies": {
- "@types/imagemin": "*"
- }
- },
- "node_modules/@types/imagemin-svgo": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/@types/imagemin-svgo/-/imagemin-svgo-8.0.1.tgz",
- "integrity": "sha512-YafkdrVAcr38U0Ln1C+L1n4SIZqC47VBHTyxCq7gTUSd1R9MdIvMcrljWlgU1M9O68WZDeQWUrKipKYfEOCOvQ==",
- "dev": true,
- "dependencies": {
- "@types/imagemin": "*",
- "@types/svgo": "^1"
- }
- },
"node_modules/@types/json-schema": {
- "version": "7.0.12",
- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz",
- "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==",
- "dev": true
+ "version": "7.0.15",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
+ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/@types/mime": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz",
- "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==",
- "dev": true
+ "node_modules/@types/json5": {
+ "version": "0.0.29",
+ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
+ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true
},
"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==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/minimist": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz",
- "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==",
- "dev": true
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/node": {
- "version": "20.4.2",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.2.tgz",
- "integrity": "sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw==",
- "dev": true
+ "version": "20.17.48",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.48.tgz",
+ "integrity": "sha512-KpSfKOHPsiSC4IkZeu2LsusFwExAIVGkhG1KkbaBMLwau0uMhj0fCrvyg9ddM2sAvd+gtiBJLir4LAw1MNMIaw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~6.19.2"
+ }
},
"node_modules/@types/normalize-package-data": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz",
- "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==",
- "dev": true
- },
- "node_modules/@types/parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
- "dev": true
- },
- "node_modules/@types/qs": {
- "version": "6.9.7",
- "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz",
- "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==",
- "dev": true
- },
- "node_modules/@types/range-parser": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz",
- "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==",
- "dev": true
- },
- "node_modules/@types/retry": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz",
- "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==",
- "dev": true
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz",
+ "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/semver": {
- "version": "7.5.0",
- "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz",
- "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==",
- "dev": true
- },
- "node_modules/@types/send": {
- "version": "0.17.1",
- "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz",
- "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==",
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.0.tgz",
+ "integrity": "sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==",
"dev": true,
- "dependencies": {
- "@types/mime": "^1",
- "@types/node": "*"
- }
- },
- "node_modules/@types/serve-index": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz",
- "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==",
- "dev": true,
- "dependencies": {
- "@types/express": "*"
- }
- },
- "node_modules/@types/serve-static": {
- "version": "1.15.2",
- "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.2.tgz",
- "integrity": "sha512-J2LqtvFYCzaj8pVYKw8klQXrLLk7TBZmQ4ShlcdkELFKGwGMfevMLneMMRkMgZxotOD9wg497LpC7O8PcvAmfw==",
- "dev": true,
- "dependencies": {
- "@types/http-errors": "*",
- "@types/mime": "*",
- "@types/node": "*"
- }
- },
- "node_modules/@types/sockjs": {
- "version": "0.3.33",
- "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz",
- "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/svgo": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/@types/svgo/-/svgo-1.3.6.tgz",
- "integrity": "sha512-AZU7vQcy/4WFEuwnwsNsJnFwupIpbllH1++LXScN6uxT1Z4zPzdrWG97w4/I7eFKFTvfy/bHFStWjdBAg2Vjug==",
- "dev": true
+ "license": "MIT"
},
"node_modules/@types/toastify-js": {
- "version": "1.12.0",
- "resolved": "https://registry.npmjs.org/@types/toastify-js/-/toastify-js-1.12.0.tgz",
- "integrity": "sha512-fqpDHaKhFukN9KRm24bbH0wozvHmSwjvkaLjBUrWcSfSS4zysIwTYqNLG3XbSNhRlsTNRNLGS23tp/VhPwsfHQ==",
- "dev": true
- },
- "node_modules/@types/webpack-env": {
- "version": "1.18.1",
- "resolved": "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.18.1.tgz",
- "integrity": "sha512-D0HJET2/UY6k9L6y3f5BL+IDxZmPkYmPT4+qBrRdmRLYRuV0qNKizMgTvYxXZYn+36zjPeoDZAEYBCM6XB+gww==",
- "dev": true
- },
- "node_modules/@types/ws": {
- "version": "8.5.5",
- "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.5.tgz",
- "integrity": "sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==",
+ "version": "1.12.4",
+ "resolved": "https://registry.npmjs.org/@types/toastify-js/-/toastify-js-1.12.4.tgz",
+ "integrity": "sha512-zfZHU4tKffPCnZRe7pjv/eFKzTVHozKewFCKaCjZ4gFinKgJRz/t0bkZiMCXJxPhv/ZoeDGNOeRD09R0kQZ/nw==",
"dev": true,
- "dependencies": {
- "@types/node": "*"
- }
+ "license": "MIT"
},
"node_modules/@typescript-eslint/eslint-plugin": {
"version": "5.62.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz",
"integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@eslint-community/regexpp": "^4.4.0",
"@typescript-eslint/scope-manager": "5.62.0",
@@ -2684,11 +1704,25 @@
}
}
},
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": {
+ "version": "7.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
+ "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/@typescript-eslint/parser": {
"version": "5.62.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz",
"integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"@typescript-eslint/scope-manager": "5.62.0",
"@typescript-eslint/types": "5.62.0",
@@ -2716,6 +1750,7 @@
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz",
"integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@typescript-eslint/types": "5.62.0",
"@typescript-eslint/visitor-keys": "5.62.0"
@@ -2733,6 +1768,7 @@
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz",
"integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@typescript-eslint/typescript-estree": "5.62.0",
"@typescript-eslint/utils": "5.62.0",
@@ -2760,6 +1796,7 @@
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz",
"integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
@@ -2773,6 +1810,7 @@
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz",
"integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"@typescript-eslint/types": "5.62.0",
"@typescript-eslint/visitor-keys": "5.62.0",
@@ -2795,11 +1833,25 @@
}
}
},
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
+ "version": "7.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
+ "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/@typescript-eslint/utils": {
"version": "5.62.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz",
"integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@types/json-schema": "^7.0.9",
@@ -2821,11 +1873,25 @@
"eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
}
},
+ "node_modules/@typescript-eslint/utils/node_modules/semver": {
+ "version": "7.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
+ "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/@typescript-eslint/visitor-keys": {
"version": "5.62.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz",
"integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@typescript-eslint/types": "5.62.0",
"eslint-visitor-keys": "^3.3.0"
@@ -2838,72 +1904,400 @@
"url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/@vue/compiler-core": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz",
- "integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==",
+ "node_modules/@ungap/structured-clone": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz",
+ "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==",
"dev": true,
+ "license": "ISC"
+ },
+ "node_modules/@vitejs/plugin-basic-ssl": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.2.0.tgz",
+ "integrity": "sha512-mkQnxTkcldAzIsomk1UuLfAu9n+kpQ3JbHcpCp7d2Oo6ITtji8pHS3QToOWjhPFvNQSnhlkAjmGbhv2QvwO/7Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.21.3"
+ },
+ "peerDependencies": {
+ "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0"
+ }
+ },
+ "node_modules/@vitejs/plugin-vue": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.6.2.tgz",
+ "integrity": "sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "vite": "^4.0.0 || ^5.0.0",
+ "vue": "^3.2.25"
+ }
+ },
+ "node_modules/@volar/language-core": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.11.1.tgz",
+ "integrity": "sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/parser": "^7.21.3",
- "@vue/shared": "3.3.4",
+ "@volar/source-map": "1.11.1"
+ }
+ },
+ "node_modules/@volar/source-map": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.11.1.tgz",
+ "integrity": "sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "muggle-string": "^0.3.1"
+ }
+ },
+ "node_modules/@volar/typescript": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.11.1.tgz",
+ "integrity": "sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@volar/language-core": "1.11.1",
+ "path-browserify": "^1.0.1"
+ }
+ },
+ "node_modules/@vue/compiler-core": {
+ "version": "3.5.14",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.14.tgz",
+ "integrity": "sha512-k7qMHMbKvoCXIxPhquKQVw3Twid3Kg4s7+oYURxLGRd56LiuHJVrvFKI4fm2AM3c8apqODPfVJGoh8nePbXMRA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.27.2",
+ "@vue/shared": "3.5.14",
+ "entities": "^4.5.0",
"estree-walker": "^2.0.2",
- "source-map-js": "^1.0.2"
+ "source-map-js": "^1.2.1"
}
},
"node_modules/@vue/compiler-dom": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz",
- "integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==",
+ "version": "3.5.14",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.14.tgz",
+ "integrity": "sha512-1aOCSqxGOea5I80U2hQJvXYpPm/aXo95xL/m/mMhgyPUsKe9jhjwWpziNAw7tYRnbz1I61rd9Mld4W9KmmRoug==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@vue/compiler-core": "3.3.4",
- "@vue/shared": "3.3.4"
+ "@vue/compiler-core": "3.5.14",
+ "@vue/shared": "3.5.14"
}
},
"node_modules/@vue/compiler-sfc": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz",
- "integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==",
+ "version": "3.5.14",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.14.tgz",
+ "integrity": "sha512-9T6m/9mMr81Lj58JpzsiSIjBgv2LiVoWjIVa7kuXHICUi8LiDSIotMpPRXYJsXKqyARrzjT24NAwttrMnMaCXA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/parser": "^7.20.15",
- "@vue/compiler-core": "3.3.4",
- "@vue/compiler-dom": "3.3.4",
- "@vue/compiler-ssr": "3.3.4",
- "@vue/reactivity-transform": "3.3.4",
- "@vue/shared": "3.3.4",
+ "@babel/parser": "^7.27.2",
+ "@vue/compiler-core": "3.5.14",
+ "@vue/compiler-dom": "3.5.14",
+ "@vue/compiler-ssr": "3.5.14",
+ "@vue/shared": "3.5.14",
"estree-walker": "^2.0.2",
- "magic-string": "^0.30.0",
- "postcss": "^8.1.10",
- "source-map-js": "^1.0.2"
+ "magic-string": "^0.30.17",
+ "postcss": "^8.5.3",
+ "source-map-js": "^1.2.1"
}
},
"node_modules/@vue/compiler-ssr": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz",
- "integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==",
+ "version": "3.5.14",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.14.tgz",
+ "integrity": "sha512-Y0G7PcBxr1yllnHuS/NxNCSPWnRGH4Ogrp0tsLA5QemDZuJLs99YjAKQ7KqkHE0vCg4QTKlQzXLKCMF7WPSl7Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@vue/compiler-dom": "3.3.4",
- "@vue/shared": "3.3.4"
+ "@vue/compiler-dom": "3.5.14",
+ "@vue/shared": "3.5.14"
}
},
"node_modules/@vue/eslint-config-typescript": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-11.0.3.tgz",
- "integrity": "sha512-dkt6W0PX6H/4Xuxg/BlFj5xHvksjpSlVjtkQCpaYJBIEuKj2hOVU7r+TIe+ysCwRYFz/lGqvklntRkCAibsbPw==",
+ "version": "13.0.0",
+ "resolved": "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-13.0.0.tgz",
+ "integrity": "sha512-MHh9SncG/sfqjVqjcuFLOLD6Ed4dRAis4HNt0dXASeAuLqIAx4YMB1/m2o4pUKK1vCt8fUvYG8KKX2Ot3BVZTg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@typescript-eslint/eslint-plugin": "^5.59.1",
- "@typescript-eslint/parser": "^5.59.1",
- "vue-eslint-parser": "^9.1.1"
+ "@typescript-eslint/eslint-plugin": "^7.1.1",
+ "@typescript-eslint/parser": "^7.1.1",
+ "vue-eslint-parser": "^9.3.1"
},
"engines": {
- "node": "^14.17.0 || >=16.0.0"
+ "node": "^18.18.0 || >=20.0.0"
},
"peerDependencies": {
- "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0",
+ "eslint": "^8.56.0",
"eslint-plugin-vue": "^9.0.0",
+ "typescript": ">=4.7.4"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@vue/eslint-config-typescript/node_modules/@typescript-eslint/eslint-plugin": {
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz",
+ "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@eslint-community/regexpp": "^4.10.0",
+ "@typescript-eslint/scope-manager": "7.18.0",
+ "@typescript-eslint/type-utils": "7.18.0",
+ "@typescript-eslint/utils": "7.18.0",
+ "@typescript-eslint/visitor-keys": "7.18.0",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.3.1",
+ "natural-compare": "^1.4.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/@vue/eslint-config-typescript/node_modules/@typescript-eslint/parser": {
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz",
+ "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "@typescript-eslint/scope-manager": "7.18.0",
+ "@typescript-eslint/types": "7.18.0",
+ "@typescript-eslint/typescript-estree": "7.18.0",
+ "@typescript-eslint/visitor-keys": "7.18.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/@vue/eslint-config-typescript/node_modules/@typescript-eslint/scope-manager": {
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz",
+ "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/types": "7.18.0",
+ "@typescript-eslint/visitor-keys": "7.18.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@vue/eslint-config-typescript/node_modules/@typescript-eslint/type-utils": {
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz",
+ "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/typescript-estree": "7.18.0",
+ "@typescript-eslint/utils": "7.18.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/@vue/eslint-config-typescript/node_modules/@typescript-eslint/types": {
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz",
+ "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@vue/eslint-config-typescript/node_modules/@typescript-eslint/typescript-estree": {
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz",
+ "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "@typescript-eslint/types": "7.18.0",
+ "@typescript-eslint/visitor-keys": "7.18.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/@vue/eslint-config-typescript/node_modules/@typescript-eslint/utils": {
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz",
+ "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "@typescript-eslint/scope-manager": "7.18.0",
+ "@typescript-eslint/types": "7.18.0",
+ "@typescript-eslint/typescript-estree": "7.18.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/@vue/eslint-config-typescript/node_modules/@typescript-eslint/visitor-keys": {
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz",
+ "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/types": "7.18.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/@vue/eslint-config-typescript/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/@vue/eslint-config-typescript/node_modules/minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "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/@vue/eslint-config-typescript/node_modules/semver": {
+ "version": "7.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
+ "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@vue/language-core": {
+ "version": "1.8.27",
+ "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-1.8.27.tgz",
+ "integrity": "sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@volar/language-core": "~1.11.1",
+ "@volar/source-map": "~1.11.1",
+ "@vue/compiler-dom": "^3.3.0",
+ "@vue/shared": "^3.3.0",
+ "computeds": "^0.0.1",
+ "minimatch": "^9.0.3",
+ "muggle-string": "^0.3.1",
+ "path-browserify": "^1.0.1",
+ "vue-template-compiler": "^2.7.14"
+ },
+ "peerDependencies": {
"typescript": "*"
},
"peerDependenciesMeta": {
@@ -2912,280 +2306,292 @@
}
}
},
- "node_modules/@vue/reactivity": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz",
- "integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==",
+ "node_modules/@vue/language-core/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@vue/shared": "3.3.4"
+ "balanced-match": "^1.0.0"
}
},
- "node_modules/@vue/reactivity-transform": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz",
- "integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==",
+ "node_modules/@vue/language-core/node_modules/minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "@babel/parser": "^7.20.15",
- "@vue/compiler-core": "3.3.4",
- "@vue/shared": "3.3.4",
- "estree-walker": "^2.0.2",
- "magic-string": "^0.30.0"
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@vue/reactivity": {
+ "version": "3.5.14",
+ "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.14.tgz",
+ "integrity": "sha512-7cK1Hp343Fu/SUCCO52vCabjvsYu7ZkOqyYu7bXV9P2yyfjUMUXHZafEbq244sP7gf+EZEz+77QixBTuEqkQQw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@vue/shared": "3.5.14"
}
},
"node_modules/@vue/runtime-core": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz",
- "integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==",
+ "version": "3.5.14",
+ "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.14.tgz",
+ "integrity": "sha512-w9JWEANwHXNgieAhxPpEpJa+0V5G0hz3NmjAZwlOebtfKyp2hKxKF0+qSh0Xs6/PhfGihuSdqMprMVcQU/E6ag==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@vue/reactivity": "3.3.4",
- "@vue/shared": "3.3.4"
+ "@vue/reactivity": "3.5.14",
+ "@vue/shared": "3.5.14"
}
},
"node_modules/@vue/runtime-dom": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz",
- "integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==",
+ "version": "3.5.14",
+ "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.14.tgz",
+ "integrity": "sha512-lCfR++IakeI35TVR80QgOelsUIdcKjd65rWAMfdSlCYnaEY5t3hYwru7vvcWaqmrK+LpI7ZDDYiGU5V3xjMacw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@vue/runtime-core": "3.3.4",
- "@vue/shared": "3.3.4",
- "csstype": "^3.1.1"
+ "@vue/reactivity": "3.5.14",
+ "@vue/runtime-core": "3.5.14",
+ "@vue/shared": "3.5.14",
+ "csstype": "^3.1.3"
}
},
"node_modules/@vue/server-renderer": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz",
- "integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==",
+ "version": "3.5.14",
+ "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.14.tgz",
+ "integrity": "sha512-Rf/ISLqokIvcySIYnv3tNWq40PLpNLDLSJwwVWzG6MNtyIhfbcrAxo5ZL9nARJhqjZyWWa40oRb2IDuejeuv6w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@vue/compiler-ssr": "3.3.4",
- "@vue/shared": "3.3.4"
+ "@vue/compiler-ssr": "3.5.14",
+ "@vue/shared": "3.5.14"
},
"peerDependencies": {
- "vue": "3.3.4"
+ "vue": "3.5.14"
}
},
"node_modules/@vue/shared": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz",
- "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==",
- "dev": true
+ "version": "3.5.14",
+ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.14.tgz",
+ "integrity": "sha512-oXTwNxVfc9EtP1zzXAlSlgARLXNC84frFYkS0HHz0h3E4WZSP9sywqjqzGCP9Y34M8ipNmd380pVgmMuwELDyQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@vue/tsconfig": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.4.0.tgz",
+ "integrity": "sha512-CPuIReonid9+zOG/CGTT05FXrPYATEqoDGNrEaqS4hwcw5BUNM2FguC0mOwJD4Jr16UpRVl9N0pY3P+srIbqmg==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@webassemblyjs/ast": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz",
- "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==",
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz",
+ "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "@webassemblyjs/helper-numbers": "1.11.6",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.6"
+ "@webassemblyjs/helper-numbers": "1.13.2",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2"
}
},
"node_modules/@webassemblyjs/floating-point-hex-parser": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz",
- "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==",
- "dev": true
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz",
+ "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true
},
"node_modules/@webassemblyjs/helper-api-error": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz",
- "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==",
- "dev": true
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz",
+ "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true
},
"node_modules/@webassemblyjs/helper-buffer": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz",
- "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==",
- "dev": true
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz",
+ "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true
},
"node_modules/@webassemblyjs/helper-numbers": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz",
- "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==",
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz",
+ "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "@webassemblyjs/floating-point-hex-parser": "1.11.6",
- "@webassemblyjs/helper-api-error": "1.11.6",
+ "@webassemblyjs/floating-point-hex-parser": "1.13.2",
+ "@webassemblyjs/helper-api-error": "1.13.2",
"@xtuc/long": "4.2.2"
}
},
"node_modules/@webassemblyjs/helper-wasm-bytecode": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz",
- "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==",
- "dev": true
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz",
+ "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true
},
"node_modules/@webassemblyjs/helper-wasm-section": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz",
- "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==",
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz",
+ "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "@webassemblyjs/ast": "1.11.6",
- "@webassemblyjs/helper-buffer": "1.11.6",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
- "@webassemblyjs/wasm-gen": "1.11.6"
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-buffer": "1.14.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/wasm-gen": "1.14.1"
}
},
"node_modules/@webassemblyjs/ieee754": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz",
- "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==",
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz",
+ "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
"@xtuc/ieee754": "^1.2.0"
}
},
"node_modules/@webassemblyjs/leb128": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz",
- "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==",
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz",
+ "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==",
"dev": true,
+ "license": "Apache-2.0",
+ "peer": true,
"dependencies": {
"@xtuc/long": "4.2.2"
}
},
"node_modules/@webassemblyjs/utf8": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz",
- "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==",
- "dev": true
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz",
+ "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true
},
"node_modules/@webassemblyjs/wasm-edit": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz",
- "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==",
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz",
+ "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "@webassemblyjs/ast": "1.11.6",
- "@webassemblyjs/helper-buffer": "1.11.6",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
- "@webassemblyjs/helper-wasm-section": "1.11.6",
- "@webassemblyjs/wasm-gen": "1.11.6",
- "@webassemblyjs/wasm-opt": "1.11.6",
- "@webassemblyjs/wasm-parser": "1.11.6",
- "@webassemblyjs/wast-printer": "1.11.6"
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-buffer": "1.14.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/helper-wasm-section": "1.14.1",
+ "@webassemblyjs/wasm-gen": "1.14.1",
+ "@webassemblyjs/wasm-opt": "1.14.1",
+ "@webassemblyjs/wasm-parser": "1.14.1",
+ "@webassemblyjs/wast-printer": "1.14.1"
}
},
"node_modules/@webassemblyjs/wasm-gen": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz",
- "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==",
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz",
+ "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "@webassemblyjs/ast": "1.11.6",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
- "@webassemblyjs/ieee754": "1.11.6",
- "@webassemblyjs/leb128": "1.11.6",
- "@webassemblyjs/utf8": "1.11.6"
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/ieee754": "1.13.2",
+ "@webassemblyjs/leb128": "1.13.2",
+ "@webassemblyjs/utf8": "1.13.2"
}
},
"node_modules/@webassemblyjs/wasm-opt": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz",
- "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==",
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz",
+ "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "@webassemblyjs/ast": "1.11.6",
- "@webassemblyjs/helper-buffer": "1.11.6",
- "@webassemblyjs/wasm-gen": "1.11.6",
- "@webassemblyjs/wasm-parser": "1.11.6"
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-buffer": "1.14.1",
+ "@webassemblyjs/wasm-gen": "1.14.1",
+ "@webassemblyjs/wasm-parser": "1.14.1"
}
},
"node_modules/@webassemblyjs/wasm-parser": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz",
- "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==",
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz",
+ "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "@webassemblyjs/ast": "1.11.6",
- "@webassemblyjs/helper-api-error": "1.11.6",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
- "@webassemblyjs/ieee754": "1.11.6",
- "@webassemblyjs/leb128": "1.11.6",
- "@webassemblyjs/utf8": "1.11.6"
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-api-error": "1.13.2",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/ieee754": "1.13.2",
+ "@webassemblyjs/leb128": "1.13.2",
+ "@webassemblyjs/utf8": "1.13.2"
}
},
"node_modules/@webassemblyjs/wast-printer": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz",
- "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==",
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz",
+ "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "@webassemblyjs/ast": "1.11.6",
+ "@webassemblyjs/ast": "1.14.1",
"@xtuc/long": "4.2.2"
}
},
- "node_modules/@webpack-cli/configtest": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz",
- "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==",
- "dev": true,
- "peerDependencies": {
- "webpack": "4.x.x || 5.x.x",
- "webpack-cli": "4.x.x"
- }
- },
- "node_modules/@webpack-cli/info": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz",
- "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==",
- "dev": true,
- "dependencies": {
- "envinfo": "^7.7.3"
- },
- "peerDependencies": {
- "webpack-cli": "4.x.x"
- }
- },
- "node_modules/@webpack-cli/serve": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz",
- "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==",
- "dev": true,
- "peerDependencies": {
- "webpack-cli": "4.x.x"
- },
- "peerDependenciesMeta": {
- "webpack-dev-server": {
- "optional": true
- }
- }
- },
"node_modules/@xtuc/ieee754": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
"integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
- "dev": true
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "peer": true
},
"node_modules/@xtuc/long": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
"integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
- "dev": true
- },
- "node_modules/accepts": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
- "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
"dev": true,
- "dependencies": {
- "mime-types": "~2.1.34",
- "negotiator": "0.6.3"
- },
- "engines": {
- "node": ">= 0.6"
- }
+ "license": "Apache-2.0",
+ "peer": true
},
"node_modules/acorn": {
- "version": "8.10.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz",
- "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==",
+ "version": "8.14.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz",
+ "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==",
"dev": true,
+ "license": "MIT",
"bin": {
"acorn": "bin/acorn"
},
@@ -3193,20 +2599,12 @@
"node": ">=0.4.0"
}
},
- "node_modules/acorn-import-assertions": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz",
- "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==",
- "dev": true,
- "peerDependencies": {
- "acorn": "^8"
- }
- },
"node_modules/acorn-jsx": {
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
"integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
"dev": true,
+ "license": "MIT",
"peerDependencies": {
"acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
}
@@ -3216,6 +2614,7 @@
"resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz",
"integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"loader-utils": "^2.0.0",
"regex-parser": "^2.2.11"
@@ -3229,6 +2628,7 @@
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -3245,6 +2645,8 @@
"resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
"integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
"ajv": "^8.0.0"
},
@@ -3258,15 +2660,17 @@
}
},
"node_modules/ajv-formats/node_modules/ajv": {
- "version": "8.12.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
- "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
+ "version": "8.17.1",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
+ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "fast-deep-equal": "^3.1.1",
+ "fast-deep-equal": "^3.1.3",
+ "fast-uri": "^3.0.1",
"json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
+ "require-from-string": "^2.0.2"
},
"funding": {
"type": "github",
@@ -3277,27 +2681,24 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true
- },
- "node_modules/ajv-keywords": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
- "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
"dev": true,
- "peerDependencies": {
- "ajv": "^6.9.1"
- }
+ "license": "MIT",
+ "peer": true
},
- "node_modules/ansi-html-community": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz",
- "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==",
+ "node_modules/ansi-escapes": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
"dev": true,
- "engines": [
- "node >= 0.8.0"
- ],
- "bin": {
- "ansi-html": "bin/ansi-html"
+ "license": "MIT",
+ "dependencies": {
+ "type-fest": "^0.21.3"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/ansi-regex": {
@@ -3305,6 +2706,7 @@
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -3314,6 +2716,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -3329,6 +2732,7 @@
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
"integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
@@ -3341,30 +2745,143 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
+ "dev": true,
+ "license": "Python-2.0"
},
- "node_modules/array-flatten": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz",
- "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==",
- "dev": true
+ "node_modules/array-buffer-byte-length": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz",
+ "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "call-bound": "^1.0.3",
+ "is-array-buffer": "^3.0.5"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array-includes": {
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz",
+ "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "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",
"resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
"integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
- "node_modules/array-uniq": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
- "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==",
+ "node_modules/array.prototype.findlastindex": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz",
+ "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.4",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.9",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.1.1",
+ "es-shim-unscopables": "^1.1.0"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.flat": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz",
+ "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "call-bind": "^1.0.8",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.5",
+ "es-shim-unscopables": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.flatmap": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz",
+ "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "call-bind": "^1.0.8",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.5",
+ "es-shim-unscopables": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/arraybuffer.prototype.slice": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz",
+ "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.1",
+ "call-bind": "^1.0.8",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.5",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.6",
+ "is-array-buffer": "^3.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/arrify": {
@@ -3372,66 +2889,43 @@
"resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
"integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/asn1.js": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz",
- "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==",
- "dev": true,
- "dependencies": {
- "bn.js": "^4.0.0",
- "inherits": "^2.0.1",
- "minimalistic-assert": "^1.0.0",
- "safer-buffer": "^2.1.0"
- }
- },
- "node_modules/asn1.js/node_modules/bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
- "dev": true
- },
- "node_modules/assert": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz",
- "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==",
- "dev": true,
- "dependencies": {
- "object-assign": "^4.1.1",
- "util": "0.10.3"
- }
- },
- "node_modules/assert/node_modules/inherits": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
- "integrity": "sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==",
- "dev": true
- },
- "node_modules/assert/node_modules/util": {
- "version": "0.10.3",
- "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
- "integrity": "sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ==",
- "dev": true,
- "dependencies": {
- "inherits": "2.0.1"
- }
- },
"node_modules/astral-regex": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
"integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
+ "node_modules/async-function": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz",
+ "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/autoprefixer": {
- "version": "10.4.14",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz",
- "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==",
+ "version": "10.4.21",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz",
+ "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==",
"dev": true,
"funding": [
{
@@ -3441,14 +2935,19 @@
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/autoprefixer"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
}
],
+ "license": "MIT",
"dependencies": {
- "browserslist": "^4.21.5",
- "caniuse-lite": "^1.0.30001464",
- "fraction.js": "^4.2.0",
+ "browserslist": "^4.24.4",
+ "caniuse-lite": "^1.0.30001702",
+ "fraction.js": "^4.3.7",
"normalize-range": "^0.1.2",
- "picocolors": "^1.0.0",
+ "picocolors": "^1.1.1",
"postcss-value-parser": "^4.2.0"
},
"bin": {
@@ -3461,232 +2960,76 @@
"postcss": "^8.1.0"
}
},
- "node_modules/axios": {
- "version": "0.21.4",
- "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
- "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
+ "node_modules/available-typed-arrays": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
+ "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "follow-redirects": "^1.14.0"
- }
- },
- "node_modules/babel-loader": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz",
- "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==",
- "dev": true,
- "dependencies": {
- "find-cache-dir": "^3.3.1",
- "loader-utils": "^2.0.0",
- "make-dir": "^3.1.0",
- "schema-utils": "^2.6.5"
+ "possible-typed-array-names": "^1.0.0"
},
"engines": {
- "node": ">= 8.9"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0",
- "webpack": ">=2"
- }
- },
- "node_modules/babel-loader/node_modules/schema-utils": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz",
- "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==",
- "dev": true,
- "dependencies": {
- "@types/json-schema": "^7.0.5",
- "ajv": "^6.12.4",
- "ajv-keywords": "^3.5.2"
- },
- "engines": {
- "node": ">= 8.9.0"
+ "node": ">= 0.4"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/babel-plugin-polyfill-corejs2": {
- "version": "0.4.4",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.4.tgz",
- "integrity": "sha512-9WeK9snM1BfxB38goUEv2FLnA6ja07UMfazFHzCXUb3NyDZAwfXvQiURQ6guTTMeHcOsdknULm1PDhs4uWtKyA==",
+ "node_modules/axios": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.9.0.tgz",
+ "integrity": "sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/compat-data": "^7.22.6",
- "@babel/helper-define-polyfill-provider": "^0.4.1",
- "@nicolo-ribaudo/semver-v6": "^6.3.3"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/babel-plugin-polyfill-corejs3": {
- "version": "0.8.2",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.2.tgz",
- "integrity": "sha512-Cid+Jv1BrY9ReW9lIfNlNpsI53N+FN7gE+f73zLAUbr9C52W4gKLWSByx47pfDJsEysojKArqOtOKZSVIIUTuQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-define-polyfill-provider": "^0.4.1",
- "core-js-compat": "^3.31.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/babel-plugin-polyfill-regenerator": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.1.tgz",
- "integrity": "sha512-L8OyySuI6OSQ5hFy9O+7zFjyr4WhAfRjLIOkhQGYl+emwJkd/S4XXT1JpfrgR1jrQ1NcGiOh+yAdGlF8pnC3Jw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-define-polyfill-provider": "^0.4.1"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "follow-redirects": "^1.15.6",
+ "form-data": "^4.0.0",
+ "proxy-from-env": "^1.1.0"
}
},
"node_modules/balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "dev": true
- },
- "node_modules/base64-js": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
"dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/batch": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
- "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==",
- "dev": true
+ "license": "MIT"
},
"node_modules/big.js": {
"version": "5.2.2",
"resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
"integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "*"
}
},
"node_modules/binary-extensions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
- }
- },
- "node_modules/bn.js": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
- "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==",
- "dev": true
- },
- "node_modules/body-parser": {
- "version": "1.20.1",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
- "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
- "dev": true,
- "dependencies": {
- "bytes": "3.1.2",
- "content-type": "~1.0.4",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "on-finished": "2.4.1",
- "qs": "6.11.0",
- "raw-body": "2.5.1",
- "type-is": "~1.6.18",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/body-parser/node_modules/bytes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/body-parser/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/body-parser/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "node_modules/body-parser/node_modules/qs": {
- "version": "6.11.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
- "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
- "dev": true,
- "dependencies": {
- "side-channel": "^1.0.4"
- },
- "engines": {
- "node": ">=0.6"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/bonjour-service": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz",
- "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==",
- "dev": true,
- "dependencies": {
- "array-flatten": "^2.1.2",
- "dns-equal": "^1.0.0",
- "fast-deep-equal": "^3.1.3",
- "multicast-dns": "^7.2.5"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/boolbase": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
"integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/bootstrap": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.0.tgz",
- "integrity": "sha512-UnBV3E3v4STVNQdms6jSGO2CvOkjUMdDAVR2V5N4uCMdaIkaQjbcEAMqRimDHIs4uqBYzDAKCQwCB+97tJgHQw==",
+ "version": "5.3.6",
+ "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.6.tgz",
+ "integrity": "sha512-jX0GAcRzvdwISuvArXn3m7KZscWWFAf1MKBcnzaN02qWMb3jpMoUX4/qgeiGzqyIb4ojulRzs89UCUmGcFSzTA==",
"dev": true,
"funding": [
{
@@ -3698,8 +3041,9 @@
"url": "https://opencollective.com/bootstrap"
}
],
+ "license": "MIT",
"peerDependencies": {
- "@popperjs/core": "^2.11.7"
+ "@popperjs/core": "^2.11.8"
}
},
"node_modules/brace-expansion": {
@@ -3707,120 +3051,29 @@
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
"node_modules/braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "fill-range": "^7.0.1"
+ "fill-range": "^7.1.1"
},
"engines": {
"node": ">=8"
}
},
- "node_modules/brorand": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
- "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==",
- "dev": true
- },
- "node_modules/browserify-aes": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
- "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
- "dev": true,
- "dependencies": {
- "buffer-xor": "^1.0.3",
- "cipher-base": "^1.0.0",
- "create-hash": "^1.1.0",
- "evp_bytestokey": "^1.0.3",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/browserify-cipher": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
- "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
- "dev": true,
- "dependencies": {
- "browserify-aes": "^1.0.4",
- "browserify-des": "^1.0.0",
- "evp_bytestokey": "^1.0.0"
- }
- },
- "node_modules/browserify-des": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
- "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
- "dev": true,
- "dependencies": {
- "cipher-base": "^1.0.1",
- "des.js": "^1.0.0",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.1.2"
- }
- },
- "node_modules/browserify-rsa": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz",
- "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==",
- "dev": true,
- "dependencies": {
- "bn.js": "^5.0.0",
- "randombytes": "^2.0.1"
- }
- },
- "node_modules/browserify-sign": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz",
- "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==",
- "dev": true,
- "dependencies": {
- "bn.js": "^5.1.1",
- "browserify-rsa": "^4.0.1",
- "create-hash": "^1.2.0",
- "create-hmac": "^1.1.7",
- "elliptic": "^6.5.3",
- "inherits": "^2.0.4",
- "parse-asn1": "^5.1.5",
- "readable-stream": "^3.6.0",
- "safe-buffer": "^5.2.0"
- }
- },
- "node_modules/browserify-sign/node_modules/readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "dev": true,
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/browserify-zlib": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
- "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
- "dev": true,
- "dependencies": {
- "pako": "~1.0.5"
- }
- },
"node_modules/browserslist": {
- "version": "4.21.9",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz",
- "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==",
+ "version": "4.24.5",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.5.tgz",
+ "integrity": "sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==",
"dev": true,
"funding": [
{
@@ -3836,11 +3089,12 @@
"url": "https://github.com/sponsors/ai"
}
],
+ "license": "MIT",
"dependencies": {
- "caniuse-lite": "^1.0.30001503",
- "electron-to-chromium": "^1.4.431",
- "node-releases": "^2.0.12",
- "update-browserslist-db": "^1.0.11"
+ "caniuse-lite": "^1.0.30001716",
+ "electron-to-chromium": "^1.5.149",
+ "node-releases": "^2.0.19",
+ "update-browserslist-db": "^1.1.3"
},
"bin": {
"browserslist": "cli.js"
@@ -3849,52 +3103,61 @@
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
}
},
- "node_modules/buffer": {
- "version": "4.9.2",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz",
- "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==",
- "dev": true,
- "dependencies": {
- "base64-js": "^1.0.2",
- "ieee754": "^1.1.4",
- "isarray": "^1.0.0"
- }
- },
"node_modules/buffer-from": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
- "dev": true
- },
- "node_modules/buffer-xor": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
- "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==",
- "dev": true
- },
- "node_modules/builtin-status-codes": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
- "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==",
- "dev": true
- },
- "node_modules/bytes": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
- "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==",
"dev": true,
- "engines": {
- "node": ">= 0.8"
- }
+ "license": "MIT",
+ "peer": true
},
"node_modules/call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz",
+ "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
+ "call-bind-apply-helpers": "^1.0.0",
+ "es-define-property": "^1.0.0",
+ "get-intrinsic": "^1.2.4",
+ "set-function-length": "^1.2.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/call-bind-apply-helpers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
+ "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/call-bound": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
+ "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.2",
+ "get-intrinsic": "^1.3.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -3905,25 +3168,19 @@
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
},
- "node_modules/camel-case": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
- "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
- "dev": true,
- "dependencies": {
- "pascal-case": "^3.1.2",
- "tslib": "^2.0.3"
- }
- },
"node_modules/camelcase": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
"dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=6"
}
@@ -3933,6 +3190,9 @@
"resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz",
"integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==",
"dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"camelcase": "^5.3.1",
"map-obj": "^4.0.0",
@@ -3945,22 +3205,10 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/caniuse-api": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz",
- "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==",
- "dev": true,
- "dependencies": {
- "browserslist": "^4.0.0",
- "caniuse-lite": "^1.0.0",
- "lodash.memoize": "^4.1.2",
- "lodash.uniq": "^4.5.0"
- }
- },
"node_modules/caniuse-lite": {
- "version": "1.0.30001517",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001517.tgz",
- "integrity": "sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA==",
+ "version": "1.0.30001718",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001718.tgz",
+ "integrity": "sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw==",
"dev": true,
"funding": [
{
@@ -3975,13 +3223,15 @@
"type": "github",
"url": "https://github.com/sponsors/ai"
}
- ]
+ ],
+ "license": "CC-BY-4.0"
},
"node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -3993,166 +3243,39 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/charenc": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
- "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
"node_modules/chokidar": {
- "version": "3.5.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
- "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
+ "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
"dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://paulmillr.com/funding/"
- }
- ],
+ "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"
+ "readdirp": "^4.0.1"
},
"engines": {
- "node": ">= 8.10.0"
+ "node": ">= 14.16.0"
},
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/chokidar/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
}
},
"node_modules/chrome-trace-event": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz",
- "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz",
+ "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"engines": {
"node": ">=6.0"
}
},
- "node_modules/cipher-base": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
- "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
- "dev": true,
- "dependencies": {
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/clean-css": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz",
- "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==",
- "dev": true,
- "dependencies": {
- "source-map": "~0.6.0"
- },
- "engines": {
- "node": ">= 10.0"
- }
- },
- "node_modules/clean-webpack-plugin": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-4.0.0.tgz",
- "integrity": "sha512-WuWE1nyTNAyW5T7oNyys2EN0cfP2fdRxhxnIQWiAp0bMabPdHhoGxM8A6YL2GhqwgrPnnaemVE7nv5XJ2Fhh2w==",
- "dev": true,
- "dependencies": {
- "del": "^4.1.1"
- },
- "engines": {
- "node": ">=10.0.0"
- },
- "peerDependencies": {
- "webpack": ">=4.0.0 <6.0.0"
- }
- },
- "node_modules/cli-table3": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz",
- "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==",
- "dev": true,
- "dependencies": {
- "string-width": "^4.2.0"
- },
- "engines": {
- "node": "10.* || >= 12.*"
- },
- "optionalDependencies": {
- "@colors/colors": "1.5.0"
- }
- },
- "node_modules/cliui": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
- "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
- "dev": true,
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.1",
- "wrap-ansi": "^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/clone-deep": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
- "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
- "dev": true,
- "dependencies": {
- "is-plain-object": "^2.0.4",
- "kind-of": "^6.0.2",
- "shallow-clone": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/clone-deep/node_modules/is-plain-object": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "dev": true,
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/collect.js": {
- "version": "4.36.1",
- "resolved": "https://registry.npmjs.org/collect.js/-/collect.js-4.36.1.tgz",
- "integrity": "sha512-jd97xWPKgHn6uvK31V6zcyPd40lUJd7gpYxbN2VOVxGWO4tyvS9Li4EpsFjXepGTo2tYcOTC4a8YsbQXMJ4XUw==",
- "dev": true
- },
"node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -4164,282 +3287,107 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/colord": {
"version": "2.9.3",
"resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz",
"integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/colorette": {
- "version": "2.0.20",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
- "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
- "dev": true
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz",
+ "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
},
"node_modules/commander": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
- "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
+ "version": "12.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz",
+ "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 10"
+ "node": ">=18"
}
},
- "node_modules/commondir": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
- "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
- "dev": true
- },
- "node_modules/compressible": {
- "version": "2.0.18",
- "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
- "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
+ "node_modules/computeds": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz",
+ "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==",
"dev": true,
- "dependencies": {
- "mime-db": ">= 1.43.0 < 2"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/compression": {
- "version": "1.7.4",
- "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz",
- "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
- "dev": true,
- "dependencies": {
- "accepts": "~1.3.5",
- "bytes": "3.0.0",
- "compressible": "~2.0.16",
- "debug": "2.6.9",
- "on-headers": "~1.0.2",
- "safe-buffer": "5.1.2",
- "vary": "~1.1.2"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/compression/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/compression/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "node_modules/compression/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
- },
- "node_modules/concat": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/concat/-/concat-1.0.3.tgz",
- "integrity": "sha512-f/ZaH1aLe64qHgTILdldbvyfGiGF4uzeo9IuXUloIOLQzFmIPloy9QbZadNsuVv0j5qbKQvQb/H/UYf2UsKTpw==",
- "dev": true,
- "dependencies": {
- "commander": "^2.9.0"
- },
- "bin": {
- "concat": "bin/concat"
- },
- "engines": {
- "node": ">=6"
- }
+ "license": "MIT"
},
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
- "dev": true
- },
- "node_modules/concat/node_modules/commander": {
- "version": "2.20.3",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
- "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
- "dev": true
- },
- "node_modules/connect-history-api-fallback": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz",
- "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==",
"dev": true,
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/consola": {
- "version": "2.15.3",
- "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz",
- "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==",
- "dev": true
- },
- "node_modules/console-browserify": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz",
- "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==",
- "dev": true
- },
- "node_modules/constants-browserify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
- "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==",
- "dev": true
- },
- "node_modules/content-disposition": {
- "version": "0.5.4",
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
- "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "5.2.1"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/content-type": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
- "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
+ "license": "MIT"
},
"node_modules/convert-source-map": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
- "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
- "dev": true
- },
- "node_modules/cookie": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
- "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
"dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/cookie-signature": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
- "dev": true
- },
- "node_modules/core-js": {
- "version": "3.31.1",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.31.1.tgz",
- "integrity": "sha512-2sKLtfq1eFST7l7v62zaqXacPc7uG8ZAya8ogijLhTtaKNcpzpB4TMoTw2Si+8GYKRwFPMMtUT0263QFWFfqyQ==",
- "dev": true,
- "hasInstallScript": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/core-js"
- }
- },
- "node_modules/core-js-compat": {
- "version": "3.31.1",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.31.1.tgz",
- "integrity": "sha512-wIDWd2s5/5aJSdpOJHfSibxNODxoGoWOBHt8JSPB41NOE94M7kuTPZCYLOlTtuoXTsBPKobpJ6T+y0SSy5L9SA==",
- "dev": true,
- "dependencies": {
- "browserslist": "^4.21.9"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/core-js"
- }
- },
- "node_modules/core-util-is": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
- "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
- "dev": true
+ "license": "MIT"
},
"node_modules/cosmiconfig": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
- "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
+ "version": "8.3.6",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz",
+ "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/parse-json": "^4.0.0",
- "import-fresh": "^3.2.1",
- "parse-json": "^5.0.0",
- "path-type": "^4.0.0",
- "yaml": "^1.10.0"
+ "import-fresh": "^3.3.0",
+ "js-yaml": "^4.1.0",
+ "parse-json": "^5.2.0",
+ "path-type": "^4.0.0"
},
"engines": {
- "node": ">=10"
- }
- },
- "node_modules/create-ecdh": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz",
- "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==",
- "dev": true,
- "dependencies": {
- "bn.js": "^4.1.0",
- "elliptic": "^6.5.3"
- }
- },
- "node_modules/create-ecdh/node_modules/bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
- "dev": true
- },
- "node_modules/create-hash": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
- "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
- "dev": true,
- "dependencies": {
- "cipher-base": "^1.0.1",
- "inherits": "^2.0.1",
- "md5.js": "^1.3.4",
- "ripemd160": "^2.0.1",
- "sha.js": "^2.4.0"
- }
- },
- "node_modules/create-hmac": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
- "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
- "dev": true,
- "dependencies": {
- "cipher-base": "^1.0.3",
- "create-hash": "^1.1.0",
- "inherits": "^2.0.1",
- "ripemd160": "^2.0.0",
- "safe-buffer": "^5.0.1",
- "sha.js": "^2.4.8"
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/d-fischer"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.9.5"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
"node_modules/cropperjs": {
- "version": "1.5.13",
- "resolved": "https://registry.npmjs.org/cropperjs/-/cropperjs-1.5.13.tgz",
- "integrity": "sha512-by7jKAo73y5/Do0K6sxdTKHgndY0NMjG2bEdgeJxycbcmHuCiMXqw8sxy5C5Y5WTOTcDGmbT7Sr5CgKOXR06OA==",
- "dev": true
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/cropperjs/-/cropperjs-1.6.2.tgz",
+ "integrity": "sha512-nhymn9GdnV3CqiEHJVai54TULFAE3VshJTXSqSJKa8yXAKyBKDWdhHarnlIPrshJ0WMFTGuFvG02YjLXfPiuOA==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"path-key": "^3.1.0",
"shebang-command": "^2.0.0",
@@ -4449,158 +3397,28 @@
"node": ">= 8"
}
},
- "node_modules/crypt": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz",
- "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/crypto-browserify": {
- "version": "3.12.0",
- "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
- "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
- "dev": true,
- "dependencies": {
- "browserify-cipher": "^1.0.0",
- "browserify-sign": "^4.0.0",
- "create-ecdh": "^4.0.0",
- "create-hash": "^1.1.0",
- "create-hmac": "^1.1.0",
- "diffie-hellman": "^5.0.0",
- "inherits": "^2.0.1",
- "pbkdf2": "^3.0.3",
- "public-encrypt": "^4.0.0",
- "randombytes": "^2.0.0",
- "randomfill": "^1.0.3"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/css-declaration-sorter": {
- "version": "6.4.1",
- "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz",
- "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==",
- "dev": true,
- "engines": {
- "node": "^10 || ^12 || >=14"
- },
- "peerDependencies": {
- "postcss": "^8.0.9"
- }
- },
"node_modules/css-functions-list": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.0.tgz",
- "integrity": "sha512-d/jBMPyYybkkLVypgtGv12R+pIFw4/f/IHtCTxWpZc8ofTYOPigIgmA6vu5rMHartZC+WuXhBUHfnyNUIQSYrg==",
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.3.tgz",
+ "integrity": "sha512-IQOkD3hbR5KrN93MtcYuad6YPuTSUhntLHDuLEbFWE+ff2/XSZNdZG+LcbbIW5AXKg/WFIfYItIzVoHngHXZzA==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=12.22"
- }
- },
- "node_modules/css-loader": {
- "version": "5.2.7",
- "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-5.2.7.tgz",
- "integrity": "sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg==",
- "dev": true,
- "dependencies": {
- "icss-utils": "^5.1.0",
- "loader-utils": "^2.0.0",
- "postcss": "^8.2.15",
- "postcss-modules-extract-imports": "^3.0.0",
- "postcss-modules-local-by-default": "^4.0.0",
- "postcss-modules-scope": "^3.0.0",
- "postcss-modules-values": "^4.0.0",
- "postcss-value-parser": "^4.1.0",
- "schema-utils": "^3.0.0",
- "semver": "^7.3.5"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^4.27.0 || ^5.0.0"
- }
- },
- "node_modules/css-loader/node_modules/schema-utils": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
- "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
- "dev": true,
- "dependencies": {
- "@types/json-schema": "^7.0.8",
- "ajv": "^6.12.5",
- "ajv-keywords": "^3.5.2"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
- "node_modules/css-select": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz",
- "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
- "dev": true,
- "dependencies": {
- "boolbase": "^1.0.0",
- "css-what": "^6.0.1",
- "domhandler": "^4.3.1",
- "domutils": "^2.8.0",
- "nth-check": "^2.0.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/fb55"
- }
- },
- "node_modules/css-select/node_modules/domhandler": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
- "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
- "dev": true,
- "dependencies": {
- "domelementtype": "^2.2.0"
- },
- "engines": {
- "node": ">= 4"
- },
- "funding": {
- "url": "https://github.com/fb55/domhandler?sponsor=1"
+ "node": ">=12 || >=16"
}
},
"node_modules/css-tree": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz",
- "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==",
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
+ "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "mdn-data": "2.0.14",
- "source-map": "^0.6.1"
+ "mdn-data": "2.0.30",
+ "source-map-js": "^1.0.1"
},
"engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/css-what": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
- "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- },
- "funding": {
- "url": "https://github.com/sponsors/fb55"
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
}
},
"node_modules/cssesc": {
@@ -4608,6 +3426,7 @@
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
"integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
"dev": true,
+ "license": "MIT",
"bin": {
"cssesc": "bin/cssesc"
},
@@ -4615,107 +3434,85 @@
"node": ">=4"
}
},
- "node_modules/cssnano": {
- "version": "5.1.15",
- "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz",
- "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==",
+ "node_modules/csstype": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
"dev": true,
+ "license": "MIT"
+ },
+ "node_modules/data-view-buffer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz",
+ "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "cssnano-preset-default": "^5.2.14",
- "lilconfig": "^2.0.3",
- "yaml": "^1.10.2"
+ "call-bound": "^1.0.3",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.2"
},
"engines": {
- "node": "^10 || ^12 || >=14.0"
+ "node": ">= 0.4"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/cssnano"
- },
- "peerDependencies": {
- "postcss": "^8.2.15"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/cssnano-preset-default": {
- "version": "5.2.14",
- "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz",
- "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==",
+ "node_modules/data-view-byte-length": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz",
+ "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "css-declaration-sorter": "^6.3.1",
- "cssnano-utils": "^3.1.0",
- "postcss-calc": "^8.2.3",
- "postcss-colormin": "^5.3.1",
- "postcss-convert-values": "^5.1.3",
- "postcss-discard-comments": "^5.1.2",
- "postcss-discard-duplicates": "^5.1.0",
- "postcss-discard-empty": "^5.1.1",
- "postcss-discard-overridden": "^5.1.0",
- "postcss-merge-longhand": "^5.1.7",
- "postcss-merge-rules": "^5.1.4",
- "postcss-minify-font-values": "^5.1.0",
- "postcss-minify-gradients": "^5.1.1",
- "postcss-minify-params": "^5.1.4",
- "postcss-minify-selectors": "^5.2.1",
- "postcss-normalize-charset": "^5.1.0",
- "postcss-normalize-display-values": "^5.1.0",
- "postcss-normalize-positions": "^5.1.1",
- "postcss-normalize-repeat-style": "^5.1.1",
- "postcss-normalize-string": "^5.1.0",
- "postcss-normalize-timing-functions": "^5.1.0",
- "postcss-normalize-unicode": "^5.1.1",
- "postcss-normalize-url": "^5.1.0",
- "postcss-normalize-whitespace": "^5.1.1",
- "postcss-ordered-values": "^5.1.3",
- "postcss-reduce-initial": "^5.1.2",
- "postcss-reduce-transforms": "^5.1.0",
- "postcss-svgo": "^5.1.0",
- "postcss-unique-selectors": "^5.1.1"
+ "call-bound": "^1.0.3",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.2"
},
"engines": {
- "node": "^10 || ^12 || >=14.0"
+ "node": ">= 0.4"
},
- "peerDependencies": {
- "postcss": "^8.2.15"
+ "funding": {
+ "url": "https://github.com/sponsors/inspect-js"
}
},
- "node_modules/cssnano-utils": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz",
- "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==",
- "dev": true,
- "engines": {
- "node": "^10 || ^12 || >=14.0"
- },
- "peerDependencies": {
- "postcss": "^8.2.15"
- }
- },
- "node_modules/csso": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz",
- "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==",
+ "node_modules/data-view-byte-offset": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz",
+ "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "css-tree": "^1.1.2"
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
},
"engines": {
- "node": ">=8.0.0"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/csstype": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
- "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==",
- "dev": true
+ "node_modules/de-indent": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz",
+ "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz",
+ "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "ms": "2.1.2"
+ "ms": "^2.1.3"
},
"engines": {
"node": ">=6.0"
@@ -4731,6 +3528,7 @@
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
"integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -4740,6 +3538,7 @@
"resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz",
"integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"decamelize": "^1.1.0",
"map-obj": "^1.0.0"
@@ -4756,6 +3555,7 @@
"resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
"integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -4764,141 +3564,77 @@
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
- "dev": true
- },
- "node_modules/default-gateway": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz",
- "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==",
"dev": true,
+ "license": "MIT"
+ },
+ "node_modules/define-data-property": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "execa": "^5.0.0"
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.0.1"
},
"engines": {
- "node": ">= 10"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/define-lazy-prop": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
- "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/del": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz",
- "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==",
+ "node_modules/define-properties": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
+ "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "@types/glob": "^7.1.1",
- "globby": "^6.1.0",
- "is-path-cwd": "^2.0.0",
- "is-path-in-cwd": "^2.0.0",
- "p-map": "^2.0.0",
- "pify": "^4.0.1",
- "rimraf": "^2.6.3"
+ "define-data-property": "^1.0.1",
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
},
"engines": {
- "node": ">=6"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/del/node_modules/array-union": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
- "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==",
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
"dev": true,
- "dependencies": {
- "array-uniq": "^1.0.1"
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/detect-libc": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "optional": true,
+ "bin": {
+ "detect-libc": "bin/detect-libc.js"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=0.10"
}
},
- "node_modules/del/node_modules/globby": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
- "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==",
- "dev": true,
- "dependencies": {
- "array-union": "^1.0.1",
- "glob": "^7.0.3",
- "object-assign": "^4.0.1",
- "pify": "^2.0.0",
- "pinkie-promise": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/del/node_modules/globby/node_modules/pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/depd": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
- "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/des.js": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz",
- "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==",
- "dev": true,
- "dependencies": {
- "inherits": "^2.0.1",
- "minimalistic-assert": "^1.0.0"
- }
- },
- "node_modules/destroy": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
- "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
- "dev": true,
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/detect-node": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz",
- "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==",
- "dev": true
- },
- "node_modules/diffie-hellman": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
- "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
- "dev": true,
- "dependencies": {
- "bn.js": "^4.1.0",
- "miller-rabin": "^4.0.0",
- "randombytes": "^2.0.0"
- }
- },
- "node_modules/diffie-hellman/node_modules/bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
- "dev": true
- },
"node_modules/dir-glob": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
"integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"path-type": "^4.0.0"
},
@@ -4906,29 +3642,12 @@
"node": ">=8"
}
},
- "node_modules/dns-equal": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz",
- "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==",
- "dev": true
- },
- "node_modules/dns-packet": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.0.tgz",
- "integrity": "sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ==",
- "dev": true,
- "dependencies": {
- "@leichtgewicht/ip-codec": "^2.0.1"
- },
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/doctrine": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
"integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"esutils": "^2.0.2"
},
@@ -4936,188 +3655,58 @@
"node": ">=6.0.0"
}
},
- "node_modules/dom-serializer": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
- "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+ "node_modules/dunder-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
+ "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "domelementtype": "^2.0.1",
- "domhandler": "^4.2.0",
- "entities": "^2.0.0"
- },
- "funding": {
- "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
- }
- },
- "node_modules/dom-serializer/node_modules/domhandler": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
- "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
- "dev": true,
- "dependencies": {
- "domelementtype": "^2.2.0"
+ "call-bind-apply-helpers": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.2.0"
},
"engines": {
- "node": ">= 4"
- },
- "funding": {
- "url": "https://github.com/fb55/domhandler?sponsor=1"
+ "node": ">= 0.4"
}
},
- "node_modules/domain-browser": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
- "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
+ "node_modules/eastasianwidth": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
"dev": true,
- "engines": {
- "node": ">=0.4",
- "npm": ">=1.2"
- }
- },
- "node_modules/domelementtype": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
- "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/fb55"
- }
- ]
- },
- "node_modules/domhandler": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz",
- "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==",
- "dev": true,
- "dependencies": {
- "domelementtype": "^2.0.1"
- },
- "engines": {
- "node": ">= 4"
- },
- "funding": {
- "url": "https://github.com/fb55/domhandler?sponsor=1"
- }
- },
- "node_modules/domutils": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
- "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
- "dev": true,
- "dependencies": {
- "dom-serializer": "^1.0.1",
- "domelementtype": "^2.2.0",
- "domhandler": "^4.2.0"
- },
- "funding": {
- "url": "https://github.com/fb55/domutils?sponsor=1"
- }
- },
- "node_modules/domutils/node_modules/domhandler": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
- "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
- "dev": true,
- "dependencies": {
- "domelementtype": "^2.2.0"
- },
- "engines": {
- "node": ">= 4"
- },
- "funding": {
- "url": "https://github.com/fb55/domhandler?sponsor=1"
- }
- },
- "node_modules/dot-case": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz",
- "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==",
- "dev": true,
- "dependencies": {
- "no-case": "^3.0.4",
- "tslib": "^2.0.3"
- }
- },
- "node_modules/dotenv": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz",
- "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/dotenv-expand": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz",
- "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==",
- "dev": true
- },
- "node_modules/ee-first": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
- "dev": true
+ "license": "MIT"
},
"node_modules/electron-to-chromium": {
- "version": "1.4.464",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.464.tgz",
- "integrity": "sha512-guZ84yoou4+ILNdj0XEbmGs6DEWj6zpVOWYpY09GU66yEb0DSYvP/biBPzHn0GuW/3RC/pnaYNUWlQE1fJYtgA==",
- "dev": true
- },
- "node_modules/elliptic": {
- "version": "6.5.4",
- "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
- "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
+ "version": "1.5.154",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.154.tgz",
+ "integrity": "sha512-G4VCFAyKbp1QJ+sWdXYIRYsPGvlV5sDACfCmoMFog3rjm1syLhI41WXm/swZypwCIWIm4IFLWzHY14joWMQ5Fw==",
"dev": true,
- "dependencies": {
- "bn.js": "^4.11.9",
- "brorand": "^1.1.0",
- "hash.js": "^1.0.0",
- "hmac-drbg": "^1.0.1",
- "inherits": "^2.0.4",
- "minimalistic-assert": "^1.0.1",
- "minimalistic-crypto-utils": "^1.0.1"
- }
- },
- "node_modules/elliptic/node_modules/bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
- "dev": true
+ "license": "ISC"
},
"node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/emojis-list": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
"integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 4"
}
},
- "node_modules/encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/enhanced-resolve": {
- "version": "5.15.0",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz",
- "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==",
+ "version": "5.18.1",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz",
+ "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.4",
"tapable": "^2.2.0"
@@ -5127,61 +3716,239 @@
}
},
"node_modules/entities": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
- "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
"dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.12"
+ },
"funding": {
"url": "https://github.com/fb55/entities?sponsor=1"
}
},
- "node_modules/envinfo": {
- "version": "7.10.0",
- "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.10.0.tgz",
- "integrity": "sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw==",
- "dev": true,
- "bin": {
- "envinfo": "dist/cli.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/error-ex": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
"integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-arrayish": "^0.2.1"
}
},
- "node_modules/es-module-lexer": {
+ "node_modules/es-abstract": {
+ "version": "1.23.9",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz",
+ "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.2",
+ "arraybuffer.prototype.slice": "^1.0.4",
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.3",
+ "data-view-buffer": "^1.0.2",
+ "data-view-byte-length": "^1.0.2",
+ "data-view-byte-offset": "^1.0.1",
+ "es-define-property": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "es-set-tostringtag": "^2.1.0",
+ "es-to-primitive": "^1.3.0",
+ "function.prototype.name": "^1.1.8",
+ "get-intrinsic": "^1.2.7",
+ "get-proto": "^1.0.0",
+ "get-symbol-description": "^1.1.0",
+ "globalthis": "^1.0.4",
+ "gopd": "^1.2.0",
+ "has-property-descriptors": "^1.0.2",
+ "has-proto": "^1.2.0",
+ "has-symbols": "^1.1.0",
+ "hasown": "^2.0.2",
+ "internal-slot": "^1.1.0",
+ "is-array-buffer": "^3.0.5",
+ "is-callable": "^1.2.7",
+ "is-data-view": "^1.0.2",
+ "is-regex": "^1.2.1",
+ "is-shared-array-buffer": "^1.0.4",
+ "is-string": "^1.1.1",
+ "is-typed-array": "^1.1.15",
+ "is-weakref": "^1.1.0",
+ "math-intrinsics": "^1.1.0",
+ "object-inspect": "^1.13.3",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.7",
+ "own-keys": "^1.0.1",
+ "regexp.prototype.flags": "^1.5.3",
+ "safe-array-concat": "^1.1.3",
+ "safe-push-apply": "^1.0.0",
+ "safe-regex-test": "^1.1.0",
+ "set-proto": "^1.0.0",
+ "string.prototype.trim": "^1.2.10",
+ "string.prototype.trimend": "^1.0.9",
+ "string.prototype.trimstart": "^1.0.8",
+ "typed-array-buffer": "^1.0.3",
+ "typed-array-byte-length": "^1.0.3",
+ "typed-array-byte-offset": "^1.0.4",
+ "typed-array-length": "^1.0.7",
+ "unbox-primitive": "^1.1.0",
+ "which-typed-array": "^1.1.18"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/es-define-property": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
+ "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-errors": {
"version": "1.3.0",
- "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz",
- "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==",
- "dev": true
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-module-lexer": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz",
+ "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/es-object-atoms": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
+ "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-set-tostringtag": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
+ "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.6",
+ "has-tostringtag": "^1.0.2",
+ "hasown": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-shim-unscopables": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz",
+ "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "hasown": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-to-primitive": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz",
+ "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "is-callable": "^1.2.7",
+ "is-date-object": "^1.0.5",
+ "is-symbol": "^1.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/esbuild": {
+ "version": "0.18.20",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz",
+ "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "optionalDependencies": {
+ "@esbuild/android-arm": "0.18.20",
+ "@esbuild/android-arm64": "0.18.20",
+ "@esbuild/android-x64": "0.18.20",
+ "@esbuild/darwin-arm64": "0.18.20",
+ "@esbuild/darwin-x64": "0.18.20",
+ "@esbuild/freebsd-arm64": "0.18.20",
+ "@esbuild/freebsd-x64": "0.18.20",
+ "@esbuild/linux-arm": "0.18.20",
+ "@esbuild/linux-arm64": "0.18.20",
+ "@esbuild/linux-ia32": "0.18.20",
+ "@esbuild/linux-loong64": "0.18.20",
+ "@esbuild/linux-mips64el": "0.18.20",
+ "@esbuild/linux-ppc64": "0.18.20",
+ "@esbuild/linux-riscv64": "0.18.20",
+ "@esbuild/linux-s390x": "0.18.20",
+ "@esbuild/linux-x64": "0.18.20",
+ "@esbuild/netbsd-x64": "0.18.20",
+ "@esbuild/openbsd-x64": "0.18.20",
+ "@esbuild/sunos-x64": "0.18.20",
+ "@esbuild/win32-arm64": "0.18.20",
+ "@esbuild/win32-ia32": "0.18.20",
+ "@esbuild/win32-x64": "0.18.20"
+ }
},
"node_modules/escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
},
- "node_modules/escape-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
- "dev": true
- },
"node_modules/escape-string-regexp": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
"integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10"
},
@@ -5190,27 +3957,30 @@
}
},
"node_modules/eslint": {
- "version": "8.45.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.45.0.tgz",
- "integrity": "sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw==",
+ "version": "8.57.1",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz",
+ "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==",
+ "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
- "@eslint-community/regexpp": "^4.4.0",
- "@eslint/eslintrc": "^2.1.0",
- "@eslint/js": "8.44.0",
- "@humanwhocodes/config-array": "^0.11.10",
+ "@eslint-community/regexpp": "^4.6.1",
+ "@eslint/eslintrc": "^2.1.4",
+ "@eslint/js": "8.57.1",
+ "@humanwhocodes/config-array": "^0.13.0",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
- "ajv": "^6.10.0",
+ "@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.0",
- "eslint-visitor-keys": "^3.4.1",
- "espree": "^9.6.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",
@@ -5243,25 +4013,196 @@
"url": "https://opencollective.com/eslint"
}
},
- "node_modules/eslint-plugin-vue": {
- "version": "9.15.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.15.1.tgz",
- "integrity": "sha512-CJE/oZOslvmAR9hf8SClTdQ9JLweghT6JCBQNrT2Iel1uVw0W0OLJxzvPd6CxmABKCvLrtyDnqGV37O7KQv6+A==",
+ "node_modules/eslint-import-resolver-alias": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-alias/-/eslint-import-resolver-alias-1.1.2.tgz",
+ "integrity": "sha512-WdviM1Eu834zsfjHtcGHtGfcu+F30Od3V7I9Fi57uhBEwPkjDcii7/yW8jAT+gOhn4P/vOxxNAXbFAKsrrc15w==",
"dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ },
+ "peerDependencies": {
+ "eslint-plugin-import": ">=1.4.0"
+ }
+ },
+ "node_modules/eslint-import-resolver-node": {
+ "version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
+ "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "@eslint-community/eslint-utils": "^4.3.0",
+ "debug": "^3.2.7",
+ "is-core-module": "^2.13.0",
+ "resolve": "^1.22.4"
+ }
+ },
+ "node_modules/eslint-import-resolver-node/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/eslint-module-utils": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz",
+ "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "debug": "^3.2.7"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependenciesMeta": {
+ "eslint": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint-module-utils/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/eslint-plugin-import": {
+ "version": "2.31.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz",
+ "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@rtsao/scc": "^1.1.0",
+ "array-includes": "^3.1.8",
+ "array.prototype.findlastindex": "^1.2.5",
+ "array.prototype.flat": "^1.3.2",
+ "array.prototype.flatmap": "^1.3.2",
+ "debug": "^3.2.7",
+ "doctrine": "^2.1.0",
+ "eslint-import-resolver-node": "^0.3.9",
+ "eslint-module-utils": "^2.12.0",
+ "hasown": "^2.0.2",
+ "is-core-module": "^2.15.1",
+ "is-glob": "^4.0.3",
+ "minimatch": "^3.1.2",
+ "object.fromentries": "^2.0.8",
+ "object.groupby": "^1.0.3",
+ "object.values": "^1.2.0",
+ "semver": "^6.3.1",
+ "string.prototype.trimend": "^1.0.8",
+ "tsconfig-paths": "^3.15.0"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependencies": {
+ "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9"
+ }
+ },
+ "node_modules/eslint-plugin-import/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/eslint-plugin-import/node_modules/doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "peer": true,
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/eslint-plugin-vue": {
+ "version": "9.33.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.33.0.tgz",
+ "integrity": "sha512-174lJKuNsuDIlLpjeXc5E2Tss8P44uIimAfGD0b90k0NoirJqpG7stLuU9Vp/9ioTOrQdWVREc4mRd1BD+CvGw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "globals": "^13.24.0",
"natural-compare": "^1.4.0",
- "nth-check": "^2.0.1",
- "postcss-selector-parser": "^6.0.9",
- "semver": "^7.3.5",
- "vue-eslint-parser": "^9.3.0",
+ "nth-check": "^2.1.1",
+ "postcss-selector-parser": "^6.0.15",
+ "semver": "^7.6.3",
+ "vue-eslint-parser": "^9.4.3",
"xml-name-validator": "^4.0.0"
},
"engines": {
"node": "^14.17.0 || >=16.0.0"
},
"peerDependencies": {
- "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0"
+ "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0"
+ }
+ },
+ "node_modules/eslint-plugin-vue/node_modules/globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint-plugin-vue/node_modules/semver": {
+ "version": "7.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
+ "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/eslint-plugin-vue/node_modules/type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/eslint-scope": {
@@ -5269,6 +4210,7 @@
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
"integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"esrecurse": "^4.3.0",
"estraverse": "^4.1.1"
@@ -5278,10 +4220,11 @@
}
},
"node_modules/eslint-visitor-keys": {
- "version": "3.4.1",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz",
- "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==",
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
@@ -5289,35 +4232,12 @@
"url": "https://opencollective.com/eslint"
}
},
- "node_modules/eslint-webpack-plugin": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz",
- "integrity": "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==",
- "dev": true,
- "dependencies": {
- "@types/eslint": "^7.29.0 || ^8.4.1",
- "jest-worker": "^28.0.2",
- "micromatch": "^4.0.5",
- "normalize-path": "^3.0.0",
- "schema-utils": "^4.0.0"
- },
- "engines": {
- "node": ">= 12.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "eslint": "^7.0.0 || ^8.0.0",
- "webpack": "^5.0.0"
- }
- },
"node_modules/eslint/node_modules/eslint-scope": {
- "version": "7.2.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.1.tgz",
- "integrity": "sha512-CvefSOsDdaYYvxChovdrPo/ZGt8d5lrJWleAc1diXRKhHGiTYEI26cvo8Kle/wGnsizoCJjK73FMg1/IkIwiNA==",
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
+ "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"esrecurse": "^4.3.0",
"estraverse": "^5.2.0"
@@ -5334,15 +4254,46 @@
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
"integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
"dev": true,
+ "license": "BSD-2-Clause",
"engines": {
"node": ">=4.0"
}
},
+ "node_modules/eslint/node_modules/globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/node_modules/type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/espree": {
"version": "9.6.1",
"resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
"integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"acorn": "^8.9.0",
"acorn-jsx": "^5.3.2",
@@ -5356,10 +4307,11 @@
}
},
"node_modules/esquery": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
- "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
+ "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"estraverse": "^5.1.0"
},
@@ -5372,6 +4324,7 @@
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
"integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
"dev": true,
+ "license": "BSD-2-Clause",
"engines": {
"node": ">=4.0"
}
@@ -5381,6 +4334,7 @@
"resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
"integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"estraverse": "^5.2.0"
},
@@ -5393,6 +4347,7 @@
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
"integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
"dev": true,
+ "license": "BSD-2-Clause",
"engines": {
"node": ">=4.0"
}
@@ -5402,6 +4357,7 @@
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
"integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
"dev": true,
+ "license": "BSD-2-Clause",
"engines": {
"node": ">=4.0"
}
@@ -5410,169 +4366,49 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/esutils": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
"integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
"dev": true,
+ "license": "BSD-2-Clause",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/etag": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/eventemitter3": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
- "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
- "dev": true
- },
"node_modules/events": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
"integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"engines": {
"node": ">=0.8.x"
}
},
- "node_modules/evp_bytestokey": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
- "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
- "dev": true,
- "dependencies": {
- "md5.js": "^1.3.4",
- "safe-buffer": "^5.1.1"
- }
- },
- "node_modules/execa": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
- "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
- "dev": true,
- "dependencies": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^6.0.0",
- "human-signals": "^2.1.0",
- "is-stream": "^2.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^4.0.1",
- "onetime": "^5.1.2",
- "signal-exit": "^3.0.3",
- "strip-final-newline": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/execa?sponsor=1"
- }
- },
- "node_modules/express": {
- "version": "4.18.2",
- "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
- "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
- "dev": true,
- "dependencies": {
- "accepts": "~1.3.8",
- "array-flatten": "1.1.1",
- "body-parser": "1.20.1",
- "content-disposition": "0.5.4",
- "content-type": "~1.0.4",
- "cookie": "0.5.0",
- "cookie-signature": "1.0.6",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "finalhandler": "1.2.0",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "merge-descriptors": "1.0.1",
- "methods": "~1.1.2",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "path-to-regexp": "0.1.7",
- "proxy-addr": "~2.0.7",
- "qs": "6.11.0",
- "range-parser": "~1.2.1",
- "safe-buffer": "5.2.1",
- "send": "0.18.0",
- "serve-static": "1.15.0",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "type-is": "~1.6.18",
- "utils-merge": "1.0.1",
- "vary": "~1.1.2"
- },
- "engines": {
- "node": ">= 0.10.0"
- }
- },
- "node_modules/express/node_modules/array-flatten": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
- "dev": true
- },
- "node_modules/express/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/express/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "node_modules/express/node_modules/qs": {
- "version": "6.11.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
- "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
- "dev": true,
- "dependencies": {
- "side-channel": "^1.0.4"
- },
- "engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/fast-glob": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz",
- "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==",
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
+ "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
"dev": true,
+ "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"
+ "micromatch": "^4.0.8"
},
"engines": {
"node": ">=8.6.0"
@@ -5583,6 +4419,7 @@
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"is-glob": "^4.0.1"
},
@@ -5594,49 +4431,59 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/fast-levenshtein": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
"integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/fast-uri": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz",
+ "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fastify"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fastify"
+ }
+ ],
+ "license": "BSD-3-Clause"
},
"node_modules/fastest-levenshtein": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz",
"integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 4.9.1"
}
},
"node_modules/fastq": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
- "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
+ "version": "1.19.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz",
+ "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"reusify": "^1.0.4"
}
},
- "node_modules/faye-websocket": {
- "version": "0.11.4",
- "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz",
- "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==",
- "dev": true,
- "dependencies": {
- "websocket-driver": ">=0.5.1"
- },
- "engines": {
- "node": ">=0.8.0"
- }
- },
"node_modules/file-entry-cache": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
"integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"flat-cache": "^3.0.4"
},
@@ -5644,58 +4491,12 @@
"node": "^10.12.0 || >=12.0.0"
}
},
- "node_modules/file-loader": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz",
- "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==",
- "dev": true,
- "dependencies": {
- "loader-utils": "^2.0.0",
- "schema-utils": "^3.0.0"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^4.0.0 || ^5.0.0"
- }
- },
- "node_modules/file-loader/node_modules/schema-utils": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
- "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
- "dev": true,
- "dependencies": {
- "@types/json-schema": "^7.0.8",
- "ajv": "^6.12.5",
- "ajv-keywords": "^3.5.2"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
- "node_modules/file-type": {
- "version": "12.4.2",
- "resolved": "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz",
- "integrity": "sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"to-regex-range": "^5.0.1"
},
@@ -5703,61 +4504,12 @@
"node": ">=8"
}
},
- "node_modules/finalhandler": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
- "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
- "dev": true,
- "dependencies": {
- "debug": "2.6.9",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "statuses": "2.0.1",
- "unpipe": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/finalhandler/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/finalhandler/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "node_modules/find-cache-dir": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
- "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==",
- "dev": true,
- "dependencies": {
- "commondir": "^1.0.1",
- "make-dir": "^3.0.2",
- "pkg-dir": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/avajs/find-cache-dir?sponsor=1"
- }
- },
"node_modules/find-up": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
"integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"locate-path": "^6.0.0",
"path-exists": "^4.0.0"
@@ -5770,43 +4522,31 @@
}
},
"node_modules/flat-cache": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
- "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
+ "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "flatted": "^3.1.0",
+ "flatted": "^3.2.9",
+ "keyv": "^4.5.3",
"rimraf": "^3.0.2"
},
"engines": {
"node": "^10.12.0 || >=12.0.0"
}
},
- "node_modules/flat-cache/node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "dev": true,
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/flatted": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
- "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
- "dev": true
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz",
+ "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==",
+ "dev": true,
+ "license": "ISC"
},
"node_modules/follow-redirects": {
- "version": "1.15.2",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
- "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
+ "version": "1.15.9",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz",
+ "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==",
"dev": true,
"funding": [
{
@@ -5814,6 +4554,7 @@
"url": "https://github.com/sponsors/RubenVerborgh"
}
],
+ "license": "MIT",
"engines": {
"node": ">=4.0"
},
@@ -5823,129 +4564,234 @@
}
}
},
- "node_modules/forwarded": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
- "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
+ "node_modules/for-each": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz",
+ "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "is-callable": "^1.2.7"
+ },
"engines": {
- "node": ">= 0.6"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/foreground-child": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz",
+ "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "cross-spawn": "^7.0.6",
+ "signal-exit": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/form-data": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz",
+ "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "es-set-tostringtag": "^2.1.0",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
}
},
"node_modules/fraction.js": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz",
- "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==",
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
+ "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "*"
},
"funding": {
"type": "patreon",
- "url": "https://www.patreon.com/infusion"
- }
- },
- "node_modules/fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
+ "url": "https://github.com/sponsors/rawify"
}
},
"node_modules/fs-extra": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
- "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=6 <7 || >=8"
}
},
- "node_modules/fs-monkey": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.4.tgz",
- "integrity": "sha512-INM/fWAxMICjttnD0DX1rBvinKskj5G1w+oy/pnm9u/tSlnBrzFonJMcalKJ30P8RRsPzKcCG7Q8l0jx5Fh9YQ==",
- "dev": true
- },
"node_modules/fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
- "dev": true
+ "dev": true,
+ "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,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
},
"node_modules/function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
- "dev": true
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/function.prototype.name": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz",
+ "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.3",
+ "define-properties": "^1.2.1",
+ "functions-have-names": "^1.2.3",
+ "hasown": "^2.0.2",
+ "is-callable": "^1.2.7"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/functions-have-names": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
"node_modules/gensync": {
"version": "1.0.0-beta.2",
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
"integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
- "node_modules/get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "dev": true,
- "engines": {
- "node": "6.* || 8.* || >= 10.*"
- }
- },
"node_modules/get-intrinsic": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz",
- "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
+ "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3"
+ "call-bind-apply-helpers": "^1.0.2",
+ "es-define-property": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.1.1",
+ "function-bind": "^1.1.2",
+ "get-proto": "^1.0.1",
+ "gopd": "^1.2.0",
+ "has-symbols": "^1.1.0",
+ "hasown": "^2.0.2",
+ "math-intrinsics": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
+ "node_modules/get-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
+ "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "dunder-proto": "^1.0.1",
+ "es-object-atoms": "^1.0.0"
+ },
"engines": {
- "node": ">=10"
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/get-symbol-description": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz",
+ "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "call-bound": "^1.0.3",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.6"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "version": "10.4.5",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
+ "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
"dev": true,
+ "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"
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^3.1.2",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.1.2",
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^1.11.1"
},
- "engines": {
- "node": "*"
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
@@ -5956,6 +4802,7 @@
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
"integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"is-glob": "^4.0.3"
},
@@ -5967,13 +4814,41 @@
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
"integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
- "dev": true
+ "dev": true,
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/glob/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/glob/node_modules/minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "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/global-modules": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
"integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"global-prefix": "^3.0.0"
},
@@ -5986,6 +4861,7 @@
"resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz",
"integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ini": "^1.3.5",
"kind-of": "^6.0.2",
@@ -6000,6 +4876,7 @@
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"isexe": "^2.0.0"
},
@@ -6008,18 +4885,31 @@
}
},
"node_modules/globals": {
- "version": "13.20.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
- "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
"dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/globalthis": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz",
+ "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "type-fest": "^0.20.2"
+ "define-properties": "^1.2.1",
+ "gopd": "^1.0.1"
},
"engines": {
- "node": ">=8"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/globby": {
@@ -6027,6 +4917,7 @@
"resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
"integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"array-union": "^2.1.0",
"dir-glob": "^3.0.1",
@@ -6046,51 +4937,58 @@
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz",
"integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/gopd": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
+ "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "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==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/graphemer": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
"integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
- "dev": true
- },
- "node_modules/growly": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz",
- "integrity": "sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==",
- "dev": true
- },
- "node_modules/handle-thing": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz",
- "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/hard-rejection": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz",
"integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
},
- "node_modules/has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "node_modules/has-bigints": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz",
+ "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==",
"dev": true,
- "dependencies": {
- "function-bind": "^1.1.1"
- },
+ "license": "MIT",
+ "peer": true,
"engines": {
- "node": ">= 0.4.0"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/has-flag": {
@@ -6098,15 +4996,35 @@
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
- "node_modules/has-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
- "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
+ "node_modules/has-property-descriptors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "es-define-property": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-proto": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz",
+ "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "dunder-proto": "^1.0.0"
+ },
"engines": {
"node": ">= 0.4"
},
@@ -6115,10 +5033,11 @@
}
},
"node_modules/has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
+ "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.4"
},
@@ -6126,48 +5045,40 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/hash-base": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
- "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
+ "node_modules/has-tostringtag": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "inherits": "^2.0.4",
- "readable-stream": "^3.6.0",
- "safe-buffer": "^5.2.0"
+ "has-symbols": "^1.0.3"
},
"engines": {
- "node": ">=4"
- }
- },
- "node_modules/hash-base/node_modules/readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "dev": true,
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
+ "node": ">= 0.4"
},
- "engines": {
- "node": ">= 6"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/hash-sum": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz",
"integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==",
- "dev": true
- },
- "node_modules/hash.js": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
- "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
"dev": true,
+ "license": "MIT"
+ },
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "inherits": "^2.0.3",
- "minimalistic-assert": "^1.0.1"
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
}
},
"node_modules/he": {
@@ -6175,26 +5086,17 @@
"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
"dev": true,
+ "license": "MIT",
"bin": {
"he": "bin/he"
}
},
- "node_modules/hmac-drbg": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
- "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
- "dev": true,
- "dependencies": {
- "hash.js": "^1.0.3",
- "minimalistic-assert": "^1.0.0",
- "minimalistic-crypto-utils": "^1.0.1"
- }
- },
"node_modules/hosted-git-info": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
"integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"lru-cache": "^6.0.0"
},
@@ -6207,6 +5109,7 @@
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"yallist": "^4.0.0"
},
@@ -6218,146 +5121,15 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
- },
- "node_modules/hpack.js": {
- "version": "2.1.6",
- "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz",
- "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==",
"dev": true,
- "dependencies": {
- "inherits": "^2.0.1",
- "obuf": "^1.0.0",
- "readable-stream": "^2.0.1",
- "wbuf": "^1.1.0"
- }
- },
- "node_modules/html-entities": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz",
- "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/mdevils"
- },
- {
- "type": "patreon",
- "url": "https://patreon.com/mdevils"
- }
- ]
- },
- "node_modules/html-loader": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-1.3.2.tgz",
- "integrity": "sha512-DEkUwSd0sijK5PF3kRWspYi56XP7bTNkyg5YWSzBdjaSDmvCufep5c4Vpb3PBf6lUL0YPtLwBfy9fL0t5hBAGA==",
- "dev": true,
- "dependencies": {
- "html-minifier-terser": "^5.1.1",
- "htmlparser2": "^4.1.0",
- "loader-utils": "^2.0.0",
- "schema-utils": "^3.0.0"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^4.0.0 || ^5.0.0"
- }
- },
- "node_modules/html-loader/node_modules/schema-utils": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
- "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
- "dev": true,
- "dependencies": {
- "@types/json-schema": "^7.0.8",
- "ajv": "^6.12.5",
- "ajv-keywords": "^3.5.2"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
- "node_modules/html-minifier-terser": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz",
- "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==",
- "dev": true,
- "dependencies": {
- "camel-case": "^4.1.1",
- "clean-css": "^4.2.3",
- "commander": "^4.1.1",
- "he": "^1.2.0",
- "param-case": "^3.0.3",
- "relateurl": "^0.2.7",
- "terser": "^4.6.3"
- },
- "bin": {
- "html-minifier-terser": "cli.js"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/html-minifier-terser/node_modules/clean-css": {
- "version": "4.2.4",
- "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz",
- "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==",
- "dev": true,
- "dependencies": {
- "source-map": "~0.6.0"
- },
- "engines": {
- "node": ">= 4.0"
- }
- },
- "node_modules/html-minifier-terser/node_modules/commander": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
- "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/html-minifier-terser/node_modules/terser": {
- "version": "4.8.1",
- "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz",
- "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==",
- "dev": true,
- "dependencies": {
- "commander": "^2.20.0",
- "source-map": "~0.6.1",
- "source-map-support": "~0.5.12"
- },
- "bin": {
- "terser": "bin/terser"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/html-minifier-terser/node_modules/terser/node_modules/commander": {
- "version": "2.20.3",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
- "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
- "dev": true
+ "license": "ISC"
},
"node_modules/html-tags": {
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz",
"integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
},
@@ -6365,259 +5137,36 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/htmlparser2": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz",
- "integrity": "sha512-4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q==",
- "dev": true,
- "dependencies": {
- "domelementtype": "^2.0.1",
- "domhandler": "^3.0.0",
- "domutils": "^2.0.0",
- "entities": "^2.0.0"
- }
- },
- "node_modules/http-deceiver": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
- "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==",
- "dev": true
- },
- "node_modules/http-errors": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
- "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
- "dev": true,
- "dependencies": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/http-parser-js": {
- "version": "0.5.8",
- "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz",
- "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==",
- "dev": true
- },
- "node_modules/http-proxy": {
- "version": "1.18.1",
- "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
- "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
- "dev": true,
- "dependencies": {
- "eventemitter3": "^4.0.0",
- "follow-redirects": "^1.0.0",
- "requires-port": "^1.0.0"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/http-proxy-middleware": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz",
- "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==",
- "dev": true,
- "dependencies": {
- "@types/http-proxy": "^1.17.8",
- "http-proxy": "^1.18.1",
- "is-glob": "^4.0.1",
- "is-plain-obj": "^3.0.0",
- "micromatch": "^4.0.2"
- },
- "engines": {
- "node": ">=12.0.0"
- },
- "peerDependencies": {
- "@types/express": "^4.17.13"
- },
- "peerDependenciesMeta": {
- "@types/express": {
- "optional": true
- }
- }
- },
- "node_modules/http-proxy-middleware/node_modules/is-plain-obj": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz",
- "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/https-browserify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
- "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==",
- "dev": true
- },
- "node_modules/human-signals": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
- "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
- "dev": true,
- "engines": {
- "node": ">=10.17.0"
- }
- },
- "node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dev": true,
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/icss-utils": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz",
- "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==",
- "dev": true,
- "engines": {
- "node": "^10 || ^12 || >= 14"
- },
- "peerDependencies": {
- "postcss": "^8.1.0"
- }
- },
- "node_modules/ieee754": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
"node_modules/ignore": {
- "version": "5.2.4",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
- "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
+ "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 4"
}
},
- "node_modules/imagemin": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/imagemin/-/imagemin-7.0.1.tgz",
- "integrity": "sha512-33AmZ+xjZhg2JMCe+vDf6a9mzWukE7l+wAtesjE7KyteqqKjzxv7aVQeWnul1Ve26mWvEQqyPwl0OctNBfSR9w==",
- "dev": true,
- "dependencies": {
- "file-type": "^12.0.0",
- "globby": "^10.0.0",
- "graceful-fs": "^4.2.2",
- "junk": "^3.1.0",
- "make-dir": "^3.0.0",
- "p-pipe": "^3.0.0",
- "replace-ext": "^1.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/imagemin/node_modules/globby": {
- "version": "10.0.2",
- "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz",
- "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==",
- "dev": true,
- "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/img-loader": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/img-loader/-/img-loader-4.0.0.tgz",
- "integrity": "sha512-UwRcPQdwdOyEHyCxe1V9s9YFwInwEWCpoO+kJGfIqDrBDqA8jZUsEZTxQ0JteNPGw/Gupmwesk2OhLTcnw6tnQ==",
- "dev": true,
- "dependencies": {
- "loader-utils": "^1.1.0"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "imagemin": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0"
- }
- },
- "node_modules/img-loader/node_modules/json5": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
- "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
- "dev": true,
- "dependencies": {
- "minimist": "^1.2.0"
- },
- "bin": {
- "json5": "lib/cli.js"
- }
- },
- "node_modules/img-loader/node_modules/loader-utils": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
- "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
- "dev": true,
- "dependencies": {
- "big.js": "^5.2.2",
- "emojis-list": "^3.0.0",
- "json5": "^1.0.1"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
"node_modules/immutability-helper": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/immutability-helper/-/immutability-helper-3.1.1.tgz",
"integrity": "sha512-Q0QaXjPjwIju/28TsugCHNEASwoCcJSyJV3uO1sOIQGI0jKgm9f41Lvz0DZj3n46cNCyAZTsEYoY4C2bVRUzyQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/immutable": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.1.tgz",
- "integrity": "sha512-lj9cnmB/kVS0QHsJnYKD1uo3o39nrbKxszjnqS9Fr6NB7bZzW45U6WSGBPKXDL/CvDKqDNPA4r3DoDQ8GTxo2A==",
- "dev": true
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.2.tgz",
+ "integrity": "sha512-qHKXW1q6liAk1Oys6umoaZbDRqjcjgSrbnrifHsfsttza7zcvRAsL7mMV6xWcyhwQy7Xj5v4hhbr6b+iDYwlmQ==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/import-fresh": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
- "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
+ "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"parent-module": "^1.0.0",
"resolve-from": "^4.0.0"
@@ -6634,34 +5183,17 @@
"resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz",
"integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
- "node_modules/import-local": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz",
- "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==",
- "dev": true,
- "dependencies": {
- "pkg-dir": "^4.2.0",
- "resolve-cwd": "^3.0.0"
- },
- "bin": {
- "import-local-fixture": "fixtures/cli.js"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/imurmurhash": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
"integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.8.19"
}
@@ -6671,6 +5203,9 @@
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
"integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
"dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=8"
}
@@ -6679,53 +5214,114 @@
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
"dev": true,
+ "license": "ISC",
"dependencies": {
"once": "^1.3.0",
"wrappy": "1"
}
},
"node_modules/inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
- "dev": true
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==",
+ "dev": true,
+ "license": "ISC"
},
"node_modules/ini": {
"version": "1.3.8",
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
- "dev": true
- },
- "node_modules/interpret": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz",
- "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==",
"dev": true,
+ "license": "ISC"
+ },
+ "node_modules/internal-slot": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz",
+ "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "hasown": "^2.0.2",
+ "side-channel": "^1.1.0"
+ },
"engines": {
- "node": ">= 0.10"
+ "node": ">= 0.4"
}
},
- "node_modules/ipaddr.js": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz",
- "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==",
+ "node_modules/is-array-buffer": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz",
+ "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.3",
+ "get-intrinsic": "^1.2.6"
+ },
"engines": {
- "node": ">= 10"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/is-arrayish": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
"integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/is-async-function": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz",
+ "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "async-function": "^1.0.0",
+ "call-bound": "^1.0.3",
+ "get-proto": "^1.0.1",
+ "has-tostringtag": "^1.0.2",
+ "safe-regex-test": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-bigint": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz",
+ "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "has-bigints": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
"node_modules/is-binary-path": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"binary-extensions": "^2.0.0"
},
@@ -6733,37 +5329,89 @@
"node": ">=8"
}
},
- "node_modules/is-buffer": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
- "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
- "dev": true
- },
- "node_modules/is-core-module": {
- "version": "2.12.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz",
- "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==",
+ "node_modules/is-boolean-object": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz",
+ "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "has": "^1.0.3"
+ "call-bound": "^1.0.3",
+ "has-tostringtag": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-docker": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
- "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
+ "node_modules/is-callable": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
"dev": true,
- "bin": {
- "is-docker": "cli.js"
- },
+ "license": "MIT",
+ "peer": true,
"engines": {
- "node": ">=8"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-core-module": {
+ "version": "2.16.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
+ "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "hasown": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-data-view": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz",
+ "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "get-intrinsic": "^1.2.6",
+ "is-typed-array": "^1.1.13"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-date-object": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz",
+ "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "has-tostringtag": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/is-extglob": {
@@ -6771,24 +5419,64 @@
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
+ "node_modules/is-finalizationregistry": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz",
+ "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "call-bound": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-fullwidth-code-point": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
+ "node_modules/is-generator-function": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz",
+ "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "call-bound": "^1.0.3",
+ "get-proto": "^1.0.0",
+ "has-tostringtag": "^1.0.2",
+ "safe-regex-test": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-glob": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-extglob": "^2.1.1"
},
@@ -6796,46 +5484,46 @@
"node": ">=0.10.0"
}
},
+ "node_modules/is-map": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",
+ "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.12.0"
}
},
- "node_modules/is-path-cwd": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz",
- "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/is-path-in-cwd": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz",
- "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==",
+ "node_modules/is-number-object": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz",
+ "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "is-path-inside": "^2.1.0"
+ "call-bound": "^1.0.3",
+ "has-tostringtag": "^1.0.2"
},
"engines": {
- "node": ">=6"
- }
- },
- "node_modules/is-path-in-cwd/node_modules/is-path-inside": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz",
- "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==",
- "dev": true,
- "dependencies": {
- "path-is-inside": "^1.0.2"
+ "node": ">= 0.4"
},
- "engines": {
- "node": ">=6"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/is-path-inside": {
@@ -6843,6 +5531,7 @@
"resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
"integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -6852,76 +5541,220 @@
"resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
"integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/is-plain-object": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
- "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
+ "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==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/is-stream": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
- "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
+ "node_modules/is-regex": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz",
+ "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "gopd": "^1.2.0",
+ "has-tostringtag": "^1.0.2",
+ "hasown": "^2.0.2"
+ },
"engines": {
- "node": ">=8"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-wsl": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
- "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
+ "node_modules/is-set": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz",
+ "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-shared-array-buffer": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz",
+ "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "is-docker": "^2.0.0"
+ "call-bound": "^1.0.3"
},
"engines": {
- "node": ">=8"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-string": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz",
+ "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "call-bound": "^1.0.3",
+ "has-tostringtag": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-symbol": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz",
+ "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "has-symbols": "^1.1.0",
+ "safe-regex-test": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-typed-array": {
+ "version": "1.1.15",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz",
+ "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "which-typed-array": "^1.1.16"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-weakmap": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz",
+ "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-weakref": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz",
+ "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "call-bound": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-weakset": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz",
+ "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "call-bound": "^1.0.3",
+ "get-intrinsic": "^1.2.6"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
- "dev": true
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true
},
"node_modules/isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dev": true
- },
- "node_modules/isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
"dev": true,
- "engines": {
- "node": ">=0.10.0"
+ "license": "ISC"
+ },
+ "node_modules/jackspeak": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
+ "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "@isaacs/cliui": "^8.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ },
+ "optionalDependencies": {
+ "@pkgjs/parseargs": "^0.11.0"
}
},
"node_modules/jest-worker": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz",
- "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
"@types/node": "*",
"merge-stream": "^2.0.0",
"supports-color": "^8.0.0"
},
"engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
+ "node": ">= 10.13.0"
}
},
"node_modules/jest-worker/node_modules/supports-color": {
@@ -6929,6 +5762,8 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
"integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -6943,13 +5778,15 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/js-yaml": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
},
@@ -6958,40 +5795,52 @@
}
},
"node_modules/jsesc": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
+ "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
"dev": true,
+ "license": "MIT",
"bin": {
"jsesc": "bin/jsesc"
},
"engines": {
- "node": ">=4"
+ "node": ">=6"
}
},
+ "node_modules/json-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/json-parse-even-better-errors": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
"integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/json-stable-stringify-without-jsonify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
"integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/json5": {
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
"dev": true,
+ "license": "MIT",
"bin": {
"json5": "lib/cli.js"
},
@@ -7000,24 +5849,23 @@
}
},
"node_modules/jsonfile": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
- "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
"dev": true,
- "dependencies": {
- "universalify": "^2.0.0"
- },
+ "license": "MIT",
"optionalDependencies": {
"graceful-fs": "^4.1.6"
}
},
- "node_modules/junk": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz",
- "integrity": "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==",
+ "node_modules/keyv": {
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
"dev": true,
- "engines": {
- "node": ">=8"
+ "license": "MIT",
+ "dependencies": {
+ "json-buffer": "3.0.1"
}
},
"node_modules/kind-of": {
@@ -7025,142 +5873,33 @@
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
"integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/klona": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz",
- "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==",
- "dev": true,
- "engines": {
- "node": ">= 8"
- }
- },
"node_modules/known-css-properties": {
- "version": "0.26.0",
- "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.26.0.tgz",
- "integrity": "sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==",
- "dev": true
- },
- "node_modules/laravel-mix": {
- "version": "6.0.49",
- "resolved": "https://registry.npmjs.org/laravel-mix/-/laravel-mix-6.0.49.tgz",
- "integrity": "sha512-bBMFpFjp26XfijPvY5y9zGKud7VqlyOE0OWUcPo3vTBY5asw8LTjafAbee1dhfLz6PWNqDziz69CP78ELSpfKw==",
+ "version": "0.29.0",
+ "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz",
+ "integrity": "sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==",
"dev": true,
- "dependencies": {
- "@babel/core": "^7.15.8",
- "@babel/plugin-proposal-object-rest-spread": "^7.15.6",
- "@babel/plugin-syntax-dynamic-import": "^7.8.3",
- "@babel/plugin-transform-runtime": "^7.15.8",
- "@babel/preset-env": "^7.15.8",
- "@babel/runtime": "^7.15.4",
- "@types/babel__core": "^7.1.16",
- "@types/clean-css": "^4.2.5",
- "@types/imagemin-gifsicle": "^7.0.1",
- "@types/imagemin-mozjpeg": "^8.0.1",
- "@types/imagemin-optipng": "^5.2.1",
- "@types/imagemin-svgo": "^8.0.0",
- "autoprefixer": "^10.4.0",
- "babel-loader": "^8.2.3",
- "chalk": "^4.1.2",
- "chokidar": "^3.5.2",
- "clean-css": "^5.2.4",
- "cli-table3": "^0.6.0",
- "collect.js": "^4.28.5",
- "commander": "^7.2.0",
- "concat": "^1.0.3",
- "css-loader": "^5.2.6",
- "cssnano": "^5.0.8",
- "dotenv": "^10.0.0",
- "dotenv-expand": "^5.1.0",
- "file-loader": "^6.2.0",
- "fs-extra": "^10.0.0",
- "glob": "^7.2.0",
- "html-loader": "^1.3.2",
- "imagemin": "^7.0.1",
- "img-loader": "^4.0.0",
- "lodash": "^4.17.21",
- "md5": "^2.3.0",
- "mini-css-extract-plugin": "^1.6.2",
- "node-libs-browser": "^2.2.1",
- "postcss-load-config": "^3.1.0",
- "postcss-loader": "^6.2.0",
- "semver": "^7.3.5",
- "strip-ansi": "^6.0.0",
- "style-loader": "^2.0.0",
- "terser": "^5.9.0",
- "terser-webpack-plugin": "^5.2.4",
- "vue-style-loader": "^4.1.3",
- "webpack": "^5.60.0",
- "webpack-cli": "^4.9.1",
- "webpack-dev-server": "^4.7.3",
- "webpack-merge": "^5.8.0",
- "webpack-notifier": "^1.14.1",
- "webpackbar": "^5.0.0-3",
- "yargs": "^17.2.1"
- },
- "bin": {
- "laravel-mix": "bin/cli.js",
- "mix": "bin/cli.js"
- },
- "engines": {
- "node": ">=12.14.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.15.8",
- "@babel/plugin-proposal-object-rest-spread": "^7.15.6",
- "@babel/plugin-syntax-dynamic-import": "^7.8.3",
- "@babel/plugin-transform-runtime": "^7.15.8",
- "@babel/preset-env": "^7.15.8",
- "postcss": "^8.3.11",
- "webpack": "^5.60.0",
- "webpack-cli": "^4.9.1"
- }
+ "license": "MIT"
},
- "node_modules/laravel-mix-clean": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/laravel-mix-clean/-/laravel-mix-clean-0.1.0.tgz",
- "integrity": "sha512-iOgVELzL0zJ2SNEVEmzCoduZ7tBQNWa/ViWXSTg9Z2QVK05Sld2efzTybR82Lu6ohZaA4btr+KsBBw7kt8aqTQ==",
- "dev": true
- },
- "node_modules/laravel-mix-eslint": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/laravel-mix-eslint/-/laravel-mix-eslint-0.2.0.tgz",
- "integrity": "sha512-UwnaCTNaA4jRNTs8wmlXrf7QgTxdi2ZQBgKTB83bEiFCi5wqcR6svSdlfsWIXmUaySPe2Lv07SfYq9YvLXc1tA==",
- "dev": true,
- "peerDependencies": {
- "laravel-mix": ">=2.1.7"
- }
- },
- "node_modules/laravel-mix-polyfill": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/laravel-mix-polyfill/-/laravel-mix-polyfill-3.0.1.tgz",
- "integrity": "sha512-05Oldnhek6jkg9JMl7Nf/qnkwuTOlwR7DLFWntfy98QOx5o/ipmnsayP9qVTxdLZNcBRuMz6Agt9fxZdO2AUJw==",
- "dev": true,
- "dependencies": {
- "core-js": "^2.6.9 || ^3.1.4",
- "regenerator-runtime": "^0.13.2"
- },
- "peerDependencies": {
- "laravel-mix": "^6.0.0"
- }
- },
- "node_modules/laravel-mix-stylelint": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/laravel-mix-stylelint/-/laravel-mix-stylelint-1.0.0.tgz",
- "integrity": "sha512-0FZD/Q0MG4tcu8w3MQrAnnRtOKVdPvGKOgYU9PsDuDIOe+PcWFGQEqjej24TgL7pMrqijfFw+J9vSDJIcA0j7A==",
- "dev": true
- },
- "node_modules/launch-editor": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.0.tgz",
- "integrity": "sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==",
+ "node_modules/laravel-vite-plugin": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-0.8.1.tgz",
+ "integrity": "sha512-fxzUDjOA37kOsYq8dP+3oPIlw8/kJVXwu0hOXLun82R1LpV02shGeWGYKx2lbpKffL5I0sfPPjfqbYxuqBluAA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"picocolors": "^1.0.0",
- "shell-quote": "^1.7.3"
+ "vite-plugin-full-reload": "^1.0.5"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "vite": "^3.0.0 || ^4.0.0"
}
},
"node_modules/levn": {
@@ -7168,6 +5907,7 @@
"resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
"integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"prelude-ls": "^1.2.1",
"type-check": "~0.4.0"
@@ -7176,26 +5916,20 @@
"node": ">= 0.8.0"
}
},
- "node_modules/lilconfig": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
- "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/lines-and-columns": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/loader-runner": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
"integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"engines": {
"node": ">=6.11.5"
}
@@ -7205,6 +5939,7 @@
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
"integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
@@ -7219,6 +5954,7 @@
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
"integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"p-locate": "^5.0.0"
},
@@ -7233,90 +5969,41 @@
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
- "dev": true
- },
- "node_modules/lodash.debounce": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
- "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
- "dev": true
- },
- "node_modules/lodash.memoize": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
- "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/lodash.merge": {
"version": "4.6.2",
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/lodash.truncate": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
"integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==",
- "dev": true
- },
- "node_modules/lodash.uniq": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
- "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==",
- "dev": true
- },
- "node_modules/lower-case": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
- "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
"dev": true,
- "dependencies": {
- "tslib": "^2.0.3"
- }
+ "license": "MIT"
},
"node_modules/lru-cache": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
"integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"yallist": "^3.0.2"
}
},
"node_modules/magic-string": {
- "version": "0.30.1",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.1.tgz",
- "integrity": "sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==",
+ "version": "0.30.17",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz",
+ "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@jridgewell/sourcemap-codec": "^1.4.15"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/make-dir": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
- "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
- "dev": true,
- "dependencies": {
- "semver": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/make-dir/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
+ "@jridgewell/sourcemap-codec": "^1.5.0"
}
},
"node_modules/map-obj": {
@@ -7324,6 +6011,7 @@
"resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz",
"integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
},
@@ -7335,72 +6023,45 @@
"version": "1.2.6",
"resolved": "https://registry.npmjs.org/material-colors/-/material-colors-1.2.6.tgz",
"integrity": "sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/math-intrinsics": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
+ "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
},
"node_modules/mathml-tag-names": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz",
"integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==",
"dev": true,
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
}
},
- "node_modules/md5": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz",
- "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==",
- "dev": true,
- "dependencies": {
- "charenc": "0.0.2",
- "crypt": "0.0.2",
- "is-buffer": "~1.1.6"
- }
- },
- "node_modules/md5.js": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
- "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
- "dev": true,
- "dependencies": {
- "hash-base": "^3.0.0",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.1.2"
- }
- },
"node_modules/mdn-data": {
- "version": "2.0.14",
- "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
- "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==",
- "dev": true
- },
- "node_modules/media-typer": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
- "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
+ "version": "2.0.30",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
+ "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==",
"dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/memfs": {
- "version": "3.5.3",
- "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz",
- "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==",
- "dev": true,
- "dependencies": {
- "fs-monkey": "^1.0.4"
- },
- "engines": {
- "node": ">= 4.0.0"
- }
+ "license": "CC0-1.0"
},
"node_modules/meow": {
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz",
"integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==",
"dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@types/minimist": "^1.2.0",
"camelcase-keys": "^6.2.2",
@@ -7427,6 +6088,9 @@
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz",
"integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=10"
},
@@ -7434,85 +6098,44 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/merge-descriptors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
- "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==",
- "dev": true
- },
"node_modules/merge-stream": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
"integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "peer": true
},
"node_modules/merge2": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
"integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 8"
}
},
- "node_modules/methods": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/micromatch": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
- "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "braces": "^3.0.2",
+ "braces": "^3.0.3",
"picomatch": "^2.3.1"
},
"engines": {
"node": ">=8.6"
}
},
- "node_modules/miller-rabin": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
- "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
- "dev": true,
- "dependencies": {
- "bn.js": "^4.0.0",
- "brorand": "^1.0.1"
- },
- "bin": {
- "miller-rabin": "bin/miller-rabin"
- }
- },
- "node_modules/miller-rabin/node_modules/bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
- "dev": true
- },
- "node_modules/mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "dev": true,
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/mime-db": {
"version": "1.52.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.6"
}
@@ -7522,6 +6145,7 @@
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"mime-db": "1.52.0"
},
@@ -7529,80 +6153,22 @@
"node": ">= 0.6"
}
},
- "node_modules/mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/min-indent": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
"integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
- "node_modules/mini-css-extract-plugin": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.6.2.tgz",
- "integrity": "sha512-WhDvO3SjGm40oV5y26GjMJYjd2UMqrLAGKy5YS2/3QKJy2F7jgynuHTir/tgUUOiNQu5saXHdc8reo7YuhhT4Q==",
- "dev": true,
- "dependencies": {
- "loader-utils": "^2.0.0",
- "schema-utils": "^3.0.0",
- "webpack-sources": "^1.1.0"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^4.4.0 || ^5.0.0"
- }
- },
- "node_modules/mini-css-extract-plugin/node_modules/schema-utils": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
- "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
- "dev": true,
- "dependencies": {
- "@types/json-schema": "^7.0.8",
- "ajv": "^6.12.5",
- "ajv-keywords": "^3.5.2"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
- "node_modules/minimalistic-assert": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
- "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
- "dev": true
- },
- "node_modules/minimalistic-crypto-utils": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
- "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==",
- "dev": true
- },
"node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"brace-expansion": "^1.1.7"
},
@@ -7615,6 +6181,8 @@
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@@ -7624,6 +6192,7 @@
"resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz",
"integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"arrify": "^1.0.1",
"is-plain-obj": "^1.1.0",
@@ -7633,29 +6202,34 @@
"node": ">= 6"
}
},
- "node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "node_modules/multicast-dns": {
- "version": "7.2.5",
- "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz",
- "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==",
+ "node_modules/minipass": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
"dev": true,
- "dependencies": {
- "dns-packet": "^5.2.2",
- "thunky": "^1.0.2"
- },
- "bin": {
- "multicast-dns": "cli.js"
+ "license": "ISC",
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
}
},
+ "node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/muggle-string": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.3.1.tgz",
+ "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/nanoid": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
- "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
+ "version": "3.3.11",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+ "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
"dev": true,
"funding": [
{
@@ -7663,6 +6237,7 @@
"url": "https://github.com/sponsors/ai"
}
],
+ "license": "MIT",
"bin": {
"nanoid": "bin/nanoid.cjs"
},
@@ -7674,104 +6249,44 @@
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
"integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/natural-compare-lite": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz",
"integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==",
- "dev": true
- },
- "node_modules/negotiator": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
"dev": true,
- "engines": {
- "node": ">= 0.6"
- }
+ "license": "MIT"
},
"node_modules/neo-async": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
- "dev": true
- },
- "node_modules/no-case": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
- "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
"dev": true,
- "dependencies": {
- "lower-case": "^2.0.2",
- "tslib": "^2.0.3"
- }
+ "license": "MIT"
},
- "node_modules/node-forge": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz",
- "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==",
+ "node_modules/node-addon-api": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz",
+ "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==",
"dev": true,
- "engines": {
- "node": ">= 6.13.0"
- }
- },
- "node_modules/node-libs-browser": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz",
- "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==",
- "dev": true,
- "dependencies": {
- "assert": "^1.1.1",
- "browserify-zlib": "^0.2.0",
- "buffer": "^4.3.0",
- "console-browserify": "^1.1.0",
- "constants-browserify": "^1.0.0",
- "crypto-browserify": "^3.11.0",
- "domain-browser": "^1.1.1",
- "events": "^3.0.0",
- "https-browserify": "^1.0.0",
- "os-browserify": "^0.3.0",
- "path-browserify": "0.0.1",
- "process": "^0.11.10",
- "punycode": "^1.2.4",
- "querystring-es3": "^0.2.0",
- "readable-stream": "^2.3.3",
- "stream-browserify": "^2.0.1",
- "stream-http": "^2.7.2",
- "string_decoder": "^1.0.0",
- "timers-browserify": "^2.0.4",
- "tty-browserify": "0.0.0",
- "url": "^0.11.0",
- "util": "^0.11.0",
- "vm-browserify": "^1.0.1"
- }
- },
- "node_modules/node-notifier": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-9.0.1.tgz",
- "integrity": "sha512-fPNFIp2hF/Dq7qLDzSg4vZ0J4e9v60gJR+Qx7RbjbWqzPDdEqeVpEx5CFeDAELIl+A/woaaNn1fQ5nEVerMxJg==",
- "dev": true,
- "dependencies": {
- "growly": "^1.3.0",
- "is-wsl": "^2.2.0",
- "semver": "^7.3.2",
- "shellwords": "^0.1.1",
- "uuid": "^8.3.0",
- "which": "^2.0.2"
- }
+ "license": "MIT",
+ "optional": true
},
"node_modules/node-releases": {
- "version": "2.0.13",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz",
- "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==",
- "dev": true
+ "version": "2.0.19",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
+ "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/normalize-package-data": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
"integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"hosted-git-info": "^4.0.1",
"is-core-module": "^2.5.0",
@@ -7782,11 +6297,25 @@
"node": ">=10"
}
},
+ "node_modules/normalize-package-data/node_modules/semver": {
+ "version": "7.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
+ "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/normalize-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -7796,27 +6325,17 @@
"resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
"integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/normalize-url": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz",
- "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/npm-run-path": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
"integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"path-key": "^3.0.0"
},
@@ -7829,6 +6348,7 @@
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
"integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"boolbase": "^1.0.0"
},
@@ -7836,49 +6356,107 @@
"url": "https://github.com/fb55/nth-check?sponsor=1"
}
},
- "node_modules/object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/object-inspect": {
- "version": "1.12.3",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
- "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
+ "version": "1.13.4",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
+ "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/obuf": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz",
- "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==",
- "dev": true
- },
- "node_modules/on-finished": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
- "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
+ "node_modules/object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
"dev": true,
- "dependencies": {
- "ee-first": "1.1.1"
- },
+ "license": "MIT",
+ "peer": true,
"engines": {
- "node": ">= 0.8"
+ "node": ">= 0.4"
}
},
- "node_modules/on-headers": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
- "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
+ "node_modules/object.assign": {
+ "version": "4.1.7",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz",
+ "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.3",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0",
+ "has-symbols": "^1.1.0",
+ "object-keys": "^1.1.1"
+ },
"engines": {
- "node": ">= 0.8"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.fromentries": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz",
+ "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "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.groupby": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz",
+ "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/object.values": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz",
+ "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.3",
+ "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": {
@@ -7886,70 +6464,54 @@
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"wrappy": "1"
}
},
- "node_modules/onetime": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
- "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
- "dev": true,
- "dependencies": {
- "mimic-fn": "^2.1.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/open": {
- "version": "8.4.2",
- "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz",
- "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==",
- "dev": true,
- "dependencies": {
- "define-lazy-prop": "^2.0.0",
- "is-docker": "^2.1.1",
- "is-wsl": "^2.2.0"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/optionator": {
- "version": "0.9.3",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
- "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
+ "version": "0.9.4",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
+ "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@aashutoshrathi/word-wrap": "^1.2.3",
"deep-is": "^0.1.3",
"fast-levenshtein": "^2.0.6",
"levn": "^0.4.1",
"prelude-ls": "^1.2.1",
- "type-check": "^0.4.0"
+ "type-check": "^0.4.0",
+ "word-wrap": "^1.2.5"
},
"engines": {
"node": ">= 0.8.0"
}
},
- "node_modules/os-browserify": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
- "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==",
- "dev": true
+ "node_modules/own-keys": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz",
+ "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "get-intrinsic": "^1.2.6",
+ "object-keys": "^1.1.1",
+ "safe-push-apply": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
"node_modules/p-limit": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
"integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"yocto-queue": "^0.1.0"
},
@@ -7965,6 +6527,7 @@
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
"integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"p-limit": "^3.0.2"
},
@@ -7975,70 +6538,31 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/p-map": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
- "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/p-pipe": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-3.1.0.tgz",
- "integrity": "sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-retry": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz",
- "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==",
- "dev": true,
- "dependencies": {
- "@types/retry": "0.12.0",
- "retry": "^0.13.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/p-try": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
"dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=6"
}
},
- "node_modules/pako": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
- "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
- "dev": true
- },
- "node_modules/param-case": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz",
- "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==",
+ "node_modules/package-json-from-dist": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
+ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
"dev": true,
- "dependencies": {
- "dot-case": "^3.0.4",
- "tslib": "^2.0.3"
- }
+ "license": "BlueOak-1.0.0"
},
"node_modules/parent-module": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
"integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"callsites": "^3.0.0"
},
@@ -8046,24 +6570,12 @@
"node": ">=6"
}
},
- "node_modules/parse-asn1": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz",
- "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==",
- "dev": true,
- "dependencies": {
- "asn1.js": "^5.2.0",
- "browserify-aes": "^1.0.0",
- "evp_bytestokey": "^1.0.0",
- "pbkdf2": "^3.0.3",
- "safe-buffer": "^5.1.1"
- }
- },
"node_modules/parse-json": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
"integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.0.0",
"error-ex": "^1.3.1",
@@ -8077,46 +6589,30 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/parseurl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/pascal-case": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
- "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
- "dev": true,
- "dependencies": {
- "no-case": "^3.0.4",
- "tslib": "^2.0.3"
- }
- },
"node_modules/path": {
"version": "0.12.7",
"resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz",
"integrity": "sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"process": "^0.11.1",
"util": "^0.10.3"
}
},
"node_modules/path-browserify": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz",
- "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==",
- "dev": true
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
+ "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/path-exists": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
"integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -8126,21 +6622,17 @@
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/path-is-inside": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
- "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==",
- "dev": true
- },
"node_modules/path-key": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -8149,65 +6641,57 @@
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "peer": true
},
- "node_modules/path-to-regexp": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
- "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==",
- "dev": true
+ "node_modules/path-scurry": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
+ "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
+ "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.18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/path-scurry/node_modules/lru-cache": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "dev": true,
+ "license": "ISC"
},
"node_modules/path-type": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
"integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
- "node_modules/path/node_modules/inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==",
- "dev": true
- },
- "node_modules/path/node_modules/util": {
- "version": "0.10.4",
- "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
- "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==",
- "dev": true,
- "dependencies": {
- "inherits": "2.0.3"
- }
- },
- "node_modules/pbkdf2": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz",
- "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==",
- "dev": true,
- "dependencies": {
- "create-hash": "^1.1.2",
- "create-hmac": "^1.1.4",
- "ripemd160": "^2.0.1",
- "safe-buffer": "^5.0.1",
- "sha.js": "^2.4.8"
- },
- "engines": {
- "node": ">=0.12"
- }
- },
"node_modules/picocolors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
- "dev": true
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "dev": true,
+ "license": "ISC"
},
"node_modules/picomatch": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8.6"
},
@@ -8215,104 +6699,21 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "node_modules/possible-typed-array-names": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz",
+ "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"engines": {
- "node": ">=6"
- }
- },
- "node_modules/pinkie": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
- "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/pinkie-promise": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
- "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==",
- "dev": true,
- "dependencies": {
- "pinkie": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/pkg-dir": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
- "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
- "dev": true,
- "dependencies": {
- "find-up": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/pkg-dir/node_modules/find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/pkg-dir/node_modules/locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "dependencies": {
- "p-locate": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/pkg-dir/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/pkg-dir/node_modules/p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "dependencies": {
- "p-limit": "^2.2.0"
- },
- "engines": {
- "node": ">=8"
+ "node": ">= 0.4"
}
},
"node_modules/postcss": {
- "version": "8.4.26",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.26.tgz",
- "integrity": "sha512-jrXHFF8iTloAenySjM/ob3gSj7pCu0Ji49hnjqzsgSRa50hkWCKD0HQ+gMNJkW38jBI68MpAAg7ZWwHwX8NMMw==",
+ "version": "8.5.3",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz",
+ "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==",
"dev": true,
"funding": [
{
@@ -8328,516 +6729,49 @@
"url": "https://github.com/sponsors/ai"
}
],
+ "license": "MIT",
"dependencies": {
- "nanoid": "^3.3.6",
- "picocolors": "^1.0.0",
- "source-map-js": "^1.0.2"
+ "nanoid": "^3.3.8",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
},
"engines": {
"node": "^10 || ^12 || >=14"
}
},
- "node_modules/postcss-calc": {
- "version": "8.2.4",
- "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz",
- "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==",
- "dev": true,
- "dependencies": {
- "postcss-selector-parser": "^6.0.9",
- "postcss-value-parser": "^4.2.0"
- },
- "peerDependencies": {
- "postcss": "^8.2.2"
- }
- },
- "node_modules/postcss-colormin": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz",
- "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==",
- "dev": true,
- "dependencies": {
- "browserslist": "^4.21.4",
- "caniuse-api": "^3.0.0",
- "colord": "^2.9.1",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^10 || ^12 || >=14.0"
- },
- "peerDependencies": {
- "postcss": "^8.2.15"
- }
- },
- "node_modules/postcss-convert-values": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz",
- "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==",
- "dev": true,
- "dependencies": {
- "browserslist": "^4.21.4",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^10 || ^12 || >=14.0"
- },
- "peerDependencies": {
- "postcss": "^8.2.15"
- }
- },
"node_modules/postcss-discard-comments": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz",
- "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==",
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz",
+ "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": "^10 || ^12 || >=14.0"
+ "node": "^14 || ^16 || >=18.0"
},
"peerDependencies": {
- "postcss": "^8.2.15"
- }
- },
- "node_modules/postcss-discard-duplicates": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz",
- "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==",
- "dev": true,
- "engines": {
- "node": "^10 || ^12 || >=14.0"
- },
- "peerDependencies": {
- "postcss": "^8.2.15"
- }
- },
- "node_modules/postcss-discard-empty": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz",
- "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==",
- "dev": true,
- "engines": {
- "node": "^10 || ^12 || >=14.0"
- },
- "peerDependencies": {
- "postcss": "^8.2.15"
- }
- },
- "node_modules/postcss-discard-overridden": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz",
- "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==",
- "dev": true,
- "engines": {
- "node": "^10 || ^12 || >=14.0"
- },
- "peerDependencies": {
- "postcss": "^8.2.15"
- }
- },
- "node_modules/postcss-load-config": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz",
- "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==",
- "dev": true,
- "dependencies": {
- "lilconfig": "^2.0.5",
- "yaml": "^1.10.2"
- },
- "engines": {
- "node": ">= 10"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- "peerDependencies": {
- "postcss": ">=8.0.9",
- "ts-node": ">=9.0.0"
- },
- "peerDependenciesMeta": {
- "postcss": {
- "optional": true
- },
- "ts-node": {
- "optional": true
- }
- }
- },
- "node_modules/postcss-loader": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz",
- "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==",
- "dev": true,
- "dependencies": {
- "cosmiconfig": "^7.0.0",
- "klona": "^2.0.5",
- "semver": "^7.3.5"
- },
- "engines": {
- "node": ">= 12.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "postcss": "^7.0.0 || ^8.0.1",
- "webpack": "^5.0.0"
+ "postcss": "^8.4.31"
}
},
"node_modules/postcss-media-query-parser": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz",
"integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==",
- "dev": true
- },
- "node_modules/postcss-merge-longhand": {
- "version": "5.1.7",
- "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz",
- "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==",
"dev": true,
- "dependencies": {
- "postcss-value-parser": "^4.2.0",
- "stylehacks": "^5.1.1"
- },
- "engines": {
- "node": "^10 || ^12 || >=14.0"
- },
- "peerDependencies": {
- "postcss": "^8.2.15"
- }
- },
- "node_modules/postcss-merge-rules": {
- "version": "5.1.4",
- "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz",
- "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==",
- "dev": true,
- "dependencies": {
- "browserslist": "^4.21.4",
- "caniuse-api": "^3.0.0",
- "cssnano-utils": "^3.1.0",
- "postcss-selector-parser": "^6.0.5"
- },
- "engines": {
- "node": "^10 || ^12 || >=14.0"
- },
- "peerDependencies": {
- "postcss": "^8.2.15"
- }
- },
- "node_modules/postcss-minify-font-values": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz",
- "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==",
- "dev": true,
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^10 || ^12 || >=14.0"
- },
- "peerDependencies": {
- "postcss": "^8.2.15"
- }
- },
- "node_modules/postcss-minify-gradients": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz",
- "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==",
- "dev": true,
- "dependencies": {
- "colord": "^2.9.1",
- "cssnano-utils": "^3.1.0",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^10 || ^12 || >=14.0"
- },
- "peerDependencies": {
- "postcss": "^8.2.15"
- }
- },
- "node_modules/postcss-minify-params": {
- "version": "5.1.4",
- "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz",
- "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==",
- "dev": true,
- "dependencies": {
- "browserslist": "^4.21.4",
- "cssnano-utils": "^3.1.0",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^10 || ^12 || >=14.0"
- },
- "peerDependencies": {
- "postcss": "^8.2.15"
- }
- },
- "node_modules/postcss-minify-selectors": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz",
- "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==",
- "dev": true,
- "dependencies": {
- "postcss-selector-parser": "^6.0.5"
- },
- "engines": {
- "node": "^10 || ^12 || >=14.0"
- },
- "peerDependencies": {
- "postcss": "^8.2.15"
- }
- },
- "node_modules/postcss-modules-extract-imports": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz",
- "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==",
- "dev": true,
- "engines": {
- "node": "^10 || ^12 || >= 14"
- },
- "peerDependencies": {
- "postcss": "^8.1.0"
- }
- },
- "node_modules/postcss-modules-local-by-default": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz",
- "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==",
- "dev": true,
- "dependencies": {
- "icss-utils": "^5.0.0",
- "postcss-selector-parser": "^6.0.2",
- "postcss-value-parser": "^4.1.0"
- },
- "engines": {
- "node": "^10 || ^12 || >= 14"
- },
- "peerDependencies": {
- "postcss": "^8.1.0"
- }
- },
- "node_modules/postcss-modules-scope": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz",
- "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==",
- "dev": true,
- "dependencies": {
- "postcss-selector-parser": "^6.0.4"
- },
- "engines": {
- "node": "^10 || ^12 || >= 14"
- },
- "peerDependencies": {
- "postcss": "^8.1.0"
- }
- },
- "node_modules/postcss-modules-values": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz",
- "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==",
- "dev": true,
- "dependencies": {
- "icss-utils": "^5.0.0"
- },
- "engines": {
- "node": "^10 || ^12 || >= 14"
- },
- "peerDependencies": {
- "postcss": "^8.1.0"
- }
- },
- "node_modules/postcss-normalize-charset": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz",
- "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==",
- "dev": true,
- "engines": {
- "node": "^10 || ^12 || >=14.0"
- },
- "peerDependencies": {
- "postcss": "^8.2.15"
- }
- },
- "node_modules/postcss-normalize-display-values": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz",
- "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==",
- "dev": true,
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^10 || ^12 || >=14.0"
- },
- "peerDependencies": {
- "postcss": "^8.2.15"
- }
- },
- "node_modules/postcss-normalize-positions": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz",
- "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==",
- "dev": true,
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^10 || ^12 || >=14.0"
- },
- "peerDependencies": {
- "postcss": "^8.2.15"
- }
- },
- "node_modules/postcss-normalize-repeat-style": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz",
- "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==",
- "dev": true,
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^10 || ^12 || >=14.0"
- },
- "peerDependencies": {
- "postcss": "^8.2.15"
- }
- },
- "node_modules/postcss-normalize-string": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz",
- "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==",
- "dev": true,
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^10 || ^12 || >=14.0"
- },
- "peerDependencies": {
- "postcss": "^8.2.15"
- }
- },
- "node_modules/postcss-normalize-timing-functions": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz",
- "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==",
- "dev": true,
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^10 || ^12 || >=14.0"
- },
- "peerDependencies": {
- "postcss": "^8.2.15"
- }
- },
- "node_modules/postcss-normalize-unicode": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz",
- "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==",
- "dev": true,
- "dependencies": {
- "browserslist": "^4.21.4",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^10 || ^12 || >=14.0"
- },
- "peerDependencies": {
- "postcss": "^8.2.15"
- }
- },
- "node_modules/postcss-normalize-url": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz",
- "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==",
- "dev": true,
- "dependencies": {
- "normalize-url": "^6.0.1",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^10 || ^12 || >=14.0"
- },
- "peerDependencies": {
- "postcss": "^8.2.15"
- }
- },
- "node_modules/postcss-normalize-whitespace": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz",
- "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==",
- "dev": true,
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^10 || ^12 || >=14.0"
- },
- "peerDependencies": {
- "postcss": "^8.2.15"
- }
- },
- "node_modules/postcss-ordered-values": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz",
- "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==",
- "dev": true,
- "dependencies": {
- "cssnano-utils": "^3.1.0",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^10 || ^12 || >=14.0"
- },
- "peerDependencies": {
- "postcss": "^8.2.15"
- }
- },
- "node_modules/postcss-reduce-initial": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz",
- "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==",
- "dev": true,
- "dependencies": {
- "browserslist": "^4.21.4",
- "caniuse-api": "^3.0.0"
- },
- "engines": {
- "node": "^10 || ^12 || >=14.0"
- },
- "peerDependencies": {
- "postcss": "^8.2.15"
- }
- },
- "node_modules/postcss-reduce-transforms": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz",
- "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==",
- "dev": true,
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^10 || ^12 || >=14.0"
- },
- "peerDependencies": {
- "postcss": "^8.2.15"
- }
+ "license": "MIT"
},
"node_modules/postcss-resolve-nested-selector": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz",
- "integrity": "sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==",
- "dev": true
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.6.tgz",
+ "integrity": "sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/postcss-safe-parser": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz",
"integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=12.0"
},
@@ -8850,9 +6784,9 @@
}
},
"node_modules/postcss-scss": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.6.tgz",
- "integrity": "sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ==",
+ "version": "4.0.9",
+ "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz",
+ "integrity": "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==",
"dev": true,
"funding": [
{
@@ -8862,20 +6796,26 @@
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/postcss-scss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
}
],
+ "license": "MIT",
"engines": {
"node": ">=12.0"
},
"peerDependencies": {
- "postcss": "^8.4.19"
+ "postcss": "^8.4.29"
}
},
"node_modules/postcss-selector-parser": {
- "version": "6.0.13",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz",
- "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==",
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
+ "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"cssesc": "^3.0.0",
"util-deprecate": "^1.0.2"
@@ -8885,196 +6825,73 @@
}
},
"node_modules/postcss-sorting": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-5.0.1.tgz",
- "integrity": "sha512-Y9fUFkIhfrm6i0Ta3n+89j56EFqaNRdUKqXyRp6kvTcSXnmgEjaVowCXH+JBe9+YKWqd4nc28r2sgwnzJalccA==",
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-8.0.2.tgz",
+ "integrity": "sha512-M9dkSrmU00t/jK7rF6BZSZauA5MAaBW4i5EnJXspMwt4iqTh/L9j6fgMnbElEOfyRyfLfVbIHj/R52zHzAPe1Q==",
"dev": true,
- "dependencies": {
- "lodash": "^4.17.14",
- "postcss": "^7.0.17"
- },
- "engines": {
- "node": ">=8.7.0"
- }
- },
- "node_modules/postcss-sorting/node_modules/picocolors": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
- "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
- "dev": true
- },
- "node_modules/postcss-sorting/node_modules/postcss": {
- "version": "7.0.39",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
- "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
- "dev": true,
- "dependencies": {
- "picocolors": "^0.2.1",
- "source-map": "^0.6.1"
- },
- "engines": {
- "node": ">=6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- }
- },
- "node_modules/postcss-svgo": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz",
- "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==",
- "dev": true,
- "dependencies": {
- "postcss-value-parser": "^4.2.0",
- "svgo": "^2.7.0"
- },
- "engines": {
- "node": "^10 || ^12 || >=14.0"
- },
+ "license": "MIT",
"peerDependencies": {
- "postcss": "^8.2.15"
- }
- },
- "node_modules/postcss-unique-selectors": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz",
- "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==",
- "dev": true,
- "dependencies": {
- "postcss-selector-parser": "^6.0.5"
- },
- "engines": {
- "node": "^10 || ^12 || >=14.0"
- },
- "peerDependencies": {
- "postcss": "^8.2.15"
+ "postcss": "^8.4.20"
}
},
"node_modules/postcss-value-parser": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/prelude-ls": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
"integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.8.0"
}
},
- "node_modules/prettier": {
- "version": "2.8.8",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
- "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
- "dev": true,
- "bin": {
- "prettier": "bin-prettier.js"
- },
- "engines": {
- "node": ">=10.13.0"
- },
- "funding": {
- "url": "https://github.com/prettier/prettier?sponsor=1"
- }
- },
- "node_modules/pretty-time": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz",
- "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/process": {
"version": "0.11.10",
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
"integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.6.0"
}
},
- "node_modules/process-nextick-args": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
- "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
- "dev": true
- },
- "node_modules/proxy-addr": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
- "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
+ "node_modules/proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
"dev": true,
- "dependencies": {
- "forwarded": "0.2.0",
- "ipaddr.js": "1.9.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/proxy-addr/node_modules/ipaddr.js": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
- "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
- "dev": true,
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/public-encrypt": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
- "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
- "dev": true,
- "dependencies": {
- "bn.js": "^4.1.0",
- "browserify-rsa": "^4.0.0",
- "create-hash": "^1.1.0",
- "parse-asn1": "^5.0.0",
- "randombytes": "^2.0.1",
- "safe-buffer": "^5.1.2"
- }
- },
- "node_modules/public-encrypt/node_modules/bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
- "dev": true
+ "license": "MIT"
},
"node_modules/punycode": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
- "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==",
- "dev": true
- },
- "node_modules/qs": {
- "version": "6.11.2",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz",
- "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==",
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
"dev": true,
- "dependencies": {
- "side-channel": "^1.0.4"
- },
+ "license": "MIT",
"engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=6"
}
},
- "node_modules/querystring-es3": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
- "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==",
+ "node_modules/purgecss": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-6.0.0.tgz",
+ "integrity": "sha512-s3EBxg5RSWmpqd0KGzNqPiaBbWDz1/As+2MzoYVGMqgDqRTLBhJW6sywfTBek7OwNfoS/6pS0xdtvChNhFj2cw==",
"dev": true,
- "engines": {
- "node": ">=0.4.x"
+ "license": "MIT",
+ "dependencies": {
+ "commander": "^12.0.0",
+ "glob": "^10.3.10",
+ "postcss": "^8.4.4",
+ "postcss-selector-parser": "^6.0.7"
+ },
+ "bin": {
+ "purgecss": "bin/purgecss.js"
}
},
"node_modules/queue-microtask": {
@@ -9095,13 +6912,17 @@
"type": "consulting",
"url": "https://feross.org/support"
}
- ]
+ ],
+ "license": "MIT"
},
"node_modules/quick-lru": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz",
"integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==",
"dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=8"
}
@@ -9111,58 +6932,20 @@
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
"integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
"safe-buffer": "^5.1.0"
}
},
- "node_modules/randomfill": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
- "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
- "dev": true,
- "dependencies": {
- "randombytes": "^2.0.5",
- "safe-buffer": "^5.1.0"
- }
- },
- "node_modules/range-parser": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
- "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/raw-body": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
- "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
- "dev": true,
- "dependencies": {
- "bytes": "3.1.2",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/raw-body/node_modules/bytes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/read-pkg": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
"integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
"dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@types/normalize-package-data": "^2.4.0",
"normalize-package-data": "^2.5.0",
@@ -9178,6 +6961,9 @@
"resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
"integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
"dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"find-up": "^4.1.0",
"read-pkg": "^5.2.0",
@@ -9195,6 +6981,9 @@
"resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
"integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
"dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"locate-path": "^5.0.0",
"path-exists": "^4.0.0"
@@ -9208,6 +6997,9 @@
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
"integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
"dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"p-locate": "^4.1.0"
},
@@ -9220,6 +7012,9 @@
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"p-try": "^2.0.0"
},
@@ -9235,6 +7030,9 @@
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
"integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
"dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"p-limit": "^2.2.0"
},
@@ -9247,6 +7045,9 @@
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
"integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=8"
}
@@ -9255,13 +7056,19 @@
"version": "2.8.9",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
"integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
- "dev": true
+ "dev": true,
+ "license": "ISC",
+ "optional": true,
+ "peer": true
},
"node_modules/read-pkg/node_modules/normalize-package-data": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
"integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
"dev": true,
+ "license": "BSD-2-Clause",
+ "optional": true,
+ "peer": true,
"dependencies": {
"hosted-git-info": "^2.1.4",
"resolve": "^1.10.0",
@@ -9274,6 +7081,9 @@
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"dev": true,
+ "license": "ISC",
+ "optional": true,
+ "peer": true,
"bin": {
"semver": "bin/semver"
}
@@ -9283,62 +7093,25 @@
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
"integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=8"
}
},
- "node_modules/readable-stream": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
- "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
- "dev": true,
- "dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "node_modules/readable-stream/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
- },
- "node_modules/readable-stream/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
"node_modules/readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
+ "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
"dev": true,
- "dependencies": {
- "picomatch": "^2.2.1"
- },
+ "license": "MIT",
"engines": {
- "node": ">=8.10.0"
- }
- },
- "node_modules/rechoir": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz",
- "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==",
- "dev": true,
- "dependencies": {
- "resolve": "^1.9.0"
+ "node": ">= 14.18.0"
},
- "engines": {
- "node": ">= 0.10"
+ "funding": {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
}
},
"node_modules/redent": {
@@ -9346,6 +7119,9 @@
"resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
"integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
"dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"indent-string": "^4.0.0",
"strip-indent": "^3.0.0"
@@ -9354,108 +7130,57 @@
"node": ">=8"
}
},
- "node_modules/regenerate": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
- "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==",
- "dev": true
- },
- "node_modules/regenerate-unicode-properties": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz",
- "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==",
+ "node_modules/reflect.getprototypeof": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz",
+ "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "regenerate": "^1.4.2"
+ "call-bind": "^1.0.8",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.9",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "get-intrinsic": "^1.2.7",
+ "get-proto": "^1.0.1",
+ "which-builtin-type": "^1.2.1"
},
"engines": {
- "node": ">=4"
- }
- },
- "node_modules/regenerator-runtime": {
- "version": "0.13.11",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
- "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==",
- "dev": true
- },
- "node_modules/regenerator-transform": {
- "version": "0.15.1",
- "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz",
- "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "^7.8.4"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/regex-parser": {
- "version": "2.2.11",
- "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz",
- "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==",
- "dev": true
- },
- "node_modules/regexpu-core": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz",
- "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==",
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.1.tgz",
+ "integrity": "sha512-yXLRqatcCuKtVHsWrNg0JL3l1zGfdXeEvDa0bdu4tCDQw0RpMDZsqbkyRTUnKMR0tXF627V2oEWjBEaEdqTwtQ==",
"dev": true,
+ "license": "MIT"
+ },
+ "node_modules/regexp.prototype.flags": {
+ "version": "1.5.4",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz",
+ "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "@babel/regjsgen": "^0.8.0",
- "regenerate": "^1.4.2",
- "regenerate-unicode-properties": "^10.1.0",
- "regjsparser": "^0.9.1",
- "unicode-match-property-ecmascript": "^2.0.0",
- "unicode-match-property-value-ecmascript": "^2.1.0"
+ "call-bind": "^1.0.8",
+ "define-properties": "^1.2.1",
+ "es-errors": "^1.3.0",
+ "get-proto": "^1.0.1",
+ "gopd": "^1.2.0",
+ "set-function-name": "^2.0.2"
},
"engines": {
- "node": ">=4"
- }
- },
- "node_modules/regjsparser": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz",
- "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==",
- "dev": true,
- "dependencies": {
- "jsesc": "~0.5.0"
+ "node": ">= 0.4"
},
- "bin": {
- "regjsparser": "bin/parser"
- }
- },
- "node_modules/regjsparser/node_modules/jsesc": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
- "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==",
- "dev": true,
- "bin": {
- "jsesc": "bin/jsesc"
- }
- },
- "node_modules/relateurl": {
- "version": "0.2.7",
- "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
- "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==",
- "dev": true,
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/replace-ext": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz",
- "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==",
- "dev": true,
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/require-from-string": {
@@ -9463,59 +7188,39 @@
"resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
"integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/requires-port": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
- "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
- "dev": true
- },
"node_modules/resolve": {
- "version": "1.22.2",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz",
- "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==",
+ "version": "1.22.10",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
+ "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "is-core-module": "^2.11.0",
+ "is-core-module": "^2.16.0",
"path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0"
},
"bin": {
"resolve": "bin/resolve"
},
+ "engines": {
+ "node": ">= 0.4"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/resolve-cwd": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
- "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
- "dev": true,
- "dependencies": {
- "resolve-from": "^5.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/resolve-cwd/node_modules/resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/resolve-from": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
"integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -9525,6 +7230,7 @@
"resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz",
"integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"adjust-sourcemap-loader": "^4.0.0",
"convert-source-map": "^1.7.0",
@@ -9536,51 +7242,144 @@
"node": ">=12"
}
},
+ "node_modules/resolve-url-loader/node_modules/convert-source-map": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
+ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/resumablejs": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/resumablejs/-/resumablejs-1.1.0.tgz",
"integrity": "sha512-gUTWTtJ2aheRb5svHDGHMtQsBkGxTILpZApT11ODoxEe5D75GhYL7Nc/WYgCcJXY+5RVmm2BEsp2qriCkKWRRg==",
- "dev": true
- },
- "node_modules/retry": {
- "version": "0.13.1",
- "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz",
- "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==",
"dev": true,
- "engines": {
- "node": ">= 4"
- }
+ "license": "MIT"
},
"node_modules/reusify": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
+ "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
"dev": true,
+ "license": "MIT",
"engines": {
"iojs": ">=1.0.0",
"node": ">=0.10.0"
}
},
"node_modules/rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "deprecated": "Rimraf versions prior to v4 are no longer supported",
"dev": true,
+ "license": "ISC",
"dependencies": {
"glob": "^7.1.3"
},
"bin": {
"rimraf": "bin.js"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/ripemd160": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
- "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
+ "node_modules/rimraf/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "hash-base": "^3.0.0",
- "inherits": "^2.0.1"
+ "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/rollup": {
+ "version": "3.29.5",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.5.tgz",
+ "integrity": "sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=14.18.0",
+ "npm": ">=8.0.0"
+ },
+ "optionalDependencies": {
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "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/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
+ "dev": true,
+ "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/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==",
+ "dev": true,
+ "license": "MIT",
+ "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/run-parallel": {
@@ -9602,10 +7401,32 @@
"url": "https://feross.org/support"
}
],
+ "license": "MIT",
"dependencies": {
"queue-microtask": "^1.2.2"
}
},
+ "node_modules/safe-array-concat": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz",
+ "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.2",
+ "get-intrinsic": "^1.2.6",
+ "has-symbols": "^1.1.0",
+ "isarray": "^2.0.5"
+ },
+ "engines": {
+ "node": ">=0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
@@ -9624,22 +7445,56 @@
"type": "consulting",
"url": "https://feross.org/support"
}
- ]
+ ],
+ "license": "MIT",
+ "peer": true
},
- "node_modules/safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
- "dev": true
+ "node_modules/safe-push-apply": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz",
+ "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "isarray": "^2.0.5"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/safe-regex-test": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz",
+ "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "is-regex": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
"node_modules/sass": {
- "version": "1.63.6",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.63.6.tgz",
- "integrity": "sha512-MJuxGMHzaOW7ipp+1KdELtqKbfAWbH7OLIdoSMnVe3EXPMTmxTmlaZDCTsgIpPCs3w99lLo9/zDKkOrJuT5byw==",
+ "version": "1.88.0",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.88.0.tgz",
+ "integrity": "sha512-sF6TWQqjFvr4JILXzG4ucGOLELkESHL+I5QJhh7CNaE+Yge0SI+ehCatsXhJ7ymU1hAFcIS3/PBpjdIbXoyVbg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "chokidar": ">=3.0.0 <4.0.0",
- "immutable": "^4.0.0",
+ "chokidar": "^4.0.0",
+ "immutable": "^5.0.2",
"source-map-js": ">=0.6.2 <2.0.0"
},
"bin": {
@@ -9647,19 +7502,22 @@
},
"engines": {
"node": ">=14.0.0"
+ },
+ "optionalDependencies": {
+ "@parcel/watcher": "^2.4.1"
}
},
"node_modules/sass-loader": {
- "version": "12.6.0",
- "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz",
- "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==",
+ "version": "13.3.3",
+ "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.3.3.tgz",
+ "integrity": "sha512-mt5YN2F1MOZr3d/wBRcZxeFgwgkH44wVc2zohO2YF6JiOMkiXe4BYRZpSu2sO1g71mo/j16txzUhsKZlqjVGzA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "klona": "^2.0.4",
"neo-async": "^2.6.2"
},
"engines": {
- "node": ">= 12.13.0"
+ "node": ">= 14.15.0"
},
"funding": {
"type": "opencollective",
@@ -9667,7 +7525,7 @@
},
"peerDependencies": {
"fibers": ">= 3.1.0",
- "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0",
+ "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0",
"sass": "^1.3.0",
"sass-embedded": "*",
"webpack": "^5.0.0"
@@ -9688,10 +7546,12 @@
}
},
"node_modules/schema-utils": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz",
- "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==",
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz",
+ "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
"@types/json-schema": "^7.0.9",
"ajv": "^8.9.0",
@@ -9699,7 +7559,7 @@
"ajv-keywords": "^5.1.0"
},
"engines": {
- "node": ">= 12.13.0"
+ "node": ">= 10.13.0"
},
"funding": {
"type": "opencollective",
@@ -9707,15 +7567,17 @@
}
},
"node_modules/schema-utils/node_modules/ajv": {
- "version": "8.12.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
- "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
+ "version": "8.17.1",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
+ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "fast-deep-equal": "^3.1.1",
+ "fast-deep-equal": "^3.1.3",
+ "fast-uri": "^3.0.1",
"json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
+ "require-from-string": "^2.0.2"
},
"funding": {
"type": "github",
@@ -9727,6 +7589,8 @@
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
"integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.3"
},
@@ -9738,241 +7602,81 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true
- },
- "node_modules/select-hose": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
- "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==",
- "dev": true
- },
- "node_modules/selfsigned": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz",
- "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==",
"dev": true,
- "dependencies": {
- "node-forge": "^1"
- },
- "engines": {
- "node": ">=10"
- }
+ "license": "MIT",
+ "peer": true
},
"node_modules/semver": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
- "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
}
},
- "node_modules/semver/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/semver/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
- },
- "node_modules/send": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
- "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
- "dev": true,
- "dependencies": {
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "mime": "1.6.0",
- "ms": "2.1.3",
- "on-finished": "2.4.1",
- "range-parser": "~1.2.1",
- "statuses": "2.0.1"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/send/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/send/node_modules/debug/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "node_modules/send/node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "dev": true
- },
"node_modules/serialize-javascript": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz",
- "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==",
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
+ "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
"dev": true,
+ "license": "BSD-3-Clause",
+ "peer": true,
"dependencies": {
"randombytes": "^2.1.0"
}
},
- "node_modules/serve-index": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
- "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==",
+ "node_modules/set-function-length": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
+ "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "accepts": "~1.3.4",
- "batch": "0.6.1",
- "debug": "2.6.9",
- "escape-html": "~1.0.3",
- "http-errors": "~1.6.2",
- "mime-types": "~2.1.17",
- "parseurl": "~1.3.2"
+ "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.8.0"
+ "node": ">= 0.4"
}
},
- "node_modules/serve-index/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "node_modules/set-function-name": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
+ "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/serve-index/node_modules/depd": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
- "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/serve-index/node_modules/http-errors": {
- "version": "1.6.3",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
- "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==",
- "dev": true,
- "dependencies": {
- "depd": "~1.1.2",
- "inherits": "2.0.3",
- "setprototypeof": "1.1.0",
- "statuses": ">= 1.4.0 < 2"
+ "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.6"
+ "node": ">= 0.4"
}
},
- "node_modules/serve-index/node_modules/inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==",
- "dev": true
- },
- "node_modules/serve-index/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "node_modules/serve-index/node_modules/setprototypeof": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
- "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
- "dev": true
- },
- "node_modules/serve-index/node_modules/statuses": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
- "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/serve-static": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
- "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
+ "node_modules/set-proto": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz",
+ "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.3",
- "send": "0.18.0"
+ "dunder-proto": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0"
},
"engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/setimmediate": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
- "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==",
- "dev": true
- },
- "node_modules/setprototypeof": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
- "dev": true
- },
- "node_modules/sha.js": {
- "version": "2.4.11",
- "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
- "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
- "dev": true,
- "dependencies": {
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- },
- "bin": {
- "sha.js": "bin.js"
- }
- },
- "node_modules/shallow-clone": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
- "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
- "dev": true,
- "dependencies": {
- "kind-of": "^6.0.2"
- },
- "engines": {
- "node": ">=8"
+ "node": ">= 0.4"
}
},
"node_modules/shebang-command": {
@@ -9980,6 +7684,7 @@
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"shebang-regex": "^3.0.0"
},
@@ -9992,50 +7697,110 @@
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
- "node_modules/shell-quote": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz",
- "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==",
+ "node_modules/side-channel": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
+ "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "object-inspect": "^1.13.3",
+ "side-channel-list": "^1.0.0",
+ "side-channel-map": "^1.0.1",
+ "side-channel-weakmap": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/shellwords": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz",
- "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==",
- "dev": true
- },
- "node_modules/side-channel": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "node_modules/side-channel-list": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
+ "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "call-bind": "^1.0.0",
- "get-intrinsic": "^1.0.2",
- "object-inspect": "^1.9.0"
+ "es-errors": "^1.3.0",
+ "object-inspect": "^1.13.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-map": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
+ "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.5",
+ "object-inspect": "^1.13.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-weakmap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
+ "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.5",
+ "object-inspect": "^1.13.3",
+ "side-channel-map": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dev": true
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
},
"node_modules/slash": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
"integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -10045,6 +7810,7 @@
"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
"integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.0.0",
"astral-regex": "^2.0.0",
@@ -10062,41 +7828,27 @@
"resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz",
"integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8.0.0"
}
},
- "node_modules/sockjs": {
- "version": "0.3.24",
- "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz",
- "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==",
- "dev": true,
- "dependencies": {
- "faye-websocket": "^0.11.3",
- "uuid": "^8.3.2",
- "websocket-driver": "^0.7.4"
- }
- },
- "node_modules/source-list-map": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
- "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==",
- "dev": true
- },
"node_modules/source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true,
+ "license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/source-map-js": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
- "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
"dev": true,
+ "license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
}
@@ -10106,6 +7858,8 @@
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
"integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
@@ -10116,136 +7870,62 @@
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
"integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"spdx-expression-parse": "^3.0.0",
"spdx-license-ids": "^3.0.0"
}
},
"node_modules/spdx-exceptions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
- "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
- "dev": true
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
+ "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==",
+ "dev": true,
+ "license": "CC-BY-3.0"
},
"node_modules/spdx-expression-parse": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
"integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"spdx-exceptions": "^2.1.0",
"spdx-license-ids": "^3.0.0"
}
},
"node_modules/spdx-license-ids": {
- "version": "3.0.13",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz",
- "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==",
- "dev": true
- },
- "node_modules/spdy": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz",
- "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==",
+ "version": "3.0.21",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz",
+ "integrity": "sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==",
"dev": true,
- "dependencies": {
- "debug": "^4.1.0",
- "handle-thing": "^2.0.0",
- "http-deceiver": "^1.2.7",
- "select-hose": "^2.0.0",
- "spdy-transport": "^3.0.0"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/spdy-transport": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz",
- "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==",
- "dev": true,
- "dependencies": {
- "debug": "^4.1.0",
- "detect-node": "^2.0.4",
- "hpack.js": "^2.1.6",
- "obuf": "^1.1.2",
- "readable-stream": "^3.0.6",
- "wbuf": "^1.7.3"
- }
- },
- "node_modules/spdy-transport/node_modules/readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "dev": true,
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/stable": {
- "version": "0.1.8",
- "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz",
- "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==",
- "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility",
- "dev": true
- },
- "node_modules/statuses": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/std-env": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.3.3.tgz",
- "integrity": "sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==",
- "dev": true
- },
- "node_modules/stream-browserify": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz",
- "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==",
- "dev": true,
- "dependencies": {
- "inherits": "~2.0.1",
- "readable-stream": "^2.0.2"
- }
- },
- "node_modules/stream-http": {
- "version": "2.8.3",
- "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz",
- "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==",
- "dev": true,
- "dependencies": {
- "builtin-status-codes": "^3.0.0",
- "inherits": "^2.0.1",
- "readable-stream": "^2.3.6",
- "to-arraybuffer": "^1.0.0",
- "xtend": "^4.0.0"
- }
- },
- "node_modules/string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "~5.2.0"
- }
+ "license": "CC0-1.0"
},
"node_modules/string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "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",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
@@ -10255,11 +7935,110 @@
"node": ">=8"
}
},
+ "node_modules/string-width-cjs/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/string-width/node_modules/ansi-regex": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
+ "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
+ "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",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+ "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.trim": {
+ "version": "1.2.10",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz",
+ "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.2",
+ "define-data-property": "^1.1.4",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.5",
+ "es-object-atoms": "^1.0.0",
+ "has-property-descriptors": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimend": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz",
+ "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.2",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimstart": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz",
+ "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "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",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-regex": "^5.0.1"
},
@@ -10267,13 +8046,29 @@
"node": ">=8"
}
},
- "node_modules/strip-final-newline": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
- "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
+ "node_modules/strip-ansi-cjs": {
+ "name": "strip-ansi",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
"engines": {
- "node": ">=6"
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=4"
}
},
"node_modules/strip-indent": {
@@ -10281,6 +8076,9 @@
"resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
"integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
"dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"min-indent": "^1.0.0"
},
@@ -10293,6 +8091,7 @@
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
"integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
},
@@ -10300,116 +8099,66 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/style-loader": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-2.0.0.tgz",
- "integrity": "sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ==",
- "dev": true,
- "dependencies": {
- "loader-utils": "^2.0.0",
- "schema-utils": "^3.0.0"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^4.0.0 || ^5.0.0"
- }
- },
- "node_modules/style-loader/node_modules/schema-utils": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
- "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
- "dev": true,
- "dependencies": {
- "@types/json-schema": "^7.0.8",
- "ajv": "^6.12.5",
- "ajv-keywords": "^3.5.2"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
"node_modules/style-search": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz",
"integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==",
- "dev": true
- },
- "node_modules/stylehacks": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz",
- "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==",
"dev": true,
- "dependencies": {
- "browserslist": "^4.21.4",
- "postcss-selector-parser": "^6.0.4"
- },
- "engines": {
- "node": "^10 || ^12 || >=14.0"
- },
- "peerDependencies": {
- "postcss": "^8.2.15"
- }
+ "license": "ISC"
},
"node_modules/stylelint": {
- "version": "14.16.1",
- "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.16.1.tgz",
- "integrity": "sha512-ErlzR/T3hhbV+a925/gbfc3f3Fep9/bnspMiJPorfGEmcBbXdS+oo6LrVtoUZ/w9fqD6o6k7PtUlCOsCRdjX/A==",
+ "version": "15.11.0",
+ "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.11.0.tgz",
+ "integrity": "sha512-78O4c6IswZ9TzpcIiQJIN49K3qNoXTM8zEJzhaTE/xRTCZswaovSEVIa/uwbOltZrk16X4jAxjaOhzz/hTm1Kw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@csstools/selector-specificity": "^2.0.2",
+ "@csstools/css-parser-algorithms": "^2.3.1",
+ "@csstools/css-tokenizer": "^2.2.0",
+ "@csstools/media-query-list-parser": "^2.1.4",
+ "@csstools/selector-specificity": "^3.0.0",
"balanced-match": "^2.0.0",
"colord": "^2.9.3",
- "cosmiconfig": "^7.1.0",
- "css-functions-list": "^3.1.0",
+ "cosmiconfig": "^8.2.0",
+ "css-functions-list": "^3.2.1",
+ "css-tree": "^2.3.1",
"debug": "^4.3.4",
- "fast-glob": "^3.2.12",
+ "fast-glob": "^3.3.1",
"fastest-levenshtein": "^1.0.16",
- "file-entry-cache": "^6.0.1",
+ "file-entry-cache": "^7.0.0",
"global-modules": "^2.0.0",
"globby": "^11.1.0",
"globjoin": "^0.1.4",
- "html-tags": "^3.2.0",
- "ignore": "^5.2.1",
+ "html-tags": "^3.3.1",
+ "ignore": "^5.2.4",
"import-lazy": "^4.0.0",
"imurmurhash": "^0.1.4",
"is-plain-object": "^5.0.0",
- "known-css-properties": "^0.26.0",
+ "known-css-properties": "^0.29.0",
"mathml-tag-names": "^2.1.3",
- "meow": "^9.0.0",
+ "meow": "^10.1.5",
"micromatch": "^4.0.5",
"normalize-path": "^3.0.0",
"picocolors": "^1.0.0",
- "postcss": "^8.4.19",
- "postcss-media-query-parser": "^0.2.3",
+ "postcss": "^8.4.28",
"postcss-resolve-nested-selector": "^0.1.1",
"postcss-safe-parser": "^6.0.0",
- "postcss-selector-parser": "^6.0.11",
+ "postcss-selector-parser": "^6.0.13",
"postcss-value-parser": "^4.2.0",
"resolve-from": "^5.0.0",
"string-width": "^4.2.3",
"strip-ansi": "^6.0.1",
"style-search": "^0.1.0",
- "supports-hyperlinks": "^2.3.0",
+ "supports-hyperlinks": "^3.0.0",
"svg-tags": "^1.0.0",
"table": "^6.8.1",
- "v8-compile-cache": "^2.3.0",
- "write-file-atomic": "^4.0.2"
+ "write-file-atomic": "^5.0.1"
},
"bin": {
- "stylelint": "bin/stylelint.js"
+ "stylelint": "bin/stylelint.mjs"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": "^14.13.1 || >=16.0.0"
},
"funding": {
"type": "opencollective",
@@ -10417,39 +8166,48 @@
}
},
"node_modules/stylelint-config-idiomatic-order": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/stylelint-config-idiomatic-order/-/stylelint-config-idiomatic-order-8.1.0.tgz",
- "integrity": "sha512-iTPY6JjbkIdzy+21x3a1xi/tG33zKhLJb6lZl1xg6jZrXjgIYelnRZ5xVtbcEP9rElxZq/Zu1eGthfvI+ri+YQ==",
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/stylelint-config-idiomatic-order/-/stylelint-config-idiomatic-order-10.0.0.tgz",
+ "integrity": "sha512-gJjT1nwhgnHS52+mRn+5Iw6keZIPRN4W+vbzct9Elb+tWOo61jC/CzXzAJHvvOYQZqUYItfs2aQ8fU5hnCvuGg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "stylelint-order": "^3.1.1"
+ "stylelint-order": "^6.0.2"
+ },
+ "engines": {
+ "node": ">=12"
},
"peerDependencies": {
"stylelint": ">=11"
}
},
"node_modules/stylelint-config-recommended": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-9.0.0.tgz",
- "integrity": "sha512-9YQSrJq4NvvRuTbzDsWX3rrFOzOlYBmZP+o513BJN/yfEmGSr0AxdvrWs0P/ilSpVV/wisamAHu5XSk8Rcf4CQ==",
+ "version": "13.0.0",
+ "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-13.0.0.tgz",
+ "integrity": "sha512-EH+yRj6h3GAe/fRiyaoO2F9l9Tgg50AOFhaszyfov9v6ayXJ1IkSHwTxd7lB48FmOeSGDPLjatjO11fJpmarkQ==",
"dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^14.13.1 || >=16.0.0"
+ },
"peerDependencies": {
- "stylelint": "^14.10.0"
+ "stylelint": "^15.10.0"
}
},
"node_modules/stylelint-config-recommended-scss": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-8.0.0.tgz",
- "integrity": "sha512-BxjxEzRaZoQb7Iinc3p92GS6zRdRAkIuEu2ZFLTxJK2e1AIcCb5B5MXY9KOXdGTnYFZ+KKx6R4Fv9zU6CtMYPQ==",
+ "version": "13.1.0",
+ "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-13.1.0.tgz",
+ "integrity": "sha512-8L5nDfd+YH6AOoBGKmhH8pLWF1dpfY816JtGMePcBqqSsLU+Ysawx44fQSlMOJ2xTfI9yTGpup5JU77c17w1Ww==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "postcss-scss": "^4.0.2",
- "stylelint-config-recommended": "^9.0.0",
- "stylelint-scss": "^4.0.0"
+ "postcss-scss": "^4.0.9",
+ "stylelint-config-recommended": "^13.0.0",
+ "stylelint-scss": "^5.3.0"
},
"peerDependencies": {
"postcss": "^8.3.3",
- "stylelint": "^14.10.0"
+ "stylelint": "^15.10.0"
},
"peerDependenciesMeta": {
"postcss": {
@@ -10457,70 +8215,70 @@
}
}
},
- "node_modules/stylelint-config-sass-guidelines": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/stylelint-config-sass-guidelines/-/stylelint-config-sass-guidelines-9.0.1.tgz",
- "integrity": "sha512-N06PsVsrgKijQ3YT5hqKA7x3NUkgELTRI1cbWMqcYiCGG6MjzvNk6Cb5YYA1PrvrksBV76BvY9P9bAswojVMqA==",
+ "node_modules/stylelint-config-recommended-scss/node_modules/stylelint-scss": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-5.3.2.tgz",
+ "integrity": "sha512-4LzLaayFhFyneJwLo0IUa8knuIvj+zF0vBFueQs4e3tEaAMIQX8q5th8ziKkgOavr6y/y9yoBe+RXN/edwLzsQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "postcss-scss": "^4.0.2",
- "stylelint-order": "^5.0.0",
- "stylelint-scss": "^4.0.0"
+ "known-css-properties": "^0.29.0",
+ "postcss-media-query-parser": "^0.2.3",
+ "postcss-resolve-nested-selector": "^0.1.1",
+ "postcss-selector-parser": "^6.0.13",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "peerDependencies": {
+ "stylelint": "^14.5.1 || ^15.0.0"
+ }
+ },
+ "node_modules/stylelint-config-sass-guidelines": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/stylelint-config-sass-guidelines/-/stylelint-config-sass-guidelines-10.0.0.tgz",
+ "integrity": "sha512-+Rr2Dd4b72CWA4qoj1Kk+y449nP/WJsrD0nzQAWkmPPIuyVcy2GMIcfNr0Z8JJOLjRvtlkKxa49FCNXMePBikQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "postcss-scss": "^4.0.6",
+ "stylelint-scss": "^4.4.0"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": "^14.13.1 || >=16.13.0 || >=18.0.0"
},
"peerDependencies": {
- "postcss": "^8.3.3",
- "stylelint": "^14.0.1"
- }
- },
- "node_modules/stylelint-config-sass-guidelines/node_modules/postcss-sorting": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-7.0.1.tgz",
- "integrity": "sha512-iLBFYz6VRYyLJEJsBJ8M3TCqNcckVzz4wFounSc5Oez35ogE/X+aoC5fFu103Ot7NyvjU3/xqIXn93Gp3kJk4g==",
- "dev": true,
- "peerDependencies": {
- "postcss": "^8.3.9"
- }
- },
- "node_modules/stylelint-config-sass-guidelines/node_modules/stylelint-order": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-5.0.0.tgz",
- "integrity": "sha512-OWQ7pmicXufDw5BlRqzdz3fkGKJPgLyDwD1rFY3AIEfIH/LQY38Vu/85v8/up0I+VPiuGRwbc2Hg3zLAsJaiyw==",
- "dev": true,
- "dependencies": {
- "postcss": "^8.3.11",
- "postcss-sorting": "^7.0.1"
- },
- "peerDependencies": {
- "stylelint": "^14.0.0"
+ "postcss": "^8.4.21",
+ "stylelint": "^15.2.0"
}
},
"node_modules/stylelint-config-standard": {
- "version": "29.0.0",
- "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-29.0.0.tgz",
- "integrity": "sha512-uy8tZLbfq6ZrXy4JKu3W+7lYLgRQBxYTUUB88vPgQ+ZzAxdrvcaSUW9hOMNLYBnwH+9Kkj19M2DHdZ4gKwI7tg==",
+ "version": "34.0.0",
+ "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-34.0.0.tgz",
+ "integrity": "sha512-u0VSZnVyW9VSryBG2LSO+OQTjN7zF9XJaAJRX/4EwkmU0R2jYwmBSN10acqZisDitS0CLiEiGjX7+Hrq8TAhfQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "stylelint-config-recommended": "^9.0.0"
+ "stylelint-config-recommended": "^13.0.0"
+ },
+ "engines": {
+ "node": "^14.13.1 || >=16.0.0"
},
"peerDependencies": {
- "stylelint": "^14.14.0"
+ "stylelint": "^15.10.0"
}
},
"node_modules/stylelint-config-standard-scss": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-6.1.0.tgz",
- "integrity": "sha512-iZ2B5kQT2G3rUzx+437cEpdcnFOQkwnwqXuY8Z0QUwIHQVE8mnYChGAquyKFUKZRZ0pRnrciARlPaR1RBtPb0Q==",
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-11.1.0.tgz",
+ "integrity": "sha512-5gnBgeNTgRVdchMwiFQPuBOtj9QefYtfXiddrOMJA2pI22zxt6ddI2s+e5Oh7/6QYl7QLJujGnaUR5YyGq72ow==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "stylelint-config-recommended-scss": "^8.0.0",
- "stylelint-config-standard": "^29.0.0"
+ "stylelint-config-recommended-scss": "^13.1.0",
+ "stylelint-config-standard": "^34.0.0"
},
"peerDependencies": {
"postcss": "^8.3.3",
- "stylelint": "^14.14.0"
+ "stylelint": "^15.10.0"
},
"peerDependenciesMeta": {
"postcss": {
@@ -10529,43 +8287,17 @@
}
},
"node_modules/stylelint-order": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-3.1.1.tgz",
- "integrity": "sha512-4gP/r8j/6JGZ/LL41b2sYtQqfwZl4VSqTp7WeIwI67v/OXNQ08dnn64BGXNwAUSgb2+YIvIOxQaMzqMyQMzoyQ==",
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-6.0.4.tgz",
+ "integrity": "sha512-0UuKo4+s1hgQ/uAxlYU4h0o0HS4NiQDud0NAUNI0aa8FJdmYHA5ZZTFHiV5FpmE3071e9pZx5j0QpVJW5zOCUA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "lodash": "^4.17.15",
- "postcss": "^7.0.17",
- "postcss-sorting": "^5.0.1"
- },
- "engines": {
- "node": ">=8.7.0"
+ "postcss": "^8.4.32",
+ "postcss-sorting": "^8.0.2"
},
"peerDependencies": {
- "stylelint": ">=10.0.1"
- }
- },
- "node_modules/stylelint-order/node_modules/picocolors": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
- "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
- "dev": true
- },
- "node_modules/stylelint-order/node_modules/postcss": {
- "version": "7.0.39",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
- "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
- "dev": true,
- "dependencies": {
- "picocolors": "^0.2.1",
- "source-map": "^0.6.1"
- },
- "engines": {
- "node": ">=6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
+ "stylelint": "^14.0.0 || ^15.0.0 || ^16.0.1"
}
},
"node_modules/stylelint-scss": {
@@ -10573,6 +8305,7 @@
"resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.7.0.tgz",
"integrity": "sha512-TSUgIeS0H3jqDZnby1UO1Qv3poi1N8wUYIJY6D1tuUq2MN3lwp/rITVo0wD+1SWTmRm0tNmGO0b7nKInnqF6Hg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"postcss-media-query-parser": "^0.2.3",
"postcss-resolve-nested-selector": "^0.1.1",
@@ -10583,50 +8316,268 @@
"stylelint": "^14.5.1 || ^15.0.0"
}
},
- "node_modules/stylelint-webpack-plugin": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/stylelint-webpack-plugin/-/stylelint-webpack-plugin-3.3.0.tgz",
- "integrity": "sha512-F53bapIZ9zI16ero8IWm6TrUE6SSibZBphJE9b5rR2FxtvmGmm1YmS+a5xjQzn63+cv71GVSCu4byX66fBLpEw==",
- "dev": true,
- "dependencies": {
- "globby": "^11.1.0",
- "jest-worker": "^28.1.0",
- "micromatch": "^4.0.5",
- "normalize-path": "^3.0.0",
- "schema-utils": "^4.0.0"
- },
- "engines": {
- "node": ">= 12.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "stylelint": "^13.0.0 || ^14.0.0",
- "webpack": "^5.0.0"
- }
- },
"node_modules/stylelint/node_modules/balanced-match": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz",
"integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/stylelint/node_modules/camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/stylelint/node_modules/camelcase-keys": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz",
+ "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "camelcase": "^6.3.0",
+ "map-obj": "^4.1.0",
+ "quick-lru": "^5.1.1",
+ "type-fest": "^1.2.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/stylelint/node_modules/decamelize": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz",
+ "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/stylelint/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/stylelint/node_modules/file-entry-cache": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-7.0.2.tgz",
+ "integrity": "sha512-TfW7/1iI4Cy7Y8L6iqNdZQVvdXn0f8B4QcIXmkIbtTIe/Okm/nSlHb4IwGzRVOd3WfSieCgvf5cMzEfySAIl0g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "flat-cache": "^3.2.0"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/stylelint/node_modules/indent-string": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz",
+ "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/stylelint/node_modules/is-plain-object": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/stylelint/node_modules/meow": {
+ "version": "10.1.5",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.5.tgz",
+ "integrity": "sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/minimist": "^1.2.2",
+ "camelcase-keys": "^7.0.0",
+ "decamelize": "^5.0.0",
+ "decamelize-keys": "^1.1.0",
+ "hard-rejection": "^2.1.0",
+ "minimist-options": "4.1.0",
+ "normalize-package-data": "^3.0.2",
+ "read-pkg-up": "^8.0.0",
+ "redent": "^4.0.0",
+ "trim-newlines": "^4.0.2",
+ "type-fest": "^1.2.2",
+ "yargs-parser": "^20.2.9"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/stylelint/node_modules/quick-lru": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
+ "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/stylelint/node_modules/read-pkg": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz",
+ "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/normalize-package-data": "^2.4.0",
+ "normalize-package-data": "^3.0.2",
+ "parse-json": "^5.2.0",
+ "type-fest": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/stylelint/node_modules/read-pkg-up": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz",
+ "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "find-up": "^5.0.0",
+ "read-pkg": "^6.0.0",
+ "type-fest": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/stylelint/node_modules/redent": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz",
+ "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "indent-string": "^5.0.0",
+ "strip-indent": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
},
"node_modules/stylelint/node_modules/resolve-from": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
"integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
+ "node_modules/stylelint/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "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/stylelint/node_modules/strip-indent": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz",
+ "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "min-indent": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/stylelint/node_modules/trim-newlines": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.1.1.tgz",
+ "integrity": "sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/stylelint/node_modules/type-fest": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
+ "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
+ "dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -10635,16 +8586,20 @@
}
},
"node_modules/supports-hyperlinks": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz",
- "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.2.0.tgz",
+ "integrity": "sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0",
"supports-color": "^7.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=14.18"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1"
}
},
"node_modules/supports-preserve-symlinks-flag": {
@@ -10652,6 +8607,8 @@
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
"integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"engines": {
"node": ">= 0.4"
},
@@ -10665,42 +8622,23 @@
"integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==",
"dev": true
},
- "node_modules/svgo": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz",
- "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==",
- "dev": true,
- "dependencies": {
- "@trysound/sax": "0.2.0",
- "commander": "^7.2.0",
- "css-select": "^4.1.3",
- "css-tree": "^1.1.3",
- "csso": "^4.2.0",
- "picocolors": "^1.0.0",
- "stable": "^0.1.8"
- },
- "bin": {
- "svgo": "bin/svgo"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
"node_modules/sweetalert2": {
- "version": "11.7.18",
- "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.7.18.tgz",
- "integrity": "sha512-Njl5JTDasSP8yRX9cpLdy2fdxHZYPYNmiIGNZykF2Zt1UHIvurwt/W2LmlGe5RbyMDHYDXuHqlD1Q8Vr5/mqlA==",
+ "version": "11.21.0",
+ "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.21.0.tgz",
+ "integrity": "sha512-fiEK7SqRY/QD/wC2uqEHlfYGZ7qe2UcyQbJpbpj4YRVqplBgcI+euPZLZL+evLINcvbtXmL1SFUdZHKqBHGAAQ==",
"dev": true,
+ "license": "MIT",
"funding": {
"type": "individual",
"url": "https://github.com/sponsors/limonte"
}
},
"node_modules/table": {
- "version": "6.8.1",
- "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz",
- "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==",
+ "version": "6.9.0",
+ "resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz",
+ "integrity": "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"ajv": "^8.0.1",
"lodash.truncate": "^4.4.2",
@@ -10713,41 +8651,68 @@
}
},
"node_modules/table/node_modules/ajv": {
- "version": "8.12.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
- "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
+ "version": "8.17.1",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
+ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "fast-deep-equal": "^3.1.1",
+ "fast-deep-equal": "^3.1.3",
+ "fast-uri": "^3.0.1",
"json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
+ "require-from-string": "^2.0.2"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/epoberezkin"
}
},
+ "node_modules/table/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/table/node_modules/json-schema-traverse": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/table/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "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/tapable": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
"integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/terser": {
- "version": "5.19.1",
- "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.1.tgz",
- "integrity": "sha512-27hxBUVdV6GoNg1pKQ7Z5cbR6V9txPVyBA+FQw3BaZ1Wuzvztce5p156DaP0NVZNrMZZ+6iG9Syf7WgMNKDg2Q==",
+ "version": "5.39.1",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.1.tgz",
+ "integrity": "sha512-Mm6+uad0ZuDtcV8/4uOZQDQ8RuiC5Pu+iZRedJtF7yA/27sPL7d++In/AJKpWZlU3SYMPPkVfwetn6sgZ66pUA==",
"dev": true,
+ "license": "BSD-2-Clause",
+ "peer": true,
"dependencies": {
"@jridgewell/source-map": "^0.3.3",
"acorn": "^8.8.2",
@@ -10762,16 +8727,18 @@
}
},
"node_modules/terser-webpack-plugin": {
- "version": "5.3.9",
- "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz",
- "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==",
+ "version": "5.3.14",
+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz",
+ "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "@jridgewell/trace-mapping": "^0.3.17",
+ "@jridgewell/trace-mapping": "^0.3.25",
"jest-worker": "^27.4.5",
- "schema-utils": "^3.1.1",
- "serialize-javascript": "^6.0.1",
- "terser": "^5.16.8"
+ "schema-utils": "^4.3.0",
+ "serialize-javascript": "^6.0.2",
+ "terser": "^5.31.1"
},
"engines": {
"node": ">= 10.13.0"
@@ -10795,103 +8762,34 @@
}
}
},
- "node_modules/terser-webpack-plugin/node_modules/jest-worker": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
- "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
- "dev": true,
- "dependencies": {
- "@types/node": "*",
- "merge-stream": "^2.0.0",
- "supports-color": "^8.0.0"
- },
- "engines": {
- "node": ">= 10.13.0"
- }
- },
- "node_modules/terser-webpack-plugin/node_modules/schema-utils": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
- "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
- "dev": true,
- "dependencies": {
- "@types/json-schema": "^7.0.8",
- "ajv": "^6.12.5",
- "ajv-keywords": "^3.5.2"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
- "node_modules/terser-webpack-plugin/node_modules/supports-color": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "dev": true,
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/supports-color?sponsor=1"
- }
- },
"node_modules/terser/node_modules/commander": {
"version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "peer": true
},
"node_modules/text-table": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
"integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
- "dev": true
- },
- "node_modules/thunky": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz",
- "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==",
- "dev": true
- },
- "node_modules/timers-browserify": {
- "version": "2.0.12",
- "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz",
- "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==",
"dev": true,
- "dependencies": {
- "setimmediate": "^1.0.4"
- },
- "engines": {
- "node": ">=0.6.0"
- }
+ "license": "MIT"
},
- "node_modules/to-arraybuffer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
- "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==",
- "dev": true
- },
- "node_modules/to-fast-properties": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
- "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
+ "node_modules/tiny-invariant": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz",
+ "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==",
"dev": true,
- "engines": {
- "node": ">=4"
- }
+ "license": "MIT"
},
"node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-number": "^7.0.0"
},
@@ -10903,36 +8801,46 @@
"version": "1.12.0",
"resolved": "https://registry.npmjs.org/toastify-js/-/toastify-js-1.12.0.tgz",
"integrity": "sha512-HeMHCO9yLPvP9k0apGSdPUWrUbLnxUKNFzgUoZp1PHCLploIX/4DSQ7V8H25ef+h4iO9n0he7ImfcndnN6nDrQ==",
- "dev": true
- },
- "node_modules/toidentifier": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
"dev": true,
- "engines": {
- "node": ">=0.6"
- }
+ "license": "MIT"
},
"node_modules/trim-newlines": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz",
"integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==",
"dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=8"
}
},
- "node_modules/ts-loader": {
- "version": "9.4.4",
- "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.4.tgz",
- "integrity": "sha512-MLukxDHBl8OJ5Dk3y69IsKVFRA/6MwzEqBgh+OXMPB/OD01KQuWPFd1WAQP8a5PeSCAxfnkhiuWqfmFJzJQt9w==",
+ "node_modules/ts-api-utils": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz",
+ "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==",
"dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=16"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.2.0"
+ }
+ },
+ "node_modules/ts-loader": {
+ "version": "9.5.2",
+ "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.2.tgz",
+ "integrity": "sha512-Qo4piXvOTWcMGIgRiuFa6nHNm+54HbYaZCKqc9eeZCLRy3XqafQgwX2F7mofrbJG3g7EEb+lkiR+z2Lic2s3Zw==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
"chalk": "^4.1.0",
"enhanced-resolve": "^5.0.0",
"micromatch": "^4.0.0",
- "semver": "^7.3.4"
+ "semver": "^7.3.4",
+ "source-map": "^0.7.4"
},
"engines": {
"node": ">=12.0.0"
@@ -10942,17 +8850,70 @@
"webpack": "^5.0.0"
}
},
+ "node_modules/ts-loader/node_modules/semver": {
+ "version": "7.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
+ "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/ts-loader/node_modules/source-map": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/tsconfig-paths": {
+ "version": "3.15.0",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
+ "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@types/json5": "^0.0.29",
+ "json5": "^1.0.2",
+ "minimist": "^1.2.6",
+ "strip-bom": "^3.0.0"
+ }
+ },
+ "node_modules/tsconfig-paths/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
"node_modules/tslib": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz",
- "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==",
- "dev": true
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true,
+ "license": "0BSD"
},
"node_modules/tsutils": {
"version": "3.21.0",
"resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
"integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"tslib": "^1.8.1"
},
@@ -10963,23 +8924,12 @@
"typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
}
},
- "node_modules/tsutils/node_modules/tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
- },
- "node_modules/tty-browserify": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
- "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==",
- "dev": true
- },
"node_modules/type-check": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
"integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"prelude-ls": "^1.2.1"
},
@@ -10988,10 +8938,11 @@
}
},
"node_modules/type-fest": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=10"
},
@@ -10999,100 +8950,143 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/type-is": {
- "version": "1.6.18",
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
- "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "node_modules/typed-array-buffer": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz",
+ "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.24"
+ "call-bound": "^1.0.3",
+ "es-errors": "^1.3.0",
+ "is-typed-array": "^1.1.14"
},
"engines": {
- "node": ">= 0.6"
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/typed-array-byte-length": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz",
+ "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "call-bind": "^1.0.8",
+ "for-each": "^0.3.3",
+ "gopd": "^1.2.0",
+ "has-proto": "^1.2.0",
+ "is-typed-array": "^1.1.14"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/typed-array-byte-offset": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz",
+ "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "for-each": "^0.3.3",
+ "gopd": "^1.2.0",
+ "has-proto": "^1.2.0",
+ "is-typed-array": "^1.1.15",
+ "reflect.getprototypeof": "^1.0.9"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/typed-array-length": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz",
+ "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "is-typed-array": "^1.1.13",
+ "possible-typed-array-names": "^1.0.0",
+ "reflect.getprototypeof": "^1.0.6"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/typescript": {
- "version": "4.9.5",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
- "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
+ "version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz",
+ "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==",
"dev": true,
+ "license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
},
"engines": {
- "node": ">=4.2.0"
+ "node": ">=14.17"
}
},
- "node_modules/typescript-eslint": {
- "version": "0.0.1-alpha.0",
- "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-0.0.1-alpha.0.tgz",
- "integrity": "sha512-1hNKM37dAWML/2ltRXupOq2uqcdRQyDFphl+341NTPXFLLLiDhErXx8VtaSLh3xP7SyHZdcCgpt9boYYVb3fQg==",
- "dev": true
- },
- "node_modules/unicode-canonical-property-names-ecmascript": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz",
- "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/unicode-match-property-ecmascript": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz",
- "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==",
+ "node_modules/unbox-primitive": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz",
+ "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "unicode-canonical-property-names-ecmascript": "^2.0.0",
- "unicode-property-aliases-ecmascript": "^2.0.0"
+ "call-bound": "^1.0.3",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.1.0",
+ "which-boxed-primitive": "^1.1.1"
},
"engines": {
- "node": ">=4"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/unicode-match-property-value-ecmascript": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz",
- "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==",
+ "node_modules/undici-types": {
+ "version": "6.19.8",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
+ "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==",
"dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/unicode-property-aliases-ecmascript": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz",
- "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
+ "license": "MIT"
},
"node_modules/universalify": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
- "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 10.0.0"
- }
- },
- "node_modules/unpipe": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
+ "node": ">= 4.0.0"
}
},
"node_modules/update-browserslist-db": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz",
- "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz",
+ "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==",
"dev": true,
"funding": [
{
@@ -11108,9 +9102,10 @@
"url": "https://github.com/sponsors/ai"
}
],
+ "license": "MIT",
"dependencies": {
- "escalade": "^3.1.1",
- "picocolors": "^1.0.0"
+ "escalade": "^3.2.0",
+ "picocolors": "^1.1.1"
},
"bin": {
"update-browserslist-db": "cli.js"
@@ -11124,34 +9119,17 @@
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
"integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"punycode": "^2.1.0"
}
},
- "node_modules/uri-js/node_modules/punycode": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
- "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/url": {
- "version": "0.11.1",
- "resolved": "https://registry.npmjs.org/url/-/url-0.11.1.tgz",
- "integrity": "sha512-rWS3H04/+mzzJkv0eZ7vEDGiQbgquI1fGfOad6zKvgYQi1SzMmhl7c/DdRGxhaWrVH6z0qWITo8rpnxK/RfEhA==",
- "dev": true,
- "dependencies": {
- "punycode": "^1.4.1",
- "qs": "^6.11.0"
- }
- },
"node_modules/util": {
- "version": "0.11.1",
- "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
- "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==",
+ "version": "0.10.4",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
+ "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"inherits": "2.0.3"
}
@@ -11160,81 +9138,550 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
- "dev": true
- },
- "node_modules/util/node_modules/inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==",
- "dev": true
- },
- "node_modules/utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
"dev": true,
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/uuid": {
- "version": "8.3.2",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
- "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
- "dev": true,
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
- "node_modules/v8-compile-cache": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
- "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
- "dev": true
+ "license": "MIT"
},
"node_modules/validate-npm-package-license": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
"integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"spdx-correct": "^3.0.0",
"spdx-expression-parse": "^3.0.0"
}
},
- "node_modules/vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
+ "node_modules/vite": {
+ "version": "4.5.14",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.14.tgz",
+ "integrity": "sha512-+v57oAaoYNnO3hIu5Z/tJRZjq5aHM2zDve9YZ8HngVHbhk66RStobhb1sqPMIPEleV6cNKYK4eGrAbE9Ulbl2g==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "esbuild": "^0.18.10",
+ "postcss": "^8.4.27",
+ "rollup": "^3.27.1"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
"engines": {
- "node": ">= 0.8"
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/vitejs/vite?sponsor=1"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ },
+ "peerDependencies": {
+ "@types/node": ">= 14",
+ "less": "*",
+ "lightningcss": "^1.21.0",
+ "sass": "*",
+ "stylus": "*",
+ "sugarss": "*",
+ "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/vm-browserify": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",
- "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==",
- "dev": true
+ "node_modules/vite-plugin-babel": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/vite-plugin-babel/-/vite-plugin-babel-1.3.1.tgz",
+ "integrity": "sha512-ikAdgkYQS6ytr6KGmfIbEDES0gBMtw0tUtiwIe8/LEk/ndISFy6IR2MjQUMksirCtrWnqCrixbGKTw2ezOIMrA==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "@babel/core": "^7.0.0",
+ "vite": "^2.7.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0"
+ }
+ },
+ "node_modules/vite-plugin-checker": {
+ "version": "0.6.4",
+ "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.6.4.tgz",
+ "integrity": "sha512-2zKHH5oxr+ye43nReRbC2fny1nyARwhxdm0uNYp/ERy4YvU9iZpNOsueoi/luXw5gnpqRSvjcEPxXbS153O2wA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.12.13",
+ "ansi-escapes": "^4.3.0",
+ "chalk": "^4.1.1",
+ "chokidar": "^3.5.1",
+ "commander": "^8.0.0",
+ "fast-glob": "^3.2.7",
+ "fs-extra": "^11.1.0",
+ "npm-run-path": "^4.0.1",
+ "semver": "^7.5.0",
+ "strip-ansi": "^6.0.0",
+ "tiny-invariant": "^1.1.0",
+ "vscode-languageclient": "^7.0.0",
+ "vscode-languageserver": "^7.0.0",
+ "vscode-languageserver-textdocument": "^1.0.1",
+ "vscode-uri": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "peerDependencies": {
+ "eslint": ">=7",
+ "meow": "^9.0.0",
+ "optionator": "^0.9.1",
+ "stylelint": ">=13",
+ "typescript": "*",
+ "vite": ">=2.0.0",
+ "vls": "*",
+ "vti": "*",
+ "vue-tsc": ">=1.3.9"
+ },
+ "peerDependenciesMeta": {
+ "eslint": {
+ "optional": true
+ },
+ "meow": {
+ "optional": true
+ },
+ "optionator": {
+ "optional": true
+ },
+ "stylelint": {
+ "optional": true
+ },
+ "typescript": {
+ "optional": true
+ },
+ "vls": {
+ "optional": true
+ },
+ "vti": {
+ "optional": true
+ },
+ "vue-tsc": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite-plugin-checker/node_modules/chokidar": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+ "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/vite-plugin-checker/node_modules/commander": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
+ "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/vite-plugin-checker/node_modules/fs-extra": {
+ "version": "11.3.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz",
+ "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=14.14"
+ }
+ },
+ "node_modules/vite-plugin-checker/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/vite-plugin-checker/node_modules/jsonfile": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "universalify": "^2.0.0"
+ },
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/vite-plugin-checker/node_modules/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/vite-plugin-checker/node_modules/semver": {
+ "version": "7.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
+ "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/vite-plugin-checker/node_modules/universalify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
+ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
+ "node_modules/vite-plugin-eslint": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/vite-plugin-eslint/-/vite-plugin-eslint-1.8.1.tgz",
+ "integrity": "sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@rollup/pluginutils": "^4.2.1",
+ "@types/eslint": "^8.4.5",
+ "rollup": "^2.77.2"
+ },
+ "peerDependencies": {
+ "eslint": ">=7",
+ "vite": ">=2"
+ }
+ },
+ "node_modules/vite-plugin-eslint/node_modules/rollup": {
+ "version": "2.79.2",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz",
+ "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/vite-plugin-full-reload": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.2.0.tgz",
+ "integrity": "sha512-kz18NW79x0IHbxRSHm0jttP4zoO9P9gXh+n6UTwlNKnviTTEpOlum6oS9SmecrTtSr+muHEn5TUuC75UovQzcA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "picocolors": "^1.0.0",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "node_modules/vite-plugin-stylelint": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/vite-plugin-stylelint/-/vite-plugin-stylelint-5.3.1.tgz",
+ "integrity": "sha512-M/hSdfOwnOVghbJDeuuYIU2xO/MMukYR8QcEyNKFPG8ro1L+DlTdViix2B2d/FvAw14WPX88ckA5A7NvUjJz8w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@rollup/pluginutils": "^5.1.0",
+ "chokidar": "^3.5.3",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": ">=14.18"
+ },
+ "peerDependencies": {
+ "@types/stylelint": "^13.0.0",
+ "postcss": "^7.0.0 || ^8.0.0",
+ "rollup": "^2.0.0 || ^3.0.0 || ^4.0.0",
+ "stylelint": "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0",
+ "vite": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/stylelint": {
+ "optional": true
+ },
+ "postcss": {
+ "optional": true
+ },
+ "rollup": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite-plugin-stylelint/node_modules/@rollup/pluginutils": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz",
+ "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "estree-walker": "^2.0.2",
+ "picomatch": "^4.0.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite-plugin-stylelint/node_modules/chokidar": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+ "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/vite-plugin-stylelint/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/vite-plugin-stylelint/node_modules/picomatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
+ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/vite-plugin-stylelint/node_modules/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/vite-plugin-stylelint/node_modules/readdirp/node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/vscode-jsonrpc": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0.tgz",
+ "integrity": "sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.0.0 || >=10.0.0"
+ }
+ },
+ "node_modules/vscode-languageclient": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-7.0.0.tgz",
+ "integrity": "sha512-P9AXdAPlsCgslpP9pRxYPqkNYV7Xq8300/aZDpO35j1fJm/ncize8iGswzYlcvFw5DQUx4eVk+KvfXdL0rehNg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "minimatch": "^3.0.4",
+ "semver": "^7.3.4",
+ "vscode-languageserver-protocol": "3.16.0"
+ },
+ "engines": {
+ "vscode": "^1.52.0"
+ }
+ },
+ "node_modules/vscode-languageclient/node_modules/semver": {
+ "version": "7.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
+ "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/vscode-languageserver": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-7.0.0.tgz",
+ "integrity": "sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "vscode-languageserver-protocol": "3.16.0"
+ },
+ "bin": {
+ "installServerIntoExtension": "bin/installServerIntoExtension"
+ }
+ },
+ "node_modules/vscode-languageserver-protocol": {
+ "version": "3.16.0",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0.tgz",
+ "integrity": "sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "vscode-jsonrpc": "6.0.0",
+ "vscode-languageserver-types": "3.16.0"
+ }
+ },
+ "node_modules/vscode-languageserver-textdocument": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz",
+ "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/vscode-languageserver-types": {
+ "version": "3.16.0",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz",
+ "integrity": "sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/vscode-uri": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz",
+ "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/vue": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz",
- "integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==",
+ "version": "3.5.14",
+ "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.14.tgz",
+ "integrity": "sha512-LbOm50/vZFG6Mhy6KscQYXZMQ0LMCC/y40HDJPPvGFQ+i/lUH+PJHR6C3assgOQiXdl6tAfsXHbXYVBZZu65ew==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@vue/compiler-dom": "3.3.4",
- "@vue/compiler-sfc": "3.3.4",
- "@vue/runtime-dom": "3.3.4",
- "@vue/server-renderer": "3.3.4",
- "@vue/shared": "3.3.4"
+ "@vue/compiler-dom": "3.5.14",
+ "@vue/compiler-sfc": "3.5.14",
+ "@vue/runtime-dom": "3.5.14",
+ "@vue/server-renderer": "3.5.14",
+ "@vue/shared": "3.5.14"
+ },
+ "peerDependencies": {
+ "typescript": "*"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
"node_modules/vue-eslint-parser": {
- "version": "9.3.1",
- "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.3.1.tgz",
- "integrity": "sha512-Clr85iD2XFZ3lJ52/ppmUDG/spxQu6+MAeHXjjyI4I1NUYZ9xmenQp4N0oaHJhrA8OOxltCVxMRfANGa70vU0g==",
+ "version": "9.4.3",
+ "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz",
+ "integrity": "sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"debug": "^4.3.4",
"eslint-scope": "^7.1.1",
@@ -11255,10 +9702,11 @@
}
},
"node_modules/vue-eslint-parser/node_modules/eslint-scope": {
- "version": "7.2.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.1.tgz",
- "integrity": "sha512-CvefSOsDdaYYvxChovdrPo/ZGt8d5lrJWleAc1diXRKhHGiTYEI26cvo8Kle/wGnsizoCJjK73FMg1/IkIwiNA==",
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
+ "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"esrecurse": "^4.3.0",
"estraverse": "^5.2.0"
@@ -11275,64 +9723,87 @@
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
"integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
"dev": true,
+ "license": "BSD-2-Clause",
"engines": {
"node": ">=4.0"
}
},
- "node_modules/vue-loader": {
- "version": "16.8.3",
- "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz",
- "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
+ "node_modules/vue-eslint-parser/node_modules/semver": {
+ "version": "7.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
+ "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
"dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/vue-loader": {
+ "version": "17.4.2",
+ "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-17.4.2.tgz",
+ "integrity": "sha512-yTKOA4R/VN4jqjw4y5HrynFL8AK0Z3/Jt7eOJXEitsm0GMRHDBjCfCiuTiLP7OESvsZYo2pATCWhDqxC5ZrM6w==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
"chalk": "^4.1.0",
"hash-sum": "^2.0.0",
- "loader-utils": "^2.0.0"
+ "watchpack": "^2.4.0"
},
"peerDependencies": {
"webpack": "^4.1.0 || ^5.0.0-0"
+ },
+ "peerDependenciesMeta": {
+ "@vue/compiler-sfc": {
+ "optional": true
+ },
+ "vue": {
+ "optional": true
+ }
}
},
- "node_modules/vue-style-loader": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.3.tgz",
- "integrity": "sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg==",
+ "node_modules/vue-template-compiler": {
+ "version": "2.7.16",
+ "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz",
+ "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "hash-sum": "^1.0.2",
- "loader-utils": "^1.0.2"
+ "de-indent": "^1.0.2",
+ "he": "^1.2.0"
}
},
- "node_modules/vue-style-loader/node_modules/hash-sum": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz",
- "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==",
- "dev": true
- },
- "node_modules/vue-style-loader/node_modules/json5": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
- "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "node_modules/vue-tsc": {
+ "version": "1.8.27",
+ "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.8.27.tgz",
+ "integrity": "sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "minimist": "^1.2.0"
+ "@volar/typescript": "~1.11.1",
+ "@vue/language-core": "1.8.27",
+ "semver": "^7.5.4"
},
"bin": {
- "json5": "lib/cli.js"
+ "vue-tsc": "bin/vue-tsc.js"
+ },
+ "peerDependencies": {
+ "typescript": "*"
}
},
- "node_modules/vue-style-loader/node_modules/loader-utils": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
- "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
+ "node_modules/vue-tsc/node_modules/semver": {
+ "version": "7.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
+ "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
"dev": true,
- "dependencies": {
- "big.js": "^5.2.2",
- "emojis-list": "^3.0.0",
- "json5": "^1.0.1"
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
},
"engines": {
- "node": ">=4.0.0"
+ "node": ">=10"
}
},
"node_modules/vue3-nestable": {
@@ -11340,6 +9811,7 @@
"resolved": "https://registry.npmjs.org/vue3-nestable/-/vue3-nestable-3.0.3.tgz",
"integrity": "sha512-1f2Y/eWZbH+QgGAwgnDKyU0Lp0O5+zRO1rmF9eJfB1rG6ZJb8KEcrEwzvpoOGkPC+Z3xDzUQeQCeFruDRBrrBA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"immutability-helper": "^3.1.1",
"path": "^0.12.7",
@@ -11347,10 +9819,11 @@
}
},
"node_modules/watchpack": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz",
- "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==",
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz",
+ "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"glob-to-regexp": "^0.4.1",
"graceful-fs": "^4.1.2"
@@ -11359,44 +9832,37 @@
"node": ">=10.13.0"
}
},
- "node_modules/wbuf": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz",
- "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==",
- "dev": true,
- "dependencies": {
- "minimalistic-assert": "^1.0.0"
- }
- },
"node_modules/webpack": {
- "version": "5.88.2",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.88.2.tgz",
- "integrity": "sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ==",
+ "version": "5.99.8",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.99.8.tgz",
+ "integrity": "sha512-lQ3CPiSTpfOnrEGeXDwoq5hIGzSjmwD72GdfVzF7CQAI7t47rJG9eDWvcEkEn3CUQymAElVvDg3YNTlCYj+qUQ==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "@types/eslint-scope": "^3.7.3",
- "@types/estree": "^1.0.0",
- "@webassemblyjs/ast": "^1.11.5",
- "@webassemblyjs/wasm-edit": "^1.11.5",
- "@webassemblyjs/wasm-parser": "^1.11.5",
- "acorn": "^8.7.1",
- "acorn-import-assertions": "^1.9.0",
- "browserslist": "^4.14.5",
+ "@types/eslint-scope": "^3.7.7",
+ "@types/estree": "^1.0.6",
+ "@types/json-schema": "^7.0.15",
+ "@webassemblyjs/ast": "^1.14.1",
+ "@webassemblyjs/wasm-edit": "^1.14.1",
+ "@webassemblyjs/wasm-parser": "^1.14.1",
+ "acorn": "^8.14.0",
+ "browserslist": "^4.24.0",
"chrome-trace-event": "^1.0.2",
- "enhanced-resolve": "^5.15.0",
+ "enhanced-resolve": "^5.17.1",
"es-module-lexer": "^1.2.1",
"eslint-scope": "5.1.1",
"events": "^3.2.0",
"glob-to-regexp": "^0.4.1",
- "graceful-fs": "^4.2.9",
+ "graceful-fs": "^4.2.11",
"json-parse-even-better-errors": "^2.3.1",
"loader-runner": "^4.2.0",
"mime-types": "^2.1.27",
"neo-async": "^2.6.2",
- "schema-utils": "^3.2.0",
+ "schema-utils": "^4.3.2",
"tapable": "^2.1.1",
- "terser-webpack-plugin": "^5.3.7",
- "watchpack": "^2.4.0",
+ "terser-webpack-plugin": "^5.3.11",
+ "watchpack": "^2.4.1",
"webpack-sources": "^3.2.3"
},
"bin": {
@@ -11415,264 +9881,23 @@
}
}
},
- "node_modules/webpack-cli": {
- "version": "4.10.0",
- "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz",
- "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==",
- "dev": true,
- "dependencies": {
- "@discoveryjs/json-ext": "^0.5.0",
- "@webpack-cli/configtest": "^1.2.0",
- "@webpack-cli/info": "^1.5.0",
- "@webpack-cli/serve": "^1.7.0",
- "colorette": "^2.0.14",
- "commander": "^7.0.0",
- "cross-spawn": "^7.0.3",
- "fastest-levenshtein": "^1.0.12",
- "import-local": "^3.0.2",
- "interpret": "^2.2.0",
- "rechoir": "^0.7.0",
- "webpack-merge": "^5.7.3"
- },
- "bin": {
- "webpack-cli": "bin/cli.js"
- },
- "engines": {
- "node": ">=10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "4.x.x || 5.x.x"
- },
- "peerDependenciesMeta": {
- "@webpack-cli/generators": {
- "optional": true
- },
- "@webpack-cli/migrate": {
- "optional": true
- },
- "webpack-bundle-analyzer": {
- "optional": true
- },
- "webpack-dev-server": {
- "optional": true
- }
- }
- },
- "node_modules/webpack-dev-middleware": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz",
- "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==",
- "dev": true,
- "dependencies": {
- "colorette": "^2.0.10",
- "memfs": "^3.4.3",
- "mime-types": "^2.1.31",
- "range-parser": "^1.2.1",
- "schema-utils": "^4.0.0"
- },
- "engines": {
- "node": ">= 12.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^4.0.0 || ^5.0.0"
- }
- },
- "node_modules/webpack-dev-server": {
- "version": "4.15.1",
- "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz",
- "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==",
- "dev": true,
- "dependencies": {
- "@types/bonjour": "^3.5.9",
- "@types/connect-history-api-fallback": "^1.3.5",
- "@types/express": "^4.17.13",
- "@types/serve-index": "^1.9.1",
- "@types/serve-static": "^1.13.10",
- "@types/sockjs": "^0.3.33",
- "@types/ws": "^8.5.5",
- "ansi-html-community": "^0.0.8",
- "bonjour-service": "^1.0.11",
- "chokidar": "^3.5.3",
- "colorette": "^2.0.10",
- "compression": "^1.7.4",
- "connect-history-api-fallback": "^2.0.0",
- "default-gateway": "^6.0.3",
- "express": "^4.17.3",
- "graceful-fs": "^4.2.6",
- "html-entities": "^2.3.2",
- "http-proxy-middleware": "^2.0.3",
- "ipaddr.js": "^2.0.1",
- "launch-editor": "^2.6.0",
- "open": "^8.0.9",
- "p-retry": "^4.5.0",
- "rimraf": "^3.0.2",
- "schema-utils": "^4.0.0",
- "selfsigned": "^2.1.1",
- "serve-index": "^1.9.1",
- "sockjs": "^0.3.24",
- "spdy": "^4.0.2",
- "webpack-dev-middleware": "^5.3.1",
- "ws": "^8.13.0"
- },
- "bin": {
- "webpack-dev-server": "bin/webpack-dev-server.js"
- },
- "engines": {
- "node": ">= 12.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^4.37.0 || ^5.0.0"
- },
- "peerDependenciesMeta": {
- "webpack": {
- "optional": true
- },
- "webpack-cli": {
- "optional": true
- }
- }
- },
- "node_modules/webpack-dev-server/node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "dev": true,
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/webpack-merge": {
- "version": "5.9.0",
- "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.9.0.tgz",
- "integrity": "sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg==",
- "dev": true,
- "dependencies": {
- "clone-deep": "^4.0.1",
- "wildcard": "^2.0.0"
- },
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/webpack-notifier": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/webpack-notifier/-/webpack-notifier-1.15.0.tgz",
- "integrity": "sha512-N2V8UMgRB5komdXQRavBsRpw0hPhJq2/SWNOGuhrXpIgRhcMexzkGQysUyGStHLV5hkUlgpRiF7IUXoBqyMmzQ==",
- "dev": true,
- "dependencies": {
- "node-notifier": "^9.0.0",
- "strip-ansi": "^6.0.0"
- },
- "peerDependencies": {
- "@types/webpack": ">4.41.31"
- },
- "peerDependenciesMeta": {
- "@types/webpack": {
- "optional": true
- }
- }
- },
"node_modules/webpack-sources": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz",
- "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==",
- "dev": true,
- "dependencies": {
- "source-list-map": "^2.0.0",
- "source-map": "~0.6.1"
- }
- },
- "node_modules/webpack/node_modules/schema-utils": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
- "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
- "dev": true,
- "dependencies": {
- "@types/json-schema": "^7.0.8",
- "ajv": "^6.12.5",
- "ajv-keywords": "^3.5.2"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
- "node_modules/webpack/node_modules/webpack-sources": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
"integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
"dev": true,
+ "license": "MIT",
+ "peer": true,
"engines": {
"node": ">=10.13.0"
}
},
- "node_modules/webpackbar": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-5.0.2.tgz",
- "integrity": "sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==",
- "dev": true,
- "dependencies": {
- "chalk": "^4.1.0",
- "consola": "^2.15.3",
- "pretty-time": "^1.1.0",
- "std-env": "^3.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "webpack": "3 || 4 || 5"
- }
- },
- "node_modules/websocket-driver": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz",
- "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==",
- "dev": true,
- "dependencies": {
- "http-parser-js": ">=0.5.1",
- "safe-buffer": ">=5.1.0",
- "websocket-extensions": ">=0.1.1"
- },
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/websocket-extensions": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz",
- "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==",
- "dev": true,
- "engines": {
- "node": ">=0.8.0"
- }
- },
"node_modules/which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"isexe": "^2.0.0"
},
@@ -11683,17 +9908,134 @@
"node": ">= 8"
}
},
- "node_modules/wildcard": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz",
- "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==",
- "dev": true
+ "node_modules/which-boxed-primitive": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz",
+ "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "is-bigint": "^1.1.0",
+ "is-boolean-object": "^1.2.1",
+ "is-number-object": "^1.1.1",
+ "is-string": "^1.1.1",
+ "is-symbol": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/which-builtin-type": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz",
+ "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "function.prototype.name": "^1.1.6",
+ "has-tostringtag": "^1.0.2",
+ "is-async-function": "^2.0.0",
+ "is-date-object": "^1.1.0",
+ "is-finalizationregistry": "^1.1.0",
+ "is-generator-function": "^1.0.10",
+ "is-regex": "^1.2.1",
+ "is-weakref": "^1.0.2",
+ "isarray": "^2.0.5",
+ "which-boxed-primitive": "^1.1.0",
+ "which-collection": "^1.0.2",
+ "which-typed-array": "^1.1.16"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/which-collection": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz",
+ "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "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.19",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz",
+ "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.4",
+ "for-each": "^0.3.5",
+ "get-proto": "^1.0.1",
+ "gopd": "^1.2.0",
+ "has-tostringtag": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/word-wrap": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
+ "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
"node_modules/wrap-ansi": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+ "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",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
@@ -11706,44 +10048,89 @@
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
+ "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "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.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
+ "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
+ "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",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+ "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",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+ "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",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/write-file-atomic": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz",
- "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz",
+ "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"imurmurhash": "^0.1.4",
- "signal-exit": "^3.0.7"
+ "signal-exit": "^4.0.1"
},
"engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/ws": {
- "version": "8.13.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz",
- "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==",
- "dev": true,
- "engines": {
- "node": ">=10.0.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": ">=5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
"node_modules/xml-name-validator": {
@@ -11751,84 +10138,34 @@
"resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz",
"integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": ">=12"
}
},
- "node_modules/xtend": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
- "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
- "dev": true,
- "engines": {
- "node": ">=0.4"
- }
- },
- "node_modules/y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/yallist": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
- "dev": true
- },
- "node_modules/yaml": {
- "version": "1.10.2",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
- "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
"dev": true,
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/yargs": {
- "version": "17.7.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
- "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
- "dev": true,
- "dependencies": {
- "cliui": "^8.0.1",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.3",
- "y18n": "^5.0.5",
- "yargs-parser": "^21.1.1"
- },
- "engines": {
- "node": ">=12"
- }
+ "license": "ISC"
},
"node_modules/yargs-parser": {
"version": "20.2.9",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
"integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": ">=10"
}
},
- "node_modules/yargs/node_modules/yargs-parser": {
- "version": "21.1.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
- "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
- "dev": true,
- "engines": {
- "node": ">=12"
- }
- },
"node_modules/yocto-queue": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
"integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10"
},
diff --git a/package.json b/package.json
index 0e4c46c..3fd5705 100644
--- a/package.json
+++ b/package.json
@@ -1,66 +1,71 @@
{
"private": true,
"scripts": {
- "dev": "npm run development",
- "development": "mix",
- "watch": "mix watch",
- "watch-poll": "mix watch -- --watch-options-poll=1000",
- "hot": "mix watch --hot",
- "prod": "npm run production",
- "production": "mix --production",
- "eslint": "node ./node_modules/.bin/eslint -c .eslintrc.json ./resources",
- "eslint-ci": "node ./node_modules/.bin/eslint -c .eslintrc.json ./resources -f junit",
- "stylelint": "npx stylelint '**/*.scss'",
- "stylelint-ci": "npx stylelint '**/*.scss' -f json"
+ "prod": "vite build --mode production",
+ "dev": "NODE_ENV=\"development\" && vite build --mode development -d",
+ "watch": "NODE_ENV=\"development\" && vite build --mode development --watch",
+ "eslint": "node ./node_modules/.bin/eslint --max-warnings 0 -c .eslintrc.json ./resources",
+ "eslint-fix": "node ./node_modules/.bin/eslint --fix --max-warnings 0 -c .eslintrc.json ./resources",
+ "eslint-ci": "node ./node_modules/.bin/eslint --max-warnings 0 -c .eslintrc.json ./resources -f junit",
+ "stylelint": "node ./node_modules/.bin/stylelint --config './.stylelintrc.json' --max-warnings 0 '**/resources/**/*.scss'",
+ "stylelint-fix": "node ./node_modules/.bin/stylelint --config './.stylelintrc.json' --fix --max-warnings 0 '**/resources/**/*.scss'",
+ "stylelint-ci": "node ./node_modules/.bin/stylelint --config './.stylelintrc.json' --max-warnings 0 '**/resources/**/*.scss' -f json"
},
"devDependencies": {
- "@ckpack/vue-color": "^1.1.9",
- "@fortawesome/fontawesome-svg-core": "^6.1.2",
- "@fortawesome/free-brands-svg-icons": "^6.1.2",
- "@fortawesome/free-regular-svg-icons": "^6.1.2",
- "@fortawesome/free-solid-svg-icons": "^6.1.2",
- "@fortawesome/vue-fontawesome": "^3.0.1",
- "@rushstack/eslint-patch": "^1.1.4",
+ "@babel/core": "^7.27.1",
+ "@babel/types": "^7.27.1",
+ "@ckpack/vue-color": "^1.6.0",
+ "@erbelion/vite-plugin-laravel-purgecss": "^0.3.4",
+ "@fortawesome/fontawesome-svg-core": "^6.7.2",
+ "@fortawesome/free-brands-svg-icons": "^6.7.2",
+ "@fortawesome/free-regular-svg-icons": "^6.7.2",
+ "@fortawesome/free-solid-svg-icons": "^6.7.2",
+ "@fortawesome/vue-fontawesome": "^3.0.8",
+ "@rushstack/eslint-patch": "^1.11.0",
"@sipec/vue3-tags-input": "^3.0.4",
- "@types/bootstrap": "^5.2.6",
- "@types/cropperjs": "^1.3.0",
- "@types/toastify-js": "^1.11.1",
- "@types/webpack-env": "^1.18.0",
- "@typescript-eslint/eslint-plugin": "^5.36.2",
- "@typescript-eslint/parser": "^5.36.2",
- "@vue/eslint-config-typescript": "^11.0.0",
- "axios": "^0.21",
- "bootstrap": "^5.2.3",
- "clean-webpack-plugin": "^4.0.0",
- "cropperjs": "^1.5.12",
- "eslint": "^8.23.0",
- "eslint-plugin-vue": "^9.4.0",
- "eslint-webpack-plugin": "^3.2.0",
- "laravel-mix": "^6.0.6",
- "laravel-mix-clean": "^0.1.0",
- "laravel-mix-eslint": "^0.2.0",
- "laravel-mix-polyfill": "^3.0.1",
- "laravel-mix-stylelint": "^1.0.0",
- "postcss": "^8.1.14",
- "prettier": "^2.7.1",
+ "@types/bootstrap": "^5.2.10",
+ "@types/cropperjs": "^1.3.3",
+ "@types/node": "^20.8.2",
+ "@types/toastify-js": "^1.12.4",
+ "@typescript-eslint/eslint-plugin": "^5.62.0",
+ "@typescript-eslint/parser": "^5.36.0",
+ "@vitejs/plugin-basic-ssl": "^1.0.1",
+ "@vitejs/plugin-vue": "^4.6.2",
+ "@vue/compiler-sfc": "^3.4.23",
+ "@vue/eslint-config-typescript": "^13.0.0",
+ "@vue/tsconfig": "^0.4.0",
+ "autoprefixer": "^10.4.21",
+ "axios": "^1.9.0",
+ "bootstrap": "^5.3.6",
+ "cropperjs": "^1.6.1",
+ "eslint": "^8.57.0",
+ "eslint-import-resolver-alias": "^1.1.2",
+ "eslint-plugin-vue": "^9.25.0",
+ "laravel-vite-plugin": "^0.8.1",
+ "postcss-discard-comments": "^6.0.2",
"resolve-url-loader": "^5.0.0",
"resumablejs": "^1.1.0",
- "sass": "^1.54.8",
- "sass-loader": "^12.6.0",
- "slugify": "^1.6.5",
- "stylelint": "^14.11.0",
- "stylelint-config-idiomatic-order": "^8.1.0",
- "stylelint-config-sass-guidelines": "^9.0.1",
- "stylelint-config-standard-scss": "^6.1.0",
- "stylelint-webpack-plugin": "^3.3.0",
- "sweetalert2": "^11.4.8",
+ "rollup-plugin-copy": "^3.5.0",
+ "sass": "^1.58.3",
+ "sass-loader": "^13.3.1",
+ "slugify": "^1.6.6",
+ "stylelint": "^15.11.0",
+ "stylelint-config-idiomatic-order": "^10.0.0",
+ "stylelint-config-sass-guidelines": "^10.0.0",
+ "stylelint-config-standard-scss": "^11.1.0",
+ "sweetalert2": "^11.21.0",
"toastify-js": "^1.12.0",
"ts-loader": "^9.3.1",
- "typescript": "^4.8.2",
- "typescript-eslint": "^0.0.1-alpha.0",
- "vue": "^3.2.38",
- "vue-eslint-parser": "^9.1.0",
- "vue-loader": "^16.8.3",
+ "typescript": ">=3.3.1 <5.2.0",
+ "vite": "^4.5.1",
+ "vite-plugin-babel": "^1.2.0",
+ "vite-plugin-checker": "^0.6.4",
+ "vite-plugin-eslint": "^1.8.1",
+ "vite-plugin-stylelint": "^5.3.1",
+ "vue": "^3.4.23",
+ "vue-eslint-parser": "^9.4.2",
+ "vue-loader": "^17.4.2",
+ "vue-tsc": "^1.8.11",
"vue3-nestable": "^3.0.3"
}
}
diff --git a/phpcs.xml b/phpcs.xml
index f17ab34..4d2193f 100644
--- a/phpcs.xml
+++ b/phpcs.xml
@@ -8,6 +8,7 @@
config/
database/factories
routes/
+ */vendor/*
@@ -20,6 +21,7 @@
+
@@ -28,11 +30,11 @@
-
-
+
+
@@ -42,9 +44,6 @@
-
-
-
@@ -77,7 +76,6 @@
-
diff --git a/phpstan.neon b/phpstan.neon
new file mode 100644
index 0000000..1fdaadd
--- /dev/null
+++ b/phpstan.neon
@@ -0,0 +1,8 @@
+includes:
+ - vendor/larastan/larastan/extension.neon
+
+parameters:
+ paths:
+ - app/
+
+ level: 5
diff --git a/production-resources.yaml b/production-resources.yaml
new file mode 100644
index 0000000..7bdc887
--- /dev/null
+++ b/production-resources.yaml
@@ -0,0 +1,11 @@
+apiVersion: cert-manager.io/v1
+kind: Certificate
+metadata:
+ name: $APP_DOMAIN
+spec:
+ dnsNames:
+ - $APP_DOMAIN
+ secretName: $APP_DOMAIN
+ issuerRef:
+ name: $APP_CERT_ISSUER
+ kind: ClusterIssuer
diff --git a/resources/assets/fonts/bo/.gitkeep b/resources/assets/fonts/bo/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/resources/assets/settings/BackgroundImage.png b/resources/assets/settings/BackgroundImage.png
new file mode 100644
index 0000000..a4eee84
Binary files /dev/null and b/resources/assets/settings/BackgroundImage.png differ
diff --git a/resources/assets/settings/HomeButtonImage.png b/resources/assets/settings/HomeButtonImage.png
new file mode 100644
index 0000000..0e12966
Binary files /dev/null and b/resources/assets/settings/HomeButtonImage.png differ
diff --git a/resources/assets/settings/RectangleLogo.png b/resources/assets/settings/RectangleLogo.png
new file mode 100644
index 0000000..b1cdbaa
Binary files /dev/null and b/resources/assets/settings/RectangleLogo.png differ
diff --git a/resources/assets/settings/SquaredLogo.png b/resources/assets/settings/SquaredLogo.png
new file mode 100644
index 0000000..1c99804
Binary files /dev/null and b/resources/assets/settings/SquaredLogo.png differ
diff --git a/resources/js/ckUploadAdapter.js b/resources/js/ckUploadAdapter.js
new file mode 100644
index 0000000..19ae8ed
--- /dev/null
+++ b/resources/js/ckUploadAdapter.js
@@ -0,0 +1,67 @@
+import axios from "axios";
+import route from "../ts/modules/route";
+
+class ckUploadAdapter {
+ constructor(loader) {
+ // The file loader instance to use during the upload.
+ this.loader = loader;
+ }
+
+ // Starts the upload process.
+ upload() {
+ return this.loader.file.then(
+ (file) =>
+ new Promise((resolve, reject) => {
+ this._initRequest();
+ this._sendRequest(file, resolve, reject);
+ }),
+ );
+ }
+
+ // Aborts the upload process.
+ abort() {
+ if (this.cancel) {
+ this.cancel.abort();
+ }
+ }
+
+ // Initializes the XMLHttpRequest object using the URL passed to the constructor.
+ _initRequest() {
+ this.cancel = axios.CancelToken.source();
+ this.route = route.methods.route("bo.upload");
+ }
+
+ // Prepares the data and sends the request.
+ _sendRequest(file, resolve, reject) {
+ // Prepare the form data.
+ const data = new FormData();
+ data.append("upload", file);
+ axios
+ .post(this.route, data, {
+ headers: {
+ "Content-Type": "multipart/form-data",
+ },
+ onUploadProgress: (evt) => {
+ this.loader.uploadTotal = evt.total;
+ this.loader.uploaded = evt.loaded;
+ },
+ })
+ .then((response) => {
+ resolve({
+ default: response.data.url,
+ });
+ })
+ .catch((error) => {
+ console.error(error);
+ reject("Le fichier à été marbré");
+ });
+ }
+}
+
+function CkUploadAdapterPlugin(editor) {
+ editor.plugins.get("FileRepository").createUploadAdapter = (loader) => {
+ return new ckUploadAdapter(loader);
+ };
+}
+
+export default CkUploadAdapterPlugin;
diff --git a/resources/lang/en/auth.php b/resources/lang/en/auth.php
index 6598e2c..3df2e34 100644
--- a/resources/lang/en/auth.php
+++ b/resources/lang/en/auth.php
@@ -1,20 +1,7 @@
'These credentials do not match our records.',
+ 'failed' => 'These credentials do not match our records.',
'password' => 'The provided password is incorrect.',
'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',
-
];
diff --git a/resources/lang/en/back.php b/resources/lang/en/back.php
new file mode 100644
index 0000000..11e6bfb
--- /dev/null
+++ b/resources/lang/en/back.php
@@ -0,0 +1,6 @@
+ 'Home',
+ 'admin' => 'Avanced',
+];
diff --git a/resources/lang/en/crud.php b/resources/lang/en/crud.php
index 820675b..65f6352 100644
--- a/resources/lang/en/crud.php
+++ b/resources/lang/en/crud.php
@@ -2,82 +2,82 @@
return [
'actions' => [
- 'list' => 'List',
- 'view' => 'View',
- 'create' => 'Create',
+ 'list' => 'List',
+ 'view' => 'View',
+ 'create' => 'Create',
'duplicate' => 'Duplicate',
- 'update' => 'Update',
- 'delete' => 'Delete',
- 'save' => 'Save',
- 'edit' => 'Edit',
+ 'update' => 'Update',
+ 'delete' => 'Delete',
+ 'save' => 'Save',
+ 'edit' => 'Edit',
],
'helpers' => [
- 'list' => 'List',
- 'list_all' => 'List all :model',
- 'create_model' => 'Create :model',
- 'view_model' => 'View :model',
- 'update_model' => 'Update :model',
+ 'list' => 'List',
+ 'list_all' => 'List all :model',
+ 'create_model' => 'Create :model',
+ 'view_model' => 'View :model',
+ 'update_model' => 'Update :model',
'duplicate_model' => 'Duplicate :model',
- 'delete_model' => 'Delete :model',
- 'save_model' => 'Save :model',
- 'edit_model' => 'Edit :model',
- 'no_results' => 'No results for :models',
- 'publish' => 'Publish',
- 'unpublish' => 'Unpublish',
+ 'delete_model' => 'Delete :model',
+ 'save_model' => 'Save :model',
+ 'edit_model' => 'Edit :model',
+ 'no_results' => 'No results for :models',
+ 'publish' => 'Publish',
+ 'unpublish' => 'Unpublish',
],
'libs' => [
'toolbox' => [
- 'assertFieldIsUnique' => 'The :value for the :attribute field is already in use',
+ 'assertFieldIsUnique' => 'The :value for the :attribute field is already in use',
'assertNoInternalBoUrls' => ':attribute : It is forbidden to paste back-office uri into this field',
- 'assertNoInternalUrls' => ':attribute : It is forbidden to paste a url of :appname into this field',
+ 'assertNoInternalUrls' => ':attribute : It is forbidden to paste a url of :appname into this field',
]
],
'messages' => [
- 'has_been_created' => ':model has been created',
- 'cannot_be_created' => ':model cannot be created',
- 'has_been_updated' => ':model has been updated',
- 'cannot_be_updated' => ':model cannot be updated',
- 'has_been_deleted' => ':model has been deleted',
- 'cannot_be_deleted' => ':model cannot be deleted',
- 'order_changed' => 'The order has been changed!',
- 'order_not_changed' => 'The order hasn\'t been changed!',
+ 'has_been_created' => ':model has been created',
+ 'cannot_be_created' => ':model cannot be created',
+ 'has_been_updated' => ':model has been updated',
+ 'cannot_be_updated' => ':model cannot be updated',
+ 'has_been_deleted' => ':model has been deleted',
+ 'cannot_be_deleted' => ':model cannot be deleted',
+ 'order_changed' => 'The order has been changed!',
+ 'order_not_changed' => 'The order hasn\'t been changed!',
'publish_status_saved' => 'Change of publication status successful!',
- 'right' => 'You don\'t have the rights to access this part !'
+ 'right' => 'You don\'t have the rights to access this part !'
],
'minicrud' => [
- 'visibility_label' => 'Visibility',
- 'visibility_helper' => 'Check to make it visible.',
- 'enum_select' => 'Select :enum from the list.',
- 'associated_enum' => 'Associated :enum',
- 'dimensions_must_be' => 'Must be :widthpx (width) by :heightpx (height).',
+ 'visibility_label' => 'Visibility',
+ 'visibility_helper' => 'Check to make it visible.',
+ 'enum_select' => 'Select :enum from the list.',
+ 'associated_enum' => 'Associated :enum',
+ 'dimensions_must_be' => 'Must be :widthpx (width) by :heightpx (height).',
'picture_title_helper' => 'Useful for users, displayed by moving the mouse over the image',
- 'picture_title_label' => 'Title attribute of the image',
- 'picture_alt_helper' => 'Must describe your image for search engines and blind people (5 to 6 words)',
- 'picture_alt_label' => 'Alt attribute of the image',
- 'text_warning' => 'Proofread your content before publishing it',
+ 'picture_title_label' => 'Title attribute of the image',
+ 'picture_alt_helper' => 'Must describe your image for search engines and blind people (5 to 6 words)',
+ 'picture_alt_label' => 'Alt attribute of the image',
+ 'text_warning' => 'Proofread your content before publishing it',
],
'pagination' => [
- "previous" => "Previous page",
- "next" => "Next page",
+ "previous" => "Previous page",
+ "next" => "Next page",
"specific_page" => "Go to page n°:id",
'paginate_list' => 'Number of elements per page',
],
'other' => [
- 'up' => 'Change the order of appearance upwards',
- 'down' => 'Change the order of appearance downwards',
- 'no_model_found' => 'None :model found',
- 'publish' => 'Published',
- 'unpublish' => 'Unpublished',
- 'sort_ascending' => 'Sort :name in ascending order',
+ 'up' => 'Change the order of appearance upwards',
+ 'down' => 'Change the order of appearance downwards',
+ 'no_model_found' => 'None :model found',
+ 'publish' => 'Published',
+ 'unpublish' => 'Unpublished',
+ 'sort_ascending' => 'Sort :name in ascending order',
'sort_descending' => 'Sort :name in descending order',
- 'sort_delete' => 'Delete sorting',
- 'sort_arrow' => 'Here, the arrows are used to sort, not filter.',
- 'right' => 'You don\'t have the rights',
+ 'sort_delete' => 'Delete sorting',
+ 'sort_arrow' => 'Here, the arrows are used to sort, not filter.',
+ 'right' => 'You don\'t have the rights',
]
];
diff --git a/resources/lang/en/enums.php b/resources/lang/en/enums.php
index c2cac45..d16d62d 100644
--- a/resources/lang/en/enums.php
+++ b/resources/lang/en/enums.php
@@ -1,7 +1,7 @@
'Draft',
+ 'draft' => 'Draft',
'published' => 'Published',
- 'archived' => 'Archived'
+ 'archived' => 'Archived'
];
diff --git a/resources/lang/en/models.php b/resources/lang/en/models.php
index 0b79389..b00e75a 100644
--- a/resources/lang/en/models.php
+++ b/resources/lang/en/models.php
@@ -2,14 +2,14 @@
return [
'classes' => [
- 'dashboard' => 'Dashboard',
- 'app_users' => 'Application\'s users',
- 'directories' => 'Directories',
- 'documents' => 'Documents',
- 'users' => 'Users',
- 'settings' => 'Settings',
- 'tags' => 'Tags',
- 'formularies' => 'Formularies',
- 'contacts' => 'Contacts',
+ 'app_user' => 'App. user',
+ 'directory' => 'Directory',
+ 'document' => 'Document',
+ 'user' => 'User',
+ 'setting' => 'Setting',
+ 'tag' => 'Tag',
+ 'formulary' => 'Formulary',
+ 'contact' => 'Contact',
+ 'tenant' => 'Tenant',
]
];
diff --git a/resources/lang/en/pagination.php b/resources/lang/en/pagination.php
deleted file mode 100644
index 569cf1e..0000000
--- a/resources/lang/en/pagination.php
+++ /dev/null
@@ -1,8 +0,0 @@
- "Previous page",
- "next" => "Next page",
- "specific_page" => "Access to page :id",
- 'paginate_list' => 'Number of items per page',
-];
diff --git a/resources/lang/en/passwords.php b/resources/lang/en/passwords.php
index 0ff0660..1dd635b 100644
--- a/resources/lang/en/passwords.php
+++ b/resources/lang/en/passwords.php
@@ -2,10 +2,10 @@
return [
- 'reset' => 'Your password has been reset!',
- 'sent' => 'We have emailed your password reset link!',
+ 'reset' => 'Your password has been reset!',
+ 'sent' => 'We have emailed your password reset link!',
'throttled' => 'Please wait before retrying.',
- 'token' => 'This password reset token is invalid.',
- 'user' => "We can't find a user with that email address.",
+ 'token' => 'This password reset token is invalid.',
+ 'user' => "We can't find a user with that email address.",
];
diff --git a/resources/lang/en/validation.php b/resources/lang/en/validation.php
index 783003c..9f65330 100644
--- a/resources/lang/en/validation.php
+++ b/resources/lang/en/validation.php
@@ -1,163 +1,217 @@
'The :attribute must be accepted.',
- 'accepted_if' => 'The :attribute must be accepted when :other is :value.',
- 'active_url' => 'The :attribute is not a valid URL.',
- 'after' => 'The :attribute must be a date after :date.',
- 'after_or_equal' => 'The :attribute must be a date after or equal to :date.',
- 'alpha' => 'The :attribute must only contain letters.',
- 'alpha_dash' => 'The :attribute must only contain letters, numbers, dashes and underscores.',
- 'alpha_num' => 'The :attribute must only contain letters and numbers.',
- 'array' => 'The :attribute must be an array.',
- 'before' => 'The :attribute must be a date before :date.',
- 'before_or_equal' => 'The :attribute must be a date before or equal to :date.',
- 'between' => [
+ 'accepted' => 'The :attribute field must be accepted.',
+ 'accepted_if' => 'The :attribute field must be accepted when :other is :value.',
+ 'active_url' => 'The :attribute field is not a valid URL.',
+ 'after' => 'The :attribute must be a date after :date.',
+ 'after_or_equal' => 'The :attribute must be a date after or equal to :date.',
+ 'alpha' => 'The :attribute field must only contain letters.',
+ 'alpha_dash' => 'The :attribute field may only contain letters, numbers, and dashes.',
+ 'alpha_num' => 'The :attribute field must only contain letters and numbers.',
+ 'array' => 'The :attribute field must be an array.',
+ 'before' => 'The :attribute must be a date before :date.',
+ 'before_or_equal' => 'The :attribute must be a date before or equal to :date.',
+ 'between' => [
+ 'array' => 'The :attribute must have between :min and :max items.',
+ 'file' => 'The :attribute must be between :min and :max kilobytes.',
'numeric' => 'The :attribute must be between :min and :max.',
- 'file' => 'The :attribute must be between :min and :max kilobytes.',
- 'string' => 'The :attribute must be between :min and :max characters.',
- 'array' => 'The :attribute must have between :min and :max items.',
+ 'string' => 'The :attribute must be between :min and :max characters.',
],
- 'boolean' => 'The :attribute field must be true or false.',
- 'confirmed' => 'The :attribute confirmation does not match.',
- 'current_password' => 'The password is incorrect.',
- 'date' => 'The :attribute is not a valid date.',
- 'date_equals' => 'The :attribute must be a date equal to :date.',
- 'date_format' => 'The :attribute does not match the format :format.',
- 'declined' => 'The :attribute must be declined.',
- 'declined_if' => 'The :attribute must be declined when :other is :value.',
- 'different' => 'The :attribute and :other must be different.',
- 'digits' => 'The :attribute must be :digits digits.',
- 'digits_between' => 'The :attribute must be between :min and :max digits.',
- 'dimensions' => 'The :attribute has invalid image dimensions.',
- 'distinct' => 'The :attribute field has a duplicate value.',
- 'email' => 'The :attribute must be a valid email address.',
- 'ends_with' => 'The :attribute must end with one of the following: :values.',
- 'enum' => 'The selected :attribute is invalid.',
- 'exists' => 'The selected :attribute is invalid.',
- 'file' => 'The :attribute must be a file.',
- 'filled' => 'The :attribute field must have a value.',
- 'gt' => [
+ 'boolean' => 'The :attribute field must be true or false.',
+ 'confirmed' => 'The :attribute confirmation does not match.',
+ 'current_password' => 'The password is incorrect.',
+ 'date' => 'The :attribute is not a valid date.',
+ 'date_equals' => 'The :attribute must be a date equal to :date.',
+ 'date_format' => 'The :attribute does not match the format :format.',
+ 'declined' => 'The :attribute must be declined.',
+ 'declined_if' => 'The :attribute must be declined when :other is :value.',
+ 'different' => 'The :attribute and :other must be different.',
+ 'digits' => 'The :attribute must be :digits digits.',
+ 'digits_between' => 'The :attribute must be between :min and :max digits.',
+ 'dimensions' => 'The :attribute has invalid image dimensions.',
+ 'distinct' => 'The :attribute field has a duplicate value.',
+ 'email' => 'The :attribute must be a valid email address.',
+ 'ends_with' => 'The :attribute must end with one of the following: :values.',
+ 'enum' => 'The selected :attribute is invalid.',
+ 'exists' => 'The selected :attribute is invalid.',
+ 'file' => 'The :attribute must be a file.',
+ 'filled' => 'The :attribute field must have a value.',
+ 'gt' => [
+ 'array' => 'The :attribute must have more than :value items.',
+ 'file' => 'The :attribute must be greater than :value kilobytes.',
'numeric' => 'The :attribute must be greater than :value.',
- 'file' => 'The :attribute must be greater than :value kilobytes.',
- 'string' => 'The :attribute must be greater than :value characters.',
- 'array' => 'The :attribute must have more than :value items.',
+ 'string' => 'The :attribute must be greater than :value characters.',
],
- 'gte' => [
+ 'gte' => [
+ 'array' => 'The :attribute must have :value items or more.',
+ 'file' => 'The :attribute must be greater than or equal to :value kilobytes.',
'numeric' => 'The :attribute must be greater than or equal to :value.',
- 'file' => 'The :attribute must be greater than or equal to :value kilobytes.',
- 'string' => 'The :attribute must be greater than or equal to :value characters.',
- 'array' => 'The :attribute must have :value items or more.',
+ 'string' => 'The :attribute must be greater than or equal to :value characters.',
],
- 'image' => 'The :attribute must be an image.',
- 'in' => 'The selected :attribute is invalid.',
- 'in_array' => 'The :attribute field does not exist in :other.',
- 'integer' => 'The :attribute must be an integer.',
- 'ip' => 'The :attribute must be a valid IP address.',
- 'ipv4' => 'The :attribute must be a valid IPv4 address.',
- 'ipv6' => 'The :attribute must be a valid IPv6 address.',
- 'json' => 'The :attribute must be a valid JSON string.',
- 'lt' => [
+ 'image' => 'The :attribute must be an image.',
+ 'in' => 'The selected :attribute is invalid.',
+ 'in_array' => 'The :attribute field does not exist in :other.',
+ 'integer' => 'The :attribute must be an integer.',
+ 'ip' => 'The :attribute must be a valid IP address.',
+ 'ipv4' => 'The :attribute must be a valid IPv4 address.',
+ 'ipv6' => 'The :attribute must be a valid IPv6 address.',
+ 'json' => 'The :attribute must be a valid JSON string.',
+ 'lt' => [
+ 'array' => 'The :attribute must have less than :value items.',
+ 'file' => 'The :attribute must be less than :value kilobytes.',
'numeric' => 'The :attribute must be less than :value.',
- 'file' => 'The :attribute must be less than :value kilobytes.',
- 'string' => 'The :attribute must be less than :value characters.',
- 'array' => 'The :attribute must have less than :value items.',
+ 'string' => 'The :attribute must be less than :value characters.',
],
- 'lte' => [
+ 'lte' => [
+ 'array' => 'The :attribute must not have more than :value items.',
+ 'file' => 'The :attribute must be less than or equal to :value kilobytes.',
'numeric' => 'The :attribute must be less than or equal to :value.',
- 'file' => 'The :attribute must be less than or equal to :value kilobytes.',
- 'string' => 'The :attribute must be less than or equal to :value characters.',
- 'array' => 'The :attribute must not have more than :value items.',
+ 'string' => 'The :attribute must be less than or equal to :value characters.',
],
- 'mac_address' => 'The :attribute must be a valid MAC address.',
- 'max' => [
- 'numeric' => 'The :attribute must not be greater than :max.',
- 'file' => 'The :attribute must not be greater than :max kilobytes.',
- 'string' => 'The :attribute must not be greater than :max characters.',
- 'array' => 'The :attribute must not have more than :max items.',
+ 'mac_address' => 'The :attribute must be a valid MAC address.',
+ 'max' => [
+ 'array' => 'The :attribute may not have more than :max items.',
+ 'file' => 'The :attribute may not be greater than :max kilobytes.',
+ 'numeric' => 'The :attribute may not be greater than :max.',
+ 'string' => 'The :attribute may not be greater than :max characters.',
],
- 'mimes' => 'The :attribute must be a file of type: :values.',
- 'mimetypes' => 'The :attribute must be a file of type: :values.',
- 'min' => [
+ 'mimes' => 'The :attribute must be a file of type: :values.',
+ 'mimetypes' => 'The :attribute must be a file of type: :values.',
+ 'min' => [
+ 'array' => 'The :attribute must have at least :min items.',
+ 'file' => 'The :attribute must be at least :min kilobytes.',
'numeric' => 'The :attribute must be at least :min.',
- 'file' => 'The :attribute must be at least :min kilobytes.',
- 'string' => 'The :attribute must be at least :min characters.',
- 'array' => 'The :attribute must have at least :min items.',
+ 'string' => 'The :attribute must be at least :min characters.',
],
- 'multiple_of' => 'The :attribute must be a multiple of :value.',
- 'not_in' => 'The selected :attribute is invalid.',
- 'not_regex' => 'The :attribute format is invalid.',
- 'numeric' => 'The :attribute must be a number.',
- 'password' => 'The password is incorrect.',
- 'present' => 'The :attribute field must be present.',
- 'prohibited' => 'The :attribute field is prohibited.',
- 'prohibited_if' => 'The :attribute field is prohibited when :other is :value.',
- 'prohibited_unless' => 'The :attribute field is prohibited unless :other is in :values.',
- 'prohibits' => 'The :attribute field prohibits :other from being present.',
- 'regex' => 'The :attribute format is invalid.',
- 'required' => 'The :attribute field is required.',
- 'required_array_keys' => 'The :attribute field must contain entries for: :values.',
- 'required_if' => 'The :attribute field is required when :other is :value.',
- 'required_unless' => 'The :attribute field is required unless :other is in :values.',
- 'required_with' => 'The :attribute field is required when :values is present.',
- 'required_with_all' => 'The :attribute field is required when :values are present.',
- 'required_without' => 'The :attribute field is required when :values is not present.',
+ 'multiple_of' => 'The :attribute must be a multiple of :value.',
+ 'not_in' => 'The selected :attribute is invalid.',
+ 'not_regex' => 'The :attribute format is invalid.',
+ 'numeric' => 'The :attribute must be a number.',
+ 'password' => [
+ 'letters' => 'The :attribute must contain at least one letter.',
+ 'mixed' => 'The :attribute must contain at least one uppercase and one lowercase letter.',
+ 'numbers' => 'The :attribute must contain at least one number.',
+ 'symbols' => 'The :attribute must contain at least one symbol.',
+ 'uncompromised' => 'The :attribute has appeared in a data leak. Please choose a different :attribute.',
+ ],
+ 'phone' => 'The phone number must be a valid phone number.',
+ 'present' => 'The :attribute field must be present.',
+ 'prohibited' => 'The :attribute field is prohibited.',
+ 'prohibited_if' => 'The :attribute field is prohibited when :other is :value.',
+ 'prohibited_unless' => 'The :attribute field is prohibited unless :other is in :values.',
+ 'prohibits' => 'The :attribute field prohibits :other from being present.',
+ 'regex' => 'The :attribute format is invalid.',
+ 'required' => 'The :attribute field is required.',
+ 'required_array_keys' => 'The :attribute field must contain entries for: :values.',
+ 'required_if' => 'The :attribute field is required when :other is :value.',
+ 'required_unless' => 'The :attribute field is required unless :other is in :values.',
+ 'required_with' => 'The :attribute field is required when :values is present.',
+ 'required_with_all' => 'The :attribute field is required when all of :values are present.',
+ 'required_without' => 'The :attribute field is required when :values is not present.',
'required_without_all' => 'The :attribute field is required when none of :values are present.',
- 'same' => 'The :attribute and :other must match.',
- 'size' => [
+ 'same' => 'The :attribute and :other must match.',
+ 'size' => [
+ 'array' => 'The :attribute must contain :size items.',
+ 'file' => 'The :attribute must be :size kilobytes.',
'numeric' => 'The :attribute must be :size.',
- 'file' => 'The :attribute must be :size kilobytes.',
- 'string' => 'The :attribute must be :size characters.',
- 'array' => 'The :attribute must contain :size items.',
+ 'string' => 'The :attribute must be :size characters.',
+ ],
+ 'starts_with' => 'The :attribute must start with one of the following: :values.',
+ 'string' => 'The :attribute must be a string.',
+ 'timezone' => 'The :attribute must be a valid timezone.',
+ 'unique' => 'The :attribute has already been taken.',
+ 'uploaded' => 'The :attribute failed to upload.',
+ 'url' => 'The :attribute format is invalid.',
+ 'uuid' => 'The :attribute must be a valid UUID.',
+ 'attributes' => [
+ 'address' => 'address',
+ 'age' => 'age',
+ 'amount' => 'amount',
+ 'area' => 'area',
+ 'available' => 'available',
+ 'birthday' => 'birthday',
+ 'body' => 'body',
+ 'city' => 'city',
+ 'content' => 'content',
+ 'country' => 'country',
+ 'created_at' => 'created at',
+ 'creator' => 'creator',
+ 'current_password' => 'current password',
+ 'date' => 'date',
+ 'date_of_birth' => 'date of birth',
+ 'day' => 'day',
+ 'deleted_at' => 'deleted at',
+ 'description' => 'description',
+ 'district' => 'district',
+ 'duration' => 'duration',
+ 'email' => 'email address',
+ 'excerpt' => 'excerpt',
+ 'filter' => 'filter',
+ 'first_name' => 'first name',
+ 'gender' => 'gender',
+ 'group' => 'group',
+ 'hour' => 'hour',
+ 'image' => 'image',
+ 'last_name' => 'last name',
+ 'lesson' => 'lesson',
+ 'line_address_1' => 'address line 1',
+ 'line_address_2' => 'address line 2',
+ 'message' => 'message',
+ 'middle_name' => 'middle name',
+ 'minute' => 'minute',
+ 'mobile' => 'mobile',
+ 'month' => 'month',
+ 'name' => 'name',
+ 'national_code' => 'national code',
+ 'number' => 'number',
+ 'password' => 'password',
+ 'password_confirmation' => 'password confirmation',
+ 'phone' => 'phone',
+ 'photo' => 'photo',
+ 'postal_code' => 'postal code',
+ 'price' => 'price',
+ 'province' => 'province',
+ 'recaptcha_response_field' => 'recaptcha response field',
+ 'remember' => 'remember',
+ 'restored_at' => 'restored at',
+ 'result_text_under_image' => 'result text under image',
+ 'role' => 'role',
+ 'second' => 'second',
+ 'sex' => 'sex',
+ 'short_text' => 'short text',
+ 'size' => 'size',
+ 'state' => 'state',
+ 'street' => 'street',
+ 'student' => 'student',
+ 'subject' => 'subject',
+ 'teacher' => 'teacher',
+ 'terms' => 'terms',
+ 'test_description' => 'test description',
+ 'test_locale' => 'test locale',
+ 'test_name' => 'test name',
+ 'text' => 'text',
+ 'time' => 'time',
+ 'title' => 'title',
+ 'updated_at' => 'updated at',
+ 'username' => 'username',
+ 'year' => 'year',
+ 'zipcode' => 'zipcode',
],
- 'starts_with' => 'The :attribute must start with one of the following: :values.',
- 'string' => 'The :attribute must be a string.',
- 'timezone' => 'The :attribute must be a valid timezone.',
- 'unique' => 'The :attribute has already been taken.',
- 'uploaded' => 'The :attribute failed to upload.',
- 'url' => 'The :attribute must be a valid URL.',
- 'uuid' => 'The :attribute must be a valid UUID.',
-
- /*
- |--------------------------------------------------------------------------
- | Custom Validation Language Lines
- |--------------------------------------------------------------------------
- |
- | Here you may specify custom validation messages for attributes using the
- | convention "attribute.rule" to name the lines. This makes it quick to
- | specify a specific custom language line for a given attribute rule.
- |
- */
-
'custom' => [
- 'attribute-name' => [
- 'rule-name' => 'custom-message',
- ],
- ],
-
- /*
- |--------------------------------------------------------------------------
- | Custom Validation Attributes
- |--------------------------------------------------------------------------
- |
- | The following language lines are used to swap our attribute placeholder
- | with something more reader friendly such as "E-Mail Address" instead
- | of "email". This simply helps us make our message more expressive.
- |
- */
-
- 'attributes' => [],
-
+ 'authorization' => 'authorization',
+ 'detail' => 'detail',
+ 'key' => 'key',
+ 'lang' => 'lang',
+ 'order' => 'order',
+ 'path' => 'path',
+ 'placeholder' => 'placeholder',
+ 'required' => 'required',
+ 'role' => 'role',
+ 'slug' => 'slug',
+ 'status' => 'status',
+ 'type' => 'type',
+ 'value' => 'value',
+ 'visibility' => 'visibility',
+ ]
];
diff --git a/resources/lang/en/vue.php b/resources/lang/en/vue.php
new file mode 100644
index 0000000..34ed46a
--- /dev/null
+++ b/resources/lang/en/vue.php
@@ -0,0 +1,43 @@
+ [
+ 'choose_a_file' => 'Choose a file',
+ 'change_source_picture' => 'Change source image',
+ 'view_source_picture' => 'View image',
+ 'resize_source_picture' => 'Resize image',
+ 'resized_source_picture' => 'Resized image',
+ 'preview_picture' => 'Image preview',
+ 'change_picture_before_import' => 'Edit image before import',
+ 'close_window' => 'Close window',
+ 'close_and_validate' => 'Validate content and close window',
+ 'close_window_without_validation' => 'Close window without validating content',
+ 'zoom_in' => 'Zoom in',
+ 'zoom_out' => 'Zoom out',
+ 'move_left' => 'Move left',
+ 'move_right' => 'Move right',
+ 'move_up' => 'Move up',
+ 'move_down' => 'Move down',
+ 'mirror_horizontal' => 'Horizontal mirror',
+ 'mirror_vertical' => 'Vertical mirror',
+ 'rotation' => 'Rotation',
+ 'rotate_rewind' => 'Rotate counterclockwise',
+ 'rotate' => 'Rotate clockwise',
+ 'degres' => ':deg degrees',
+ 'validate' => 'Validate',
+ 'preview' => 'Preview',
+ 'remove_picture' => 'Remove image',
+ ],
+ 'WordCounterComponent' => [
+ 'words' => 'Words',
+ 'characters' => 'Characters'
+ ],
+ 'PasswordVisibility' => [
+ 'hide' => 'Hide password',
+ 'show' => 'Show password',
+ ],
+ 'ContactForm' => [
+ 'attachment_allowed_formats' => 'Allowed formats: :formats',
+ 'attachment_max_size' => 'Maximum size: :max',
+ ]
+];
diff --git a/resources/lang/fr.json b/resources/lang/fr.json
deleted file mode 100644
index 477bc4f..0000000
--- a/resources/lang/fr.json
+++ /dev/null
@@ -1,772 +0,0 @@
-{
- "30 Days": "30 jours",
- "60 Days": "60 jours",
- "90 Days": "90 jours",
- ":amount Total": ":amount Total",
- ":days day trial": ":days jours d'essai",
- ":resource Details": "Détails :resource",
- ":resource Details: :title": " Détails :resource :title :",
- "A fresh verification link has been sent to your email address.": "Un nouveau lien de vérification a été envoyé à votre adresse e-mail.",
- "A new verification link has been sent to the email address you provided during registration.": "Un nouveau lien de vérification a été envoyé à l'adresse e-mail que vous avez indiquée lors de votre inscription.",
- "Accept Invitation": "Acceptez l'invitation",
- "Action": "Action",
- "Action Happened At": "Arrivé à",
- "Action Initiated By": "Initié par",
- "Action Name": "Nom",
- "Action Status": "Statut",
- "Action Target": "Cible",
- "Actions": "Actions",
- "Add": "Ajouter",
- "Add a new team member to your team, allowing them to collaborate with you.": "Ajouter un nouveau membre de l'équipe à votre équipe, permettant de collaborer avec vous.",
- "Add additional security to your account using two factor authentication.": "Ajouter une sécurité supplémentaire à votre compte en utilisant l'authentification à deux facteurs.",
- "Add row": "Ajouter un rang",
- "Add Team Member": "Ajouter un membre d'équipe",
- "Add VAT Number": "Ajouter le numéro de TVA",
- "Added.": "Ajouté.",
- "Address": "Adresse",
- "Address Line 2": "Adresse ligne 2",
- "Administrator": "Administrateur",
- "Administrator users can perform any action.": "Les administrateurs peuvent faire n'importe quelle action.",
- "Afghanistan": "Afghanistan",
- "Aland Islands": "Åland Islands",
- "Albania": "Albanie",
- "Algeria": "Algérie",
- "All of the people that are part of this team.": "Toutes les personnes qui font partie de cette équipe.",
- "All resources loaded.": "Tous les données ont été chargées.",
- "All rights reserved.": "Tous droits réservés.",
- "Already registered?": "Déjà inscrit(e) ?",
- "American Samoa": "Samoa américaines",
- "An error occured while uploading the file.": "Une erreur est apparue pendant l'upload du file.",
- "An unexpected error occurred and we have notified our support team. Please try again later.": "Une erreur non souhaitée est apparue, et nous avons notifié notre équipe support. Veuillez ré-essayer plus tard.",
- "Andorra": "Andorre",
- "Angola": "Angola",
- "Anguilla": "Anguilla",
- "Another user has updated this resource since this page was loaded. Please refresh the page and try again.": "Une autre personne a mis à jour cette donnée depuis que la page a été chargée. Veuillez rafraîchir la page et ré-essayer.",
- "Antarctica": "Antarctique",
- "Antigua And Barbuda": "Antigua-et-Barbuda",
- "Antigua and Barbuda": "Antigua-et-Barbuda",
- "API Token": "Jeton API",
- "API Token Permissions": "Autorisations de jeton API",
- "API Tokens": "Jeton API",
- "API tokens allow third-party services to authenticate with our application on your behalf.": "Les jetons API permettent à des services tiers de s'authentifier auprès de notre application en votre nom.",
- "Apply": "Appliquer",
- "Apply Coupon": "Appliquer Coupon",
- "April": "Avril",
- "Are you sure you want to delete the selected resources?": "Êtes-vous sûr(e) de vouloir supprimer les données sélectionnées ?",
- "Are you sure you want to delete this file?": "Êtes-vous sûr(e) de vouloir supprimer ce fichier ?",
- "Are you sure you want to delete this resource?": "Êtes-vous sûr(e) de vouloir supprimer cette donnée ?",
- "Are you sure you want to delete this team? Once a team is deleted, all of its resources and data will be permanently deleted.": "Êtes-vous sûr de vouloir supprimer cette équipe ? Lorsqu'une équipe est supprimée, toutes les données associées seront supprimées de manière définitive.",
- "Are you sure you want to delete your account? Once your account is deleted, all of its resources and data will be permanently deleted. Please enter your password to confirm you would like to permanently delete your account.": "Êtes-vous sûr de vouloir supprimer votre compte ? Une fois que votre compte est supprimé, toutes les données associées seront supprimées définitivement. Pour confirmer que vous voulez supprimer définitivement votre compte, renseignez votre mot de passe.",
- "Are you sure you want to detach the selected resources?": "Êtes-vous sûr(e) de vouloir détacher les données sélectionnées ?",
- "Are you sure you want to detach this resource?": "Êtes-vous sûr(e) de vouloir détacher cette donnée ?",
- "Are you sure you want to force delete the selected resources?": "Êtes-vous sûr(e) de vouloir forcer la suppression des données sélectionnées ?",
- "Are you sure you want to force delete this resource?": "Êtes-vous sûr(e) de vouloir forcer la suppression de cette donnée ?",
- "Are you sure you want to restore the selected resources?": "Êtes-vous sûr(e) de vouloir restaurer les données sélectionnées ?",
- "Are you sure you want to restore this resource?": "Êtes-vous sûr(e) de vouloir restaurer cette donnée ?",
- "Are you sure you want to run this action?": "Êtes-vous sûr(e) de vouloir lancer cette action ?",
- "Are you sure you would like to delete this API token?": "Êtes-vous sûr de vouloir supprimer ce jeton API ?",
- "Are you sure you would like to leave this team?": "Êtes-vous sûr de vouloir quitter cette équipe ?",
- "Are you sure you would like to remove this person from the team?": "Êtes-vous sûr de vouloir supprimer cette personne de cette équipe ?",
- "Argentina": "Argentine",
- "Armenia": "Arménie",
- "Aruba": "Aruba",
- "Attach": "Attacher",
- "Attach & Attach Another": "Attacher & Attacher un autre",
- "Attach :resource": "Attacher :resource",
- "August": "Août",
- "Australia": "Australie",
- "Austria": "Autriche",
- "Azerbaijan": "Azerbaïdjan",
- "Bahamas": "Bahamas",
- "Bahrain": "Bahreïn",
- "Bangladesh": "Bangladesh",
- "Barbados": "Barbades",
- "Before proceeding, please check your email for a verification link.": "Avant de continuer, merci de vérifier votre e-mail contenant un lien de vérification.",
- "Belarus": "Biélorussie",
- "Belgium": "Belgique",
- "Belize": "Bélize",
- "Benin": "Bénin",
- "Bermuda": "Bermudes",
- "Bhutan": "Bhoutan",
- "Billing Information": "Informations de facturation",
- "Billing Management": "Gestion de la facturation",
- "Bolivia": "Bolivie",
- "Bolivia, Plurinational State of": "Bolivie",
- "Bonaire, Sint Eustatius and Saba": "Bonaire, Saint-Eustache et Saba",
- "Bosnia And Herzegovina": "Bosnie-Herzégovine",
- "Bosnia and Herzegovina": "Bosnie-Herzégovine",
- "Botswana": "Botswana",
- "Bouvet Island": "Île Bouvet",
- "Brazil": "Brésil",
- "British Indian Ocean Territory": "Territoire britannique de l'océan indien",
- "Browser Sessions": "Sessions de navigateur",
- "Brunei Darussalam": "Brunéi Darussalam",
- "Bulgaria": "Bulgarie",
- "Burkina Faso": "Burkina Faso",
- "Burundi": "Burundi",
- "Cambodia": "Cambodge",
- "Cameroon": "Cameroun",
- "Canada": "Canada",
- "Cancel": "Annuler",
- "Cancel Subscription": "Annuler la souscription",
- "Cape Verde": "Cap Vert",
- "Card": "Carte",
- "Cayman Islands": "Îles Caïmans",
- "Central African Republic": "République centrafricaine",
- "Chad": "Tchad",
- "Change Subscription Plan": "Changer le plan de souscription",
- "Changes": "Changements",
- "Chile": "Chili",
- "China": "Chine",
- "Choose": "Choisir",
- "Choose :field": "Choisir :field",
- "Choose :resource": "Choisir :resource",
- "Choose an option": "Choisir une option",
- "Choose date": "Choisir date",
- "Choose File": "Choisir Fichier",
- "Choose Type": "Choisir Type",
- "Christmas Island": "Île Christmas",
- "City": "Ville",
- "click here to request another": "cliquez ici pour en demander un autre",
- "Click to choose": "Cliquez pour choisir",
- "Close": "Fermer",
- "Cocos (Keeling) Islands": "Îles Cocos - Keeling",
- "Code": "Code",
- "Colombia": "Colombie",
- "Comoros": "Comores",
- "Confirm": "Confirmer",
- "Confirm Password": "Confirmez votre mot de passe",
- "Confirm Payment": "Choisir Paiement",
- "Confirm your :amount payment": "Choisir votre paiement de :amount",
- "Congo": "Congo",
- "Congo, Democratic Republic": "République démocratique du Congo",
- "Congo, the Democratic Republic of the": "République démocratique du Congo",
- "Constant": "Toujours",
- "Cook Islands": "Îles Cook",
- "Costa Rica": "Costa Rica",
- "Cote D'Ivoire": "Côte d'Ivoire",
- "could not be found.": "ne peut être trouvé.",
- "Country": "Pays",
- "Coupon": "Coupon",
- "Create": "Créer",
- "Create & Add Another": "Créer & Ajouter un autre",
- "Create :resource": "Créer :resource",
- "Create a new team to collaborate with others on projects.": "Créer une nouvelle équipe pour collaborer avec d'autres personnes sur des projets.",
- "Create Account": "Créez un compte",
- "Create API Token": "Créer un jeton API",
- "Create New Team": "Créer une nouvelle équipe",
- "Create Team": "Créer l'équipe",
- "Created.": "Créé(e).",
- "Croatia": "Croatie",
- "Cuba": "Cuba",
- "Curaçao": "Curaçao",
- "Current Password": "Mot de passe actuel",
- "Current Subscription Plan": "Plan actuel de souscription",
- "Currently Subscribed": "Actuellement souscrit",
- "Customize": "Personnaliser",
- "Cyprus": "Chypre",
- "Czech Republic": "République tchèque",
- "Côte d'Ivoire": "Côte d'Ivoire",
- "Dashboard": "Tableau de bord",
- "December": "Décembre",
- "Decrease": "Diminuer",
- "Delete": "Supprimer",
- "Delete Account": "Supprimer le compte",
- "Delete API Token": "Supprimer le jeton API",
- "Delete File": "Supprimer Fichier",
- "Delete Resource": "Supprimer Donnée",
- "Delete Selected": "Supprimer Sélectionné",
- "Delete Team": "Supprimer l'équipe",
- "Denmark": "Danemark",
- "Detach": "Détacher",
- "Detach Resource": "Détacher Donnée",
- "Detach Selected": "Détacher Sélectionné",
- "Details": "Détails",
- "Disable": "Désactiver",
- "Djibouti": "Djibouti",
- "Do you really want to leave? You have unsaved changes.": "Voulez-vous vraiment partir ? Vous avez des données non sauvegardées.",
- "Dominica": "Dominique",
- "Dominican Republic": "République dominicaine",
- "Done.": "Terminé.",
- "Download": "Télécharger",
- "Download Receipt": "Télécharger le reçu",
- "Ecuador": "Equateur",
- "Edit": "Éditer",
- "Edit :resource": "Éditer :resource",
- "Edit Attached": "Éditer Joint",
- "Editor": "Éditeur",
- "Editor users have the ability to read, create, and update.": "Les éditeurs peuvent lire, créer et mettre à jour",
- "Egypt": "Égypte",
- "El Salvador": "El Salvador",
- "Email": "E-mail",
- "Email Address": "Adresse e-mail",
- "Email Addresses": "Adresses e-mail",
- "Email Password Reset Link": "Lien de réinitialisation du mot de passe",
- "Enable": "Activer",
- "Ensure your account is using a long, random password to stay secure.": "Assurez-vous d'utiliser un mot de passe long et aléatoire pour sécuriser votre compte",
- "Equatorial Guinea": "Guinée équatoriale",
- "Eritrea": "Érythrée",
- "Estonia": "Estonie",
- "Ethiopia": "Éthiopie",
- "ex VAT": "ex TVA",
- "Extra Billing Information": "Plus d'informations sur la facturation",
- "Extra confirmation is needed to process your payment. Please confirm your payment by filling out your payment details below.": "Une confirmation supplémentaire est nécessaire pour traiter votre paiement. Veuillez confirmer votre paiement en remplissant vos coordonnées de paiement ci-dessous.",
- "Extra confirmation is needed to process your payment. Please continue to the payment page by clicking on the button below.": "Une confirmation supplémentaire est nécessaire pour traiter votre paiement. Veuillez continuer à la page de paiement en cliquant sur le bouton ci-dessous.",
- "Failed to load :resource!": "Impossible de charger :resource !",
- "Falkland Islands (Malvinas)": "Îles Malouines",
- "Faroe Islands": "Îles Féroé",
- "February": "Février",
- "Fiji": "Fidji",
- "Finish enabling two factor authentication.": "Terminez l'activation de la double authentification.",
- "Finland": "Finlande",
- "For your security, please confirm your password to continue.": "Par mesure de sécurité, veuillez confirmer votre mot de passe pour continuer.",
- "Forbidden": "Interdit",
- "Force Delete": "Forcer la Suppression",
- "Force Delete Resource": "Forcer la Suppression de la Donnée",
- "Force Delete Selected": "Forcer la Suppression du Sélectionné",
- "Forgot your password?": "Mot de passe oublié ?",
- "Forgot Your Password?": "Mot de passe oublié ?",
- "Forgot your password? No problem. Just let us know your email address and we will email you a password reset link that will allow you to choose a new one.": "Mot de passe oublié ? Pas de soucis. Veuillez nous indiquer votre adresse e-mail et nous vous enverrons un lien de réinitialisation du mot de passe.",
- "France": "France",
- "French Guiana": "Guyane française",
- "French Polynesia": "Polynésie française",
- "French Southern Territories": "Terres australes françaises",
- "Full name": "Nom complet",
- "Gabon": "Gabon",
- "Gambia": "Gambie",
- "Georgia": "Géorgie",
- "Germany": "Allemagne",
- "Ghana": "Ghana",
- "Gibraltar": "Gibraltar",
- "Go back": "Revenir en arrière",
- "Go Home": "Aller à l'accueil",
- "Go to page :page": "Aller à la page :page",
- "Great! You have accepted the invitation to join the :team team.": "Super ! Vous avez accepté l'invitation à rejoindre l'équipe :team",
- "Greece": "Grèce",
- "Greenland": "Groenland",
- "Grenada": "Grenade",
- "Guadeloupe": "Guadeloupe",
- "Guam": "Guam",
- "Guatemala": "Guatemala",
- "Guernsey": "Guernesey",
- "Guinea": "Guinée",
- "Guinea-Bissau": "Guinée-Bissau",
- "Guyana": "Guyana",
- "Haiti": "Haïti",
- "Have a coupon code?": "Avez-vous un code coupon ?",
- "Having second thoughts about cancelling your subscription? You can instantly reactive your subscription at any time until the end of your current billing cycle. After your current billing cycle ends, you may choose an entirely new subscription plan.": "Vous avez des doutes sur l'annulation de votre abonnement ? Vous pouvez réactiver instantanément votre abonnement à tout moment jusqu'à la fin de votre cycle de facturation actuel. Une fois votre cycle de facturation actuel terminé, vous pouvez choisir un tout nouveau plan d'abonnement.",
- "Heard Island & Mcdonald Islands": "Îles Heard et MacDonald",
- "Heard Island and McDonald Islands": "Îles Heard et MacDonald",
- "Hello!": "Bonjour !",
- "Hide Content": "Cacher le contenu",
- "Hold Up!": "Un instant !",
- "Holy See (Vatican City State)": "Cité du Vatican",
- "Honduras": "Honduras",
- "Hong Kong": "Hong Kong",
- "Hungary": "Hongrie",
- "I accept the terms of service": "J'accepte les termes de service",
- "I agree to the :terms_of_service and :privacy_policy": "Je suis d'accord avec :terms_of_service et :privacy_policy",
- "Iceland": "Islande",
- "ID": "ID",
- "If necessary, you may log out of all of your other browser sessions across all of your devices. Some of your recent sessions are listed below; however, this list may not be exhaustive. If you feel your account has been compromised, you should also update your password.": "Si nécessaire, vous pouvez vous déconnecter de toutes vos sessions de navigateur de tous vos appareils. Certaines de vos sessions sont listées plus bas ; pourtant, cette liste peut ne pas être exhaustive. Si vous sentez que votre compte a été compromis, vous pouvez aussi mettre à jour votre mot de passe.",
- "If you already have an account, you may accept this invitation by clicking the button below:": "Si vous avez déjà un compte, vous pouvez accepter cette invitation en cliquant sur le bouton ci-dessous :",
- "If you did not create an account, no further action is required.": "Si vous n'avez pas créé de compte, vous pouvez ignorer ce message.",
- "If you did not expect to receive an invitation to this team, you may discard this email.": "Si vous n'attendiez pas d'invitation de cette équipe, vous pouvez supprimer cet e-mail.",
- "If you did not receive the email": "Si vous n'avez pas reçu cet e-mail",
- "If you did not request a password reset, no further action is required.": "Si vous n'avez pas demandé de réinitialisation de mot de passe, vous pouvez ignorer ce message.",
- "If you do not have an account, you may create one by clicking the button below. After creating an account, you may click the invitation acceptance button in this email to accept the team invitation:": "Si vous n'avez pas de compte, vous pouvez en créer un en cliquant sur le bouton ci-dessous. Ensuite, vous pourrez cliquer sur le bouton de cet e-mail pour accepter l'invitation de rejoindre l'équipe :",
- "If you need to add specific contact or tax information to your receipts, like your full business name, VAT identification number, or address of record, you may add it here.": "Si vous devez ajouter des coordonnées ou des informations fiscales spécifiques à vos reçus, tels que le nom complet de votre entreprise, votre numéro d'identification TVA ou votre adresse d'enregistrement, vous pouvez les ajouter ici.",
- "If you're having trouble clicking the \":actionText\" button, copy and paste the URL below\ninto your web browser:": "Si le bouton \":actionText\" ne fonctionne pas, copiez/collez l'adresse ci-dessous dans votre navigateur :\n",
- "If you’re having trouble clicking the \":actionText\" button, copy and paste the URL below\ninto your web browser:": "Si le bouton \":actionText\" ne fonctionne pas, copiez/collez l'adresse ci-dessous dans votre navigateur :\n",
- "Increase": "Augmenter",
- "India": "Inde",
- "Indonesia": "Indonésie",
- "Iran, Islamic Republic Of": "Iran",
- "Iran, Islamic Republic of": "Iran,",
- "Iraq": "Irak",
- "Ireland": "Irlande",
- "Isle Of Man": "Île de Man",
- "Isle of Man": "Île de Man",
- "Israel": "Israël",
- "It looks like you do not have an active subscription. You may choose one of the subscription plans below to get started. Subscription plans may be changed or cancelled at your convenience.": "Il semble que vous n'ayez pas d'abonnement actif. Vous pouvez choisir l'un des plans d'abonnement ci-dessous pour commencer. Les plans d'abonnement peuvent être modifiés ou annulés à votre convenance.",
- "Italy": "Italie",
- "Jamaica": "Jamaïque",
- "Jane Doe": "Madame Dupont",
- "January": "Janvier",
- "Japan": "Japon",
- "Jersey": "Jersey",
- "Jordan": "Jordanie",
- "July": "Juillet",
- "June": "Juin",
- "Kazakhstan": "Kazakhstan",
- "Kenya": "Kenya",
- "Key": "Clé",
- "Kiribati": "Kiribati",
- "Korea": "Corée du Sud",
- "Korea, Democratic People's Republic of": "Corée du Nord",
- "Korea, Republic of": "Corée du Sud",
- "Kosovo": "Kosovo",
- "Kuwait": "Koweït",
- "Kyrgyzstan": "Kirghizistan",
- "Lao People's Democratic Republic": "Laos",
- "Last active": "Dernier actif",
- "Last used": "Dernière utilisation",
- "Latvia": "Lettonie",
- "Leave": "Quitter",
- "Leave Team": "Quitter l'équipe",
- "Lebanon": "Liban",
- "Lens": "Objectif",
- "Lesotho": "Lesotho",
- "Liberia": "Libéria",
- "Libyan Arab Jamahiriya": "Libye",
- "Liechtenstein": "Liechtenstein",
- "Lithuania": "Lituanie",
- "Load :perPage More": "Charger :perPage de plus",
- "Log in": "Connexion",
- "Log Out": "Déconnexion",
- "Log Out Other Browser Sessions": "Déconnecter les sessions ouvertes sur d'autres navigateurs",
- "Login": "Connexion",
- "Logout": "Déconnexion",
- "Luxembourg": "Luxembourg",
- "Macao": "Macao",
- "Macedonia": "Macédoine",
- "Macedonia, the former Yugoslav Republic of": "Macédoine",
- "Madagascar": "Madagascar",
- "Malawi": "Malawi",
- "Malaysia": "Malaisie",
- "Maldives": "Maldives",
- "Mali": "Mali",
- "Malta": "Malte",
- "Manage Account": "Gérer le compte",
- "Manage and log out your active sessions on other browsers and devices.": "Gérer et déconnecter vos sessions actives sur les autres navigateurs et appareils.",
- "Manage API Tokens": "Gérer les jetons API",
- "Manage Role": "Gérer le rôle",
- "Manage Team": "Gérer l'équipe",
- "Managing billing for :billableName": "Gestion de la facturation pour :billableName",
- "March": "Mars",
- "Marshall Islands": "Îles Marshall",
- "Martinique": "Martinique",
- "Mauritania": "Mauritanie",
- "Mauritius": "Maurice",
- "May": "Mai",
- "Mayotte": "Mayotte",
- "Mexico": "Mexique",
- "Micronesia, Federated States Of": "Micronésie",
- "Micronesia, Federated States of": "Micronésie",
- "Moldova": "Moldavie",
- "Moldova, Republic of": "Moldavie",
- "Monaco": "Monaco",
- "Mongolia": "Mongolie",
- "Montenegro": "Monténégro",
- "Month To Date": "Mois du jour",
- "Monthly": "Mensuellement",
- "monthly": "mensuellement",
- "Montserrat": "Montserrat",
- "Morocco": "Maroc",
- "Mozambique": "Mozambique",
- "Myanmar": "Myanmar",
- "Name": "Nom",
- "Namibia": "Namibie",
- "Nauru": "Nauru",
- "Nepal": "Népal",
- "Netherlands": "Pays-Bas",
- "Netherlands Antilles": "Antilles néerlandaises",
- "Nevermind, I'll keep my old plan": "Peu importe, je vais garder mon ancien plan",
- "New": "Nouveau",
- "New :resource": "Nouveau :resource",
- "New Caledonia": "Nouvelle Calédonie",
- "New Password": "Nouveau mot de passe",
- "New Zealand": "Nouvelle Zélande",
- "Next": "Suivant",
- "Nicaragua": "Nicaragua",
- "Niger": "Niger",
- "Nigeria": "Nigéria",
- "Niue": "Niue",
- "No": "Non",
- "No :resource matched the given criteria.": "Aucune :resource ne correspond aux critères demandés.",
- "No additional information...": "Pas d'information supplémentaire...",
- "No Current Data": "Pas de donnée actuelle",
- "No Data": "Pas de donnée",
- "no file selected": "pas de fichier sélectionné",
- "No Increase": "Ne pas augmenter",
- "No Prior Data": "Aucune donnée prioritaire",
- "No Results Found.": "Aucun résultat trouvé.",
- "Norfolk Island": "Île Norfolk",
- "Northern Mariana Islands": "Îles Mariannes du Nord",
- "Norway": "Norvège",
- "Not Found": "Non trouvé",
- "Nova User": "Utilisateur Nova",
- "November": "Novembre",
- "October": "Octobre",
- "of": "de",
- "Oh no": "Oh non",
- "Oman": "Oman",
- "Once a team is deleted, all of its resources and data will be permanently deleted. Before deleting this team, please download any data or information regarding this team that you wish to retain.": "Une fois qu'une équipe est supprimée, toutes ses données seront supprimées définitivement. Avant de supprimer cette équipe, veuillez télécharger toutes données ou informations de cette équipe.",
- "Once your account is deleted, all of its resources and data will be permanently deleted. Before deleting your account, please download any data or information that you wish to retain.": "Une fois que votre compte est supprimé, toutes vos données sont supprimées définitivement. Avant de supprimer votre compte, veuillez télécharger vos données.",
- "Only Trashed": "Seulement les mis à la corbeille",
- "Original": "Original",
- "Our billing management portal allows you to conveniently manage your subscription plan, payment method, and download your recent invoices.": "Notre portail de gestion de la facturation vous permet de gérer facilement votre abonnement, votre mode de paiement et de télécharger vos factures récentes.",
- "Page Expired": "Page expirée",
- "Pagination Navigation": "Pagination",
- "Pakistan": "Pakistan",
- "Palau": "Palaos",
- "Palestinian Territory, Occupied": "Territoire palestinien",
- "Panama": "Panama",
- "Papua New Guinea": "Papouasie Nouvelle Guinée",
- "Paraguay": "Paraguay",
- "Password": "Mot de passe",
- "Pay :amount": "Payer :amount",
- "Payment Cancelled": "Paiement annulé",
- "Payment Confirmation": "Confirmation de paiement",
- "Payment Information": "Information de paiement",
- "Payment Method": "Moyen de paiement",
- "Payment Successful": "Paiement effectué",
- "Pending Team Invitations": "Invitations d'équipe en attente",
- "Per Page": "Par Page",
- "Permanently delete this team.": "Supprimer définitivement cette team.",
- "Permanently delete your account.": "Supprimer définitivement ce compte.",
- "Permissions": "Permissions",
- "Peru": "Pérou",
- "Philippines": "Philippines",
- "Photo": "Image",
- "Pitcairn": "Pitcairn Islands",
- "Please accept the terms of service.": "Veuillez accepter les termes de service.",
- "Please click the button below to verify your email address.": "Veuillez cliquer sur le bouton ci-dessous pour vérifier votre adresse e-mail :",
- "Please confirm access to your account by entering one of your emergency recovery codes.": "Veuillez confirmer l'accès à votre compte en entrant l'un des codes de récupération d'urgence.",
- "Please confirm access to your account by entering the authentication code provided by your authenticator application.": "Veuillez confirmer l'accès à votre compte en entrant le code d'authentification fourni par votre application d'authentification.",
- "Please confirm your password before continuing.": "Veuillez confirmer votre mot de passe avant de continuer.",
- "Please copy your new API token. For your security, it won't be shown again.": "Veuillez copier votre nouveau token API. Pour votre sécurité, il ne sera pas ré-affiché.",
- "Please enter your password to confirm you would like to log out of your other browser sessions across all of your devices.": "Veuillez entrer votre mot de passe pour confirmer que vous voulez déconnecter toutes les autres sessions navigateur sur l'ensemble de vos appareils.",
- "Please provide a maximum of three receipt emails addresses.": "Veuillez fournir un maximum de trois adresses e-mail de réception.",
- "Please provide the email address of the person you would like to add to this team.": "Veuillez indiquer l'adresse e-mail de la personne que vous souhaitez ajouter à cette équipe.",
- "Please provide your name.": "Veuillez indiquer votre nom.",
- "Poland": "Pologne",
- "Portugal": "Portugal",
- "Press / to search": "Presser / pour faire une recherche",
- "Preview": "Aperçu",
- "Previous": "Précédent",
- "Privacy Policy": "Politique de confidentialité",
- "Profile": "Profil",
- "Profile Information": "Information du profil",
- "Puerto Rico": "Porto Rico",
- "Qatar": "Qatar",
- "Quarter To Date": "Trimestre du jour",
- "Receipt Email Addresses": "Réception adresses e-mail",
- "Receipts": "Réceptions",
- "Recovery Code": "Code de récupération",
- "Regards": "Cordialement",
- "Regenerate Recovery Codes": "Régénérer les codes de récupération",
- "Register": "Inscription",
- "Reload": "Recharger",
- "Remember me": "Se souvenir de moi",
- "Remember Me": "Se souvenir de moi",
- "Remove": "Supprimer",
- "Remove Photo": "Supprimer l'image",
- "Remove Team Member": "Supprimer le membre d'équipe",
- "Resend Verification Email": "Renvoyer l'e-mail de vérification",
- "Reset Filters": "Réinitialisation des filtres",
- "Reset Password": "Réinitialisation du mot de passe",
- "Reset Password Notification": "Notification de réinitialisation du mot de passe",
- "resource": "donnée",
- "Resources": "Données",
- "resources": "données",
- "Restore": "Restaurer",
- "Restore Resource": "Restaurer Donnée",
- "Restore Selected": "Restaurer Sélectionné",
- "results": "résultats",
- "Resume Subscription": "Reprendre la souscription",
- "Return to :appName": "Retour à :appName",
- "Reunion": "Réunion",
- "Role": "Rôle",
- "Romania": "Roumanie",
- "Run Action": "Lancer l'action",
- "Russian Federation": "Russie",
- "Rwanda": "Rwanda",
- "Réunion": "Réunion",
- "Saint Barthelemy": "Saint-Barthélémy",
- "Saint Barthélemy": "Saint-Barthélemy",
- "Saint Helena": "Sainte-Hélène",
- "Saint Kitts And Nevis": "Saint-Kitts-et-Nevis",
- "Saint Kitts and Nevis": "Saint-Kitts-et-Nevis",
- "Saint Lucia": "Sainte-Lucie",
- "Saint Martin": "Saint-Martin",
- "Saint Martin (French part)": "Saint Martin",
- "Saint Pierre And Miquelon": "Saint-Pierre-et-Miquelon",
- "Saint Pierre and Miquelon": "Saint-Pierre-et-Miquelon",
- "Saint Vincent And Grenadines": "Saint-Vincent-et-les Grenadines",
- "Saint Vincent and the Grenadines": "Saint-Vincent-et-les Grenadines",
- "Samoa": "Samoa",
- "San Marino": "Saint-Marin",
- "Sao Tome And Principe": "Sao Tomé-et-Principe",
- "Sao Tome and Principe": "Sao Tomé-et-Principe",
- "Saudi Arabia": "Arabie Saoudite",
- "Save": "Sauvegarder",
- "Saved.": "Sauvegardé.",
- "Search": "Rechercher",
- "Select": "Sélectionner",
- "Select a different plan": "Sélectionner un plan différent",
- "Select A New Photo": "Sélectionner une nouvelle image",
- "Select Action": "Sélectionner Action",
- "Select All": "Sélectionner Tous",
- "Select All Matching": "Sélectionnez tous les correspondants",
- "Send Password Reset Link": "Envoyer le lien de réinitialisation du mot de passe",
- "Senegal": "Sénégal",
- "September": "Septembre",
- "Serbia": "Serbie",
- "Server Error": "Erreur serveur",
- "Service Unavailable": "Service indisponible",
- "Setup Key": "Clé de configuration",
- "Seychelles": "Seychelles",
- "Show All Fields": "Montrer Tous les Champs",
- "Show Content": "Montrer Contenu",
- "Show Recovery Codes": "Voir les codes de récupération",
- "Showing": "Montrant",
- "Sierra Leone": "Sierra Léone",
- "Signed in as": "Signé en tant que",
- "Singapore": "Singapour",
- "Sint Maarten (Dutch part)": "Sint Maarten",
- "Slovakia": "Slovaquie",
- "Slovenia": "Slovénie",
- "Solomon Islands": "Îles Salomon",
- "Somalia": "Somalie",
- "Something went wrong.": "Quelque chose s'est mal passé.",
- "Sorry! You are not authorized to perform this action.": "Désolé ! Vous n'êtes pas autorisé(e) à effectuer cette action.",
- "Sorry, your session has expired.": "Désolé, votre session a expiré.",
- "South Africa": "Afrique du Sud",
- "South Georgia And Sandwich Isl.": "Géorgie du Sud et les îles Sandwich du Sud",
- "South Georgia and the South Sandwich Islands": "Géorgie du Sud et les îles Sandwich du Sud",
- "South Sudan": "Sud Soudan",
- "Spain": "Espagne",
- "Sri Lanka": "Sri Lanka",
- "Standalone Actions": "Actions Autonomes",
- "Start Polling": "Démarrer le vote",
- "State / County": "État / Région",
- "Stop Polling": "Arrêter le vote",
- "Store these recovery codes in a secure password manager. They can be used to recover access to your account if your two factor authentication device is lost.": "Enregistrez ces codes dans un gestionnaire de mot de passe sécurisé. Ils peuvent être réutilisés pour accéder à votre compte si l'authentification à deux facteurs n'aboutit pas.",
- "Subscribe": "Souscrire",
- "Subscription Information": "Information de souscription",
- "Subscription Pending": "Abonnement en attente",
- "Sudan": "Soudan",
- "Suriname": "Suriname",
- "Svalbard And Jan Mayen": "Svalbard et Île Jan Mayen",
- "Svalbard and Jan Mayen": "Svalbard et Jan Mayen",
- "Swaziland": "Eswatini",
- "Sweden": "Suède",
- "Switch Teams": "Permuter les équipes",
- "Switzerland": "Suisse",
- "Syrian Arab Republic": "Syrie",
- "Taiwan": "Taiwan",
- "Taiwan, Province of China": "Taiwan",
- "Tajikistan": "Tadjikistan",
- "Tanzania": "Tanzanie",
- "Tanzania, United Republic of": "Tanzanie",
- "Team Details": "Détails de l'équipe",
- "Team Invitation": "Invitation d'équipe",
- "Team Members": "Membres de l'équipe",
- "Team Name": "Nom de l'équipe",
- "Team Owner": "Propriétaire de l'équipe",
- "Team Settings": "Préférences de l'équipe",
- "Terms of Service": "Conditions d'utilisation",
- "Thailand": "Thaïlande",
- "Thanks for signing up! Before getting started, could you verify your email address by clicking on the link we just emailed to you? If you didn't receive the email, we will gladly send you another.": "Merci de vous être inscrit(e) ! Avant de commencer, veuillez vérifier votre adresse e-mail en cliquant sur le lien que nous venons de vous envoyer. Si vous n'avez pas reçu cet e-mail, nous vous en enverrons un nouveau avec plaisir.",
- "Thanks for your continued support. We've attached a copy of your invoice for your records. Please let us know if you have any questions or concerns.": "Merci pour votre soutien continu. Nous avons joint une copie de votre facture pour vos dossiers. Veuillez nous faire savoir si vous avez des questions ou des préoccupations.",
- "Thanks,": "Merci,",
- "The :attribute must be a valid role.": "Le :attribute doit être un rôle valide.",
- "The :attribute must be at least :length characters and contain at least one number.": "Le champ :attribute doit avoir au moins :length caractères et contenir au moins un chiffre.",
- "The :attribute must be at least :length characters and contain at least one special character and one number.": "Le champ :attribute doit avoir au moins :length caractères et contenir au moins un caractère spécial et un nombre.",
- "The :attribute must be at least :length characters and contain at least one special character.": "Le champ :attribute doit avoir au moins :length caractères et contenir au moins un caractère spécial.",
- "The :attribute must be at least :length characters and contain at least one uppercase character and one number.": "Le champ :attribute doit avoir au moins :length caractères et contenir au moins une majuscule et un chiffre.",
- "The :attribute must be at least :length characters and contain at least one uppercase character and one special character.": "Le champ :attribute doit avoir au moins :length caractères et contenir au moins une majuscule et un caractère spécial.",
- "The :attribute must be at least :length characters and contain at least one uppercase character, one number, and one special character.": "Le champ :attribute doit avoir au moins :length caractères, et contenir au moins une majuscule, un chiffre et un caractère spécial.",
- "The :attribute must be at least :length characters and contain at least one uppercase character.": "Le champ :attribute doit avoir au moins :length caractères et au moins une majuscule.",
- "The :attribute must be at least :length characters.": "Le champ :attribute doit avoir au moins :length caractères.",
- "The :attribute must contain at least one letter.": "Le champ :attribute doit avoir au moins une lettre.",
- "The :attribute must contain at least one number.": "Le champ :attribute doit avoir au moins un numéro.",
- "The :attribute must contain at least one symbol.": "Le champ :attribute doit avoir au moins un symbole.",
- "The :attribute must contain at least one uppercase and one lowercase letter.": "Le champ :attribute doit avoir au moins une lettre majuscule et une lettre minuscule.",
- "The :resource was created!": "La donnée :resource a été créée !",
- "The :resource was deleted!": "La donnée :resource a été supprimée !",
- "The :resource was restored!": "La donnée :resource a été restaurée !",
- "The :resource was updated!": "La donnée :resource a été mise à jour !",
- "The action ran successfully!": "L'action s'est déroulée avec succès !",
- "The file was deleted!": "Le fichier a été supprimé !",
- "The given :attribute has appeared in a data leak. Please choose a different :attribute.": "La valeur du champ :attribute est apparue dans une fuite de données. Veuillez choisir une valeur différente.",
- "The government won't let us show you what's behind these doors": "Le gouvernement ne nous laissera pas vous montrer ce qui se cache derrière ces portes",
- "The HasOne relationship has already been filled.": "La relation a déjà été remplie.",
- "The password is incorrect.": "Le mot de passe est incorrect.",
- "The payment was successful.": "Le paiement a réussi.",
- "The provided coupon code is invalid.": "Le code de coupon fourni n'est pas valide.",
- "The provided password does not match your current password.": "Le mot de passe indiqué ne correspond pas à votre mot de passe actuel.",
- "The provided password was incorrect.": "Le mot de passé indiqué est incorrect.",
- "The provided two factor authentication code was invalid.": "Le code d'authentification double facteur fourni est incorrect.",
- "The provided VAT number is invalid.": "Le numéro de TVA fourni n'est pas valide.",
- "The receipt emails must be valid email addresses.": "Les e-mails de réception doivent être des adresses e-mail valides.",
- "The resource was updated!": "La donnée a été mise à jour !",
- "The selected country is invalid.": "Le pays sélectionné est invalide.",
- "The selected plan is invalid.": "Le plan sélectionné est invalide.",
- "The team's name and owner information.": "Les informations concernant l'équipe et son propriétaire.",
- "There are no available options for this resource.": "Il n'y a pas d'options disponibles pour cette donnée.",
- "There is no active subscription.": "Il n'y a pas d'abonnement actif.",
- "There was a problem executing the action.": "Il y avait un problème lors de l'exécution de l'action.",
- "There was a problem submitting the form.": "Il y avait un problème pour soumettre le formulaire.",
- "These people have been invited to your team and have been sent an invitation email. They may join the team by accepting the email invitation.": "Ces personnes ont été invitées à rejoindre votre équipe et ont été prévenues avec un e-mail d'invitation. Ils peuvent rejoindre l'équipe grâce à l'e-mail d'invitation.",
- "This account does not have an active subscription.": "Ce compte n'est pas de souscription active.",
- "This action is unauthorized.": "Cette action n'est pas autorisée.",
- "This coupon code can only be used by new customers.": "Ce code promo ne peut être utilisé que par les nouveaux clients.",
- "This device": "Cet appareil",
- "This file field is read-only.": "Ce champ de fichier est en lecture seule.",
- "This image": "Cette image",
- "This is a secure area of the application. Please confirm your password before continuing.": "C'est une zone sécurisée de l'application. Veuillez confirmer votre mot de passe avant de continuer.",
- "This password does not match our records.": "Ce mot de passe ne correspond pas à nos enregistrements.",
- "This password reset link will expire in :count minutes.": "Ce lien de réinitialisation du mot de passe expirera dans :count minutes.",
- "This payment was already successfully confirmed.": "Ce paiement a déjà été confirmé avec succès.",
- "This payment was cancelled.": "Ce paiement a été annulé.",
- "This resource no longer exists": "Cette donnée n'existe plus",
- "This subscription cannot be resumed. Please create a new subscription.": "Cet abonnement ne peut pas être repris. Veuillez créer un nouvel abonnement.",
- "This subscription has expired and cannot be resumed. Please create a new subscription.": "Cette souscription a expiré et ne peut être reprise. Veuillez en créer une nouvelle.",
- "This user already belongs to the team.": "Cet utilisateur appartient déjà à l'équipe.",
- "This user has already been invited to the team.": "Cet utilisateur a déjà été invité à rejoindre l'équipe.",
- "Timor-Leste": "Timor oriental",
- "to": "à",
- "To finish enabling two factor authentication, scan the following QR code using your phone's authenticator application or enter the setup key and provide the generated OTP code.": "Pour terminer l'activation de la double authentification, scannez le code QR suivant à l'aide de l'application d'authentification de votre téléphone ou entrez la clé de configuration et fournissez le code OTP généré.",
- "Today": "Aujourd'hui",
- "Toggle navigation": "Basculer la navigation",
- "Togo": "Togo",
- "Tokelau": "Tokelau",
- "Token Name": "Nom du jeton",
- "Tonga": "Tonga",
- "Too Many Requests": "Trop de requêtes",
- "total": "total",
- "Total:": "Total:",
- "Trashed": "Mettre à la corbeille",
- "Trinidad And Tobago": "Trinidad et Tobago",
- "Trinidad and Tobago": "Trinidad et Tobago",
- "Tunisia": "Tunisie",
- "Turkey": "Turquie",
- "Turkmenistan": "Turkménistan",
- "Turks And Caicos Islands": "Îles Turks et Caïques",
- "Turks and Caicos Islands": "Îles Turks et Caïques",
- "Tuvalu": "Tuvalu",
- "Two Factor Authentication": "Double authentification",
- "Two factor authentication is now enabled. Scan the following QR code using your phone's authenticator application or enter the setup key.": "La double authentification est maintenant activée. Scannez le code QR suivant à l'aide de l'application d'authentification de votre téléphone ou entrez la clé de configuration.",
- "Uganda": "Ouganda",
- "Ukraine": "Ukraine",
- "Unauthorized": "Non autorisé",
- "United Arab Emirates": "Emirats Arabes Unis",
- "United Kingdom": "Royaume-Uni",
- "United States": "États-Unis",
- "United States Minor Outlying Islands": "Îles Mineures Éloignées des États-Unis",
- "United States Outlying Islands": "Îles Mineures Éloignées des États-Unis",
- "Update": "Mettre à jour",
- "Update & Continue Editing": "Mettre à jour & Continuer à éditer",
- "Update :resource": "Mettre à jour :resource",
- "Update :resource: :title": "Mettre à jour :resource : :title",
- "Update attached :resource: :title": "Mettre à jour :resource attaché : :title",
- "Update Password": "Mettre à jour le mot de passe",
- "Update Payment Information": "Mettre à jour les informations de paiement",
- "Update Payment Method": "Mettre à jour le moyen de paiement",
- "Update your account's profile information and email address.": "Modifier le profil associé à votre compte ainsi que votre adresse e-mail.",
- "Uruguay": "Uruguay",
- "Use a recovery code": "Utilisez un code de récupération",
- "Use an authentication code": "Utilisez un code d'authentification",
- "Uzbekistan": "Ouzbékistan",
- "Value": "Valeur",
- "Vanuatu": "Vanuatu",
- "VAT Number": "Numéro de TVA",
- "Venezuela": "Vénézuela",
- "Venezuela, Bolivarian Republic of": "Vénézuela",
- "Verify Email Address": "Vérification de l'adresse e-mail",
- "Verify Your Email Address": "Vérifiez votre adresse e-mail",
- "Viet Nam": "Vietnam",
- "View": "Vue",
- "View Receipt": "Voir le reçu",
- "Virgin Islands, British": "Îles Vierges britanniques",
- "Virgin Islands, U.S.": "Îles Vierges des États-Unis",
- "Wallis And Futuna": "Wallis et Futuna",
- "Wallis and Futuna": "Wallis et Futuna",
- "We are processing your subscription. Once the subscription has successfully processed, this page will update automatically. Typically, this process should only take a few seconds.": "Nous traitons votre abonnement. Une fois l'abonnement traité avec succès, cette page se mettra à jour automatiquement. Généralement, ce processus ne devrait prendre que quelques secondes.",
- "We are unable to process your payment. Please contact customer support.": "Nous ne sommes pas en mesure de traiter votre paiement. Veuillez contacter le support client.",
- "We were unable to find a registered user with this email address.": "Nous n'avons pas pu trouver un utilisateur enregistré avec cette adresse e-mail.",
- "We will send a receipt download link to the email addresses that you specify below. You may separate multiple email addresses using commas.": "Nous enverrons un lien de téléchargement de reçu aux adresses e-mail que vous spécifiez ci-dessous. Vous pouvez séparer plusieurs adresses e-mail à l'aide de virgules.",
- "We're lost in space. The page you were trying to view does not exist.": "Nous sommes perdus dans l'espace. La page que vous essayez de voir n'existe pas.",
- "Welcome Back!": "Bienvenue !",
- "Western Sahara": "Sahara occidental",
- "When two factor authentication is enabled, you will be prompted for a secure, random token during authentication. You may retrieve this token from your phone's Google Authenticator application.": "Lorsque l'authentification à deux facteurs est activée, vous serez invité à saisir un jeton aléatoire sécurisé lors de l'authentification. Vous pouvez récupérer ce jeton depuis l'application Google Authenticator de votre téléphone.",
- "Whoops": "Oups",
- "Whoops!": "Oups !",
- "Whoops! Something went wrong.": "Oups ! Un problème est survenu.",
- "With Trashed": "Avec ceux mis à la corbeille",
- "Write": "Écrire",
- "Year To Date": "Année du Jour",
- "Yearly": "Annuellement",
- "Yemen": "Yémen",
- "Yes": "Oui",
- "You are already subscribed.": "Vous êtes déjà abonné(e).",
- "You are currently within your free trial period. Your trial will expire on :date.": "Vous êtes actuellement dans votre période d'essai gratuit. Votre essai expirera le: date.",
- "You are logged in!": "Vous êtes connecté(e) !",
- "You are receiving this email because we received a password reset request for your account.": "Vous recevez cet e-mail car nous avons reçu une demande de réinitialisation de mot de passe pour votre compte.",
- "You have been invited to join the :team team!": "Vous avez été invité à rejoindre l'équipe :team !",
- "You have enabled two factor authentication.": "Vous avez activé la double authentification.",
- "You have not enabled two factor authentication.": "Vous n'avez pas activé la double authentification.",
- "You may accept this invitation by clicking the button below:": "Vous pouvez accepter cette invitation en cliquant sur le bouton ci-dessous :",
- "You may cancel your subscription at any time. Once your subscription has been cancelled, you will have the option to resume the subscription until the end of your current billing cycle.": "Vous pouvez résilier votre abonnement à tout moment. Une fois votre abonnement annulé, vous aurez la possibilité de le reprendre jusqu'à la fin de votre cycle de facturation actuel.",
- "You may delete any of your existing tokens if they are no longer needed.": "Vous pouvez supprimer n'importe lequel de vos jetons existants s'ils ne sont plus nécessaires.",
- "You may not delete your personal team.": "Vous ne pouvez pas supprimer votre équipe personnelle.",
- "You may not leave a team that you created.": "Vous ne pouvez pas quitter une équipe que vous avez créée.",
- "Your :invoiceName invoice is now available!": "Votre facture :invoiceName est maintenant disponible !",
- "Your card was declined. Please contact your card issuer for more information.": "Votre carte a été refusée. Veuillez contacter l'émetteur de votre carte pour plus d'informations.",
- "Your current payment method is :paypal.": "Votre moyen de paiement actuel est :paypal.",
- "Your current payment method is a credit card ending in :lastFour that expires on :expiration.": "Votre mode de paiement actuel est une carte de crédit se terminant par :lastFour qui expire le :expiration.",
- "Your registered VAT Number is :vatNumber.": "Votre numéro de TVA enregistré est :vatNumber.",
- "Zambia": "Zambie",
- "Zimbabwe": "Zimbabwe",
- "Zip / Postal Code": "Code postal",
- "Åland Islands": "Les îles d'Åland",
- "name": "nom",
- "title": "titre",
- "content": "contenu",
- "published": "publication",
-
- "coord_please_complete": "Merci de compléter correctement les champs du formulaire.",
- "my_coord": "Mes coordonnées",
- "lastname": "Nom",
- "firstname": "Prénom",
- "address": "Adresse",
- "email": "E-mail",
- "postal": "Code postal",
- "town": "Ville",
- "phone": "Téléphone",
- "propose_recipe": "Proposez votre recette",
- "complain": "Réclamation Produit",
- "question_concern": "Votre question concerne",
- "ask_concern": "Votre demande concerne*",
- "select_ask": "Sélectionnez une demande",
- "product_name": "Nom du produit",
- "product_code": "Code barre du produit concerné",
- "buy_place": "Lieu d'achat",
- "lot_number": "N° de lot figurant à coté de la date",
- "lot_number_tip": "Vous pouvez également trouver le n° de lot sous la dénomination \"n° de tracabilité\" ou \"n° trac\".",
- "limit_date": "Date limite de consommation",
- "jj": "jj",
- "mm": "mm",
- "aaaa": "aaaa",
- "consumption_date": "Date de consommation",
- "joinedfile": "Pièce jointe",
- "add_joinedfile": "Ajouter un fichier",
- "format_joinedfile": "Formats acceptés",
- "max_joinedfile_size": "Taille max",
- "data_size_mo": ":datasize Mo",
- "your_message": "Votre message",
- "mandatory_fields": "Champs obligatoires",
- "send": "Envoyer",
- "civilty": "Civilité",
- "message_contact_send": "Votre message a été envoyé avec succès.",
- "message_contact_failed": "Une erreur est survenue durant l'envoi de votre message. Veuillez réessayer ultèrieurement.",
- "report_abuse": "Signaler un abus",
- "report_abuse_message": "Je souhaite signaler le message de :username car cet utilisateur ne respecte pas les conditions d'utilisation du Club des Gaulois.\n\nCordialement",
- "We'll be back soon!": "Nous serons de retour bientôt",
- "Sorry for the inconvenience but we’re performing some maintenance at the moment.": "Veuillez nous excuser pour la gêne occasionnée, nous sommes en train de réaliser une opération de maintenance.",
- "If you need to you can always contact us , otherwise we’ll be back online shortly!": "Si besoin vous pouvez toujours nous contacter , sinon nous serons de retour bientôt",
- "The :sitename Team": "L'équipe :sitename",
- "You must accept the terms and conditions and the privacy policy": "Vous devez accepter les conditions générales et la politique de gestion des données personnelles."
-}
diff --git a/resources/lang/fr/auth.php b/resources/lang/fr/auth.php
index e808c61..933e796 100644
--- a/resources/lang/fr/auth.php
+++ b/resources/lang/fr/auth.php
@@ -1,16 +1,5 @@
'Ces identifiants ne correspondent pas à nos enregistrements.',
'password' => 'Le mot de passe fourni est incorrect.',
diff --git a/resources/lang/fr/back.php b/resources/lang/fr/back.php
new file mode 100644
index 0000000..94f77bc
--- /dev/null
+++ b/resources/lang/fr/back.php
@@ -0,0 +1,6 @@
+ 'Accueil',
+ 'admin' => 'Avancé',
+];
diff --git a/resources/lang/fr/crud.php b/resources/lang/fr/crud.php
index 3465c18..42b9ae6 100644
--- a/resources/lang/fr/crud.php
+++ b/resources/lang/fr/crud.php
@@ -2,82 +2,82 @@
return [
'actions' => [
- 'list' => 'Liste',
- 'view' => 'Voir',
- 'create' => 'Créer',
+ 'list' => 'Liste',
+ 'view' => 'Voir',
+ 'create' => 'Créer',
'duplicate' => 'Dupliquer',
- 'update' => 'Éditer',
- 'delete' => 'Supprimer',
- 'save' => 'Sauvegarder',
- 'edit' => 'Mettre à jour',
+ 'update' => 'Éditer',
+ 'delete' => 'Supprimer',
+ 'save' => 'Sauvegarder',
+ 'edit' => 'Mettre à jour',
],
'helpers' => [
- 'list' => 'Liste',
- 'list_all' => 'Lister tous les :model',
- 'create_model' => 'Créer :model',
- 'view_model' => 'Voir :model',
- 'update_model' => 'Éditer :model',
+ 'list' => 'Liste',
+ 'list_all' => 'Lister tous les :model',
+ 'create_model' => 'Créer :model',
+ 'view_model' => 'Voir :model',
+ 'update_model' => 'Éditer :model',
'duplicate_model' => 'Dupliquer :model',
- 'delete_model' => 'Supprimer :model',
- 'save_model' => 'Sauvegarder :model',
- 'edit_model' => 'Mettre à jour :model',
- 'no_results' => 'Aucun résultat pour :model',
- 'publish' => 'Publié',
- 'unpublish' => 'Dépublié',
+ 'delete_model' => 'Supprimer :model',
+ 'save_model' => 'Sauvegarder :model',
+ 'edit_model' => 'Mettre à jour :model',
+ 'no_results' => 'Aucun résultat pour :model',
+ 'publish' => 'Publié',
+ 'unpublish' => 'Dépublié',
],
'libs' => [
'toolbox' => [
- 'assertFieldIsUnique' => 'La :valeur du champ :attribut est déjà utilisée',
+ 'assertFieldIsUnique' => 'La :valeur du champ :attribut est déjà utilisée',
'assertNoInternalBoUrls' => ':attribute : Il est interdit de coller l\'uri de back-office dans ce champ',
- 'assertNoInternalUrls' => ':attribute : Il est interdit de coller une url de :appname dans ce champ.',
+ 'assertNoInternalUrls' => ':attribute : Il est interdit de coller une url de :appname dans ce champ.',
]
],
'messages' => [
- 'has_been_created' => ':model a été créé',
- 'cannot_be_created' => ':model ne peut être créé',
- 'has_been_updated' => ':model a été mis à jour',
- 'cannot_be_updated' => ':model ne peut être mis à jour',
- 'has_been_deleted' => ':model a été supprimé',
- 'cannot_be_deleted' => ':model ne peut être supprimé',
- 'order_changed' => 'L\'ordre a été changé !',
- 'order_not_changed' => 'L\'ordre n\'a pas été changé !',
+ 'has_been_created' => ':model a été créé',
+ 'cannot_be_created' => ':model ne peut être créé',
+ 'has_been_updated' => ':model a été mis à jour',
+ 'cannot_be_updated' => ':model ne peut être mis à jour',
+ 'has_been_deleted' => ':model a été supprimé',
+ 'cannot_be_deleted' => ':model ne peut être supprimé',
+ 'order_changed' => 'L\'ordre a été changé !',
+ 'order_not_changed' => 'L\'ordre n\'a pas été changé !',
'publish_status_saved' => 'Changement de l\'état de publication réussit !',
- 'right' => 'Vous n\'avez pas les droits pour accéder à cette partie !'
+ 'right' => 'Vous n\'avez pas les droits pour accéder à cette partie !'
],
'minicrud' => [
- 'visibility_label' => 'Visibilité',
- 'visibility_helper' => 'Vérifier qu\'il est visible.',
- 'enum_select' => 'Sélectionnez :enum dans la liste.',
- 'associated_enum' => 'Associé :enum',
- 'dimensions_must_be' => 'Doit être :widthpx (largeur) par :heightpx (hauteur).',
+ 'visibility_label' => 'Visibilité',
+ 'visibility_helper' => 'Vérifier qu\'il est visible.',
+ 'enum_select' => 'Sélectionnez :enum dans la liste.',
+ 'associated_enum' => 'Associé :enum',
+ 'dimensions_must_be' => 'Doit être :widthpx (largeur) par :heightpx (hauteur).',
'picture_title_helper' => 'Utile pour les utilisateurs, s\'affiche en passant la souris sur l\'image',
- 'picture_title_label' => 'Attribut du titre de l\'image',
- 'picture_alt_helper' => 'Doit décrire votre image pour les moteurs de recherche et les aveugles (5 à 6 mots)',
- 'picture_alt_label' => 'Attribut Alt de l\'image',
- 'text_warning' => 'Relisez votre contenu avant de le publier',
+ 'picture_title_label' => 'Attribut du titre de l\'image',
+ 'picture_alt_helper' => 'Doit décrire votre image pour les moteurs de recherche et les aveugles (5 à 6 mots)',
+ 'picture_alt_label' => 'Attribut Alt de l\'image',
+ 'text_warning' => 'Relisez votre contenu avant de le publier',
],
'pagination' => [
- "previous" => "Page précédente",
- "next" => "Page suivante",
+ "previous" => "Page précédente",
+ "next" => "Page suivante",
"specific_page" => "Accéder à la page n°:id",
'paginate_list' => 'Nombre d\'éléments par page',
],
'other' => [
- 'up' => 'Modifier l\'ordre d\'apparition vers le haut',
- 'down' => 'Modifier l\'ordre d\'apparition vers le bas',
- 'no_model_found' => 'Aucun :model trouvés',
- 'publish' => 'Publié',
- 'unpublish' => 'Dépublié',
- 'sort_ascending' => 'Trier :name dans l\'ordre croissant',
+ 'up' => 'Modifier l\'ordre d\'apparition vers le haut',
+ 'down' => 'Modifier l\'ordre d\'apparition vers le bas',
+ 'no_model_found' => 'Aucun :model trouvés',
+ 'publish' => 'Publié',
+ 'unpublish' => 'Dépublié',
+ 'sort_ascending' => 'Trier :name dans l\'ordre croissant',
'sort_descending' => 'Trier :name dans l\'ordre décroissant',
- 'sort_delete' => 'Supprimer le tri',
- 'sort_arrow' => 'Ici, les flèches sont utilisées pour trier et non pour filtrer',
- 'right' => 'Vous n\'avez pas les droits',
+ 'sort_delete' => 'Supprimer le tri',
+ 'sort_arrow' => 'Ici, les flèches sont utilisées pour trier et non pour filtrer',
+ 'right' => 'Vous n\'avez pas les droits',
]
];
diff --git a/resources/lang/fr/enums.php b/resources/lang/fr/enums.php
index 0c7a3ce..07a15d7 100644
--- a/resources/lang/fr/enums.php
+++ b/resources/lang/fr/enums.php
@@ -1,7 +1,7 @@
'Brouillon',
+ 'draft' => 'Brouillon',
'published' => 'Publié',
- 'archived' => 'Archivé'
+ 'archived' => 'Archivé'
];
diff --git a/resources/lang/fr/models.php b/resources/lang/fr/models.php
index 8949a8a..89ce3fd 100644
--- a/resources/lang/fr/models.php
+++ b/resources/lang/fr/models.php
@@ -2,14 +2,14 @@
return [
'classes' => [
- 'dashboard' => 'Tableau de bord',
- 'app_users' => 'Application utilisateurs',
- 'directories' => 'Dossiers',
- 'documents' => 'Documents',
- 'users' => 'Utilisateurs',
- 'settings' => 'Paramètres',
- 'tags' => 'Étiquettes',
- 'formularies' => 'Formulaires',
- 'contacts' => 'Contacts',
+ 'app_user' => 'App. utilisateur',
+ 'directory' => 'Dossier',
+ 'document' => 'Document',
+ 'user' => 'Utilisateur',
+ 'setting' => 'Paramètre',
+ 'tag' => 'Étiquette',
+ 'formulary' => 'Formulaire',
+ 'contact' => 'Contact',
+ 'tenant' => 'Tenant',
]
];
diff --git a/resources/lang/fr/pagination.php b/resources/lang/fr/pagination.php
deleted file mode 100644
index f7b0288..0000000
--- a/resources/lang/fr/pagination.php
+++ /dev/null
@@ -1,8 +0,0 @@
- "Page précédente",
- "next" => "Page suivante",
- "specific_page" => "Accéder à la page :id",
- 'paginate_list' => 'Nombre d\'élements par page',
-];
diff --git a/resources/lang/fr/passwords.php b/resources/lang/fr/passwords.php
index dd06818..ea6d9c2 100644
--- a/resources/lang/fr/passwords.php
+++ b/resources/lang/fr/passwords.php
@@ -1,15 +1,15 @@
'Votre mot de passe a été réinitialisé !',
diff --git a/resources/lang/fr/validation-inline.php b/resources/lang/fr/validation-inline.php
deleted file mode 100644
index 20e4ec7..0000000
--- a/resources/lang/fr/validation-inline.php
+++ /dev/null
@@ -1,136 +0,0 @@
- 'Ce champ doit être accepté.',
- 'accepted_if' => 'Ce champ doit être accepté quand :other a la valeur :value.',
- 'active_url' => 'Ce n\'est pas une URL valide',
- 'after' => 'La date doit être postérieure au :date.',
- 'after_or_equal' => 'La date doit être postérieure ou égale au :date.',
- 'alpha' => 'Ce champ doit contenir uniquement des lettres',
- 'alpha_dash' => 'Ce champ doit contenir uniquement des lettres, des chiffres et des tirets.',
- 'alpha_num' => 'Ce champ doit contenir uniquement des chiffres et des lettres.',
- 'array' => 'Ce champ doit être un tableau.',
- 'before' => 'Ce champ doit être une date antérieure au :date.',
- 'before_or_equal' => 'Ce champ doit être une date antérieure ou égale au :date.',
- 'between' => [
- 'array' => 'Le tableau doit contenir entre :min et :max éléments.',
- 'file' => 'La taille du fichier doit être comprise entre :min et :max kilo-octets.',
- 'numeric' => 'La valeur doit être comprise entre :min et :max.',
- 'string' => 'Le texte doit contenir entre :min et :max caractères.',
- ],
- 'boolean' => 'Ce champ doit être vrai ou faux.',
- 'confirmed' => 'Le champ de confirmation ne correspond pas.',
- 'current_password' => 'Le mot de passe est incorrect.',
- 'date' => 'Ce n\'est pas une date valide.',
- 'date_equals' => 'La date doit être égale à :date.',
- 'date_format' => 'Ce champ ne correspond pas au format :format.',
- 'declined' => 'Cette valeur doit être déclinée.',
- 'declined_if' => 'Cette valeur doit être déclinée quand :other a la valeur :value.',
- 'different' => 'Cette valeur doit être différente de :other.',
- 'digits' => 'Ce champ doit contenir :digits chiffres.',
- 'digits_between' => 'Ce champ doit contenir entre :min et :max chiffres.',
- 'dimensions' => 'La taille de l\'image n\'est pas conforme.',
- 'distinct' => 'Ce champ a une valeur en double.',
- 'email' => 'Ce champ doit être une adresse e-mail valide.',
- 'ends_with' => 'Ce champ doit se terminer par une des valeurs suivantes : :values',
- 'enum' => 'Ce champ selectionné est invalide.',
- 'exists' => 'Ce champ sélectionné est invalide.',
- 'file' => 'Ce champ doit être un fichier.',
- 'filled' => 'Ce champ doit avoir une valeur.',
- 'gt' => [
- 'array' => 'Le tableau doit contenir plus de :value éléments.',
- 'file' => 'La taille du fichier doit être supérieure à :value kilo-octets.',
- 'numeric' => 'La valeur doit être supérieure à :value.',
- 'string' => 'Le texte doit contenir plus de :value caractères.',
- ],
- 'gte' => [
- 'array' => 'Le tableau doit contenir au moins :value éléments.',
- 'file' => 'La taille du fichier doit être supérieure ou égale à :value kilo-octets.',
- 'numeric' => 'La valeur doit être supérieure ou égale à :value.',
- 'string' => 'Le texte doit contenir au moins :value caractères.',
- ],
- 'image' => 'Ce champ doit être une image.',
- 'in' => 'Ce champ est invalide.',
- 'in_array' => 'Ce champ n\'existe pas dans :other.',
- 'integer' => 'Ce champ doit être un entier.',
- 'ip' => 'Ce champ doit être une adresse IP valide.',
- 'ipv4' => 'Ce champ doit être une adresse IPv4 valide.',
- 'ipv6' => 'Ce champ doit être une adresse IPv6 valide.',
- 'json' => 'Ce champ doit être un document JSON valide.',
- 'lt' => [
- 'array' => 'Le tableau doit contenir moins de :value éléments.',
- 'file' => 'La taille du fichier doit être inférieure à :value kilo-octets.',
- 'numeric' => 'La valeur doit être inférieure à :value.',
- 'string' => 'Le texte doit contenir moins de :value caractères.',
- ],
- 'lte' => [
- 'array' => 'Le tableau doit contenir au plus :value éléments.',
- 'file' => 'La taille du fichier doit être inférieure ou égale à :value kilo-octets.',
- 'numeric' => 'La valeur doit être inférieure ou égale à :value.',
- 'string' => 'Le texte doit contenir au plus :value caractères.',
- ],
- 'mac_address' => 'La valeur doit être une adresse MAC valide.',
- 'max' => [
- 'array' => 'Le tableau ne peut contenir plus de :max éléments.',
- 'file' => 'La taille du fichier ne peut pas dépasser :max kilo-octets.',
- 'numeric' => 'La valeur ne peut être supérieure à :max.',
- 'string' => 'Le texte ne peut contenir plus de :max caractères.',
- ],
- 'mimes' => 'Le fichier doit être de type : :values.',
- 'mimetypes' => 'Le fichier doit être de type : :values.',
- 'min' => [
- 'array' => 'Le tableau doit contenir au moins :min éléments.',
- 'file' => 'La taille du fichier doit être supérieure à :min kilo-octets.',
- 'numeric' => 'La valeur doit être supérieure ou égale à :min.',
- 'string' => 'Le texte doit contenir au moins :min caractères.',
- ],
- 'multiple_of' => 'La valeur doit être un multiple de :value',
- 'not_in' => 'Le champ sélectionné n\'est pas valide.',
- 'not_regex' => 'Le format du champ n\'est pas valide.',
- 'numeric' => 'Ce champ doit contenir un nombre.',
- 'password' => 'Le mot de passe est incorrect',
- 'present' => 'Ce champ doit être présent.',
- 'prohibited' => 'Ce champ est interdit',
- 'prohibited_if' => 'Ce champ est interdit quand :other a la valeur :value.',
- 'prohibited_unless' => 'Ce champ est interdit à moins que :other ait l\'une des valeurs :values.',
- 'prohibits' => 'Ce champ interdit :other d\'être présent.',
- 'regex' => 'Le format du champ est invalide.',
- 'required' => 'Ce champ est obligatoire.',
- 'required_array_keys' => 'Ce champ doit contenir des entrées pour : :values.',
- 'required_if' => 'Ce champ est obligatoire quand la valeur de :other est :value.',
- 'required_unless' => 'Ce champ est obligatoire sauf si :other est :values.',
- 'required_with' => 'Ce champ est obligatoire quand :values est présent.',
- 'required_with_all' => 'Ce champ est obligatoire quand :values sont présents.',
- 'required_without' => 'Ce champ est obligatoire quand :values n\'est pas présent.',
- 'required_without_all' => 'Ce champ est requis quand aucun de :values n\'est présent.',
- 'same' => 'Ce champ doit être identique à :other.',
- 'size' => [
- 'array' => 'Le tableau doit contenir :size éléments.',
- 'file' => 'La taille du fichier doit être de :size kilo-octets.',
- 'numeric' => 'La valeur doit être :size.',
- 'string' => 'Le texte doit contenir :size caractères.',
- ],
- 'starts_with' => 'Ce champ doit commencer avec une des valeurs suivantes : :values',
- 'string' => 'Ce champ doit être une chaîne de caractères.',
- 'timezone' => 'Ce champ doit être un fuseau horaire valide.',
- 'unique' => 'La valeur est déjà utilisée.',
- 'uploaded' => 'Le fichier n\'a pu être téléversé.',
- 'url' => 'Le format de l\'URL n\'est pas valide.',
- 'uuid' => 'Ce champ doit être un UUID valide',
- 'custom' => [
- 'attribute-name' => [
- 'rule-name' => 'custom-message',
- ],
- ],
-];
diff --git a/resources/lang/fr/validation.php b/resources/lang/fr/validation.php
index f8cbe75..2503436 100644
--- a/resources/lang/fr/validation.php
+++ b/resources/lang/fr/validation.php
@@ -88,7 +88,15 @@ return [
'not_in' => 'Le champ :attribute sélectionné n\'est pas valide.',
'not_regex' => 'Le format du champ :attribute n\'est pas valide.',
'numeric' => 'Le champ :attribute doit contenir un nombre.',
- 'password' => 'Le mot de passe est incorrect',
+ 'password' => [
+ 'letters' => 'Le champ :attribute doit contenir au moins une lettre.',
+ 'mixed' => 'Le champ :attribute doit contenir au moins une majuscule et une minuscule.',
+ 'numbers' => 'Le champ :attribute doit contenir au moins un chiffre.',
+ 'symbols' => 'Le champ :attribute doit contenir au moins un symbole.',
+ 'uncompromised' => 'La valeur du champ :attribute est apparue dans une fuite de données. Veuillez
+ choisir une valeur différente.',
+ ],
+ 'phone' => 'Le numéro de téléphone doit être un numéro de téléphone valide',
'present' => 'Le champ :attribute doit être présent.',
'prohibited' => 'Le champ :attribute est interdit.',
'prohibited_if' => 'Le champ :attribute est interdit quand :other a la valeur :value.',
@@ -117,12 +125,94 @@ return [
'uploaded' => 'Le fichier du champ :attribute n\'a pu être téléversé.',
'url' => 'Le format de l\'URL de :attribute n\'est pas valide.',
'uuid' => 'Le champ :attribute doit être un UUID valide',
- 'custom' => [],
- 'phone' => 'Le champ :attribute n\'est pas un numéro de téléphone valide.',
- 'color' => ':attribute doit être un code couleur valide (hexadecimal, RGB, RGBA ou un nom de couleur CSS)',
- 'color_hex' => ':attribute doit être un code couleur hexadecimal valide',
- 'color_rgb' => ':attribute doit être un code couleur RGB valide',
- 'color_rgba' => ':attribute doit être un code couleur RGBA valide',
- 'color_name' => ':attribute doit être un nom de couleur CSS valide',
- 'postal_code' => 'Le champ :attribute accepte les codes postaux des pays suivants :countries comme par exemple :examples.'
+ 'attributes' => [
+ 'address' => 'adresse',
+ 'age' => 'âge',
+ 'amount' => 'montant',
+ 'area' => 'zone',
+ 'available' => 'disponible',
+ 'birthday' => 'anniversaire',
+ 'body' => 'corps',
+ 'city' => 'ville',
+ 'content' => 'contenu',
+ 'country' => 'pays',
+ 'created_at' => 'créé à',
+ 'creator' => 'créateur',
+ 'current_password' => 'mot de passe actuel',
+ 'date' => 'Date',
+ 'date_of_birth' => 'date de naissance',
+ 'day' => 'jour',
+ 'deleted_at' => 'supprimé à',
+ 'description' => 'description',
+ 'district' => 'quartier',
+ 'duration' => 'durée',
+ 'email' => 'adresse e-mail',
+ 'excerpt' => 'extrait',
+ 'filter' => 'filtre',
+ 'first_name' => 'prénom',
+ 'gender' => 'genre',
+ 'group' => 'groupe',
+ 'hour' => 'heure',
+ 'image' => 'image',
+ 'last_name' => 'nom',
+ 'lesson' => 'leçon',
+ 'line_address_1' => 'ligne d\'adresse 1',
+ 'line_address_2' => 'ligne d\'adresse 2',
+ 'message' => 'message',
+ 'middle_name' => 'deuxième prénom',
+ 'minute' => 'minute',
+ 'mobile' => 'portable',
+ 'month' => 'mois',
+ 'name' => 'nom',
+ 'national_code' => 'code national',
+ 'number' => 'numéro',
+ 'password' => 'mot de passe',
+ 'password_confirmation' => 'confirmation du mot de passe',
+ 'phone' => 'téléphone',
+ 'photo' => 'photo',
+ 'postal_code' => 'code postal',
+ 'price' => 'prix',
+ 'province' => 'région',
+ 'recaptcha_response_field' => 'champ de réponse recaptcha',
+ 'remember' => 'se souvenir',
+ 'restored_at' => 'restauré à',
+ 'result_text_under_image' => 'texte de résultat sous l\'image',
+ 'role' => 'rôle',
+ 'second' => 'seconde',
+ 'sex' => 'sexe',
+ 'short_text' => 'texte court',
+ 'size' => 'taille',
+ 'state' => 'état',
+ 'street' => 'rue',
+ 'student' => 'étudiant',
+ 'subject' => 'sujet',
+ 'teacher' => 'professeur',
+ 'terms' => 'conditions',
+ 'test_description' => 'description test',
+ 'test_locale' => 'localisation test',
+ 'test_name' => 'nom test',
+ 'text' => 'texte',
+ 'time' => 'heure',
+ 'title' => 'titre',
+ 'updated_at' => 'mis à jour à',
+ 'username' => 'nom d\'utilisateur',
+ 'year' => 'année',
+ 'zipcode' => 'code postal'
+ ],
+ 'custom' => [
+ 'authorization' => 'autorisation',
+ 'detail' => 'détail',
+ 'key' => 'clé',
+ 'lang' => 'langue',
+ 'order' => 'ordre',
+ 'path' => 'chemin',
+ 'placeholder' => 'placeholder',
+ 'required' => 'requis',
+ 'role' => 'rôle',
+ 'slug' => 'slug',
+ 'status' => 'statut',
+ 'type' => 'type',
+ 'value' => 'valeur',
+ 'visibility' => 'visibilité',
+ ]
];
diff --git a/resources/lang/fr/vue.php b/resources/lang/fr/vue.php
new file mode 100644
index 0000000..4e938cd
--- /dev/null
+++ b/resources/lang/fr/vue.php
@@ -0,0 +1,43 @@
+ [
+ 'choose_a_file' => 'Choisir un fichier',
+ 'change_source_picture' => 'Modifier l\'image source',
+ 'view_source_picture' => 'Voir l\'image',
+ 'resize_source_picture' => 'Redimensionner l\'image',
+ 'resized_source_picture' => 'Image redimensionnée',
+ 'preview_picture' => 'Aperçu de l\'image',
+ 'change_picture_before_import' => 'Modification de l\'image avant l\'importation',
+ 'close_window' => 'Fermer la fenêtre',
+ 'close_and_validate' => 'Valider le contenu et fermer la fenêtre',
+ 'close_window_without_validation' => 'Fermer la fenêtre sans valider le contenu',
+ 'zoom_in' => 'Zoom avant',
+ 'zoom_out' => 'Zoom arrière',
+ 'move_left' => 'Déplacer vers la gauche',
+ 'move_right' => 'Déplacer vers la droite',
+ 'move_up' => 'Déplacer en vers le haut',
+ 'move_down' => 'Déplacer en vers le bas',
+ 'mirror_horizontal' => 'Miroir horizontal',
+ 'mirror_vertical' => 'Miroir vertical',
+ 'rotation' => 'Rotation',
+ 'rotate_rewind' => 'Rotation dans le sens inverse des aiguilles d\'une montre',
+ 'rotate' => 'Rotation dans le sens des aiguilles d\'une montre',
+ 'degres' => ':deg degrés',
+ 'validate' => 'Valider',
+ 'preview' => 'Prévisualisation',
+ 'remove_picture' => 'Supprimer l\'image',
+ ],
+ 'WordCounterComponent' => [
+ 'words' => 'Mots',
+ 'characters' => 'Caractères'
+ ],
+ 'PasswordVisibility' => [
+ 'hide' => 'Cacher le mot de passe',
+ 'show' => 'Dévoiler le mot de passe',
+ ],
+ 'ContactForm' => [
+ "attachment_allowed_formats" => "Formats acceptés : :formats",
+ "attachment_max_size" => "Poids maximum : :max",
+ ]
+];
diff --git a/resources/sass/bo/base/_bootstrapOverload.scss b/resources/sass/bo/base/_bootstrapOverload.scss
deleted file mode 100644
index 1d02e16..0000000
--- a/resources/sass/bo/base/_bootstrapOverload.scss
+++ /dev/null
@@ -1,4 +0,0 @@
-.nav-link.active {
- color: $primary;
- font-weight: bold;
-}
diff --git a/resources/sass/bo/base/_classes.scss b/resources/sass/bo/base/_classes.scss
deleted file mode 100644
index 2fcdac3..0000000
--- a/resources/sass/bo/base/_classes.scss
+++ /dev/null
@@ -1 +0,0 @@
-// empty.
diff --git a/resources/sass/bo/base/_common.scss b/resources/sass/bo/base/_common.scss
index c4723a9..b6f3cf4 100644
--- a/resources/sass/bo/base/_common.scss
+++ b/resources/sass/bo/base/_common.scss
@@ -1,16 +1,23 @@
-.need-word-counter {
- position: relative;
- border-radius: 0 0 0.375rem 0.375rem;
+// * LAYOUT
- &-password {
- border-radius: 0 0 0 0.375rem !important;
+body {
+ .navbar-brand > .logo {
+ max-width: 9rem;
+ }
- &-btn {
- border-radius: 0 0 0.375rem !important;
- }
+ > main {
+ min-height: calc(100vh - (#{$bo-header-height} + #{$bo-footer-height}));
+ margin-top: $bo-header-height;
+ }
+
+ > footer {
+ height: $bo-footer-height;
+ box-shadow: 0 -0.125rem 0.25rem rgb(0 0 0 / 7.5%) !important;
}
}
+// * OTHERS
+
.table {
&.fix-action {
th:last-child,
@@ -39,21 +46,33 @@
max-height: 5rem;
}
+.w-fit {
+ width: fit-content;
+}
+
+.btn-md {
+ height: 38px;
+}
+
+.btn-sm {
+ height: 31px;
+}
+
.pagination-custom .dropdown-menu {
overflow: auto;
min-width: 5rem;
max-height: 178px;
}
-.btn-md {
- min-width: 38px;
- height: 38px;
-}
+.need-word-counter {
+ position: relative;
+ border-radius: 0 0 0.375rem 0.375rem;
-.w-fit {
- width: fit-content;
-}
+ &-password {
+ border-radius: 0 0 0 0.375rem !important;
-.table-col-sorter {
- height: 3rem;
+ &-btn {
+ border-radius: 0 0 0.375rem !important;
+ }
+ }
}
diff --git a/resources/sass/bo/base/_fonts.scss b/resources/sass/bo/base/_fonts.scss
deleted file mode 100644
index 8b1a393..0000000
--- a/resources/sass/bo/base/_fonts.scss
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/resources/sass/bo/bo.scss b/resources/sass/bo/bo.scss
index c7499d5..b566175 100644
--- a/resources/sass/bo/bo.scss
+++ b/resources/sass/bo/bo.scss
@@ -1,15 +1,12 @@
@charset "UTF-8";
-@import "~toastify-js/src/toastify.css";
+@import 'toastify-js/src/toastify.css';
// * UTILITIES
-@import "./utilities/variables";
+@import './utilities/variables';
// * VENDOR
-@import "./vendor/bootstrap";
-@import "./vendor/vue-nestable";
+@import './vendor/bootstrap';
+@import './vendor/vue-nestable';
// * BASE
-@import "./base/bootstrapOverload";
-@import "./base/fonts";
-@import "./base/classes";
-@import "./base/common";
+@import './base/common';
diff --git a/resources/sass/bo/pages/.gitkeep b/resources/sass/bo/pages/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/resources/sass/bo/partials/.gitkeep b/resources/sass/bo/partials/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/resources/sass/bo/utilities/_bootstrap-custom.scss b/resources/sass/bo/utilities/_bootstrap-custom.scss
index 50438f2..5bd3230 100644
--- a/resources/sass/bo/utilities/_bootstrap-custom.scss
+++ b/resources/sass/bo/utilities/_bootstrap-custom.scss
@@ -1,44 +1,44 @@
-@use "sass:list";
-@import "mixins";
+@use 'sass:list';
+@import 'mixins';
// SET SOME CLASSES WITH BOOTSTRAP BREAKPOINTS
// * Reponsive borders
@each $breakpoint in map-keys($grid-breakpoints) {
- @include media-breakpoint-up($breakpoint) {
- $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
+ @include media-breakpoint-up($breakpoint) {
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
- @include generate-bs-borders($infix, $prefix);
+ @include generate-bs-borders($infix, $prefix);
- @each $color, $value in $theme-colors {
- @include generate-bs-borders($infix, $prefix, $color);
- }
+ @each $color, $value in $theme-colors {
+ @include generate-bs-borders($infix, $prefix, $color);
}
+ }
}
// * Responsive sizings (used in laravel errors layouts)
@each $breakpoint in map-keys($grid-breakpoints) {
- @include media-breakpoint-up($breakpoint) {
- $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
+ @include media-breakpoint-up($breakpoint) {
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
- .w#{$infix}-25 {
- width: 25% !important;
- }
- .w#{$infix}-50 {
- width: 50% !important;
- }
- .w#{$infix}-75 {
- width: 75% !important;
- }
- .w#{$infix}-100 {
- width: 100% !important;
- }
-
- @each $prop, $unit in (width: vw, height: vh) {
- @each $size in [25, 50, 75, 100] {
- .#{$unit}#{$infix}-#{$size} {
- #{$prop}: #{$size}#{$unit} !important;
- }
- }
- }
+ .w#{$infix}-25 {
+ width: 25% !important;
}
+ .w#{$infix}-50 {
+ width: 50% !important;
+ }
+ .w#{$infix}-75 {
+ width: 75% !important;
+ }
+ .w#{$infix}-100 {
+ width: 100% !important;
+ }
+
+ @each $prop, $unit in (width: vw, height: vh) {
+ @each $size in [25, 50, 75, 100] {
+ .#{$unit}#{$infix}-#{$size} {
+ #{$prop}: #{$size}#{$unit} !important;
+ }
+ }
+ }
+ }
}
diff --git a/resources/sass/bo/utilities/_bootstrap-variables.scss b/resources/sass/bo/utilities/_bootstrap-variables.scss
index 7af4d0e..9b558cd 100644
--- a/resources/sass/bo/utilities/_bootstrap-variables.scss
+++ b/resources/sass/bo/utilities/_bootstrap-variables.scss
@@ -1,3 +1,5 @@
+@import './../utilities/variables';
+
// Override bootstrap colors
$primary: $color-primary;
$secondary: $color-secondary;
@@ -8,14 +10,14 @@ $danger: $color-danger;
$light: $color-light;
$dark: $color-dark;
$theme-colors: (
- primary: $primary,
- secondary: $secondary,
- success: $success,
- info: $info,
- warning: $warning,
- danger: $danger,
- light: $light,
- dark: $dark,
+ primary: $primary,
+ secondary: $secondary,
+ success: $success,
+ info: $info,
+ warning: $warning,
+ danger: $danger,
+ light: $light,
+ dark: $dark,
);
// Override bootstrap vars
diff --git a/resources/sass/bo/utilities/_mixins.scss b/resources/sass/bo/utilities/_mixins.scss
index b0fc0d1..77fb712 100644
--- a/resources/sass/bo/utilities/_mixins.scss
+++ b/resources/sass/bo/utilities/_mixins.scss
@@ -1,54 +1,54 @@
@mixin generate-bs-borders($infix, $prefix, $color:null) {
- $color-var: var(--#{$prefix}border-color);
+ $color-var: var(--#{$prefix}border-color);
- @if $color {
- $color-var: rgba(var(--#{$prefix}#{$color}-rgb));
- $color: "-#{$color}";
- }
+ @if $color {
+ $color-var: rgba(var(--#{$prefix}#{$color}-rgb));
+ $color: '-#{$color}';
+ }
- .border#{$infix}#{$color}-top {
- border-top: $border-width var(--#{$prefix}border-style) #{$color-var} !important;
- }
- .border#{$infix}#{$color}-end {
- border-right: $border-width var(--#{$prefix}border-style) #{$color-var} !important;
- }
- .border#{$infix}#{$color}-bottom {
- border-bottom: $border-width var(--#{$prefix}border-style) #{$color-var} !important;
- }
- .border#{$infix}#{$color}-start {
- border-left: $border-width var(--#{$prefix}border-style) #{$color-var} !important;
- }
+ .border#{$infix}#{$color}-top {
+ border-top: $border-width var(--#{$prefix}border-style) #{$color-var} !important;
+ }
+ .border#{$infix}#{$color}-end {
+ border-right: $border-width var(--#{$prefix}border-style) #{$color-var} !important;
+ }
+ .border#{$infix}#{$color}-bottom {
+ border-bottom: $border-width var(--#{$prefix}border-style) #{$color-var} !important;
+ }
+ .border#{$infix}#{$color}-start {
+ border-left: $border-width var(--#{$prefix}border-style) #{$color-var} !important;
+ }
- .border#{$infix}#{$color}-0 { border: 0 !important; }
- .border#{$infix}#{$color}-top-0 { border-top: 0 !important; }
- .border#{$infix}#{$color}-end-0 { border-right: 0 !important; }
- .border#{$infix}#{$color}-bottom-0 { border-bottom: 0 !important; }
- .border#{$infix}#{$color}-start-0 { border-left: 0 !important; }
+ .border#{$infix}#{$color}-0 { border: 0 !important; }
+ .border#{$infix}#{$color}-top-0 { border-top: 0 !important; }
+ .border#{$infix}#{$color}-end-0 { border-right: 0 !important; }
+ .border#{$infix}#{$color}-bottom-0 { border-bottom: 0 !important; }
+ .border#{$infix}#{$color}-start-0 { border-left: 0 !important; }
- @each $idx, $b-width in $border-widths {
- $pidx: list.index(($border-widths), ($idx $b-width));
+ @each $idx, $b-width in $border-widths {
+ $pidx: list.index(($border-widths), ($idx $b-width));
- .border#{$infix}#{$color}-top-#{$idx} {
- border-top: $b-width var(--#{$prefix}border-style) #{$color-var} !important;
- }
- .border#{$infix}#{$color}-end-#{$idx} {
- border-right: $b-width var(--#{$prefix}border-style) #{$color-var} !important;
- }
- .border#{$infix}#{$color}-bottom-#{$idx} {
- border-bottom: $b-width var(--#{$prefix}border-style) #{$color-var} !important;
- }
- .border#{$infix}#{$color}-start-#{$idx} {
- border-left: $b-width var(--#{$prefix}border-style) #{$color-var} !important;
- }
+ .border#{$infix}#{$color}-top-#{$idx} {
+ border-top: $b-width var(--#{$prefix}border-style) #{$color-var} !important;
}
-
- .border#{$infix}#{$color}-x {
- border-right: $border-width var(--#{$prefix}border-style) #{$color-var} !important;
- border-left: $border-width var(--#{$prefix}border-style) #{$color-var} !important;
+ .border#{$infix}#{$color}-end-#{$idx} {
+ border-right: $b-width var(--#{$prefix}border-style) #{$color-var} !important;
}
-
- .border#{$infix}#{$color}-y {
- border-top: $border-width var(--#{$prefix}border-style) #{$color-var} !important;
- border-bottom: $border-width var(--#{$prefix}border-style) #{$color-var} !important;
+ .border#{$infix}#{$color}-bottom-#{$idx} {
+ border-bottom: $b-width var(--#{$prefix}border-style) #{$color-var} !important;
}
+ .border#{$infix}#{$color}-start-#{$idx} {
+ border-left: $b-width var(--#{$prefix}border-style) #{$color-var} !important;
+ }
+ }
+
+ .border#{$infix}#{$color}-x {
+ border-right: $border-width var(--#{$prefix}border-style) #{$color-var} !important;
+ border-left: $border-width var(--#{$prefix}border-style) #{$color-var} !important;
+ }
+
+ .border#{$infix}#{$color}-y {
+ border-top: $border-width var(--#{$prefix}border-style) #{$color-var} !important;
+ border-bottom: $border-width var(--#{$prefix}border-style) #{$color-var} !important;
+ }
}
diff --git a/resources/sass/bo/utilities/_variables.scss b/resources/sass/bo/utilities/_variables.scss
index 2c51f48..ffb8557 100644
--- a/resources/sass/bo/utilities/_variables.scss
+++ b/resources/sass/bo/utilities/_variables.scss
@@ -10,8 +10,12 @@ $color-primary: #0d6efd;
$color-secondary: #6c757d;
// * FONTS
-$font-default-family-base: system-ui, -apple-system, "Segoe UI", "Roboto",
- "Helvetica Neue", "Arial", "Noto Sans", "Liberation Sans", sans-serif,
- "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; // - The default site font family.
+$font-default-family-base: system-ui, -apple-system, 'Segoe UI', 'Roboto',
+ 'Helvetica Neue', 'Arial', 'Noto Sans', 'Liberation Sans', sans-serif,
+ 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; // - The default site font family.
$font-default-size-base: 1rem; // Assumes the browser default, typically `16px`
$line-default-height-base: 1.5;
+
+// * DIMENSIONS
+$bo-header-height: 4.8rem;
+$bo-footer-height: 2rem;
diff --git a/resources/sass/bo/vendor/_bootstrap.scss b/resources/sass/bo/vendor/_bootstrap.scss
index 59949e5..9da2e0d 100644
--- a/resources/sass/bo/vendor/_bootstrap.scss
+++ b/resources/sass/bo/vendor/_bootstrap.scss
@@ -2,47 +2,48 @@
@import "./../utilities/bootstrap-variables";
// 2. Include functions first (so you can manipulate colors, SVGs, calc, etc)
-@import "~bootstrap/scss/functions";
+@import "bootstrap/scss/functions";
// 3. Include remainder of required Bootstrap stylesheets
-@import "~bootstrap/scss/variables";
-@import "~bootstrap/scss/variables-dark";
+@import "bootstrap/scss/variables";
+@import "bootstrap/scss/variables-dark";
// 4. Include remainder of required parts
-@import "~bootstrap/scss/maps";
-@import "~bootstrap/scss/mixins";
-@import "~bootstrap/scss/root";
+@import "bootstrap/scss/maps";
+@import "bootstrap/scss/mixins";
+@import "bootstrap/scss/root";
// 5. Optionally include any other parts as needed
-@import "~bootstrap/scss/alert";
-@import "~bootstrap/scss/buttons";
-@import "~bootstrap/scss/button-group";
-@import "~bootstrap/scss/containers";
-@import "~bootstrap/scss/dropdown";
-@import "~bootstrap/scss/forms";
-@import "~bootstrap/scss/grid";
-@import "~bootstrap/scss/helpers";
-@import "~bootstrap/scss/images";
-@import "~bootstrap/scss/list-group";
-@import "~bootstrap/scss/nav";
-@import "~bootstrap/scss/navbar";
-@import "~bootstrap/scss/pagination";
-@import "~bootstrap/scss/spinners";
-@import "~bootstrap/scss/reboot";
-@import "~bootstrap/scss/tables";
-@import "~bootstrap/scss/tooltip";
-@import "~bootstrap/scss/transitions";
-@import "~bootstrap/scss/type";
-@import "~bootstrap/scss/utilities";
-@import "~bootstrap/scss/modal";
-@import "~bootstrap/scss/close";
-@import "~bootstrap/scss/card";
-@import "~bootstrap/scss/breadcrumb";
-@import "~bootstrap/scss/progress";
-@import "~bootstrap/scss/accordion";
+@import "bootstrap/scss/reboot";
+@import "bootstrap/scss/accordion";
+@import "bootstrap/scss/alert";
+@import "bootstrap/scss/badge";
+@import "bootstrap/scss/breadcrumb";
+@import "bootstrap/scss/button-group";
+@import "bootstrap/scss/buttons";
+@import "bootstrap/scss/card";
+@import "bootstrap/scss/close";
+@import "bootstrap/scss/containers";
+@import "bootstrap/scss/dropdown";
+@import "bootstrap/scss/forms";
+@import "bootstrap/scss/grid";
+@import "bootstrap/scss/helpers";
+@import "bootstrap/scss/images";
+@import "bootstrap/scss/list-group";
+@import "bootstrap/scss/modal";
+@import "bootstrap/scss/nav";
+@import "bootstrap/scss/navbar";
+@import "bootstrap/scss/pagination";
+@import "bootstrap/scss/progress";
+@import "bootstrap/scss/spinners";
+@import "bootstrap/scss/tables";
+@import "bootstrap/scss/tooltip";
+@import "bootstrap/scss/transitions";
+@import "bootstrap/scss/type";
+@import "bootstrap/scss/utilities";
// 6. Optionally include utilities API last to generate classes based on the Sass map in `_utilities.scss`
-@import "~bootstrap/scss/utilities/api";
+@import "bootstrap/scss/utilities/api";
// 7 Overload bootstrap classes
@import "./../utilities/bootstrap-custom";
diff --git a/resources/sass/bo/vendor/_vue-nestable.scss b/resources/sass/bo/vendor/_vue-nestable.scss
index 843c9da..18732ca 100644
--- a/resources/sass/bo/vendor/_vue-nestable.scss
+++ b/resources/sass/bo/vendor/_vue-nestable.scss
@@ -10,7 +10,7 @@
list-style-type: none;
}
.nestable .nestable-list:not(.nestable-group) {
- border-left: 1px solid $border-color;
+ border-left: 1px solid #000;
}
.nestable-rtl .nestable-list {
padding: 0 40px 0 0;
diff --git a/resources/ts/bo.ts b/resources/ts/bo.ts
deleted file mode 100644
index 8dff049..0000000
--- a/resources/ts/bo.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-// UTILITIES
-import "./utilities/bootstrap";
-import "./utilities/fontawesome";
-
-// MODULES
-import "./modules/sweetalert";
-
-// CUSTOM
-import "./bo/common";
-import "./bo/vue-bo";
diff --git a/resources/ts/bo/base/common.ts b/resources/ts/bo/base/common.ts
new file mode 100644
index 0000000..ff969df
--- /dev/null
+++ b/resources/ts/bo/base/common.ts
@@ -0,0 +1,64 @@
+import Swal from "sweetalert2";
+import trans from "../../modules/trans";
+const elements = document.getElementsByClassName("confirmDeleteTenantTS");
+
+if (elements) {
+ for (const element of elements) {
+ element.addEventListener("submit", (e) => {
+ const self = e.target as HTMLFormElement;
+ e.preventDefault();
+ Swal.fire({
+ title: trans.methods.__("Confirmez"),
+ text: trans.methods.__("Voulez-vous vraiment supprimer cet élément ?"),
+ color: getComputedStyle(document.body).getPropertyValue("--bs-body-color"),
+ icon: "error",
+ showCancelButton: true,
+ confirmButtonText:trans.methods.__("Oui"),
+ cancelButtonText: trans.methods.__("Annuler"),
+ // * Bootstrap Styling
+ customClass: {
+ confirmButton: "btn btn-primary mx-1",
+ cancelButton: "btn btn-danger mx-1",
+ },
+ buttonsStyling: false,
+ background: getComputedStyle(document.body).getPropertyValue("--bs-body-bg"),
+ }).then((result) => {
+ if (result.isConfirmed) {
+ Swal.fire({
+ title: trans.methods.__("Attention au conséquences"),
+ html: "Attention cette action est irréversible, toutes les informations liées à ce tenant seront supprimées !",
+ color: getComputedStyle(document.body).getPropertyValue("--bs-body-color"),
+ icon: "warning",
+ showCancelButton: true,
+ confirmButtonText:trans.methods.__("Je comprends le danger et suis conscient que celà aura des conséquences"),
+ cancelButtonText: trans.methods.__("Annuler"),
+ // * Bootstrap Styling
+ customClass: {
+ confirmButton: "btn btn-primary mx-1",
+ cancelButton: "btn btn-danger mx-1 mt-1",
+ },
+ buttonsStyling: false,
+ background: getComputedStyle(document.body).getPropertyValue("--bs-body-bg"),
+ }).then((result) => {
+ if (result.isConfirmed) {
+ self?.submit();
+ }
+ });
+ } else if (
+ /* Read more about handling dismissals below */
+ result.dismiss === Swal.DismissReason.cancel
+ ) {
+ Swal.fire({
+ title: trans.methods.__("L'opération n'as pas été effectuée"),
+ confirmButtonText: trans.methods.__("Ok"),
+ // * Bootstrap Styling
+ customClass: {
+ confirmButton: "btn btn-primary",
+ },
+ buttonsStyling: false,
+ });
+ }
+ });
+ });
+ }
+}
diff --git a/resources/ts/bo/bo.ts b/resources/ts/bo/bo.ts
new file mode 100644
index 0000000..3868c74
--- /dev/null
+++ b/resources/ts/bo/bo.ts
@@ -0,0 +1,14 @@
+// ASSETS
+///
+import.meta.glob(["./../../assets/images/**"]);
+
+// UTILITIES
+import "./utilities/bootstrap";
+import "./utilities/fontawesome";
+import "./utilities/vue-bo";
+
+// MODULES
+import "./../modules/sweetalert";
+
+// CUSTOM
+import "./base/common";
diff --git a/resources/ts/bo/common.ts b/resources/ts/bo/common.ts
deleted file mode 100644
index e69de29..0000000
diff --git a/resources/ts/bo/components/BelongsToManyDropdownComponent.vue b/resources/ts/bo/components/BelongsToManyDropdownComponent.vue
index 1fc6d3e..ff92c9c 100644
--- a/resources/ts/bo/components/BelongsToManyDropdownComponent.vue
+++ b/resources/ts/bo/components/BelongsToManyDropdownComponent.vue
@@ -31,7 +31,7 @@
:key="index"
>
- {{ parseValidationInput(`${name}[${String(index)}][name]`, allErrors) }}
+ {{ parseLaravelErrorMessages.methods.parseValidationInput(`${name}[${String(index)}][name]`, allErrors) }}
-
+
diff --git a/resources/ts/bo/components/CkEditorComponent.vue b/resources/ts/bo/components/CkEditorComponent.vue
index d50e4d7..d38d48b 100644
--- a/resources/ts/bo/components/CkEditorComponent.vue
+++ b/resources/ts/bo/components/CkEditorComponent.vue
@@ -1,205 +1,546 @@
-
+
-
-
diff --git a/resources/ts/bo/components/ColorPickerComponent.vue b/resources/ts/bo/components/ColorPickerComponent.vue
index 0c80316..b22ad87 100644
--- a/resources/ts/bo/components/ColorPickerComponent.vue
+++ b/resources/ts/bo/components/ColorPickerComponent.vue
@@ -1,310 +1,293 @@
@@ -35,7 +35,7 @@
for="documentTitle"
class="col-form-label"
>
- {{ __("Titre du document") }} *
+ {{ trans.methods.__("Titre du document") }} *
- {{ __("Doit posséder 3 caractères minimum, 255 maximum.") }}
+ {{ trans.methods.__("Doit posséder 3 caractères minimum, 255 maximum.") }}
@@ -62,7 +62,7 @@
for="directoryDirectoryId"
class="col-form-label"
>
- {{ __("Dossier à associer") }} *
+ {{ trans.methods.__("Dossier à associer") }} *
- {{ __("Choisissez un dossier à associer parmis la liste.") }}
+ {{ trans.methods.__("Choisissez un dossier à associer parmis la liste.") }}
@@ -93,7 +93,7 @@
for="documentParentId"
class="col-form-label"
>
- {{ __("Document français à associer") }} *
+ {{ trans.methods.__("Document français à associer") }} *
- {{ __("Aucun documents français n'est disponible") }}
+ {{ trans.methods.__("Aucun documents français n'est disponible") }}
- {{ __("Choisissez un document français à associer parmis la liste.") }}
+ {{ trans.methods.__("Choisissez un document français à associer parmis la liste.") }}
@@ -128,7 +128,7 @@
for="documentInputFile"
class="col-form-label"
>
- {{ __("Document à ajouter") }} *
+ {{ trans.methods.__("Document à ajouter") }} *
@@ -136,7 +136,7 @@
class="btn btn-outline-secondary"
type="button"
data-bs="tooltip"
- :title="__('Modifier le document source')"
+ :title="trans.methods.__('Modifier le document source')"
>
@@ -151,7 +151,7 @@
: 'Sélectionnez un fichier'
"
data-bs="tooltip"
- :title="__('Modifier le document source')"
+ :title="trans.methods.__('Modifier le document source')"
readonly
>
@@ -181,7 +181,7 @@
- {{ __("Doit être au format .pdf ou .mp4.") }}
+ {{ trans.methods.__("Doit être au format .pdf ou .mp4.") }}
-
diff --git a/resources/ts/bo/components/DirectoriesComponent.vue b/resources/ts/bo/components/DirectoriesComponent.vue
index fab9036..a125c74 100644
--- a/resources/ts/bo/components/DirectoriesComponent.vue
+++ b/resources/ts/bo/components/DirectoriesComponent.vue
@@ -9,7 +9,7 @@
@@ -37,7 +37,7 @@
}"
>
@@ -58,7 +58,7 @@
v-else
@click="displayList($event, item.id)"
class="btn btn-sm btn-outline-dark"
- :title="__('Rouler la liste')"
+ :title="trans.methods.__('Rouler la liste')"
data-bs="tooltip"
>
@@ -78,7 +78,7 @@
- {{ item.name["fr" as keyof typeof item.name] }}
+ {{ item.name[("fr" as keyof typeof item.name) as number] }}
-
+
diff --git a/resources/ts/bo/components/PasswordVisibility.vue b/resources/ts/bo/components/PasswordVisibility.vue
index 611fcdd..2648be5 100644
--- a/resources/ts/bo/components/PasswordVisibility.vue
+++ b/resources/ts/bo/components/PasswordVisibility.vue
@@ -1,12 +1,19 @@
-
+
-
+
-
-
diff --git a/resources/ts/bo/components/WordCounterComponent.vue b/resources/ts/bo/components/WordCounterComponent.vue
index c8cc4a9..0b73c9c 100644
--- a/resources/ts/bo/components/WordCounterComponent.vue
+++ b/resources/ts/bo/components/WordCounterComponent.vue
@@ -1,118 +1,113 @@
-
-
- {{ __("Mots") }}:
- {{ intWords }}
+
+
+ {{ trans.methods.__("vue.WordCounterComponent.words") }} : {{ wordsCount }}
-
- {{ __("Caractères") }}:
- {{ intChars }}
+
+ {{ trans.methods.__("vue.WordCounterComponent.characters") }} : {{ charactersCount }}
-
-
+ @vite(['resources/sass/bo/bo.scss'])
@stack('scripts')
diff --git a/resources/views/vendor/mail/html/header.blade.php b/resources/views/vendor/mail/html/header.blade.php
index 37c887d..70c590b 100644
--- a/resources/views/vendor/mail/html/header.blade.php
+++ b/resources/views/vendor/mail/html/header.blade.php
@@ -5,7 +5,7 @@
@else
{{ $slot }}
@endif
diff --git a/routes/api.php b/routes/api.php
index ca4a49a..66cdad6 100644
--- a/routes/api.php
+++ b/routes/api.php
@@ -4,6 +4,7 @@ use App\Http\Controllers\API\AppController;
use App\Http\Controllers\API\SettingsController;
use App\Http\Controllers\API\SyncController;
use Illuminate\Support\Facades\Route;
+use Stancl\Tenancy\Middleware\InitializeTenancyByPath;
/*
|--------------------------------------------------------------------------
@@ -16,17 +17,21 @@ use Illuminate\Support\Facades\Route;
|
*/
-Route::name('api.')->middleware('api.token')->group(function () {
- // FIXME: sur les méthodes GET le token est visible dans les logs server..
- Route::get('settings', [SettingsController::class, 'get'])->name('settings.index');
- Route::get('app', [AppController::class, 'get'])->name('settings.app');
- Route::get('formularies', [SyncController::class, 'getFormularies'])->name('formularies.index');
- Route::get('users', [SyncController::class, 'getUsers'])->name('users.index');
- Route::get('directories', [SyncController::class, 'getDirectories'])->name('directories.index');
- Route::get('documents', [SyncController::class, 'getDocuments'])->name('documents.index');
- Route::get('version', [SyncController::class, 'getVersion'])->name('version');
- Route::get('contacts/{app_user}', [SyncController::class, 'getContacts'])->name('contacts.index');
- Route::post('contacts/{app_user}', [SyncController::class, 'upsertContact'])->name('contacts.upsert');
- Route::delete('contacts/{app_user}', [SyncController::class, 'destroyContacts'])->name('contacts.delete');
- Route::post('sendBrochure', [SyncController::class, 'SendFlyer'])->name('send-flyers');
-});
+Route::middleware([
+ InitializeTenancyByPath::class,
+ 'api.token',
+])->prefix('{tenant}/api')
+ ->name('api.')
+ ->group(function () {
+ Route::get('settings', [SettingsController::class, 'get'])->name('settings.index');
+ Route::get('app', [AppController::class, 'get'])->name('settings.app');
+ Route::get('formularies', [SyncController::class, 'getFormularies'])->name('formularies.index');
+ Route::get('users', [SyncController::class, 'getUsers'])->name('users.index');
+ Route::get('directories', [SyncController::class, 'getDirectories'])->name('directories.index');
+ Route::get('documents', [SyncController::class, 'getDocuments'])->name('documents.index');
+ Route::get('version', [SyncController::class, 'getVersion'])->name('version');
+ Route::get('contacts/{app_user}', [SyncController::class, 'getContacts'])->name('contacts.index');
+ Route::post('contacts/{app_user}', [SyncController::class, 'upsertContact'])->name('contacts.upsert');
+ Route::delete('contacts/{app_user}', [SyncController::class, 'destroyContacts'])->name('contacts.delete');
+ Route::post('sendBrochure', [SyncController::class, 'SendFlyer'])->name('send-flyers');
+ });
diff --git a/routes/breadcrumbs-bo.php b/routes/breadcrumbs-bo.php
new file mode 100644
index 0000000..c8d4db9
--- /dev/null
+++ b/routes/breadcrumbs-bo.php
@@ -0,0 +1,195 @@
+push(
+ Str::of(trans('models.classes.user'))->plural()->ucfirst(),
+ (auth('backend')->user()->can('isAdmin')) ? route('bo.users.index') : null
+ );
+});
+Breadcrumbs::for('bo.users.create', function (Generator $trail) {
+ $trail->parent('bo.users.index');
+ $trail->push(Str::ucfirst(trans('crud.actions.create')), route('bo.users.create'));
+});
+Breadcrumbs::for('bo.users.edit', function (Generator $trail, User $user) {
+ $trail->parent('bo.users.index');
+ $trail->push(Str::ucfirst(trans('crud.actions.edit')), route('bo.users.edit', [
+ 'user' => $user,
+ ]));
+});
+Breadcrumbs::for('bo.users.duplicate', function (Generator $trail) {
+ $trail->parent('bo.users.index');
+ $trail->push(Str::ucfirst(trans('crud.actions.duplicate')));
+});
+
+// * TENANTS
+Breadcrumbs::for('bo.tenants.index', function (Generator $trail) {
+ $trail->push(
+ Str::of(trans('models.classes.tenant'))->plural()->ucfirst(),
+ route('bo.tenants.index')
+ );
+});
+Breadcrumbs::for('bo.tenants.create', function (Generator $trail) {
+ $trail->parent('bo.tenants.index');
+ $trail->push(Str::ucfirst(trans('crud.actions.create')), route('bo.tenants.create'));
+});
+Breadcrumbs::for('bo.tenants.edit', function (Generator $trail, Tenant $tenant) {
+ $trail->parent('bo.tenants.index');
+ $trail->push(Str::ucfirst(trans('crud.actions.edit')), route('bo.tenants.edit', [
+ 'tenant' => $tenant,
+ ]));
+});
+Breadcrumbs::for('bo.tenants.duplicate', function (Generator $trail) {
+ $trail->parent('bo.tenants.index');
+ $trail->push(Str::ucfirst(trans('crud.actions.duplicate')));
+});
+
+// * TAGS
+Breadcrumbs::for('bo.tags.index', function (Generator $trail) {
+ $trail->push(
+ Str::of(trans('models.classes.tag'))->plural()->ucfirst(),
+ route('bo.tags.index', ['tenant' => \tenant()])
+ );
+});
+Breadcrumbs::for('bo.tags.create', function (Generator $trail) {
+ $trail->parent('bo.tags.index');
+ $trail->push(Str::ucfirst(trans('crud.actions.create')), route('bo.tags.create', ['tenant' => \tenant()]));
+});
+Breadcrumbs::for('bo.tags.edit', function (Generator $trail, Tag $tag) {
+ $trail->parent('bo.tags.index');
+ $trail->push(Str::ucfirst(trans('crud.actions.edit')), route('bo.tags.edit', [
+ 'tenant' => \tenant(),
+ 'tag' => $tag,
+ ]));
+});
+Breadcrumbs::for('bo.tags.duplicate', function (Generator $trail) {
+ $trail->parent('bo.tags.index');
+ $trail->push(Str::ucfirst(trans('crud.actions.duplicate')));
+});
+
+// * SETTINGS
+Breadcrumbs::for('bo.settings.index', function (Generator $trail) {
+ $trail->push(
+ Str::of(trans('models.classes.setting'))->plural()->ucfirst(),
+ route('bo.settings.index', ['tenant' => \tenant()])
+ );
+});
+Breadcrumbs::for('bo.settings.create', function (Generator $trail) {
+ $trail->parent('bo.settings.index');
+ $trail->push(Str::ucfirst(trans('crud.actions.create')), route('bo.settings.create', ['tenant' => \tenant()]));
+});
+Breadcrumbs::for('bo.settings.edit', function (Generator $trail, Setting $setting) {
+ $trail->parent('bo.settings.index');
+ $trail->push(Str::ucfirst(trans('crud.actions.edit')), route('bo.settings.edit', [
+ 'tenant' => \tenant(),
+ 'setting' => $setting,
+ ]));
+});
+
+// * CONTACTS
+Breadcrumbs::for('bo.contacts.index', function (Generator $trail) {
+ $trail->push(
+ Str::of(trans('models.classes.contact'))->plural()->ucfirst(),
+ route('bo.contacts.index', ['tenant' => \tenant()])
+ );
+});
+Breadcrumbs::for('bo.contacts.show', function (Generator $trail, Contact $contact) {
+ $trail->parent('bo.contacts.index');
+ $trail->push(Str::ucfirst(trans('crud.actions.show')), route('bo.contacts.show', [
+ 'tenant' => \tenant(),
+ 'contact' => $contact
+ ]));
+});
+
+// * FORMULARIES
+Breadcrumbs::for('bo.formularies.index', function (Generator $trail) {
+ $trail->push(
+ Str::of(trans('models.classes.formulary'))->plural()->ucfirst(),
+ route('bo.formularies.index', ['tenant' => \tenant()])
+ );
+});
+Breadcrumbs::for('bo.formularies.create', function (Generator $trail) {
+ $trail->parent('bo.formularies.index');
+ $trail->push(Str::ucfirst(trans('crud.actions.create')), route('bo.formularies.create', ['tenant' => \tenant()]));
+});
+Breadcrumbs::for('bo.formularies.edit', function (Generator $trail, Formulary $formulary) {
+ $trail->parent('bo.formularies.index');
+ $trail->push(Str::ucfirst(trans('crud.actions.edit')), route('bo.formularies.edit', [
+ 'tenant' => \tenant(),
+ 'formulary' => $formulary,
+ ]));
+});
+Breadcrumbs::for('bo.formularies.duplicate', function (Generator $trail) {
+ $trail->parent('bo.formularies.index');
+ $trail->push(Str::ucfirst(trans('crud.actions.duplicate')));
+});
+
+// * DOCUMENTS
+Breadcrumbs::for('bo.documents.index', function (Generator $trail) {
+ $trail->push(
+ Str::of(trans('models.classes.document'))->plural()->ucfirst(),
+ route('bo.documents.index', ['tenant' => \tenant()])
+ );
+});
+Breadcrumbs::for('bo.documents.create', function (Generator $trail) {
+ $trail->parent('bo.documents.index');
+ $trail->push(Str::ucfirst(trans('crud.actions.create')), route('bo.documents.create', ['tenant' => \tenant()]));
+});
+Breadcrumbs::for('bo.documents.edit', function (Generator $trail, Document $document) {
+ $trail->parent('bo.documents.index');
+ $trail->push(Str::ucfirst(trans('crud.actions.edit')), route('bo.documents.edit', [
+ 'tenant' => \tenant(),
+ 'document' => $document,
+ ]));
+});
+
+// * DIRECTORIES
+Breadcrumbs::for('bo.directories.index', function (Generator $trail) {
+ $trail->push(
+ Str::of(trans('models.classes.directory'))->plural()->ucfirst(),
+ route('bo.directories.index', ['tenant' => \tenant()])
+ );
+});
+Breadcrumbs::for('bo.directories.edit', function (Generator $trail, Directory $directory) {
+ $trail->parent('bo.directories.index');
+ $trail->push(Str::ucfirst(trans('crud.actions.edit')), route('bo.directories.edit', [
+ 'tenant' => \tenant(),
+ 'directory' => $directory,
+ ]));
+});
+
+// * APP USERS
+Breadcrumbs::for('bo.app_users.index', function (Generator $trail) {
+ $trail->push(
+ Str::of(trans('models.classes.app_user'))->plural()->ucfirst(),
+ route('bo.app_users.index', ['tenant' => \tenant()])
+ );
+});
+Breadcrumbs::for('bo.app_users.create', function (Generator $trail) {
+ $trail->parent('bo.app_users.index');
+ $trail->push(Str::ucfirst(trans('crud.actions.create')), route('bo.app_users.create', ['tenant' => \tenant()]));
+});
+Breadcrumbs::for('bo.app_users.edit', function (Generator $trail, AppUser $appUser) {
+ $trail->parent('bo.app_users.index');
+ $trail->push(Str::ucfirst(trans('crud.actions.edit')), route('bo.app_users.edit', [
+ 'tenant' => \tenant(),
+ 'app_user' => $appUser,
+ ]));
+});
+Breadcrumbs::for('bo.app_users.duplicate', function (Generator $trail) {
+ $trail->parent('bo.app_users.index');
+ $trail->push(Str::ucfirst(trans('crud.actions.duplicate')));
+});
diff --git a/routes/console.php b/routes/console.php
deleted file mode 100644
index b3d9bbc..0000000
--- a/routes/console.php
+++ /dev/null
@@ -1 +0,0 @@
-name('bo.')->middleware(['admin-secure'])->group(function () {
- Route::namespace('\App\Http\Controllers\Bo')->middleware(['throttle:credentials'])->group(function () {
- Auth::routes([
- 'confirm' => false,
- 'login' => true,
- 'logout' => true,
- 'register' => false,
- 'reset' => false,
- 'verify' => false
- ]);
+// Redirect front to back.
+Route::redirect('/', '/bo');
+
+// Back routes.
+Route::middleware(['web', 'admin-secure'])->name('bo.')->group(function () {
+ Route::prefix('/bo')->group(function () {
+ // Auth routes.
+ Route::namespace('\App\Http\Controllers\Bo')->middleware(['throttle:credentials'])->group(function () {
+ Auth::routes([
+ 'confirm' => false,
+ 'login' => true,
+ 'logout' => true,
+ 'register' => false,
+ 'reset' => false,
+ 'verify' => false
+ ]);
+ });
+
+ // No tenant routes.
+ Route::middleware(['auth:backend', 'restrict_tenant_access'])->group(function () {
+ // * HOME
+ Route::get('/', [DashboardController::class, 'index'])->name('dashboard');
+
+ // * TENANTS
+ Route::resource('tenants', TenantController::class);
+ Route::get('/tenants/{tenant}/duplicate', [TenantController::class, 'duplicate'])
+ ->name('tenants.duplicate');
+
+ // * USERS
+ Route::resource('users', UserController::class);
+ Route::get('/users/{user}/duplicate', [UserController::class, 'duplicate'])
+ ->name('users.duplicate');
+ });
});
- Route::middleware('auth:backend')->group(function () {
- Route::get('/', [DashboardController::class, 'index'])->name('dashboard');
+ // Tenant routes.
+ Route::middleware([
+ 'restrict_tenant_access',
+ InitializeTenancyByPath::class
+ ])->prefix('{tenant}/bo')->group(function () {
+ Route::middleware(['auth:backend'])->group(function () {
+ // * CONTACTS
+ Route::resource('contacts', ContactController::class)->only(['index', 'show']);
- // * CONTACTS
- Route::resource('contacts', ContactController::class)->only(['index', 'show']);
+ // * APP_USERS
+ Route::resource('app_users', AppUserController::class)->except('show');
+ Route::get('/app_users/{app_user}/duplicate', [AppUserController::class, 'duplicate'])
+ ->name('app_users.duplicate');
+ Route::post('/app_users/import', [AppUserController::class, 'import'])->name('app_users.import');
+ Route::patch('/app_users/change-order/{app_user}/{direction}', [AppUserController::class, 'changeOrder'])
+ ->where('direction', 'up|down')
+ ->name('app_users.change-order');
- // * APP_USERS
- Route::resource('app-users', AppUserController::class)->except('show');
- Route::post('/app-users/{appuser}/change-order', [AppUserController::class, 'changeOrder'])
- ->name('app-users.change-order');
- Route::post('/app-users/import', [AppUserController::class, 'import'])->name('app-users.import');
+ // * DIRECTORIES
+ Route::resource('directories', DirectoriesController::class)->except('show');
+ Route::post('/directories/save-order/{directories}', [DirectoriesController::class, 'saveOrder'])
+ ->name('directories.save-order');
+ Route::post('/directories/need-authorization/{id}', [DirectoriesController::class, 'needAuthorization'])
+ ->name('directories.need-authorization');
- // * DIRECTORIES
- Route::resource('directories', DirectoriesController::class)->except('show');
- Route::post('/directories/save-order/{directories}', [DirectoriesController::class, 'saveOrder'])
- ->name('directories.save-order');
- Route::post('/directories/need-authorization/{id}', [DirectoriesController::class, 'needAuthorization'])
- ->name('directories.need-authorization');
+ // * DOCUMENTS
+ Route::resource('documents', DocumentController::class)->except('show');
+ Route::post('/documents/{document}/change-published', [DocumentController::class, 'changePublished'])
+ ->name('documents.change-published');
+ Route::post('/documents/upload', [DocumentController::class, 'upload'])->name('documents.upload');
+ Route::patch('/documents/change-order/{document}/{direction}', [DocumentController::class, 'changeOrder'])
+ ->where('direction', 'up|down')
+ ->name('documents.change-order');
- // * DOCUMENTS
- Route::resource('documents', DocumentController::class)->except('show');
- Route::post('/documents/{document}/change-order', [DocumentController::class, 'changeOrder'])
- ->name('documents.change-order');
- Route::post('/documents/{document}/change-published', [DocumentController::class, 'changePublished'])
- ->name('documents.change-published');
- Route::post('/documents/upload', [DocumentController::class, 'upload'])->name('documents.upload');
+ // * TAGS
+ Route::resource('tags', TagController::class)->except('show');
+ Route::get('/tags/{tag}/duplicate', [TagController::class, 'duplicate'])
+ ->name('tags.duplicate');
+ Route::patch('/tags/change-order/{tag}/{direction}', [TagController::class, 'changeOrder'])
+ ->where('direction', 'up|down')
+ ->name('tags.change-order');
- // * TAGS
- Route::resource('tags', TagController::class)->except('show');
- Route::post('/tags/{tag}/change-order', [TagController::class, 'changeOrder'])
- ->name('tags.change-order');
+ // * SETTINGS
+ Route::resource('settings', SettingController::class)->except('show');
- // * SETTINGS
- Route::resource('settings', SettingController::class)->except('show');
+ // * FORMULARIES
+ Route::resource('formularies', FormularyController::class)->except('show');
+ Route::get('/formularies/{formulary}/duplicate', [FormularyController::class, 'duplicate'])
+ ->name('formularies.duplicate');
+ Route::patch('/formularies/change-order/{formulary}/{direction}', [
+ FormularyController::class,
+ 'changeOrder'
+ ])->where('direction', 'up|down')
+ ->name('formularies.change-order');
+ });
- // * FORMULARIES
- Route::resource('formularies', FormularyController::class)->except('show');
- Route::post('/formularies/{formulary}/change-order', [FormularyController::class, 'changeOrder'])
- ->name('formularies.change-order');
+ // * Public files download
+ Route::get('/docs/{uuid}/download', [DocumentController::class, 'download'])
+ ->name('docs.download')
+ ->middleware('signed');
});
});
-
-Route::get('/', function () {
- return redirect()->route('bo.dashboard');
-});
-
-// * Public files download
-Route::get('/docs/{uuid}/download', [DocumentController::class, 'download'])
- ->name('docs.download')
- ->middleware('signed');
diff --git a/tsconfig.json b/tsconfig.json
index 2973676..177e25a 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,17 +1,18 @@
{
+ "extends": "@vue/tsconfig/tsconfig.dom.json",
"sourceMap": true,
"compilerOptions": {
- "target": "esnext",
- "lib": ["es5", "es6", "es2021", "dom", "dom.iterable"],
- "module": "esnext",
- "strict": true,
- "jsx": "preserve",
- "moduleResolution": "node",
- "typeRoots": ["resources/ts/@types", "node_modules/@types"],
- "allowSyntheticDefaultImports": true
+ "lib": ["ESNEXT", "DOM", "DOM.Iterable"],
+ "baseUrl": ".",
+ "paths": {
+ "~/*": ["node_modules/*", "node_modules/@types/*"],
+ "@/*": ["resources/assets/*"]
+ },
},
- "include": ["resources/**/*.js", "resources/**/*.ts", "resources/**/*.vue"],
- "exclude": ["node_modules"],
- "compileOnSave": false,
- "experimentalDecorators": true
+ "include": [
+ "resources/**/*.js",
+ "resources/**/*.ts",
+ "resources/**/*.vue",
+ ],
+ "exclude": ["node_modules"]
}
diff --git a/vite.config.ts b/vite.config.ts
new file mode 100644
index 0000000..e29da58
--- /dev/null
+++ b/vite.config.ts
@@ -0,0 +1,158 @@
+import basicSsl from "@vitejs/plugin-basic-ssl";
+import vue from "@vitejs/plugin-vue";
+import autoprefixer from "autoprefixer";
+import laravel from "laravel-vite-plugin";
+import path from "path";
+import postcssDiscard from "postcss-discard-comments";
+import copy from "rollup-plugin-copy";
+import { defineConfig } from "vite";
+import babel from "vite-plugin-babel";
+import checker from "vite-plugin-checker";
+import eslint from "vite-plugin-eslint";
+import stylelint from "vite-plugin-stylelint";
+
+const debugMode = ["local", "development"].find((mod) => process.env.NODE_ENV === mod) !== undefined;
+
+export default defineConfig({
+ build: {
+ rollupOptions: {
+ output: {
+ entryFileNames: `assets/${
+ debugMode ? "[name]-" : ""
+ }[hash].js`,
+ chunkFileNames: `assets/${
+ debugMode ? "[name]-" : ""
+ }[hash].js`,
+ assetFileNames: (chunk) => {
+ if (
+ String(chunk.name).endsWith("mail-theme.scss") ||
+ chunk.name === "mail-theme.css"
+ ) {
+ return "vendor/mail/html/themes/default.[ext]";
+ }
+ return `assets/${debugMode ? "[name]-" : ""
+ }[hash].[ext]`;
+ },
+ },
+ },
+ emptyOutDir: true,
+ sourcemap: debugMode ? "inline" : false,
+ },
+ css: {
+ preprocessorOptions: {
+ scss: {
+ quietDeps: true
+ }
+ },
+ devSourcemap: debugMode ? true : false,
+ postcss: {
+ map: {
+ inline: true,
+ },
+ plugins: [
+ postcssDiscard({
+ removeAll: true,
+ }),
+ autoprefixer(),
+ ],
+ },
+ },
+ plugins: [
+ basicSsl(),
+ checker({
+ enableBuild: true,
+ vueTsc: {
+ root: ".",
+ tsconfigPath: "tsconfig.json",
+ },
+ typescript: {
+ root: ".",
+ tsconfigPath: "tsconfig.json",
+ },
+ eslint: {
+ lintCommand:
+ "eslint --quiet -c .eslintrc.json \"./resources/ts/*\"",
+ },
+ stylelint: {
+ lintCommand:
+ "stylelint --quiet -c .stylelintrc.json --fix **/resources/**/*.scss",
+ },
+ }),
+ laravel({
+ input: [
+ "resources/sass/bo/bo.scss",
+ "resources/ts/bo/bo.ts",
+ ],
+ refresh: true,
+ }),
+ copy({
+ targets: [
+ {
+ src: [
+ // * Engine copy (Default favicon)
+ path.normalize("resources/favicon/android-chrome-192x192.png"),
+ path.normalize("resources/favicon/android-chrome-512x512.png"),
+ path.normalize("resources/favicon/apple-touch-icon.png"),
+ path.normalize("resources/favicon/browserconfig.xml"),
+ path.normalize("resources/favicon/browserconfig.xml"),
+ path.normalize("resources/favicon/favicon-16x16.png"),
+ path.normalize("resources/favicon/favicon-32x32.png"),
+ path.normalize("resources/favicon/favicon.ico"),
+ path.normalize("resources/favicon/mstile-150x150.png"),
+ path.normalize("resources/favicon/safari-pinned-tab.svg"),
+ path.normalize("resources/favicon/site.webmanifest"),
+ ],
+ dest: path.normalize("public")
+ },
+ ],
+ copyOnce: true,
+ verbose: true
+ }),
+ stylelint({
+ dev: false,
+ build: true,
+ cache: false,
+ chokidar: true,
+ include: ["**/resources/**/*.scss", "**/resources/**/*.css"],
+ exclude: ["node_modules", "vendor"],
+ lintOnStart: false,
+ emitError: true,
+ emitWarning: true,
+ emitErrorAsWarning: false,
+ emitWarningAsError: true,
+ }),
+ eslint({
+ cache: false,
+ extensions: ["js", "ts"],
+ include: "**/*.ts",
+ exclude: ["node_modules", "vendor"],
+ lintOnStart: false,
+ emitWarning: true,
+ emitError: true,
+ failOnWarning: false,
+ failOnError: false,
+ }),
+ babel(),
+ vue({
+ isProduction: !debugMode,
+ exclude: ["node_modules", "vendor"],
+ }),
+ ],
+ resolve: {
+ extensions: ["*", ".js", ".ts", ".vue"],
+ alias: [
+ {
+ find: "vue",
+ replacement: "vue/dist/vue.runtime.esm-bundler.js",
+ },
+ {
+ find: "@",
+ replacement: "/resources/assets",
+ },
+ {
+ find: "~",
+ replacement: path.resolve(__dirname, "./node_modules"),
+ },
+ ],
+ },
+});
diff --git a/webpack.mix.js b/webpack.mix.js
deleted file mode 100644
index 4c96611..0000000
--- a/webpack.mix.js
+++ /dev/null
@@ -1,104 +0,0 @@
-const fs = require("fs");
-const glob = require("glob");
-const mix = require('laravel-mix');
-const path = require('path');
-
-require("laravel-mix-polyfill");
-require("laravel-mix-clean");
-require("laravel-mix-eslint");
-require("laravel-mix-stylelint");
-
-const assetDir = "assets";
-const polyfill = {
- enabled: true,
- bugfixes: true,
- useBuiltIns: "usage",
- targets: "last 3 version, not dead, >0.3%",
-};
-
-mix.setPublicPath('public/build');
-mix.setResourceRoot('/build');
-
-mix.webpackConfig({
- resolve: {
- extensions: ["*", ".js", ".vue", ".ts"],
- alias: {
- "@": path.resolve("resources/assets"),
- vue$: "vue/dist/vue.runtime.esm-bundler.js",
- },
- },
- module: {
- rules: [
- {
- test: /\.ts$/,
- loader: "ts-loader",
- options: {
- appendTsSuffixTo: [/\.vue$/],
- },
- },
- {
- test: /\.vue$/,
- loader: "vue-loader",
- options: {
- esModule: true,
- },
- },
- ],
- },
- // Pour debug compilation errors
- // stats: {
- // children: true,
- // warningsFilter: [/\-\-underline\-color/],
- // },
-});
-
-mix.options({
- fileLoaderDirs: {
- fonts: `${assetDir}/fonts`,
- images: `${assetDir}/images`
- },
- postCss: [
- require("postcss-discard-comments")({
- removeAll: true,
- }),
- ],
-});
-
-mix.clean({
- cleanOnceBeforeBuildPatterns: [
- "vendor/*",
- "build/*"
- ],
-});
-
-
-// * COMMON
-mix.sass("resources/sass/bo/bo.scss", "css")
- .ts("resources/ts/bo.ts", "js", { transpileOnly: true })
- .stylelint({
- configFile: ".stylelintrc.json",
- files: ["**/*.scss"],
- })
- .eslint({
- fix: true,
- extensions: ["js", "ts"],
- })
- .vue({
- runtimeOnly: true,
- extractStyles: "css/v-extract.css",
- globalStyles: false,
- })
- .polyfill(polyfill)
- .version()
- .sourceMaps(true, "inline-source-map");
-
-// * Copy Blade Images Assets
-mix.copyDirectory("resources/assets", "public/build/assets");
-// * Copy FAVICON resources
-mix.then(() => {
- glob.sync(path.normalize('resources/favicon/*')).forEach(filePath => {
- if (fs.statSync(path.normalize(filePath)).isFile) {
- fs.cpSync(path.normalize(filePath), path.resolve('public/' + path.basename(filePath)));
- }
- });
-});