- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
- php-version: 8.1
+ php-version: 8.3
extensions: gd, mbstring, json, curl, xml, mysql, ldap
- name: Get Composer Cache Directory
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- name: Cache composer packages
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
- key: ${{ runner.os }}-composer-8.1
+ key: ${{ runner.os }}-composer-8.3
restore-keys: ${{ runner.os }}-composer-
- name: Install composer dependencies
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- name: Cache composer packages
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ matrix.php }}
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- name: Cache composer packages
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ matrix.php }}
The MIT License (MIT)
-Copyright (c) 2015-2023, Dan Brown and the BookStack Project contributors.
+Copyright (c) 2015-2024, Dan Brown and the BookStack Project contributors.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
protected const SETUP_SECRET_SESSION_KEY = 'mfa-setup-totp-secret';
+ public function __construct(
+ protected TotpService $totp
+ ) {
+ }
+
/**
* Show a view that generates and displays a TOTP QR code.
*/
- public function generate(TotpService $totp)
+ public function generate()
{
if (session()->has(static::SETUP_SECRET_SESSION_KEY)) {
$totpSecret = decrypt(session()->get(static::SETUP_SECRET_SESSION_KEY));
} else {
- $totpSecret = $totp->generateSecret();
+ $totpSecret = $this->totp->generateSecret();
session()->put(static::SETUP_SECRET_SESSION_KEY, encrypt($totpSecret));
}
- $qrCodeUrl = $totp->generateUrl($totpSecret, $this->currentOrLastAttemptedUser());
- $svg = $totp->generateQrCodeSvg($qrCodeUrl);
+ $qrCodeUrl = $this->totp->generateUrl($totpSecret, $this->currentOrLastAttemptedUser());
+ $svg = $this->totp->generateQrCodeSvg($qrCodeUrl);
$this->setPageTitle(trans('auth.mfa_gen_totp_title'));
'code' => [
'required',
'max:12', 'min:4',
- new TotpValidationRule($totpSecret),
+ new TotpValidationRule($totpSecret, $this->totp),
],
]);
'code' => [
'required',
'max:12', 'min:4',
- new TotpValidationRule($totpSecret),
+ new TotpValidationRule($totpSecret, $this->totp),
],
]);
namespace BookStack\Access\Mfa;
-use Illuminate\Contracts\Validation\Rule;
+use Closure;
+use Illuminate\Contracts\Validation\ValidationRule;
-class TotpValidationRule implements Rule
+class TotpValidationRule implements ValidationRule
{
- protected $secret;
- protected $totpService;
-
/**
* Create a new rule instance.
* Takes the TOTP secret that must be system provided, not user provided.
*/
- public function __construct(string $secret)
- {
- $this->secret = $secret;
- $this->totpService = app()->make(TotpService::class);
+ public function __construct(
+ protected string $secret,
+ protected TotpService $totpService,
+ ) {
}
- /**
- * Determine if the validation rule passes.
- */
- public function passes($attribute, $value)
- {
- return $this->totpService->verifyCode($value, $this->secret);
- }
-
- /**
- * Get the validation error message.
- */
- public function message()
+ public function validate(string $attribute, mixed $value, Closure $fail): void
{
- return trans('validation.totp');
+ $passes = $this->totpService->verifyCode($value, $this->secret);
+ if (!$passes) {
+ $fail(trans('validation.totp'));
+ }
}
}
use BookStack\Entities\Queries\QueryTopFavourites;
use BookStack\Entities\Tools\PageContent;
use BookStack\Http\Controller;
-use BookStack\Uploads\FaviconHandler;
use BookStack\Util\SimpleListOptions;
use Illuminate\Http\Request;
return view('home.default', $commonData);
}
-
- /**
- * Show the view for /robots.txt.
- */
- public function robots()
- {
- $sitePublic = setting('app-public', false);
- $allowRobots = config('app.allow_robots');
-
- if ($allowRobots === null) {
- $allowRobots = $sitePublic;
- }
-
- return response()
- ->view('misc.robots', ['allowRobots' => $allowRobots])
- ->header('Content-Type', 'text/plain');
- }
-
- /**
- * Show the route for 404 responses.
- */
- public function notFound()
- {
- return response()->view('errors.404', [], 404);
- }
-
- /**
- * Serve the application favicon.
- * Ensures a 'favicon.ico' file exists at the web root location (if writable) to be served
- * directly by the webserver in the future.
- */
- public function favicon(FaviconHandler $favicons)
- {
- $exists = $favicons->restoreOriginalIfNotExists();
- return response()->file($exists ? $favicons->getPath() : $favicons->getOriginalPath());
- }
-
- /**
- * Serve a PWA application manifest.
- */
- public function pwaManifest(PwaManifestBuilder $manifestBuilder)
- {
- return response()->json($manifestBuilder->build());
- }
}
--- /dev/null
+<?php
+
+namespace BookStack\App;
+
+use BookStack\Http\Controller;
+use BookStack\Uploads\FaviconHandler;
+
+class MetaController extends Controller
+{
+ /**
+ * Show the view for /robots.txt.
+ */
+ public function robots()
+ {
+ $sitePublic = setting('app-public', false);
+ $allowRobots = config('app.allow_robots');
+
+ if ($allowRobots === null) {
+ $allowRobots = $sitePublic;
+ }
+
+ return response()
+ ->view('misc.robots', ['allowRobots' => $allowRobots])
+ ->header('Content-Type', 'text/plain');
+ }
+
+ /**
+ * Show the route for 404 responses.
+ */
+ public function notFound()
+ {
+ return response()->view('errors.404', [], 404);
+ }
+
+ /**
+ * Serve the application favicon.
+ * Ensures a 'favicon.ico' file exists at the web root location (if writable) to be served
+ * directly by the webserver in the future.
+ */
+ public function favicon(FaviconHandler $favicons)
+ {
+ $exists = $favicons->restoreOriginalIfNotExists();
+ return response()->file($exists ? $favicons->getPath() : $favicons->getOriginalPath());
+ }
+
+ /**
+ * Serve a PWA application manifest.
+ */
+ public function pwaManifest(PwaManifestBuilder $manifestBuilder)
+ {
+ return response()->json($manifestBuilder->build());
+ }
+
+ /**
+ * Show license information for the application.
+ */
+ public function licenses()
+ {
+ $this->setPageTitle(trans('settings.licenses'));
+
+ return view('help.licenses', [
+ 'license' => file_get_contents(base_path('LICENSE')),
+ 'phpLibData' => file_get_contents(base_path('dev/licensing/php-library-licenses.txt')),
+ 'jsLibData' => file_get_contents(base_path('dev/licensing/js-library-licenses.txt')),
+ ]);
+ }
+}
* Custom container bindings to register.
* @var string[]
*/
- public $bindings = [
+ public array $bindings = [
ExceptionRenderer::class => BookStackExceptionHandlerPage::class,
];
* Custom singleton bindings to register.
* @var string[]
*/
- public $singletons = [
+ public array $singletons = [
'activity' => ActivityLogger::class,
SettingService::class => SettingService::class,
SocialDriverManager::class => SocialDriverManager::class,
HttpRequestService::class => HttpRequestService::class,
];
+ /**
+ * Register any application services.
+ */
+ public function register(): void
+ {
+ $this->app->singleton(PermissionApplicator::class, function ($app) {
+ return new PermissionApplicator(null);
+ });
+ }
+
/**
* Bootstrap any application services.
- *
- * @return void
*/
- public function boot()
+ public function boot(): void
{
// Set root URL
$appUrl = config('app.url');
'page' => Page::class,
]);
}
-
- /**
- * Register any application services.
- *
- * @return void
- */
- public function register()
- {
- $this->app->singleton(PermissionApplicator::class, function ($app) {
- return new PermissionApplicator(null);
- });
- }
}
{
/**
* Bootstrap the application services.
- *
- * @return void
*/
- public function boot()
+ public function boot(): void
{
// Password Configuration
// Changes here must be reflected in ApiDocsGenerate@getValidationAsString.
/**
* Register the application services.
- *
- * @return void
*/
- public function register()
+ public function register(): void
{
Auth::provider('external-users', function ($app, array $config) {
return new ExternalBaseUserProvider($config['model']);
/**
* Register any events for your application.
- *
- * @return void
*/
- public function boot()
+ public function boot(): void
{
//
}
/**
* Determine if events and listeners should be automatically discovered.
- *
- * @return bool
*/
- public function shouldDiscoverEvents()
+ public function shouldDiscoverEvents(): bool
{
return false;
}
/**
* Define your route model bindings, pattern filters, etc.
- *
- * @return void
*/
- public function boot()
+ public function boot(): void
{
$this->configureRateLimiting();
* Define the "web" routes for the application.
*
* These routes all receive session state, CSRF protection, etc.
- *
- * @return void
*/
- protected function mapWebRoutes()
+ protected function mapWebRoutes(): void
{
Route::group([
'middleware' => 'web',
* Define the "api" routes for the application.
*
* These routes are typically stateless.
- *
- * @return void
*/
- protected function mapApiRoutes()
+ protected function mapApiRoutes(): void
{
Route::group([
'middleware' => 'api',
/**
* Configure the rate limiters for the application.
- *
- * @return void
*/
- protected function configureRateLimiting()
+ protected function configureRateLimiting(): void
{
RateLimiter::for('api', function (Request $request) {
return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip());
{
/**
* Register services.
- *
- * @return void
*/
- public function register()
+ public function register(): void
{
// Register the ThemeService as a singleton
$this->app->singleton(ThemeService::class, fn ($app) => new ThemeService());
/**
* Bootstrap services.
- *
- * @return void
*/
- public function boot()
+ public function boot(): void
{
// Boot up the theme system
$themeService = $this->app->make(ThemeService::class);
{
/**
* Register the service provider.
- *
- * @return void
*/
- public function register()
+ public function register(): void
{
$this->registerLoader();
/**
* Register the translation line loader.
* Overrides the default register action from Laravel so a custom loader can be used.
- *
- * @return void
*/
- protected function registerLoader()
+ protected function registerLoader(): void
{
$this->app->singleton('translation.loader', function ($app) {
return new FileLoader($app['files'], $app['path.lang']);
{
/**
* Bootstrap services.
- *
- * @return void
*/
- public function boot()
+ public function boot(): void
{
// Set paginator to use bootstrap-style pagination
Paginator::useBootstrap();
*/
use Illuminate\Support\Facades\Facade;
+use Illuminate\Support\ServiceProvider;
return [
],
// Application Service Providers
- 'providers' => [
-
- // Laravel Framework Service Providers...
- Illuminate\Auth\AuthServiceProvider::class,
- Illuminate\Broadcasting\BroadcastServiceProvider::class,
- Illuminate\Bus\BusServiceProvider::class,
- Illuminate\Cache\CacheServiceProvider::class,
- Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,
- Illuminate\Cookie\CookieServiceProvider::class,
- Illuminate\Database\DatabaseServiceProvider::class,
- Illuminate\Encryption\EncryptionServiceProvider::class,
- Illuminate\Filesystem\FilesystemServiceProvider::class,
- Illuminate\Foundation\Providers\FoundationServiceProvider::class,
- Illuminate\Hashing\HashServiceProvider::class,
- Illuminate\Mail\MailServiceProvider::class,
- Illuminate\Notifications\NotificationServiceProvider::class,
- Illuminate\Pagination\PaginationServiceProvider::class,
- Illuminate\Pipeline\PipelineServiceProvider::class,
- Illuminate\Queue\QueueServiceProvider::class,
- Illuminate\Redis\RedisServiceProvider::class,
- Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
- Illuminate\Session\SessionServiceProvider::class,
- Illuminate\Validation\ValidationServiceProvider::class,
- Illuminate\View\ViewServiceProvider::class,
-
+ 'providers' => ServiceProvider::defaultProviders()->merge([
// Third party service providers
Barryvdh\DomPDF\ServiceProvider::class,
Barryvdh\Snappy\ServiceProvider::class,
SocialiteProviders\Manager\ServiceProvider::class,
// BookStack custom service providers
- \BookStack\App\Providers\ThemeServiceProvider::class,
- \BookStack\App\Providers\AppServiceProvider::class,
- \BookStack\App\Providers\AuthServiceProvider::class,
- \BookStack\App\Providers\EventServiceProvider::class,
- \BookStack\App\Providers\RouteServiceProvider::class,
- \BookStack\App\Providers\TranslationServiceProvider::class,
- \BookStack\App\Providers\ValidationRuleServiceProvider::class,
- \BookStack\App\Providers\ViewTweaksServiceProvider::class,
- ],
+ BookStack\App\Providers\ThemeServiceProvider::class,
+ BookStack\App\Providers\AppServiceProvider::class,
+ BookStack\App\Providers\AuthServiceProvider::class,
+ BookStack\App\Providers\EventServiceProvider::class,
+ BookStack\App\Providers\RouteServiceProvider::class,
+ BookStack\App\Providers\TranslationServiceProvider::class,
+ BookStack\App\Providers\ValidationRuleServiceProvider::class,
+ BookStack\App\Providers\ViewTweaksServiceProvider::class,
+ ])->toArray(),
// Class Aliases
// This array of class aliases to be registered on application start.
'file' => [
'driver' => 'file',
- 'path' => storage_path('framework/cache'),
+ 'path' => storage_path('framework/cache/data'),
+ 'lock_path' => storage_path('framework/cache/data'),
],
'memcached' => [
// passwords are hashed using the Bcrypt algorithm. This will allow you
// to control the amount of time it takes to hash the given password.
'bcrypt' => [
- 'rounds' => env('BCRYPT_ROUNDS', 10),
+ 'rounds' => env('BCRYPT_ROUNDS', 12),
+ 'verify' => true,
],
// Argon Options
use Monolog\Handler\ErrorLogHandler;
use Monolog\Handler\NullHandler;
use Monolog\Handler\StreamHandler;
+use Monolog\Processor\PsrLogMessageProcessor;
/**
* Logging configuration options.
'path' => storage_path('logs/laravel.log'),
'level' => 'debug',
'days' => 14,
+ 'replace_placeholders' => true,
],
'daily' => [
'path' => storage_path('logs/laravel.log'),
'level' => 'debug',
'days' => 7,
+ 'replace_placeholders' => true,
],
'stderr' => [
'with' => [
'stream' => 'php://stderr',
],
+ 'processors' => [PsrLogMessageProcessor::class],
],
'syslog' => [
'driver' => 'syslog',
'level' => 'debug',
+ 'facility' => LOG_USER,
+ 'replace_placeholders' => true,
],
'errorlog' => [
'driver' => 'errorlog',
'level' => 'debug',
+ 'replace_placeholders' => true,
],
// Custom errorlog implementation that logs out a plain,
'formatter_with' => [
'format' => '%message%',
],
+ 'replace_placeholders' => true,
],
'null' => [
],
+ // Job batching
+ 'batching' => [
+ 'database' => 'mysql',
+ 'table' => 'job_batches',
+ ],
+
// Failed queue job logging
'failed' => [
'driver' => 'database-uuids',
// do not enable this as other CSRF protection services are in place.
// Options: lax, strict, none
'same_site' => 'lax',
+
+
+ // Partitioned Cookies
+ // Setting this value to true will tie the cookie to the top-level site for
+ // a cross-site context. Partitioned cookies are accepted by the browser
+ // when flagged "secure" and the Same-Site attribute is set to "none".
+ 'partitioned' => false,
];
];
/**
- * The application's route middleware.
+ * The application's middleware aliases.
*
* @var array
*/
- protected $routeMiddleware = [
+ protected $middlewareAliases = [
'auth' => \BookStack\Http\Middleware\Authenticate::class,
'can' => \BookStack\Http\Middleware\CheckUserHasPermission::class,
'guest' => \BookStack\Http\Middleware\RedirectIfAuthenticated::class,
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
+use Symfony\Component\HttpFoundation\Response;
class RedirectIfAuthenticated
{
/**
* Handle an incoming request.
*
- * @param \Illuminate\Http\Request $request
- * @param \Closure $next
- * @param string|null ...$guards
- *
- * @return mixed
+ * @param Closure(Request): (Response) $next
*/
- public function handle(Request $request, Closure $next, ...$guards)
+ public function handle(Request $request, Closure $next, string ...$guards): Response
{
$guards = empty($guards) ? [null] : $guards;
/**
* Resolve the number of attempts if the user is authenticated or not.
*/
- protected function resolveMaxAttempts($request, $maxAttempts)
+ protected function resolveMaxAttempts($request, $maxAttempts): int
{
return (int) config('api.requests_per_minute');
}
/**
* Get the host patterns that should be trusted.
*
- * @return array
+ * @return array<int, string|null>
*/
- public function hosts()
+ public function hosts(): array
{
return [
$this->allSubdomainsOfApplicationUrl(),
{
$baseQuery = Reference::query()
->where('to_type', '=', $entity->getMorphClass())
- ->where('to_id', '=', $entity->id);
+ ->where('to_id', '=', $entity->id)
+ ->whereHas('from');
return $this->permissions->restrictEntityRelationQuery(
$baseQuery,
{
/**
* Load the messages for the given locale.
+ *
* Extends Laravel's translation FileLoader to look in multiple directories
* so that we can load in translation overrides from the theme file if wanted.
*
+ * Note: As of using Laravel 10, this may now be redundant since Laravel's
+ * file loader supports multiple paths. This needs further testing though
+ * to confirm if Laravel works how we expect, since we specifically need
+ * the theme folder to be able to partially override core lang files.
+ *
* @param string $locale
* @param string $group
* @param string|null $namespace
*
* @return array
*/
- public function load($locale, $group, $namespace = null)
+ public function load($locale, $group, $namespace = null): array
{
if ($group === '*' && $namespace === '*') {
return $this->loadJsonPaths($locale);
if (is_null($namespace) || $namespace === '*') {
$themePath = theme_path('lang');
- $themeTranslations = $themePath ? $this->loadPath($themePath, $locale, $group) : [];
- $originalTranslations = $this->loadPath($this->path, $locale, $group);
+ $themeTranslations = $themePath ? $this->loadPaths([$themePath], $locale, $group) : [];
+ $originalTranslations = $this->loadPaths($this->paths, $locale, $group);
return array_merge($originalTranslations, $themeTranslations);
}
use Exception;
use GuzzleHttp\Psr7\Utils;
use Illuminate\Support\Facades\Cache;
-use Intervention\Image\Gd\Driver;
-use Intervention\Image\Image as InterventionImage;
+use Intervention\Image\Decoders\BinaryImageDecoder;
+use Intervention\Image\Drivers\Gd\Driver;
+use Intervention\Image\Encoders\AutoEncoder;
+use Intervention\Image\Encoders\PngEncoder;
+use Intervention\Image\Interfaces\ImageInterface as InterventionImage;
+use Intervention\Image\ImageManager;
class ImageResizer
{
$this->orientImageToOriginalExif($thumb, $imageData);
if ($keepRatio) {
- $thumb->resize($width, $height, function ($constraint) {
- $constraint->aspectRatio();
- $constraint->upsize();
- });
+ $thumb->scaleDown($width, $height);
} else {
- $thumb->fit($width, $height);
+ $thumb->cover($width, $height);
}
- $thumbData = (string) $thumb->encode($format);
+ $encoder = match ($format) {
+ 'png' => new PngEncoder(),
+ default => new AutoEncoder(),
+ };
+
+ $thumbData = (string) $thumb->encode($encoder);
// Use original image data if we're keeping the ratio
// and the resizing does not save any space.
*/
protected function interventionFromImageData(string $imageData): InterventionImage
{
- $driver = new Driver();
- return $driver->decoder->initFromBinary($imageData);
+ $manager = new ImageManager(new Driver());
+
+ return $manager->read($imageData, BinaryImageDecoder::class);
}
/**
*/
protected static array $allowedAttrsByElements = [
'p' => [],
- 'a' => ['href', 'title'],
+ 'a' => ['href', 'title', 'target'],
'ol' => [],
'ul' => [],
'li' => [],
"barryvdh/laravel-snappy": "^1.0",
"doctrine/dbal": "^3.5",
"guzzlehttp/guzzle": "^7.4",
- "intervention/image": "^2.7",
- "laravel/framework": "^9.0",
+ "intervention/image": "^3.5",
+ "laravel/framework": "^10.10",
"laravel/socialite": "^5.10",
- "laravel/tinker": "^2.6",
+ "laravel/tinker": "^2.8",
"league/commonmark": "^2.3",
"league/flysystem-aws-s3-v3": "^3.0",
"league/html-to-markdown": "^5.0.0",
"socialiteproviders/okta": "^4.2",
"socialiteproviders/twitch": "^5.3",
"ssddanbrown/htmldiff": "^1.0.2",
- "ssddanbrown/symfony-mailer": "6.0.x-dev"
+ "ssddanbrown/symfony-mailer": "6.4.x-dev"
},
"require-dev": {
"fakerphp/faker": "^1.21",
"itsgoingd/clockwork": "^5.1",
"mockery/mockery": "^1.5",
- "nunomaduro/collision": "^6.4",
+ "nunomaduro/collision": "^7.0",
"larastan/larastan": "^2.7",
- "phpunit/phpunit": "^9.5",
+ "phpunit/phpunit": "^10.0",
"squizlabs/php_codesniffer": "^3.7",
- "ssddanbrown/asserthtml": "^2.0"
+ "ssddanbrown/asserthtml": "^3.0"
},
"autoload": {
"psr-4": {
"lint": "phpcs",
"test": "phpunit",
"t-reset": "@php artisan test --recreate-databases",
+ "build-licenses": [
+ "@php ./dev/licensing/gen-js-licenses",
+ "@php ./dev/licensing/gen-php-licenses"
+ ],
"post-autoload-dump": [
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
"@php artisan package:discover --ansi"
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "54d735153e12b120d9dd41ab847e3032",
+ "content-hash": "ccfc07d0ecc580962915a0457f0466a7",
"packages": [
{
"name": "aws/aws-crt-php",
},
{
"name": "aws/aws-sdk-php",
- "version": "3.300.15",
+ "version": "3.301.1",
"source": {
"type": "git",
"url": "https://github.com/aws/aws-sdk-php.git",
- "reference": "0cd194438b84588615121a93d0bc46bf55ca678b"
+ "reference": "0a910d2b35e7087337cdf3569dc9b6ce232aafba"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/0cd194438b84588615121a93d0bc46bf55ca678b",
- "reference": "0cd194438b84588615121a93d0bc46bf55ca678b",
+ "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/0a910d2b35e7087337cdf3569dc9b6ce232aafba",
+ "reference": "0a910d2b35e7087337cdf3569dc9b6ce232aafba",
"shasum": ""
},
"require": {
"support": {
"forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
"issues": "https://github.com/aws/aws-sdk-php/issues",
- "source": "https://github.com/aws/aws-sdk-php/tree/3.300.15"
+ "source": "https://github.com/aws/aws-sdk-php/tree/3.301.1"
},
- "time": "2024-03-11T18:33:13+00:00"
+ "time": "2024-03-15T18:14:42+00:00"
},
{
"name": "bacon/bacon-qr-code",
},
{
"name": "barryvdh/laravel-dompdf",
- "version": "v2.1.0",
+ "version": "v2.1.1",
"source": {
"type": "git",
"url": "https://github.com/barryvdh/laravel-dompdf.git",
- "reference": "c8b8a8490e5f7348cf99054821fb248f103e7d24"
+ "reference": "cb37868365f9b937039d316727a1fced1e87b31c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/barryvdh/laravel-dompdf/zipball/c8b8a8490e5f7348cf99054821fb248f103e7d24",
- "reference": "c8b8a8490e5f7348cf99054821fb248f103e7d24",
+ "url": "https://api.github.com/repos/barryvdh/laravel-dompdf/zipball/cb37868365f9b937039d316727a1fced1e87b31c",
+ "reference": "cb37868365f9b937039d316727a1fced1e87b31c",
"shasum": ""
},
"require": {
],
"support": {
"issues": "https://github.com/barryvdh/laravel-dompdf/issues",
- "source": "https://github.com/barryvdh/laravel-dompdf/tree/v2.1.0"
+ "source": "https://github.com/barryvdh/laravel-dompdf/tree/v2.1.1"
},
"funding": [
{
"type": "github"
}
],
- "time": "2024-03-04T08:18:20+00:00"
+ "time": "2024-03-15T12:48:39+00:00"
},
{
"name": "barryvdh/laravel-snappy",
],
"time": "2023-12-03T19:50:20+00:00"
},
+ {
+ "name": "intervention/gif",
+ "version": "4.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Intervention/gif.git",
+ "reference": "c2b07d1f69709e196c8b4ced423449a7e0f3b925"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Intervention/gif/zipball/c2b07d1f69709e196c8b4ced423449a7e0f3b925",
+ "reference": "c2b07d1f69709e196c8b4ced423449a7e0f3b925",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1",
+ "phpunit/phpunit": "^9",
+ "slevomat/coding-standard": "~8.0",
+ "squizlabs/php_codesniffer": "^3.8"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Intervention\\Gif\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Oliver Vogel",
+ "homepage": "https://intervention.io/"
+ }
+ ],
+ "description": "Native PHP GIF Encoder/Decoder",
+ "homepage": "https://github.com/intervention/gif",
+ "keywords": [
+ "animation",
+ "gd",
+ "gif",
+ "image"
+ ],
+ "support": {
+ "issues": "https://github.com/Intervention/gif/issues",
+ "source": "https://github.com/Intervention/gif/tree/4.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://paypal.me/interventionio",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/Intervention",
+ "type": "github"
+ }
+ ],
+ "time": "2024-02-18T15:36:58+00:00"
+ },
{
"name": "intervention/image",
- "version": "2.7.2",
+ "version": "3.5.0",
"source": {
"type": "git",
"url": "https://github.com/Intervention/image.git",
- "reference": "04be355f8d6734c826045d02a1079ad658322dad"
+ "reference": "408d3655c7705339e8c79731ea7efb51546cfa10"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Intervention/image/zipball/04be355f8d6734c826045d02a1079ad658322dad",
- "reference": "04be355f8d6734c826045d02a1079ad658322dad",
+ "url": "https://api.github.com/repos/Intervention/image/zipball/408d3655c7705339e8c79731ea7efb51546cfa10",
+ "reference": "408d3655c7705339e8c79731ea7efb51546cfa10",
"shasum": ""
},
"require": {
- "ext-fileinfo": "*",
- "guzzlehttp/psr7": "~1.1 || ^2.0",
- "php": ">=5.4.0"
+ "ext-mbstring": "*",
+ "intervention/gif": "^4.0.1",
+ "php": "^8.1"
},
"require-dev": {
- "mockery/mockery": "~0.9.2",
- "phpunit/phpunit": "^4.8 || ^5.7 || ^7.5.15"
+ "mockery/mockery": "^1.6",
+ "phpstan/phpstan": "^1",
+ "phpunit/phpunit": "^10.0",
+ "slevomat/coding-standard": "~8.0",
+ "squizlabs/php_codesniffer": "^3.8"
},
"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"
+ "ext-exif": "Recommended to be able to read EXIF data properly."
},
"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\\Image\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"homepage": "https://intervention.io/"
}
],
- "description": "Image handling and manipulation library with support for Laravel integration",
- "homepage": "http://image.intervention.io/",
+ "description": "PHP image manipulation",
+ "homepage": "https://image.intervention.io/",
"keywords": [
"gd",
"image",
"imagick",
- "laravel",
+ "resize",
"thumbnail",
"watermark"
],
"support": {
"issues": "https://github.com/Intervention/image/issues",
- "source": "https://github.com/Intervention/image/tree/2.7.2"
+ "source": "https://github.com/Intervention/image/tree/3.5.0"
},
"funding": [
{
"type": "github"
}
],
- "time": "2022-05-21T17:30:32+00:00"
+ "time": "2024-03-13T16:26:15+00:00"
},
{
"name": "knplabs/knp-snappy",
},
{
"name": "laravel/framework",
- "version": "v9.52.16",
+ "version": "v10.48.3",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
- "reference": "082345d76fc6a55b649572efe10b11b03e279d24"
+ "reference": "5791c052b41c6b593556adc687076bfbdd13c501"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/framework/zipball/082345d76fc6a55b649572efe10b11b03e279d24",
- "reference": "082345d76fc6a55b649572efe10b11b03e279d24",
+ "url": "https://api.github.com/repos/laravel/framework/zipball/5791c052b41c6b593556adc687076bfbdd13c501",
+ "reference": "5791c052b41c6b593556adc687076bfbdd13c501",
"shasum": ""
},
"require": {
- "brick/math": "^0.9.3|^0.10.2|^0.11",
+ "brick/math": "^0.9.3|^0.10.2|^0.11|^0.12",
+ "composer-runtime-api": "^2.2",
"doctrine/inflector": "^2.0.5",
"dragonmantank/cron-expression": "^3.3.2",
"egulias/email-validator": "^3.2.1|^4.0",
"ext-tokenizer": "*",
"fruitcake/php-cors": "^1.2",
"guzzlehttp/uri-template": "^1.0",
- "laravel/serializable-closure": "^1.2.2",
+ "laravel/prompts": "^0.1.9",
+ "laravel/serializable-closure": "^1.3",
"league/commonmark": "^2.2.1",
"league/flysystem": "^3.8.0",
- "monolog/monolog": "^2.0",
- "nesbot/carbon": "^2.62.1",
+ "monolog/monolog": "^3.0",
+ "nesbot/carbon": "^2.67",
"nunomaduro/termwind": "^1.13",
- "php": "^8.0.2",
+ "php": "^8.1",
"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": "^6.0.9",
- "symfony/error-handler": "^6.0",
- "symfony/finder": "^6.0",
- "symfony/http-foundation": "^6.0",
- "symfony/http-kernel": "^6.0",
- "symfony/mailer": "^6.0",
- "symfony/mime": "^6.0",
- "symfony/process": "^6.0",
- "symfony/routing": "^6.0",
- "symfony/uid": "^6.0",
- "symfony/var-dumper": "^6.0",
+ "symfony/console": "^6.2",
+ "symfony/error-handler": "^6.2",
+ "symfony/finder": "^6.2",
+ "symfony/http-foundation": "^6.4",
+ "symfony/http-kernel": "^6.2",
+ "symfony/mailer": "^6.2",
+ "symfony/mime": "^6.2",
+ "symfony/process": "^6.2",
+ "symfony/routing": "^6.2",
+ "symfony/uid": "^6.2",
+ "symfony/var-dumper": "^6.2",
"tijsverkoyen/css-to-inline-styles": "^2.2.5",
"vlucas/phpdotenv": "^5.4.1",
"voku/portable-ascii": "^2.0"
},
"conflict": {
+ "carbonphp/carbon-doctrine-types": ">=3.0",
+ "doctrine/dbal": ">=4.0",
+ "mockery/mockery": "1.6.8",
+ "phpunit/phpunit": ">=11.0.0",
"tightenco/collect": "<5.5.33"
},
"provide": {
"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",
"require-dev": {
"ably/ably-php": "^1.0",
"aws/aws-sdk-php": "^3.235.5",
- "doctrine/dbal": "^2.13.3|^3.1.4",
+ "doctrine/dbal": "^3.5.1",
"ext-gmp": "*",
"fakerphp/faker": "^1.21",
"guzzlehttp/guzzle": "^7.5",
"league/flysystem-read-only": "^3.3",
"league/flysystem-sftp-v3": "^3.0",
"mockery/mockery": "^1.5.1",
- "orchestra/testbench-core": "^7.24",
+ "nyholm/psr7": "^1.2",
+ "orchestra/testbench-core": "^8.18",
"pda/pheanstalk": "^4.0",
- "phpstan/phpdoc-parser": "^1.15",
"phpstan/phpstan": "^1.4.7",
- "phpunit/phpunit": "^9.5.8",
- "predis/predis": "^1.1.9|^2.0.2",
- "symfony/cache": "^6.0",
- "symfony/http-client": "^6.0"
+ "phpunit/phpunit": "^10.0.7",
+ "predis/predis": "^2.0.2",
+ "symfony/cache": "^6.2",
+ "symfony/http-client": "^6.2.4",
+ "symfony/psr-http-message-bridge": "^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.235.5).",
"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).",
+ "doctrine/dbal": "Required to rename columns and drop SQLite columns (^3.5.1).",
"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.",
"mockery/mockery": "Required to use mocking (^1.5.1).",
"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 (^9.5.8).",
- "predis/predis": "Required to use the predis connector (^1.1.9|^2.0.2).",
+ "phpunit/phpunit": "Required to use assertions and run tests (^9.5.8|^10.0.7).",
+ "predis/predis": "Required to use the predis connector (^2.0.2).",
"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 (^6.0|^7.0).",
- "symfony/cache": "Required to PSR-6 cache bridge (^6.0).",
- "symfony/filesystem": "Required to enable support for relative symbolic links (^6.0).",
- "symfony/http-client": "Required to enable support for the Symfony API mail transports (^6.0).",
- "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^6.0).",
- "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^6.0).",
+ "symfony/cache": "Required to PSR-6 cache bridge (^6.2).",
+ "symfony/filesystem": "Required to enable support for relative symbolic links (^6.2).",
+ "symfony/http-client": "Required to enable support for the Symfony API mail transports (^6.2).",
+ "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^6.2).",
+ "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^6.2).",
"symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0)."
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "9.x-dev"
+ "dev-master": "10.x-dev"
}
},
"autoload": {
"files": [
"src/Illuminate/Collections/helpers.php",
"src/Illuminate/Events/functions.php",
+ "src/Illuminate/Filesystem/functions.php",
"src/Illuminate/Foundation/helpers.php",
"src/Illuminate/Support/helpers.php"
],
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
- "time": "2023-10-03T13:02:30+00:00"
+ "time": "2024-03-15T10:17:07+00:00"
+ },
+ {
+ "name": "laravel/prompts",
+ "version": "v0.1.16",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/prompts.git",
+ "reference": "ca6872ab6aec3ab61db3a61f83a6caf764ec7781"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/prompts/zipball/ca6872ab6aec3ab61db3a61f83a6caf764ec7781",
+ "reference": "ca6872ab6aec3ab61db3a61f83a6caf764ec7781",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "illuminate/collections": "^10.0|^11.0",
+ "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": {
+ "mockery/mockery": "^1.5",
+ "pestphp/pest": "^2.3",
+ "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-main": "0.1.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/helpers.php"
+ ],
+ "psr-4": {
+ "Laravel\\Prompts\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "support": {
+ "issues": "https://github.com/laravel/prompts/issues",
+ "source": "https://github.com/laravel/prompts/tree/v0.1.16"
+ },
+ "time": "2024-02-21T19:25:27+00:00"
},
{
"name": "laravel/serializable-closure",
},
{
"name": "league/flysystem",
- "version": "3.25.0",
+ "version": "3.25.1",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem.git",
- "reference": "4c44347133618cccd9b3df1729647a1577b4ad99"
+ "reference": "abbd664eb4381102c559d358420989f835208f18"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/4c44347133618cccd9b3df1729647a1577b4ad99",
- "reference": "4c44347133618cccd9b3df1729647a1577b4ad99",
+ "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/abbd664eb4381102c559d358420989f835208f18",
+ "reference": "abbd664eb4381102c559d358420989f835208f18",
"shasum": ""
},
"require": {
],
"support": {
"issues": "https://github.com/thephpleague/flysystem/issues",
- "source": "https://github.com/thephpleague/flysystem/tree/3.25.0"
+ "source": "https://github.com/thephpleague/flysystem/tree/3.25.1"
},
"funding": [
{
"type": "github"
}
],
- "time": "2024-03-09T17:06:45+00:00"
+ "time": "2024-03-16T12:53:19+00:00"
},
{
"name": "league/flysystem-aws-s3-v3",
- "version": "3.24.0",
+ "version": "3.25.1",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git",
- "reference": "809474e37b7fb1d1f8bcc0f8a98bc1cae99aa513"
+ "reference": "6a5be0e6d6a93574e80805c9cc108a4b63c824d8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/809474e37b7fb1d1f8bcc0f8a98bc1cae99aa513",
- "reference": "809474e37b7fb1d1f8bcc0f8a98bc1cae99aa513",
+ "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/6a5be0e6d6a93574e80805c9cc108a4b63c824d8",
+ "reference": "6a5be0e6d6a93574e80805c9cc108a4b63c824d8",
"shasum": ""
},
"require": {
"storage"
],
"support": {
- "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.24.0"
+ "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.25.1"
},
"funding": [
{
"type": "github"
}
],
- "time": "2024-01-26T18:43:21+00:00"
+ "time": "2024-03-15T19:58:44+00:00"
},
{
"name": "league/flysystem-local",
- "version": "3.23.1",
+ "version": "3.25.1",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem-local.git",
- "reference": "b884d2bf9b53bb4804a56d2df4902bb51e253f00"
+ "reference": "61a6a90d6e999e4ddd9ce5adb356de0939060b92"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/b884d2bf9b53bb4804a56d2df4902bb51e253f00",
- "reference": "b884d2bf9b53bb4804a56d2df4902bb51e253f00",
+ "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/61a6a90d6e999e4ddd9ce5adb356de0939060b92",
+ "reference": "61a6a90d6e999e4ddd9ce5adb356de0939060b92",
"shasum": ""
},
"require": {
"local"
],
"support": {
- "issues": "https://github.com/thephpleague/flysystem-local/issues",
- "source": "https://github.com/thephpleague/flysystem-local/tree/3.23.1"
+ "source": "https://github.com/thephpleague/flysystem-local/tree/3.25.1"
},
"funding": [
{
"type": "github"
}
],
- "time": "2024-01-26T18:25:23+00:00"
+ "time": "2024-03-15T19:58:44+00:00"
},
{
"name": "league/html-to-markdown",
},
{
"name": "monolog/monolog",
- "version": "2.9.2",
+ "version": "3.5.0",
"source": {
"type": "git",
"url": "https://github.com/Seldaek/monolog.git",
- "reference": "437cb3628f4cf6042cc10ae97fc2b8472e48ca1f"
+ "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Seldaek/monolog/zipball/437cb3628f4cf6042cc10ae97fc2b8472e48ca1f",
- "reference": "437cb3628f4cf6042cc10ae97fc2b8472e48ca1f",
+ "url": "https://api.github.com/repos/Seldaek/monolog/zipball/c915e2634718dbc8a4a15c61b0e62e7a44e14448",
+ "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448",
"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",
+ "phpstan/phpstan": "^1.9",
+ "phpstan/phpstan-deprecation-rules": "^1.0",
+ "phpstan/phpstan-strict-rules": "^1.4",
+ "phpunit/phpunit": "^10.1",
+ "predis/predis": "^1.1 || ^2",
"ruflin/elastica": "^7",
- "swiftmailer/swiftmailer": "^5.3|^6.0",
"symfony/mailer": "^5.4 || ^6",
"symfony/mime": "^5.4 || ^6"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "2.x-dev"
+ "dev-main": "3.x-dev"
}
},
"autoload": {
],
"support": {
"issues": "https://github.com/Seldaek/monolog/issues",
- "source": "https://github.com/Seldaek/monolog/tree/2.9.2"
+ "source": "https://github.com/Seldaek/monolog/tree/3.5.0"
},
"funding": [
{
"type": "tidelift"
}
],
- "time": "2023-10-27T15:25:26+00:00"
+ "time": "2023-10-27T15:32:31+00:00"
},
{
"name": "mtdowling/jmespath.php",
},
{
"name": "phenx/php-svg-lib",
- "version": "0.5.2",
+ "version": "0.5.3",
"source": {
"type": "git",
"url": "https://github.com/dompdf/php-svg-lib.git",
- "reference": "732faa9fb4309221e2bd9b2fda5de44f947133aa"
+ "reference": "0e46722c154726a5f9ac218197ccc28adba16fcf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/dompdf/php-svg-lib/zipball/732faa9fb4309221e2bd9b2fda5de44f947133aa",
- "reference": "732faa9fb4309221e2bd9b2fda5de44f947133aa",
+ "url": "https://api.github.com/repos/dompdf/php-svg-lib/zipball/0e46722c154726a5f9ac218197ccc28adba16fcf",
+ "reference": "0e46722c154726a5f9ac218197ccc28adba16fcf",
"shasum": ""
},
"require": {
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "LGPL-3.0"
+ "LGPL-3.0-or-later"
],
"authors": [
{
"homepage": "https://github.com/PhenX/php-svg-lib",
"support": {
"issues": "https://github.com/dompdf/php-svg-lib/issues",
- "source": "https://github.com/dompdf/php-svg-lib/tree/0.5.2"
+ "source": "https://github.com/dompdf/php-svg-lib/tree/0.5.3"
},
- "time": "2024-02-07T12:49:40+00:00"
+ "time": "2024-02-23T20:39:24+00:00"
},
{
"name": "phpoption/phpoption",
},
{
"name": "psy/psysh",
- "version": "v0.12.0",
+ "version": "v0.12.2",
"source": {
"type": "git",
"url": "https://github.com/bobthecow/psysh.git",
- "reference": "750bf031a48fd07c673dbe3f11f72362ea306d0d"
+ "reference": "9185c66c2165bbf4d71de78a69dccf4974f9538d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/bobthecow/psysh/zipball/750bf031a48fd07c673dbe3f11f72362ea306d0d",
- "reference": "750bf031a48fd07c673dbe3f11f72362ea306d0d",
+ "url": "https://api.github.com/repos/bobthecow/psysh/zipball/9185c66c2165bbf4d71de78a69dccf4974f9538d",
+ "reference": "9185c66c2165bbf4d71de78a69dccf4974f9538d",
"shasum": ""
},
"require": {
],
"support": {
"issues": "https://github.com/bobthecow/psysh/issues",
- "source": "https://github.com/bobthecow/psysh/tree/v0.12.0"
+ "source": "https://github.com/bobthecow/psysh/tree/v0.12.2"
},
- "time": "2023-12-20T15:28:09+00:00"
+ "time": "2024-03-17T01:53:00+00:00"
},
{
"name": "ralouphie/getallheaders",
},
{
"name": "ssddanbrown/symfony-mailer",
- "version": "6.0.x-dev",
+ "version": "6.4.x-dev",
"source": {
"type": "git",
"url": "https://github.com/ssddanbrown/symfony-mailer.git",
- "reference": "2219dcdc5f58e4f382ce8f1e6942d16982aa3012"
+ "reference": "0497d6eb2734fe22b9550f88ae6526611c9df7ae"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ssddanbrown/symfony-mailer/zipball/2219dcdc5f58e4f382ce8f1e6942d16982aa3012",
- "reference": "2219dcdc5f58e4f382ce8f1e6942d16982aa3012",
+ "url": "https://api.github.com/repos/ssddanbrown/symfony-mailer/zipball/0497d6eb2734fe22b9550f88ae6526611c9df7ae",
+ "reference": "0497d6eb2734fe22b9550f88ae6526611c9df7ae",
"shasum": ""
},
"require": {
"egulias/email-validator": "^2.1.10|^3|^4",
- "php": ">=8.0.2",
+ "php": ">=8.1",
"psr/event-dispatcher": "^1",
"psr/log": "^1|^2|^3",
- "symfony/event-dispatcher": "^5.4|^6.0",
- "symfony/mime": "^5.4|^6.0",
- "symfony/service-contracts": "^1.1|^2|^3"
+ "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
+ "symfony/mime": "^6.2|^7.0",
+ "symfony/service-contracts": "^2.5|^3"
},
"conflict": {
- "symfony/http-kernel": "<5.4"
+ "symfony/http-client-contracts": "<2.5",
+ "symfony/http-kernel": "<5.4",
+ "symfony/messenger": "<6.2",
+ "symfony/mime": "<6.2",
+ "symfony/twig-bridge": "<6.2.1"
},
"replace": {
"symfony/mailer": "^6.0"
},
"require-dev": {
- "symfony/http-client-contracts": "^1.1|^2|^3",
- "symfony/messenger": "^5.4|^6.0"
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/http-client": "^5.4|^6.0|^7.0",
+ "symfony/messenger": "^6.2|^7.0",
+ "symfony/twig-bridge": "^6.2|^7.0"
},
- "default-branch": true,
"type": "library",
"autoload": {
"psr-4": {
"description": "Helps sending emails",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/ssddanbrown/symfony-mailer/tree/6.0"
+ "source": "https://github.com/ssddanbrown/symfony-mailer/tree/6.4"
},
- "time": "2023-07-04T14:10:33+00:00"
+ "time": "2024-03-17T16:25:21+00:00"
},
{
"name": "symfony/console",
}
],
"packages-dev": [
- {
- "name": "doctrine/instantiator",
- "version": "2.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/instantiator.git",
- "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0",
- "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0",
- "shasum": ""
- },
- "require": {
- "php": "^8.1"
- },
- "require-dev": {
- "doctrine/coding-standard": "^11",
- "ext-pdo": "*",
- "ext-phar": "*",
- "phpbench/phpbench": "^1.2",
- "phpstan/phpstan": "^1.9.4",
- "phpstan/phpstan-phpunit": "^1.3",
- "phpunit/phpunit": "^9.5.27",
- "vimeo/psalm": "^5.4"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Marco Pivetta",
- "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/2.0.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:23:10+00:00"
- },
{
"name": "fakerphp/faker",
"version": "v1.23.1",
},
{
"name": "mockery/mockery",
- "version": "1.6.7",
+ "version": "1.6.9",
"source": {
"type": "git",
"url": "https://github.com/mockery/mockery.git",
},
{
"name": "nunomaduro/collision",
- "version": "v6.4.0",
+ "version": "v7.10.0",
"source": {
"type": "git",
"url": "https://github.com/nunomaduro/collision.git",
- "reference": "f05978827b9343cba381ca05b8c7deee346b6015"
+ "reference": "49ec67fa7b002712da8526678abd651c09f375b2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nunomaduro/collision/zipball/f05978827b9343cba381ca05b8c7deee346b6015",
- "reference": "f05978827b9343cba381ca05b8c7deee346b6015",
+ "url": "https://api.github.com/repos/nunomaduro/collision/zipball/49ec67fa7b002712da8526678abd651c09f375b2",
+ "reference": "49ec67fa7b002712da8526678abd651c09f375b2",
"shasum": ""
},
"require": {
- "filp/whoops": "^2.14.5",
- "php": "^8.0.0",
- "symfony/console": "^6.0.2"
+ "filp/whoops": "^2.15.3",
+ "nunomaduro/termwind": "^1.15.1",
+ "php": "^8.1.0",
+ "symfony/console": "^6.3.4"
+ },
+ "conflict": {
+ "laravel/framework": ">=11.0.0"
},
"require-dev": {
- "brianium/paratest": "^6.4.1",
- "laravel/framework": "^9.26.1",
- "laravel/pint": "^1.1.1",
- "nunomaduro/larastan": "^1.0.3",
- "nunomaduro/mock-final-classes": "^1.1.0",
- "orchestra/testbench": "^7.7",
- "phpunit/phpunit": "^9.5.23",
- "spatie/ignition": "^1.4.1"
+ "brianium/paratest": "^7.3.0",
+ "laravel/framework": "^10.28.0",
+ "laravel/pint": "^1.13.3",
+ "laravel/sail": "^1.25.0",
+ "laravel/sanctum": "^3.3.1",
+ "laravel/tinker": "^2.8.2",
+ "nunomaduro/larastan": "^2.6.4",
+ "orchestra/testbench-core": "^8.13.0",
+ "pestphp/pest": "^2.23.2",
+ "phpunit/phpunit": "^10.4.1",
+ "sebastian/environment": "^6.0.1",
+ "spatie/laravel-ignition": "^2.3.1"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-develop": "6.x-dev"
- },
"laravel": {
"providers": [
"NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider"
}
},
"autoload": {
+ "files": [
+ "./src/Adapters/Phpunit/Autoload.php"
+ ],
"psr-4": {
"NunoMaduro\\Collision\\": "src/"
}
"type": "patreon"
}
],
- "time": "2023-01-03T12:54:54+00:00"
+ "time": "2023-10-11T15:45:01+00:00"
},
{
"name": "phar-io/manifest",
},
{
"name": "phpstan/phpstan",
- "version": "1.10.60",
+ "version": "1.10.62",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan.git",
- "reference": "95dcea7d6c628a3f2f56d091d8a0219485a86bbe"
+ "reference": "cd5c8a1660ed3540b211407c77abf4af193a6af9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan/zipball/95dcea7d6c628a3f2f56d091d8a0219485a86bbe",
- "reference": "95dcea7d6c628a3f2f56d091d8a0219485a86bbe",
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/cd5c8a1660ed3540b211407c77abf4af193a6af9",
+ "reference": "cd5c8a1660ed3540b211407c77abf4af193a6af9",
"shasum": ""
},
"require": {
"type": "tidelift"
}
],
- "time": "2024-03-07T13:30:19+00:00"
+ "time": "2024-03-13T12:27:20+00:00"
},
{
"name": "phpunit/php-code-coverage",
- "version": "9.2.31",
+ "version": "10.1.14",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "48c34b5d8d983006bd2adc2d0de92963b9155965"
+ "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/48c34b5d8d983006bd2adc2d0de92963b9155965",
- "reference": "48c34b5d8d983006bd2adc2d0de92963b9155965",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/e3f51450ebffe8e0efdf7346ae966a656f7d5e5b",
+ "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b",
"shasum": ""
},
"require": {
"ext-libxml": "*",
"ext-xmlwriter": "*",
"nikic/php-parser": "^4.18 || ^5.0",
- "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",
+ "php": ">=8.1",
+ "phpunit/php-file-iterator": "^4.0",
+ "phpunit/php-text-template": "^3.0",
+ "sebastian/code-unit-reverse-lookup": "^3.0",
+ "sebastian/complexity": "^3.0",
+ "sebastian/environment": "^6.0",
+ "sebastian/lines-of-code": "^2.0",
+ "sebastian/version": "^4.0",
"theseer/tokenizer": "^1.2.0"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.1"
},
"suggest": {
"ext-pcov": "PHP extension that provides line coverage",
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "9.2-dev"
+ "dev-main": "10.1-dev"
}
},
"autoload": {
"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.31"
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.14"
},
"funding": [
{
"type": "github"
}
],
- "time": "2024-03-02T06:37:42+00:00"
+ "time": "2024-03-12T15:33:41+00:00"
},
{
"name": "phpunit/php-file-iterator",
- "version": "3.0.6",
+ "version": "4.1.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-file-iterator.git",
- "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf"
+ "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c"
},
"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/a95037b6d9e608ba092da1b23931e537cadc3c3c",
+ "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.0-dev"
+ "dev-main": "4.0-dev"
}
},
"autoload": {
],
"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/4.1.0"
},
"funding": [
{
"type": "github"
}
],
- "time": "2021-12-02T12:48:52+00:00"
+ "time": "2023-08-31T06:24:48+00:00"
},
{
"name": "phpunit/php-invoker",
- "version": "3.1.1",
+ "version": "4.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-invoker.git",
- "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67"
+ "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7"
},
"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/f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7",
+ "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
"ext-pcntl": "*",
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"suggest": {
"ext-pcntl": "*"
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.1-dev"
+ "dev-main": "4.0-dev"
}
},
"autoload": {
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-invoker/issues",
- "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1"
+ "source": "https://github.com/sebastianbergmann/php-invoker/tree/4.0.0"
},
"funding": [
{
"type": "github"
}
],
- "time": "2020-09-28T05:58:55+00:00"
+ "time": "2023-02-03T06:56:09+00:00"
},
{
"name": "phpunit/php-text-template",
- "version": "2.0.4",
+ "version": "3.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-text-template.git",
- "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28"
+ "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748"
},
"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/0c7b06ff49e3d5072f057eb1fa59258bf287a748",
+ "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0-dev"
+ "dev-main": "3.0-dev"
}
},
"autoload": {
],
"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/3.0.1"
},
"funding": [
{
"type": "github"
}
],
- "time": "2020-10-26T05:33:50+00:00"
+ "time": "2023-08-31T14:07:24+00:00"
},
{
"name": "phpunit/php-timer",
- "version": "5.0.3",
+ "version": "6.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-timer.git",
- "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2"
+ "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d"
},
"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/e2a2d67966e740530f4a3343fe2e030ffdc1161d",
+ "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "5.0-dev"
+ "dev-main": "6.0-dev"
}
},
"autoload": {
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-timer/issues",
- "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3"
+ "source": "https://github.com/sebastianbergmann/php-timer/tree/6.0.0"
},
"funding": [
{
"type": "github"
}
],
- "time": "2020-10-26T13:16:10+00:00"
+ "time": "2023-02-03T06:57:52+00:00"
},
{
"name": "phpunit/phpunit",
- "version": "9.6.17",
+ "version": "10.5.13",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "1a156980d78a6666721b7e8e8502fe210b587fcd"
+ "reference": "20a63fc1c6db29b15da3bd02d4b6cf59900088a7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/1a156980d78a6666721b7e8e8502fe210b587fcd",
- "reference": "1a156980d78a6666721b7e8e8502fe210b587fcd",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/20a63fc1c6db29b15da3bd02d4b6cf59900088a7",
+ "reference": "20a63fc1c6db29b15da3bd02d4b6cf59900088a7",
"shasum": ""
},
"require": {
- "doctrine/instantiator": "^1.3.1 || ^2",
"ext-dom": "*",
"ext-json": "*",
"ext-libxml": "*",
"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.28",
- "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"
+ "php": ">=8.1",
+ "phpunit/php-code-coverage": "^10.1.5",
+ "phpunit/php-file-iterator": "^4.0",
+ "phpunit/php-invoker": "^4.0",
+ "phpunit/php-text-template": "^3.0",
+ "phpunit/php-timer": "^6.0",
+ "sebastian/cli-parser": "^2.0",
+ "sebastian/code-unit": "^2.0",
+ "sebastian/comparator": "^5.0",
+ "sebastian/diff": "^5.0",
+ "sebastian/environment": "^6.0",
+ "sebastian/exporter": "^5.1",
+ "sebastian/global-state": "^6.0.1",
+ "sebastian/object-enumerator": "^5.0",
+ "sebastian/recursion-context": "^5.0",
+ "sebastian/type": "^4.0",
+ "sebastian/version": "^4.0"
},
"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"
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "9.6-dev"
+ "dev-main": "10.5-dev"
}
},
"autoload": {
"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.17"
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.13"
},
"funding": [
{
"type": "tidelift"
}
],
- "time": "2024-02-23T13:14:51+00:00"
+ "time": "2024-03-12T15:37:41+00:00"
},
{
"name": "sebastian/cli-parser",
- "version": "1.0.2",
+ "version": "2.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/cli-parser.git",
- "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b"
+ "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/2b56bea83a09de3ac06bb18b92f068e60cc6f50b",
- "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b",
+ "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/c34583b87e7b7a8055bf6c450c2c77ce32a24084",
+ "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0-dev"
+ "dev-main": "2.0-dev"
}
},
"autoload": {
"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.2"
+ "security": "https://github.com/sebastianbergmann/cli-parser/security/policy",
+ "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.1"
},
"funding": [
{
"type": "github"
}
],
- "time": "2024-03-02T06:27:43+00:00"
+ "time": "2024-03-02T07:12:49+00:00"
},
{
"name": "sebastian/code-unit",
- "version": "1.0.8",
+ "version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/code-unit.git",
- "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120"
+ "reference": "a81fee9eef0b7a76af11d121767abc44c104e503"
},
"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/a81fee9eef0b7a76af11d121767abc44c104e503",
+ "reference": "a81fee9eef0b7a76af11d121767abc44c104e503",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0-dev"
+ "dev-main": "2.0-dev"
}
},
"autoload": {
"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"
+ "source": "https://github.com/sebastianbergmann/code-unit/tree/2.0.0"
},
"funding": [
{
"type": "github"
}
],
- "time": "2020-10-26T13:08:54+00:00"
+ "time": "2023-02-03T06:58:43+00:00"
},
{
"name": "sebastian/code-unit-reverse-lookup",
- "version": "2.0.3",
+ "version": "3.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
- "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5"
+ "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d"
},
"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/5e3a687f7d8ae33fb362c5c0743794bbb2420a1d",
+ "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0-dev"
+ "dev-main": "3.0-dev"
}
},
"autoload": {
"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"
+ "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/3.0.0"
},
"funding": [
{
"type": "github"
}
],
- "time": "2020-09-28T05:30:19+00:00"
+ "time": "2023-02-03T06:59:15+00:00"
},
{
"name": "sebastian/comparator",
- "version": "4.0.8",
+ "version": "5.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "fa0f136dd2334583309d32b62544682ee972b51a"
+ "reference": "2db5010a484d53ebf536087a70b4a5423c102372"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a",
- "reference": "fa0f136dd2334583309d32b62544682ee972b51a",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2db5010a484d53ebf536087a70b4a5423c102372",
+ "reference": "2db5010a484d53ebf536087a70b4a5423c102372",
"shasum": ""
},
"require": {
- "php": ">=7.3",
- "sebastian/diff": "^4.0",
- "sebastian/exporter": "^4.0"
+ "ext-dom": "*",
+ "ext-mbstring": "*",
+ "php": ">=8.1",
+ "sebastian/diff": "^5.0",
+ "sebastian/exporter": "^5.0"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.0-dev"
+ "dev-main": "5.0-dev"
}
},
"autoload": {
],
"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/5.0.1"
},
"funding": [
{
"type": "github"
}
],
- "time": "2022-09-14T12:41:17+00:00"
+ "time": "2023-08-14T13:18:12+00:00"
},
{
"name": "sebastian/complexity",
- "version": "2.0.3",
+ "version": "3.2.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/complexity.git",
- "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a"
+ "reference": "68ff824baeae169ec9f2137158ee529584553799"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a",
- "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a",
+ "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68ff824baeae169ec9f2137158ee529584553799",
+ "reference": "68ff824baeae169ec9f2137158ee529584553799",
"shasum": ""
},
"require": {
"nikic/php-parser": "^4.18 || ^5.0",
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0-dev"
+ "dev-main": "3.2-dev"
}
},
"autoload": {
"homepage": "https://github.com/sebastianbergmann/complexity",
"support": {
"issues": "https://github.com/sebastianbergmann/complexity/issues",
- "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.3"
+ "security": "https://github.com/sebastianbergmann/complexity/security/policy",
+ "source": "https://github.com/sebastianbergmann/complexity/tree/3.2.0"
},
"funding": [
{
"type": "github"
}
],
- "time": "2023-12-22T06:19:30+00:00"
+ "time": "2023-12-21T08:37:17+00:00"
},
{
"name": "sebastian/diff",
- "version": "4.0.6",
+ "version": "5.1.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc"
+ "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ba01945089c3a293b01ba9badc29ad55b106b0bc",
- "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/c41e007b4b62af48218231d6c2275e4c9b975b2e",
+ "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3",
- "symfony/process": "^4.2 || ^5"
+ "phpunit/phpunit": "^10.0",
+ "symfony/process": "^6.4"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.0-dev"
+ "dev-main": "5.1-dev"
}
},
"autoload": {
],
"support": {
"issues": "https://github.com/sebastianbergmann/diff/issues",
- "source": "https://github.com/sebastianbergmann/diff/tree/4.0.6"
+ "security": "https://github.com/sebastianbergmann/diff/security/policy",
+ "source": "https://github.com/sebastianbergmann/diff/tree/5.1.1"
},
"funding": [
{
"type": "github"
}
],
- "time": "2024-03-02T06:30:58+00:00"
+ "time": "2024-03-02T07:15:17+00:00"
},
{
"name": "sebastian/environment",
- "version": "5.1.5",
+ "version": "6.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed"
+ "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
- "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/43c751b41d74f96cbbd4e07b7aec9675651e2951",
+ "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"suggest": {
"ext-posix": "*"
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "5.1-dev"
+ "dev-main": "6.0-dev"
}
},
"autoload": {
}
],
"description": "Provides functionality to handle HHVM/PHP environments",
- "homepage": "http://www.github.com/sebastianbergmann/environment",
+ "homepage": "https://github.com/sebastianbergmann/environment",
"keywords": [
"Xdebug",
"environment",
],
"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/6.0.1"
},
"funding": [
{
"type": "github"
}
],
- "time": "2023-02-03T06:03:51+00:00"
+ "time": "2023-04-11T05:39:26+00:00"
},
{
"name": "sebastian/exporter",
- "version": "4.0.6",
+ "version": "5.1.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72"
+ "reference": "955288482d97c19a372d3f31006ab3f37da47adf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/78c00df8f170e02473b682df15bfcdacc3d32d72",
- "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/955288482d97c19a372d3f31006ab3f37da47adf",
+ "reference": "955288482d97c19a372d3f31006ab3f37da47adf",
"shasum": ""
},
"require": {
- "php": ">=7.3",
- "sebastian/recursion-context": "^4.0"
+ "ext-mbstring": "*",
+ "php": ">=8.1",
+ "sebastian/recursion-context": "^5.0"
},
"require-dev": {
- "ext-mbstring": "*",
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.0-dev"
+ "dev-main": "5.1-dev"
}
},
"autoload": {
],
"support": {
"issues": "https://github.com/sebastianbergmann/exporter/issues",
- "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.6"
+ "security": "https://github.com/sebastianbergmann/exporter/security/policy",
+ "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.2"
},
"funding": [
{
"type": "github"
}
],
- "time": "2024-03-02T06:33:00+00:00"
+ "time": "2024-03-02T07:17:12+00:00"
},
{
"name": "sebastian/global-state",
- "version": "5.0.7",
+ "version": "6.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9"
+ "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9",
- "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/987bafff24ecc4c9ac418cab1145b96dd6e9cbd9",
+ "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9",
"shasum": ""
},
"require": {
- "php": ">=7.3",
- "sebastian/object-reflector": "^2.0",
- "sebastian/recursion-context": "^4.0"
+ "php": ">=8.1",
+ "sebastian/object-reflector": "^3.0",
+ "sebastian/recursion-context": "^5.0"
},
"require-dev": {
"ext-dom": "*",
- "phpunit/phpunit": "^9.3"
- },
- "suggest": {
- "ext-uopz": "*"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "5.0-dev"
+ "dev-main": "6.0-dev"
}
},
"autoload": {
}
],
"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.7"
+ "security": "https://github.com/sebastianbergmann/global-state/security/policy",
+ "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.2"
},
"funding": [
{
"type": "github"
}
],
- "time": "2024-03-02T06:35:11+00:00"
+ "time": "2024-03-02T07:19:19+00:00"
},
{
"name": "sebastian/lines-of-code",
- "version": "1.0.4",
+ "version": "2.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/lines-of-code.git",
- "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5"
+ "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5",
- "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5",
+ "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/856e7f6a75a84e339195d48c556f23be2ebf75d0",
+ "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0",
"shasum": ""
},
"require": {
"nikic/php-parser": "^4.18 || ^5.0",
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0-dev"
+ "dev-main": "2.0-dev"
}
},
"autoload": {
"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.4"
+ "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy",
+ "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.2"
},
"funding": [
{
"type": "github"
}
],
- "time": "2023-12-22T06:20:34+00:00"
+ "time": "2023-12-21T08:38:20+00:00"
},
{
"name": "sebastian/object-enumerator",
- "version": "4.0.4",
+ "version": "5.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/object-enumerator.git",
- "reference": "5c9eeac41b290a3712d88851518825ad78f45c71"
+ "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906"
},
"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/202d0e344a580d7f7d04b3fafce6933e59dae906",
+ "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906",
"shasum": ""
},
"require": {
- "php": ">=7.3",
- "sebastian/object-reflector": "^2.0",
- "sebastian/recursion-context": "^4.0"
+ "php": ">=8.1",
+ "sebastian/object-reflector": "^3.0",
+ "sebastian/recursion-context": "^5.0"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.0-dev"
+ "dev-main": "5.0-dev"
}
},
"autoload": {
"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"
+ "source": "https://github.com/sebastianbergmann/object-enumerator/tree/5.0.0"
},
"funding": [
{
"type": "github"
}
],
- "time": "2020-10-26T13:12:34+00:00"
+ "time": "2023-02-03T07:08:32+00:00"
},
{
"name": "sebastian/object-reflector",
- "version": "2.0.4",
+ "version": "3.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/object-reflector.git",
- "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7"
+ "reference": "24ed13d98130f0e7122df55d06c5c4942a577957"
},
"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/24ed13d98130f0e7122df55d06c5c4942a577957",
+ "reference": "24ed13d98130f0e7122df55d06c5c4942a577957",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0-dev"
+ "dev-main": "3.0-dev"
}
},
"autoload": {
"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"
+ "source": "https://github.com/sebastianbergmann/object-reflector/tree/3.0.0"
},
"funding": [
{
"type": "github"
}
],
- "time": "2020-10-26T13:14:26+00:00"
+ "time": "2023-02-03T07:06:18+00:00"
},
{
"name": "sebastian/recursion-context",
- "version": "4.0.5",
+ "version": "5.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/recursion-context.git",
- "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1"
+ "reference": "05909fb5bc7df4c52992396d0116aed689f93712"
},
"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/05909fb5bc7df4c52992396d0116aed689f93712",
+ "reference": "05909fb5bc7df4c52992396d0116aed689f93712",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.0-dev"
+ "dev-main": "5.0-dev"
}
},
"autoload": {
"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"
+ "source": "https://github.com/sebastianbergmann/recursion-context/tree/5.0.0"
},
"funding": [
{
"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",
- }
- ],
- "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": "2023-02-03T07:05:40+00:00"
},
{
"name": "sebastian/type",
- "version": "3.2.1",
+ "version": "4.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/type.git",
- "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7"
+ "reference": "462699a16464c3944eefc02ebdd77882bd3925bf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
- "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/462699a16464c3944eefc02ebdd77882bd3925bf",
+ "reference": "462699a16464c3944eefc02ebdd77882bd3925bf",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.5"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.2-dev"
+ "dev-main": "4.0-dev"
}
},
"autoload": {
"homepage": "https://github.com/sebastianbergmann/type",
"support": {
"issues": "https://github.com/sebastianbergmann/type/issues",
- "source": "https://github.com/sebastianbergmann/type/tree/3.2.1"
+ "source": "https://github.com/sebastianbergmann/type/tree/4.0.0"
},
"funding": [
{
"type": "github"
}
],
- "time": "2023-02-03T06:13:03+00:00"
+ "time": "2023-02-03T07:10:45+00:00"
},
{
"name": "sebastian/version",
- "version": "3.0.2",
+ "version": "4.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/version.git",
- "reference": "c6c1022351a901512170118436c764e473f6de8c"
+ "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c",
- "reference": "c6c1022351a901512170118436c764e473f6de8c",
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c51fa83a5d8f43f1402e3f32a005e6262244ef17",
+ "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.0-dev"
+ "dev-main": "4.0-dev"
}
},
"autoload": {
"homepage": "https://github.com/sebastianbergmann/version",
"support": {
"issues": "https://github.com/sebastianbergmann/version/issues",
- "source": "https://github.com/sebastianbergmann/version/tree/3.0.2"
+ "source": "https://github.com/sebastianbergmann/version/tree/4.0.1"
},
"funding": [
{
"type": "github"
}
],
- "time": "2020-09-28T06:39:44+00:00"
+ "time": "2023-02-07T11:34:05+00:00"
},
{
"name": "squizlabs/php_codesniffer",
},
{
"name": "ssddanbrown/asserthtml",
- "version": "v2.0.0",
+ "version": "v3.0.0",
"source": {
"type": "git",
"url": "https://github.com/ssddanbrown/asserthtml.git",
- "reference": "6baf3ef2087f5928ae34f0d41db27aefcdf60414"
+ "reference": "a2cf9394dfc4138b8d9691e1bd128ccc3d8fcc5d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ssddanbrown/asserthtml/zipball/6baf3ef2087f5928ae34f0d41db27aefcdf60414",
- "reference": "6baf3ef2087f5928ae34f0d41db27aefcdf60414",
+ "url": "https://api.github.com/repos/ssddanbrown/asserthtml/zipball/a2cf9394dfc4138b8d9691e1bd128ccc3d8fcc5d",
+ "reference": "a2cf9394dfc4138b8d9691e1bd128ccc3d8fcc5d",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-json": "*",
- "php": ">=7.4",
- "phpunit/phpunit": "^9.0",
- "symfony/css-selector": "^5.0|^6.0",
- "symfony/dom-crawler": "^5.0|^6.0"
+ "php": ">=8.1",
+ "phpunit/phpunit": "^10.0",
+ "symfony/css-selector": "^6.0",
+ "symfony/dom-crawler": "^6.0"
},
"require-dev": {
- "vimeo/psalm": "^4.10"
+ "phpstan/phpstan": "^1.10"
},
"type": "library",
"autoload": {
"authors": [
{
"name": "Dan Brown",
+ "homepage": "https://danb.me",
"role": "Developer"
}
],
"homepage": "https://github.com/ssddanbrown/asserthtml",
"support": {
"issues": "https://github.com/ssddanbrown/asserthtml/issues",
- "source": "https://github.com/ssddanbrown/asserthtml/tree/v2.0.0"
+ "source": "https://github.com/ssddanbrown/asserthtml/tree/v3.0.0"
},
"funding": [
{
"type": "github"
}
],
- "time": "2023-03-01T16:48:08+00:00"
+ "time": "2023-05-11T14:26:12+00:00"
},
{
"name": "symfony/dom-crawler",
<?php
+use Carbon\Carbon;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
'name' => 'Admin',
'password' => bcrypt('password'),
- 'created_at' => \Carbon\Carbon::now()->toDateTimeString(),
- 'updated_at' => \Carbon\Carbon::now()->toDateTimeString(),
+ 'created_at' => Carbon::now()->toDateTimeString(),
+ 'updated_at' => Carbon::now()->toDateTimeString(),
]);
}
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::drop('users');
}
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::create('password_resets', function (Blueprint $table) {
$table->string('email')->index();
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::drop('password_resets');
}
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::create('books', function (Blueprint $table) {
$table->increments('id');
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::drop('books');
}
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::create('pages', function (Blueprint $table) {
$table->increments('id');
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::drop('pages');
}
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::create('images', function (Blueprint $table) {
$table->increments('id');
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::drop('images');
}
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::create('chapters', function (Blueprint $table) {
$table->increments('id');
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::drop('chapters');
}
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::table('pages', function (Blueprint $table) {
$table->integer('created_by');
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('pages', function (Blueprint $table) {
$table->dropColumn('created_by');
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::create('page_revisions', function (Blueprint $table) {
$table->increments('id');
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::drop('page_revisions');
}
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::create('activities', function (Blueprint $table) {
$table->increments('id');
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::drop('activities');
}
* @url https://github.com/Zizaco/entrust
*/
+use Carbon\Carbon;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
// Create table for storing roles
Schema::create('roles', function (Blueprint $table) {
'name' => 'admin',
'display_name' => 'Admin',
'description' => 'Administrator of the whole application',
- 'created_at' => \Carbon\Carbon::now()->toDateTimeString(),
- 'updated_at' => \Carbon\Carbon::now()->toDateTimeString(),
+ 'created_at' => Carbon::now()->toDateTimeString(),
+ 'updated_at' => Carbon::now()->toDateTimeString(),
]);
$editorId = DB::table('roles')->insertGetId([
'name' => 'editor',
'display_name' => 'Editor',
'description' => 'User can edit Books, Chapters & Pages',
- 'created_at' => \Carbon\Carbon::now()->toDateTimeString(),
- 'updated_at' => \Carbon\Carbon::now()->toDateTimeString(),
+ 'created_at' => Carbon::now()->toDateTimeString(),
+ 'updated_at' => Carbon::now()->toDateTimeString(),
]);
$viewerId = DB::table('roles')->insertGetId([
'name' => 'viewer',
'display_name' => 'Viewer',
'description' => 'User can view books & their content behind authentication',
- 'created_at' => \Carbon\Carbon::now()->toDateTimeString(),
- 'updated_at' => \Carbon\Carbon::now()->toDateTimeString(),
+ 'created_at' => Carbon::now()->toDateTimeString(),
+ 'updated_at' => Carbon::now()->toDateTimeString(),
]);
// Create default CRUD permissions and allocate to admins and editors
$newPermId = DB::table('permissions')->insertGetId([
'name' => strtolower($entity) . '-' . strtolower($op),
'display_name' => $op . ' ' . $entity . 's',
- 'created_at' => \Carbon\Carbon::now()->toDateTimeString(),
- 'updated_at' => \Carbon\Carbon::now()->toDateTimeString(),
+ 'created_at' => Carbon::now()->toDateTimeString(),
+ 'updated_at' => Carbon::now()->toDateTimeString(),
]);
DB::table('permission_role')->insert([
['permission_id' => $newPermId, 'role_id' => $adminId],
$newPermId = DB::table('permissions')->insertGetId([
'name' => strtolower($entity) . '-' . strtolower($op),
'display_name' => $op . ' ' . $entity,
- 'created_at' => \Carbon\Carbon::now()->toDateTimeString(),
- 'updated_at' => \Carbon\Carbon::now()->toDateTimeString(),
+ 'created_at' => Carbon::now()->toDateTimeString(),
+ 'updated_at' => Carbon::now()->toDateTimeString(),
]);
DB::table('permission_role')->insert([
'permission_id' => $newPermId,
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::drop('permission_role');
Schema::drop('permissions');
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::create('settings', function (Blueprint $table) {
$table->string('setting_key')->primary()->indexed();
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::drop('settings');
}
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
public function up()
{
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
$sm = Schema::getConnection()->getDoctrineSchemaManager();
- $pages = $sm->listTableDetails('pages');
- $books = $sm->listTableDetails('books');
- $chapters = $sm->listTableDetails('chapters');
+ $prefix = DB::getTablePrefix();
+ $pages = $sm->introspectTable($prefix . 'pages');
+ $books = $sm->introspectTable($prefix . 'books');
+ $chapters = $sm->introspectTable($prefix . 'chapters');
if ($pages->hasIndex('search')) {
Schema::table('pages', function (Blueprint $table) {
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::create('social_accounts', function (Blueprint $table) {
$table->increments('id');
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::drop('social_accounts');
}
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::table('users', function (Blueprint $table) {
$table->boolean('email_confirmed')->default(true);
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('users', function (Blueprint $table) {
$table->dropColumn('email_confirmed');
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::create('views', function (Blueprint $table) {
$table->increments('id');
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::drop('views');
}
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::table('books', function (Blueprint $table) {
$table->index('slug');
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('books', function (Blueprint $table) {
$table->dropIndex('books_slug_index');
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
public function up()
{
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
$sm = Schema::getConnection()->getDoctrineSchemaManager();
- $pages = $sm->listTableDetails('pages');
- $books = $sm->listTableDetails('books');
- $chapters = $sm->listTableDetails('chapters');
+ $prefix = DB::getTablePrefix();
+ $pages = $sm->introspectTable($prefix . 'pages');
+ $books = $sm->introspectTable($prefix . 'books');
+ $chapters = $sm->introspectTable($prefix . 'chapters');
if ($pages->hasIndex('name_search')) {
Schema::table('pages', function (Blueprint $table) {
use BookStack\Uploads\Image;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::table('images', function (Blueprint $table) {
$table->string('path', 400);
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('images', function (Blueprint $table) {
$table->dropColumn('type');
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::table('users', function (Blueprint $table) {
$table->integer('image_id')->default(0);
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('users', function (Blueprint $table) {
$table->dropColumn('image_id');
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::table('users', function (Blueprint $table) {
$table->string('external_auth_id')->index();
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('users', function (Blueprint $table) {
$table->dropColumn('external_auth_id');
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::table('page_revisions', function (Blueprint $table) {
$table->string('slug');
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('page_revisions', function (Blueprint $table) {
$table->dropColumn('slug');
<?php
+use Carbon\Carbon;
use Illuminate\Database\Migrations\Migration;
+use Illuminate\Support\Facades\DB;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
// Get roles with permissions we need to change
$adminRoleId = DB::table('roles')->where('name', '=', 'admin')->first()->id;
$permissionId = DB::table('permissions')->insertGetId([
'name' => $name,
'display_name' => $displayName,
- 'created_at' => \Carbon\Carbon::now()->toDateTimeString(),
- 'updated_at' => \Carbon\Carbon::now()->toDateTimeString(),
+ 'created_at' => Carbon::now()->toDateTimeString(),
+ 'updated_at' => Carbon::now()->toDateTimeString(),
]);
DB::table('permission_role')->insert([
'role_id' => $adminRoleId,
$permissionId = DB::table('permissions')->insertGetId([
'name' => strtolower($entity) . '-' . strtolower(str_replace(' ', '-', $op)),
'display_name' => $op . ' ' . $entity . 's',
- 'created_at' => \Carbon\Carbon::now()->toDateTimeString(),
- 'updated_at' => \Carbon\Carbon::now()->toDateTimeString(),
+ 'created_at' => Carbon::now()->toDateTimeString(),
+ 'updated_at' => Carbon::now()->toDateTimeString(),
]);
DB::table('permission_role')->insert([
'role_id' => $adminRoleId,
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
// Get roles with permissions we need to change
$adminRoleId = DB::table('roles')->where('name', '=', 'admin')->first()->id;
$permissionId = DB::table('permissions')->insertGetId([
'name' => strtolower($entity) . '-' . strtolower($op),
'display_name' => $op . ' ' . $entity . 's',
- 'created_at' => \Carbon\Carbon::now()->toDateTimeString(),
- 'updated_at' => \Carbon\Carbon::now()->toDateTimeString(),
+ 'created_at' => Carbon::now()->toDateTimeString(),
+ 'updated_at' => Carbon::now()->toDateTimeString(),
]);
DB::table('permission_role')->insert([
'role_id' => $adminRoleId,
$permissionId = DB::table('permissions')->insertGetId([
'name' => strtolower($entity) . '-' . strtolower($op),
'display_name' => $op . ' ' . $entity,
- 'created_at' => \Carbon\Carbon::now()->toDateTimeString(),
- 'updated_at' => \Carbon\Carbon::now()->toDateTimeString(),
+ 'created_at' => Carbon::now()->toDateTimeString(),
+ 'updated_at' => Carbon::now()->toDateTimeString(),
]);
DB::table('permission_role')->insert([
'role_id' => $adminRoleId,
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::table('images', function (Blueprint $table) {
$table->integer('uploaded_to')->default(0);
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('images', function (Blueprint $table) {
$table->dropColumn('uploaded_to');
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::table('page_revisions', function (Blueprint $table) {
$table->string('type')->default('version');
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('page_revisions', function (Blueprint $table) {
$table->dropColumn('type');
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::table('pages', function (Blueprint $table) {
$table->boolean('draft')->default(false);
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('pages', function (Blueprint $table) {
$table->dropColumn('draft');
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::table('pages', function (Blueprint $table) {
$table->longText('markdown')->default('');
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('pages', function (Blueprint $table) {
$table->dropColumn('markdown');
<?php
+use Carbon\Carbon;
use Illuminate\Database\Migrations\Migration;
+use Illuminate\Support\Facades\DB;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
$currentRoles = DB::table('roles')->get();
$permId = DB::table('permissions')->insertGetId([
'name' => strtolower($entity) . '-' . strtolower(str_replace(' ', '-', $op)),
'display_name' => $op . ' ' . $entity . 's',
- 'created_at' => \Carbon\Carbon::now()->toDateTimeString(),
- 'updated_at' => \Carbon\Carbon::now()->toDateTimeString(),
+ 'created_at' => Carbon::now()->toDateTimeString(),
+ 'updated_at' => Carbon::now()->toDateTimeString(),
]);
// Assign view permission to all current roles
foreach ($currentRoles as $role) {
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
// Delete the new view permission
$entities = ['Book', 'Page', 'Chapter'];
<?php
+use Carbon\Carbon;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Str;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::create('joint_permissions', function (Blueprint $table) {
$table->increments('id');
'description' => 'The role given to public visitors if allowed',
'system_name' => 'public',
'hidden' => true,
- 'created_at' => \Carbon\Carbon::now()->toDateTimeString(),
- 'updated_at' => \Carbon\Carbon::now()->toDateTimeString(),
+ 'created_at' => Carbon::now()->toDateTimeString(),
+ 'updated_at' => Carbon::now()->toDateTimeString(),
];
// Ensure unique name
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::drop('joint_permissions');
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::create('tags', function (Blueprint $table) {
$table->increments('id');
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::drop('tags');
}
<?php
use Illuminate\Database\Migrations\Migration;
+use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::table('page_revisions', function ($table) {
$table->string('summary')->nullable();
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('page_revisions', function ($table) {
$table->dropColumn('summary');
<?php
+use Carbon\Carbon;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
// Remove the hidden property from roles
Schema::table('roles', function (Blueprint $table) {
'name' => 'Guest',
'system_name' => 'public',
'email_confirmed' => true,
- 'created_at' => \Carbon\Carbon::now(),
- 'updated_at' => \Carbon\Carbon::now(),
+ 'created_at' => Carbon::now(),
+ 'updated_at' => Carbon::now(),
]);
// Get the public role
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('roles', function (Blueprint $table) {
$table->boolean('hidden')->default(false);
<?php
+use Carbon\Carbon;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::create('attachments', function (Blueprint $table) {
$table->increments('id');
$permissionId = DB::table('role_permissions')->insertGetId([
'name' => strtolower($entity) . '-' . strtolower(str_replace(' ', '-', $op)),
'display_name' => $op . ' ' . $entity . 's',
- 'created_at' => \Carbon\Carbon::now()->toDateTimeString(),
- 'updated_at' => \Carbon\Carbon::now()->toDateTimeString(),
+ 'created_at' => Carbon::now()->toDateTimeString(),
+ 'updated_at' => Carbon::now()->toDateTimeString(),
]);
DB::table('permission_role')->insert([
'role_id' => $adminRoleId,
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::dropIfExists('attachments');
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::create('cache', function (Blueprint $table) {
$table->string('key')->unique();
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::dropIfExists('cache');
}
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::create('sessions', function (Blueprint $table) {
$table->string('id')->unique();
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::dropIfExists('sessions');
}
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::create('search_terms', function (Blueprint $table) {
$table->increments('id');
});
$sm = Schema::getConnection()->getDoctrineSchemaManager();
- $pages = $sm->listTableDetails('pages');
- $books = $sm->listTableDetails('books');
- $chapters = $sm->listTableDetails('chapters');
+ $prefix = DB::getTablePrefix();
+ $pages = $sm->introspectTable($prefix . 'pages');
+ $books = $sm->introspectTable($prefix . 'books');
+ $chapters = $sm->introspectTable($prefix . 'chapters');
if ($pages->hasIndex('search')) {
Schema::table('pages', function (Blueprint $table) {
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
// This was removed for v0.24 since these indexes are removed anyway
// and will cause issues for db engines that don't support such indexes.
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::table('pages', function (Blueprint $table) {
$table->integer('revision_count');
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('pages', function (Blueprint $table) {
$table->dropColumn('revision_count');
{
/**
* Run the migrations.
- *
- * @return void
*/
public function up()
{
/**
* Reverse the migrations.
- *
- * @return void
*/
public function down()
{
<?php
+use Carbon\Carbon;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::create('comments', function (Blueprint $table) {
$table->increments('id')->unsigned();
$permissionId = DB::table('role_permissions')->insertGetId([
'name' => strtolower($entity) . '-' . strtolower(str_replace(' ', '-', $op)),
'display_name' => $op . ' ' . $entity . 's',
- 'created_at' => \Carbon\Carbon::now()->toDateTimeString(),
- 'updated_at' => \Carbon\Carbon::now()->toDateTimeString(),
+ 'created_at' => Carbon::now()->toDateTimeString(),
+ 'updated_at' => Carbon::now()->toDateTimeString(),
]);
DB::table('permission_role')->insert([
'role_id' => $adminRoleId,
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::dropIfExists('comments');
// Delete comment role permissions
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::table('books', function (Blueprint $table) {
$table->integer('image_id')->nullable()->default(null);
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('books', function (Blueprint $table) {
$table->dropColumn('image_id');
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::table('roles', function (Blueprint $table) {
$table->string('external_auth_id', 180)->default('');
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('roles', function (Blueprint $table) {
$table->dropColumn('external_auth_id');
<?php
+use Carbon\Carbon;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\DB;
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
// Convert the existing entity tables to InnoDB.
$permId = DB::table('role_permissions')->insertGetId([
'name' => 'bookshelf-' . $dbOpName,
'display_name' => $op . ' ' . 'BookShelves',
- 'created_at' => \Carbon\Carbon::now()->toDateTimeString(),
- 'updated_at' => \Carbon\Carbon::now()->toDateTimeString(),
+ 'created_at' => Carbon::now()->toDateTimeString(),
+ 'updated_at' => Carbon::now()->toDateTimeString(),
]);
$rowsToInsert = $roleIdsWithBookPermission->filter(function ($roleId) {
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
// Drop created permissions
$ops = ['bookshelf-create-all', 'bookshelf-create-own', 'bookshelf-delete-all', 'bookshelf-delete-own', 'bookshelf-update-all', 'bookshelf-update-own', 'bookshelf-view-all', 'bookshelf-view-own'];
use Carbon\Carbon;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::table('pages', function (Blueprint $table) {
$table->boolean('template')->default(false);
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('pages', function (Blueprint $table) {
$table->dropColumn('template');
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::create('user_invites', function (Blueprint $table) {
$table->increments('id');
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::dropIfExists('user_invites');
}
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Carbon;
+use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
// Add API tokens table
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
// Remove API tokens table
Schema::dropIfExists('api_tokens');
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::table('joint_permissions', function (Blueprint $table) {
$table->dropColumn('id');
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('joint_permissions', function (Blueprint $table) {
$table->dropPrimary(['role_id', 'entity_type', 'entity_id', 'action']);
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::table('roles', function (Blueprint $table) {
$table->dropColumn('name');
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('roles', function (Blueprint $table) {
$table->string('name')->index();
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::table('activities', function (Blueprint $table) {
$table->index('key');
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('activities', function (Blueprint $table) {
$table->dropIndex('activities_key_index');
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::table('bookshelves', function (Blueprint $table) {
$table->softDeletes();
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('bookshelves', function (Blueprint $table) {
$table->dropSoftDeletes();
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::create('deletions', function (Blueprint $table) {
$table->increments('id');
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::dropIfExists('deletions');
}
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::table('activities', function (Blueprint $table) {
$table->renameColumn('key', 'type');
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
DB::table('activities')
->whereNull('entity_id')
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
$tables = ['pages', 'books', 'chapters', 'bookshelves'];
foreach ($tables as $table) {
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
$tables = ['pages', 'books', 'chapters', 'bookshelves'];
foreach ($tables as $table) {
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::table('settings', function (Blueprint $table) {
$table->string('type', 50)->default('string');
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('settings', function (Blueprint $table) {
$table->dropColumn('type');
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Str;
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::table('users', function (Blueprint $table) {
$table->string('slug', 180);
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('users', function (Blueprint $table) {
$table->dropColumn('slug');
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::create('favourites', function (Blueprint $table) {
$table->increments('id');
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::dropIfExists('favourites');
}
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::create('mfa_values', function (Blueprint $table) {
$table->increments('id');
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::dropIfExists('mfa_values');
}
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::table('roles', function (Blueprint $table) {
$table->boolean('mfa_enforced');
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('roles', function (Blueprint $table) {
$table->dropColumn('mfa_enforced');
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
// Create new templates-manage permission and assign to admin role
$roles = DB::table('roles')->get('id');
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
// Remove content-export permission
$contentExportPermission = DB::table('role_permissions')
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::table('activities', function (Blueprint $table) {
$table->string('ip', 45)->after('user_id');
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('activities', function (Blueprint $table) {
$table->dropColumn('ip');
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::table('activities', function (Blueprint $table) {
$table->index('ip', 'activities_ip_index');
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('activities', function (Blueprint $table) {
$table->dropIndex('activities_ip_index');
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::create('webhooks', function (Blueprint $table) {
$table->increments('id');
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::dropIfExists('webhooks');
Schema::dropIfExists('webhook_tracked_events');
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::create('jobs', function (Blueprint $table) {
$table->bigIncrements('id');
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::dropIfExists('jobs');
}
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::create('failed_jobs', function (Blueprint $table) {
$table->id();
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::dropIfExists('failed_jobs');
}
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::table('webhooks', function (Blueprint $table) {
$table->unsignedInteger('timeout')->default(3);
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('webhooks', function (Blueprint $table) {
$table->dropColumn('timeout');
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
// Add the new 'editor' column to the pages table
Schema::table('pages', function (Blueprint $table) {
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
// Drop the new column from the pages table
Schema::table('pages', function (Blueprint $table) {
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
foreach ($this->columnsByTable as $table => $column) {
foreach ($this->changeMap as $oldVal => $newVal) {
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
foreach ($this->columnsByTable as $table => $column) {
foreach ($this->changeMap as $oldVal => $newVal) {
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
DB::table('joint_permissions')
->where('action', '!=', 'view')
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('joint_permissions', function (Blueprint $table) {
$table->string('action');
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::create('references', function (Blueprint $table) {
$table->id();
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::dropIfExists('references');
}
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
// This updates the 'type' field for images, uploaded as shelf cover images,
// to be cover_bookshelf instead of cover_book.
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
DB::table('images')
->where('type', '=', 'cover_bookshelf')
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
// Remove entries for non-existing roles (Caused by previous lack of deletion handling)
$roleIds = DB::table('roles')->pluck('id');
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
// Create old table structure for entity_permissions
Schema::create('old_entity_permissions', function (Blueprint $table) {
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
// Remove entity-permissions on non-restricted entities
$deleteInactiveEntityPermissions = function (string $table, string $morphClass) {
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
// Create restricted columns
$createRestrictedColumn = fn(Blueprint $table) => $table->boolean('restricted')->index()->default(0);
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
// Truncate before schema changes to avoid performance issues
// since we'll need to rebuild anyway.
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
DB::table('joint_permissions')->truncate();
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
$colorSettings = [
'app-color',
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
$colorSettings = [
'app-color-dark',
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::table('attachments', function (Blueprint $table) {
$table->text('path')->change();
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('attachments', function (Blueprint $table) {
$table->string('path')->change();
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::table('pages', function (Blueprint $table) {
$table->index('updated_at', 'pages_updated_at_index');
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('pages', function (Blueprint $table) {
$table->dropIndex('pages_updated_at_index');
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
$guestUserId = DB::table('users')
->where('system_name', '=', 'public')
/**
* Reverse the migrations.
- *
- * @return void
*/
public function down()
{
{
/**
* Run the migrations.
- *
- * @return void
*/
public function up()
{
/**
* Reverse the migrations.
- *
- * @return void
*/
public function down()
{
use Carbon\Carbon;
use Illuminate\Database\Migrations\Migration;
+use Illuminate\Support\Facades\DB;
return new class extends Migration
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
// Create new receive-notifications permission and assign to admin role
$permissionId = DB::table('role_permissions')->insertGetId([
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
$permission = DB::table('role_permissions')
->where('name', '=', 'receive-notifications')
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::create('watches', function (Blueprint $table) {
$table->increments('id');
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::dropIfExists('watches');
}
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::table('cache', function (Blueprint $table) {
$table->mediumText('value')->change();
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('cache', function (Blueprint $table) {
$table->text('value')->change();
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::table('books', function (Blueprint $table) {
$table->integer('default_template_id')->nullable()->default(null);
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('books', function (Blueprint $table) {
$table->dropColumn('default_template_id');
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
$addColumn = fn(Blueprint $table) => $table->text('description_html');
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
$removeColumn = fn(Blueprint $table) => $table->removeColumn('description_html');
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::table('chapters', function (Blueprint $table) {
$table->integer('default_template_id')->nullable()->default(null);
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('chapters', function (Blueprint $table) {
$table->dropColumn('default_template_id');
{
/**
* Run the migrations.
- *
- * @return void
*/
- public function up()
+ public function up(): void
{
Schema::table('views', function (Blueprint $table) {
$table->index(['updated_at'], 'views_updated_at_index');
/**
* Reverse the migrations.
- *
- * @return void
*/
- public function down()
+ public function down(): void
{
Schema::table('views', function (Blueprint $table) {
$table->dropIndex('views_updated_at_index');
app: path.join(__dirname, '../../resources/js/app.js'),
code: path.join(__dirname, '../../resources/js/code/index.mjs'),
'legacy-modes': path.join(__dirname, '../../resources/js/code/legacy-modes.mjs'),
+ markdown: path.join(__dirname, '../../resources/js/markdown/index.mjs'),
};
// Locate our output directory
format: 'esm',
minify: isProd,
logLevel: 'info',
+ banner: {
+ js: '// See the "/licenses" URI for full package license details',
+ css: '/* See the "/licenses" URI for full package license details */',
+ },
}).then(result => {
fs.writeFileSync('esbuild-meta.json', JSON.stringify(result.metafile));
}).catch(() => process.exit(1));
ENV APACHE_DOCUMENT_ROOT /app/public
WORKDIR /app
-# Install additional dependacnies and configure apache
-RUN apt-get update -y \
- && apt-get install -y git zip unzip libpng-dev libldap2-dev libzip-dev wait-for-it \
- && docker-php-ext-configure ldap --with-libdir="lib/$(gcc -dumpmachine)" \
- && docker-php-ext-install pdo_mysql gd ldap zip \
- && pecl install xdebug \
- && docker-php-ext-enable xdebug \
- && a2enmod rewrite \
- && sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf \
- && sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf
+RUN <<EOR
+# Install additional dependencies
+apt-get update
+apt-get install -y \
+ git \
+ zip \
+ unzip \
+ libpng-dev \
+ libldap2-dev \
+ libzip-dev \
+ wait-for-it
+rm -rf /var/lib/apt/lists/*
+
+# Configure apache
+docker-php-ext-configure ldap --with-libdir="lib/$(gcc -dumpmachine)"
+docker-php-ext-install pdo_mysql gd ldap zip
+pecl install xdebug
+docker-php-ext-enable xdebug
+a2enmod rewrite
+sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf
+sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf
# Install composer
-RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \
- && php composer-setup.php \
- && mv composer.phar /usr/bin/composer \
- && php -r "unlink('composer-setup.php');"
+curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
# Use the default production configuration and update it as required
-RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" \
- && sed -i 's/memory_limit = 128M/memory_limit = 512M/g' "$PHP_INI_DIR/php.ini"
+mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
+sed -i 's/memory_limit = 128M/memory_limit = 512M/g' "$PHP_INI_DIR/php.ini"
+EOR
--- /dev/null
+#!/usr/bin/env php
+<?php
+
+// This script reads the project composer.lock file to generate
+// clear license details for our PHP dependencies.
+
+declare(strict_types=1);
+require "gen-licenses-shared.php";
+
+$rootPath = dirname(__DIR__, 2);
+$outputPath = "{$rootPath}/dev/licensing/js-library-licenses.txt";
+$outputSeparator = "\n-----------\n";
+
+$packages = [
+ ...glob("{$rootPath}/node_modules/*/package.json"),
+ ...glob("{$rootPath}/node_modules/@*/*/package.json"),
+];
+
+$packageOutput = array_map(packageToOutput(...), $packages);
+
+$licenseInfo = implode($outputSeparator, $packageOutput) . "\n";
+file_put_contents($outputPath, $licenseInfo);
+
+echo "License information written to {$outputPath}\n";
+echo implode("\n", getWarnings()) . "\n";
+
+function packageToOutput(string $packagePath): string
+{
+ global $rootPath;
+ $package = json_decode(file_get_contents($packagePath));
+ $output = ["{$package->name}"];
+
+ $license = $package->license ?? '';
+ if ($license) {
+ $output[] = "License: {$license}";
+ } else {
+ warn("Package {$package->name}: No license found");
+ }
+
+ $licenseFile = findLicenseFile($package->name, $packagePath);
+ if ($licenseFile) {
+ $relLicenseFile = str_replace("{$rootPath}/", '', $licenseFile);
+ $output[] = "License File: {$relLicenseFile}";
+ $copyright = findCopyright($licenseFile);
+ if ($copyright) {
+ $output[] = "Copyright: {$copyright}";
+ } else {
+ warn("Package {$package->name}: no copyright found in its license");
+ }
+ }
+
+ $source = $package->repository->url ?? $package->repository ?? '';
+ if ($source) {
+ $output[] = "Source: {$source}";
+ }
+
+ $link = $package->homepage ?? $source;
+ if ($link) {
+ $output[] = "Link: {$link}";
+ }
+
+ return implode("\n", $output);
+}
--- /dev/null
+<?php
+
+declare(strict_types=1);
+
+$warnings = [];
+
+function findLicenseFile(string $packageName, string $packagePath): string
+{
+ $licenseNameOptions = [
+ 'license', 'LICENSE', 'License',
+ 'license.*', 'LICENSE.*', 'License.*',
+ 'license-*.*', 'LICENSE-*.*', 'License-*.*',
+ ];
+ $packageDir = dirname($packagePath);
+
+ $foundLicenses = [];
+ foreach ($licenseNameOptions as $option) {
+ $search = glob("{$packageDir}/$option");
+ array_push($foundLicenses, ...$search);
+ }
+
+ if (count($foundLicenses) > 1) {
+ warn("Package {$packageName}: more than one license file found");
+ }
+
+ if (count($foundLicenses) > 0) {
+ $fileName = basename($foundLicenses[0]);
+ return "{$packageDir}/{$fileName}";
+ }
+
+ warn("Package {$packageName}: no license files found");
+ return '';
+}
+
+function findCopyright(string $licenseFile): string
+{
+ $fileContents = file_get_contents($licenseFile);
+ $pattern = '/^.*?copyright (\(c\)|\d{4})[\s\S]*?(\n\n|\.\n)/mi';
+ $matches = [];
+ preg_match($pattern, $fileContents, $matches);
+ $copyright = trim($matches[0] ?? '');
+
+ if (str_contains($copyright, 'i.e.')) {
+ return '';
+ }
+
+ $emailPattern = '/([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,})/i';
+ return preg_replace_callback($emailPattern, obfuscateEmail(...), $copyright);
+}
+
+function obfuscateEmail(array $matches): string
+{
+ return preg_replace('/[^@.]/', '*', $matches[1]);
+}
+
+function warn(string $text): void
+{
+ global $warnings;
+ $warnings[] = "WARN:" . $text;
+}
+
+function getWarnings(): array
+{
+ global $warnings;
+ return $warnings;
+}
--- /dev/null
+#!/usr/bin/env php
+<?php
+
+// This script reads the project composer.lock file to generate
+// clear license details for our PHP dependencies.
+
+declare(strict_types=1);
+require "gen-licenses-shared.php";
+
+$rootPath = dirname(__DIR__, 2);
+$outputPath = "{$rootPath}/dev/licensing/php-library-licenses.txt";
+$composerLock = json_decode(file_get_contents($rootPath . "/composer.lock"));
+$outputSeparator = "\n-----------\n";
+
+$packages = $composerLock->packages;
+$packageOutput = array_map(packageToOutput(...), $packages);
+
+$licenseInfo = implode($outputSeparator, $packageOutput) . "\n";
+file_put_contents($outputPath, $licenseInfo);
+
+echo "License information written to {$outputPath}\n";
+echo implode("\n", getWarnings()) . "\n";
+
+function packageToOutput(stdClass $package) : string {
+ global $rootPath;
+ $output = ["{$package->name}"];
+
+ $licenses = is_array($package->license) ? $package->license : [$package->license];
+ $output[] = "License: " . implode(' ', $licenses);
+
+ $packagePath = "{$rootPath}/vendor/{$package->name}/package.json";
+ $licenseFile = findLicenseFile($package->name, $packagePath);
+ if ($licenseFile) {
+ $relLicenseFile = str_replace("{$rootPath}/", '', $licenseFile);
+ $output[] = "License File: {$relLicenseFile}";
+ $copyright = findCopyright($licenseFile);
+ if ($copyright) {
+ $output[] = "Copyright: {$copyright}";
+ } else {
+ warn("Package {$package->name}: no copyright found in its license");
+ }
+ }
+
+ $source = $package->source->url;
+ if ($source) {
+ $output[] = "Source: {$source}";
+ }
+
+ $link = $package->homepage ?? $package->source->url ?? '';
+ if ($link) {
+ $output[] = "Link: {$link}";
+ }
+
+ return implode("\n", $output);
+}
\ No newline at end of file
--- /dev/null
+acorn-jsx
+License: MIT
+License File: node_modules/acorn-jsx/LICENSE
+Copyright: Copyright (C) 2012-2017 by Ingvar Stepanyan
+Source: https://github.com/acornjs/acorn-jsx
+Link: https://github.com/acornjs/acorn-jsx
+-----------
+acorn
+License: MIT
+License File: node_modules/acorn/LICENSE
+Copyright: Copyright (C) 2012-2022 by various contributors (see AUTHORS)
+Source: https://github.com/acornjs/acorn.git
+Link: https://github.com/acornjs/acorn
+-----------
+ajv
+License: MIT
+License File: node_modules/ajv/LICENSE
+Copyright: Copyright (c) 2015-2017 Evgeny Poberezkin
+Source: https://github.com/ajv-validator/ajv.git
+Link: https://github.com/ajv-validator/ajv
+-----------
+ansi-regex
+License: MIT
+License File: node_modules/ansi-regex/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.com)
+Source: chalk/ansi-regex
+Link: chalk/ansi-regex
+-----------
+ansi-styles
+License: MIT
+License File: node_modules/ansi-styles/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.com)
+Source: chalk/ansi-styles
+Link: chalk/ansi-styles
+-----------
+anymatch
+License: ISC
+License File: node_modules/anymatch/LICENSE
+Copyright: Copyright (c) 2019 Elan Shanker, Paul Miller (https://paulmillr.com)
+Source: https://github.com/micromatch/anymatch
+Link: https://github.com/micromatch/anymatch
+-----------
+argparse
+License: Python-2.0
+License File: node_modules/argparse/LICENSE
+Source: nodeca/argparse
+Link: nodeca/argparse
+-----------
+array-buffer-byte-length
+License: MIT
+License File: node_modules/array-buffer-byte-length/LICENSE
+Copyright: Copyright (c) 2023 Inspect JS
+Source: git+https://github.com/inspect-js/array-buffer-byte-length.git
+Link: https://github.com/inspect-js/array-buffer-byte-length#readme
+-----------
+array-includes
+License: MIT
+License File: node_modules/array-includes/LICENSE
+Copyright: Copyright (C) 2015 Jordan Harband
+Source: git://github.com/es-shims/array-includes.git
+Link: git://github.com/es-shims/array-includes.git
+-----------
+array.prototype.filter
+License: MIT
+License File: node_modules/array.prototype.filter/LICENSE
+Copyright: Copyright (c) 2021 Jordan Harband
+Source: git+https://github.com/es-shims/Array.prototype.filter.git
+Link: https://github.com/es-shims/Array.prototype.filter#readme
+-----------
+array.prototype.findlastindex
+License: MIT
+License File: node_modules/array.prototype.findlastindex/LICENSE
+Copyright: Copyright (c) 2021 ECMAScript Shims
+Source: git+https://github.com/es-shims/Array.prototype.findLastIndex.git
+Link: https://github.com/es-shims/Array.prototype.findLastIndex#readme
+-----------
+array.prototype.flat
+License: MIT
+License File: node_modules/array.prototype.flat/LICENSE
+Copyright: Copyright (c) 2017 ECMAScript Shims
+Source: git://github.com/es-shims/Array.prototype.flat.git
+Link: git://github.com/es-shims/Array.prototype.flat.git
+-----------
+array.prototype.flatmap
+License: MIT
+License File: node_modules/array.prototype.flatmap/LICENSE
+Copyright: Copyright (c) 2017 ECMAScript Shims
+Source: git://github.com/es-shims/Array.prototype.flatMap.git
+Link: git://github.com/es-shims/Array.prototype.flatMap.git
+-----------
+arraybuffer.prototype.slice
+License: MIT
+License File: node_modules/arraybuffer.prototype.slice/LICENSE
+Copyright: Copyright (c) 2023 ECMAScript Shims
+Source: git+https://github.com/es-shims/ArrayBuffer.prototype.slice.git
+Link: https://github.com/es-shims/ArrayBuffer.prototype.slice#readme
+-----------
+available-typed-arrays
+License: MIT
+License File: node_modules/available-typed-arrays/LICENSE
+Copyright: Copyright (c) 2020 Inspect JS
+Source: git+https://github.com/inspect-js/available-typed-arrays.git
+Link: https://github.com/inspect-js/available-typed-arrays#readme
+-----------
+balanced-match
+License: MIT
+License File: node_modules/balanced-match/LICENSE.md
+Copyright: Copyright (c) 2013 Julian Gruber <******@************.***>
+Source: git://github.com/juliangruber/balanced-match.git
+Link: https://github.com/juliangruber/balanced-match
+-----------
+binary-extensions
+License: MIT
+License File: node_modules/binary-extensions/license
+Copyright: Copyright (c) 2019 Sindre Sorhus <************@*****.***> (https://sindresorhus.com), Paul Miller (https://paulmillr.com)
+Source: sindresorhus/binary-extensions
+Link: sindresorhus/binary-extensions
+-----------
+brace-expansion
+License: MIT
+License File: node_modules/brace-expansion/LICENSE
+Copyright: Copyright (c) 2013 Julian Gruber <******@************.***>
+Source: git://github.com/juliangruber/brace-expansion.git
+Link: https://github.com/juliangruber/brace-expansion
+-----------
+braces
+License: MIT
+License File: node_modules/braces/LICENSE
+Copyright: Copyright (c) 2014-2018, Jon Schlinkert.
+Source: micromatch/braces
+Link: https://github.com/micromatch/braces
+-----------
+call-bind
+License: MIT
+License File: node_modules/call-bind/LICENSE
+Copyright: Copyright (c) 2020 Jordan Harband
+Source: git+https://github.com/ljharb/call-bind.git
+Link: https://github.com/ljharb/call-bind#readme
+-----------
+callsites
+License: MIT
+License File: node_modules/callsites/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.com)
+Source: sindresorhus/callsites
+Link: sindresorhus/callsites
+-----------
+camelcase
+License: MIT
+License File: node_modules/camelcase/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.com)
+Source: sindresorhus/camelcase
+Link: sindresorhus/camelcase
+-----------
+chalk
+License: MIT
+License File: node_modules/chalk/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.com)
+Source: chalk/chalk
+Link: chalk/chalk
+-----------
+chokidar-cli
+License: MIT
+License File: node_modules/chokidar-cli/LICENSE
+Copyright: Copyright (c) 2015 Kimmo Brunfeldt
+Source: https://github.com/open-npm-tools/chokidar-cli.git
+Link: https://github.com/open-npm-tools/chokidar-cli
+-----------
+chokidar
+License: MIT
+License File: node_modules/chokidar/LICENSE
+Copyright: Copyright (c) 2012-2019 Paul Miller (https://paulmillr.com), Elan Shanker
+Source: git+https://github.com/paulmillr/chokidar.git
+Link: https://github.com/paulmillr/chokidar
+-----------
+cliui
+License: ISC
+License File: node_modules/cliui/LICENSE.txt
+Copyright: Copyright (c) 2015, Contributors
+Source: http://github.com/yargs/cliui.git
+Link: http://github.com/yargs/cliui.git
+-----------
+codemirror
+License: MIT
+License File: node_modules/codemirror/LICENSE
+Copyright: Copyright (C) 2018-2021 by Marijn Haverbeke <*******@*****.***> and others
+Source: https://github.com/codemirror/basic-setup.git
+Link: https://github.com/codemirror/basic-setup.git
+-----------
+color-convert
+License: MIT
+License File: node_modules/color-convert/LICENSE
+Copyright: Copyright (c) 2011-2016 Heather Arthur <**********@*****.***>
+Source: Qix-/color-convert
+Link: Qix-/color-convert
+-----------
+color-name
+License: MIT
+License File: node_modules/color-name/LICENSE
+Link: https://github.com/colorjs/color-name
+-----------
+concat-map
+License: MIT
+License File: node_modules/concat-map/LICENSE
+Source: git://github.com/substack/node-concat-map.git
+Link: git://github.com/substack/node-concat-map.git
+-----------
+confusing-browser-globals
+License: MIT
+License File: node_modules/confusing-browser-globals/LICENSE
+Copyright: Copyright (c) 2013-present, Facebook, Inc.
+Source: https://github.com/facebook/create-react-app.git
+Link: https://github.com/facebook/create-react-app.git
+-----------
+crelt
+License: MIT
+License File: node_modules/crelt/LICENSE
+Copyright: Copyright (C) 2020 by Marijn Haverbeke <******@*********.******>
+Source: git+https://github.com/marijnh/crelt.git
+Link: https://github.com/marijnh/crelt#readme
+-----------
+cross-spawn
+License: MIT
+License File: node_modules/cross-spawn/LICENSE
+Copyright: Copyright (c) 2018 Made With MOXY Lda <*****@****.******>
+Link: https://github.com/moxystudio/node-cross-spawn
+-----------
+debug
+License: MIT
+License File: node_modules/debug/LICENSE
+Copyright: Copyright (c) 2014-2017 TJ Holowaychuk <**@************.**>
+Copyright (c) 2018-2021 Josh Junon
+Source: git://github.com/debug-js/debug.git
+Link: git://github.com/debug-js/debug.git
+-----------
+decamelize
+License: MIT
+License File: node_modules/decamelize/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.com)
+Source: sindresorhus/decamelize
+Link: sindresorhus/decamelize
+-----------
+deep-is
+License: MIT
+License File: node_modules/deep-is/LICENSE
+Copyright: Copyright (c) 2012, 2013 Thorsten Lorenz <********@***.**>
+Copyright (c) 2012 James Halliday <****@********.***>
+Copyright (c) 2009 Thomas Robinson <280north.com>
+Source: http://github.com/thlorenz/deep-is.git
+Link: http://github.com/thlorenz/deep-is.git
+-----------
+define-data-property
+License: MIT
+License File: node_modules/define-data-property/LICENSE
+Copyright: Copyright (c) 2023 Jordan Harband
+Source: git+https://github.com/ljharb/define-data-property.git
+Link: https://github.com/ljharb/define-data-property#readme
+-----------
+define-properties
+License: MIT
+License File: node_modules/define-properties/LICENSE
+Copyright: Copyright (C) 2015 Jordan Harband
+Source: git://github.com/ljharb/define-properties.git
+Link: git://github.com/ljharb/define-properties.git
+-----------
+doctrine
+License: Apache-2.0
+License File: node_modules/doctrine/LICENSE
+Source: eslint/doctrine
+Link: https://github.com/eslint/doctrine
+-----------
+emoji-regex
+License: MIT
+License File: node_modules/emoji-regex/LICENSE-MIT.txt
+Source: https://github.com/mathiasbynens/emoji-regex.git
+Link: https://mths.be/emoji-regex
+-----------
+entities
+License: BSD-2-Clause
+License File: node_modules/entities/LICENSE
+Copyright: Copyright (c) Felix Böhm
+All rights reserved.
+Source: git://github.com/fb55/entities.git
+Link: git://github.com/fb55/entities.git
+-----------
+error-ex
+License: MIT
+License File: node_modules/error-ex/LICENSE
+Copyright: Copyright (c) 2015 JD Ballard
+Source: qix-/node-error-ex
+Link: qix-/node-error-ex
+-----------
+es-abstract
+License: MIT
+License File: node_modules/es-abstract/LICENSE
+Copyright: Copyright (C) 2015 Jordan Harband
+Source: git://github.com/ljharb/es-abstract.git
+Link: git://github.com/ljharb/es-abstract.git
+-----------
+es-array-method-boxes-properly
+License: MIT
+License File: node_modules/es-array-method-boxes-properly/LICENSE
+Copyright: Copyright (c) 2019 Jordan Harband
+Source: git+https://github.com/ljharb/es-array-method-boxes-properly.git
+Link: https://github.com/ljharb/es-array-method-boxes-properly#readme
+-----------
+es-define-property
+License: MIT
+License File: node_modules/es-define-property/LICENSE
+Copyright: Copyright (c) 2024 Jordan Harband
+Source: git+https://github.com/ljharb/es-define-property.git
+Link: https://github.com/ljharb/es-define-property#readme
+-----------
+es-errors
+License: MIT
+License File: node_modules/es-errors/LICENSE
+Copyright: Copyright (c) 2024 Jordan Harband
+Source: git+https://github.com/ljharb/es-errors.git
+Link: https://github.com/ljharb/es-errors#readme
+-----------
+es-set-tostringtag
+License: MIT
+License File: node_modules/es-set-tostringtag/LICENSE
+Copyright: Copyright (c) 2022 ECMAScript Shims
+Source: git+https://github.com/es-shims/es-set-tostringtag.git
+Link: https://github.com/es-shims/es-set-tostringtag#readme
+-----------
+es-shim-unscopables
+License: MIT
+License File: node_modules/es-shim-unscopables/LICENSE
+Copyright: Copyright (c) 2022 Jordan Harband
+Source: git+https://github.com/ljharb/es-shim-unscopables.git
+Link: https://github.com/ljharb/es-shim-unscopables#readme
+-----------
+es-to-primitive
+License: MIT
+License File: node_modules/es-to-primitive/LICENSE
+Copyright: Copyright (c) 2015 Jordan Harband
+Source: git://github.com/ljharb/es-to-primitive.git
+Link: git://github.com/ljharb/es-to-primitive.git
+-----------
+esbuild
+License: MIT
+License File: node_modules/esbuild/LICENSE.md
+Copyright: Copyright (c) 2020 Evan Wallace
+Source: git+https://github.com/evanw/esbuild.git
+Link: git+https://github.com/evanw/esbuild.git
+-----------
+escape-string-regexp
+License: MIT
+License File: node_modules/escape-string-regexp/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (https://sindresorhus.com)
+Source: sindresorhus/escape-string-regexp
+Link: sindresorhus/escape-string-regexp
+-----------
+eslint-config-airbnb-base
+License: MIT
+License File: node_modules/eslint-config-airbnb-base/LICENSE.md
+Copyright: Copyright (c) 2012 Airbnb
+Source: https://github.com/airbnb/javascript
+Link: https://github.com/airbnb/javascript
+-----------
+eslint-import-resolver-node
+License: MIT
+License File: node_modules/eslint-import-resolver-node/LICENSE
+Copyright: Copyright (c) 2015 Ben Mosher
+Source: https://github.com/import-js/eslint-plugin-import
+Link: https://github.com/import-js/eslint-plugin-import
+-----------
+eslint-module-utils
+License: MIT
+License File: node_modules/eslint-module-utils/LICENSE
+Copyright: Copyright (c) 2015 Ben Mosher
+Source: git+https://github.com/import-js/eslint-plugin-import.git
+Link: https://github.com/import-js/eslint-plugin-import#readme
+-----------
+eslint-plugin-import
+License: MIT
+License File: node_modules/eslint-plugin-import/LICENSE
+Copyright: Copyright (c) 2015 Ben Mosher
+Source: https://github.com/import-js/eslint-plugin-import
+Link: https://github.com/import-js/eslint-plugin-import
+-----------
+eslint-scope
+License: BSD-2-Clause
+License File: node_modules/eslint-scope/LICENSE
+Copyright: Copyright (C) 2012-2013 Yusuke Suzuki (twitter: @Constellation) and other contributors.
+Source: eslint/eslint-scope
+Link: http://github.com/eslint/eslint-scope
+-----------
+eslint-visitor-keys
+License: Apache-2.0
+License File: node_modules/eslint-visitor-keys/LICENSE
+Source: eslint/eslint-visitor-keys
+Link: https://github.com/eslint/eslint-visitor-keys#readme
+-----------
+eslint
+License: MIT
+License File: node_modules/eslint/LICENSE
+Source: eslint/eslint
+Link: https://eslint.org
+-----------
+espree
+License: BSD-2-Clause
+License File: node_modules/espree/LICENSE
+Copyright: Copyright (c) Open JS Foundation
+All rights reserved.
+Source: eslint/espree
+Link: https://github.com/eslint/espree
+-----------
+esquery
+License: BSD-3-Clause
+License File: node_modules/esquery/license.txt
+Copyright: Copyright (c) 2013, Joel Feenstra
+All rights reserved.
+Source: https://github.com/estools/esquery.git
+Link: https://github.com/estools/esquery/
+-----------
+esrecurse
+License: BSD-2-Clause
+Source: https://github.com/estools/esrecurse.git
+Link: https://github.com/estools/esrecurse
+-----------
+estraverse
+License: BSD-2-Clause
+License File: node_modules/estraverse/LICENSE.BSD
+Source: http://github.com/estools/estraverse.git
+Link: https://github.com/estools/estraverse
+-----------
+esutils
+License: BSD-2-Clause
+License File: node_modules/esutils/LICENSE.BSD
+Source: http://github.com/estools/esutils.git
+Link: https://github.com/estools/esutils
+-----------
+fast-deep-equal
+License: MIT
+License File: node_modules/fast-deep-equal/LICENSE
+Copyright: Copyright (c) 2017 Evgeny Poberezkin
+Source: git+https://github.com/epoberezkin/fast-deep-equal.git
+Link: https://github.com/epoberezkin/fast-deep-equal#readme
+-----------
+fast-json-stable-stringify
+License: MIT
+License File: node_modules/fast-json-stable-stringify/LICENSE
+Copyright: Copyright (c) 2017 Evgeny Poberezkin
+Copyright (c) 2013 James Halliday
+Source: git://github.com/epoberezkin/fast-json-stable-stringify.git
+Link: https://github.com/epoberezkin/fast-json-stable-stringify
+-----------
+fast-levenshtein
+License: MIT
+License File: node_modules/fast-levenshtein/LICENSE.md
+Copyright: Copyright (c) 2013 [Ramesh Nair](http://www.hiddentao.com/)
+Source: https://github.com/hiddentao/fast-levenshtein.git
+Link: https://github.com/hiddentao/fast-levenshtein.git
+-----------
+fastq
+License: ISC
+License File: node_modules/fastq/LICENSE
+Copyright: Copyright (c) 2015-2020, Matteo Collina <******.*******@*****.***>
+Source: git+https://github.com/mcollina/fastq.git
+Link: https://github.com/mcollina/fastq#readme
+-----------
+file-entry-cache
+License: MIT
+License File: node_modules/file-entry-cache/LICENSE
+Copyright: Copyright (c) 2015 Roy Riojas
+Source: royriojas/file-entry-cache
+Link: royriojas/file-entry-cache
+-----------
+fill-range
+License: MIT
+License File: node_modules/fill-range/LICENSE
+Copyright: Copyright (c) 2014-present, Jon Schlinkert.
+Source: jonschlinkert/fill-range
+Link: https://github.com/jonschlinkert/fill-range
+-----------
+find-up
+License: MIT
+License File: node_modules/find-up/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (https://sindresorhus.com)
+Source: sindresorhus/find-up
+Link: sindresorhus/find-up
+-----------
+flat-cache
+License: MIT
+License File: node_modules/flat-cache/LICENSE
+Copyright: Copyright (c) Roy Riojas and Jared Wray
+Source: jaredwray/flat-cache
+Link: jaredwray/flat-cache
+-----------
+flatted
+License: ISC
+License File: node_modules/flatted/LICENSE
+Copyright: Copyright (c) 2018-2020, Andrea Giammarchi, @WebReflection
+Source: git+https://github.com/WebReflection/flatted.git
+Link: https://github.com/WebReflection/flatted#readme
+-----------
+for-each
+License: MIT
+License File: node_modules/for-each/LICENSE
+Copyright: Copyright (c) 2012 Raynos.
+Source: git://github.com/Raynos/for-each.git
+Link: https://github.com/Raynos/for-each
+-----------
+fs.realpath
+License: ISC
+License File: node_modules/fs.realpath/LICENSE
+Copyright: Copyright (c) Isaac Z. Schlueter and Contributors
+Source: git+https://github.com/isaacs/fs.realpath.git
+Link: git+https://github.com/isaacs/fs.realpath.git
+-----------
+function-bind
+License: MIT
+License File: node_modules/function-bind/LICENSE
+Copyright: Copyright (c) 2013 Raynos.
+Source: https://github.com/Raynos/function-bind.git
+Link: https://github.com/Raynos/function-bind
+-----------
+function.prototype.name
+License: MIT
+License File: node_modules/function.prototype.name/LICENSE
+Copyright: Copyright (c) 2016 Jordan Harband
+Source: git://github.com/es-shims/Function.prototype.name.git
+Link: git://github.com/es-shims/Function.prototype.name.git
+-----------
+functions-have-names
+License: MIT
+License File: node_modules/functions-have-names/LICENSE
+Copyright: Copyright (c) 2019 Jordan Harband
+Source: git+https://github.com/inspect-js/functions-have-names.git
+Link: https://github.com/inspect-js/functions-have-names#readme
+-----------
+get-caller-file
+License: ISC
+License File: node_modules/get-caller-file/LICENSE.md
+Copyright: Copyright 2018 Stefan Penner
+Source: git+https://github.com/stefanpenner/get-caller-file.git
+Link: https://github.com/stefanpenner/get-caller-file#readme
+-----------
+get-intrinsic
+License: MIT
+License File: node_modules/get-intrinsic/LICENSE
+Copyright: Copyright (c) 2020 Jordan Harband
+Source: git+https://github.com/ljharb/get-intrinsic.git
+Link: https://github.com/ljharb/get-intrinsic#readme
+-----------
+get-symbol-description
+License: MIT
+License File: node_modules/get-symbol-description/LICENSE
+Copyright: Copyright (c) 2021 Inspect JS
+Source: git+https://github.com/inspect-js/get-symbol-description.git
+Link: https://github.com/inspect-js/get-symbol-description#readme
+-----------
+glob-parent
+License: ISC
+License File: node_modules/glob-parent/LICENSE
+Copyright: Copyright (c) 2015, 2019 Elan Shanker
+Source: gulpjs/glob-parent
+Link: gulpjs/glob-parent
+-----------
+glob
+License: ISC
+License File: node_modules/glob/LICENSE
+Copyright: Copyright (c) Isaac Z. Schlueter and Contributors
+Source: git://github.com/isaacs/node-glob.git
+Link: git://github.com/isaacs/node-glob.git
+-----------
+globals
+License: MIT
+License File: node_modules/globals/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (https://sindresorhus.com)
+Source: sindresorhus/globals
+Link: sindresorhus/globals
+-----------
+globalthis
+License: MIT
+License File: node_modules/globalthis/LICENSE
+Copyright: Copyright (c) 2016 Jordan Harband
+Source: git://github.com/ljharb/System.global.git
+Link: git://github.com/ljharb/System.global.git
+-----------
+gopd
+License: MIT
+License File: node_modules/gopd/LICENSE
+Copyright: Copyright (c) 2022 Jordan Harband
+Source: git+https://github.com/ljharb/gopd.git
+Link: https://github.com/ljharb/gopd#readme
+-----------
+graceful-fs
+License: ISC
+License File: node_modules/graceful-fs/LICENSE
+Copyright: Copyright (c) 2011-2022 Isaac Z. Schlueter, Ben Noordhuis, and Contributors
+Source: https://github.com/isaacs/node-graceful-fs
+Link: https://github.com/isaacs/node-graceful-fs
+-----------
+graphemer
+License: MIT
+License File: node_modules/graphemer/LICENSE
+Copyright: Copyright 2020 Filament (Anomalous Technologies Limited)
+Source: https://github.com/flmnt/graphemer.git
+Link: https://github.com/flmnt/graphemer
+-----------
+has-bigints
+License: MIT
+License File: node_modules/has-bigints/LICENSE
+Copyright: Copyright (c) 2019 Jordan Harband
+Source: git+https://github.com/ljharb/has-bigints.git
+Link: https://github.com/ljharb/has-bigints#readme
+-----------
+has-flag
+License: MIT
+License File: node_modules/has-flag/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.com)
+Source: sindresorhus/has-flag
+Link: sindresorhus/has-flag
+-----------
+has-property-descriptors
+License: MIT
+License File: node_modules/has-property-descriptors/LICENSE
+Copyright: Copyright (c) 2022 Inspect JS
+Source: git+https://github.com/inspect-js/has-property-descriptors.git
+Link: https://github.com/inspect-js/has-property-descriptors#readme
+-----------
+has-proto
+License: MIT
+License File: node_modules/has-proto/LICENSE
+Copyright: Copyright (c) 2022 Inspect JS
+Source: git+https://github.com/inspect-js/has-proto.git
+Link: https://github.com/inspect-js/has-proto#readme
+-----------
+has-symbols
+License: MIT
+License File: node_modules/has-symbols/LICENSE
+Copyright: Copyright (c) 2016 Jordan Harband
+Source: git://github.com/inspect-js/has-symbols.git
+Link: https://github.com/ljharb/has-symbols#readme
+-----------
+has-tostringtag
+License: MIT
+License File: node_modules/has-tostringtag/LICENSE
+Copyright: Copyright (c) 2021 Inspect JS
+Source: git+https://github.com/inspect-js/has-tostringtag.git
+Link: https://github.com/inspect-js/has-tostringtag#readme
+-----------
+hasown
+License: MIT
+License File: node_modules/hasown/LICENSE
+Copyright: Copyright (c) Jordan Harband and contributors
+Source: git+https://github.com/inspect-js/hasOwn.git
+Link: https://github.com/inspect-js/hasOwn#readme
+-----------
+hosted-git-info
+License: ISC
+License File: node_modules/hosted-git-info/LICENSE
+Copyright: Copyright (c) 2015, Rebecca Turner
+Source: git+https://github.com/npm/hosted-git-info.git
+Link: https://github.com/npm/hosted-git-info
+-----------
+idb-keyval
+License: Apache-2.0
+Source: git+https://github.com/jakearchibald/idb-keyval.git
+Link: https://github.com/jakearchibald/idb-keyval#readme
+-----------
+ignore
+License: MIT
+-----------
+immutable
+License: MIT
+License File: node_modules/immutable/LICENSE
+Copyright: Copyright (c) 2014-present, Lee Byron and other contributors.
+Source: git://github.com/immutable-js/immutable-js.git
+Link: https://immutable-js.com
+-----------
+import-fresh
+License: MIT
+License File: node_modules/import-fresh/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (https://sindresorhus.com)
+Source: sindresorhus/import-fresh
+Link: sindresorhus/import-fresh
+-----------
+imurmurhash
+License: MIT
+Source: https://github.com/jensyt/imurmurhash-js
+Link: https://github.com/jensyt/imurmurhash-js
+-----------
+inflight
+License: ISC
+License File: node_modules/inflight/LICENSE
+Copyright: Copyright (c) Isaac Z. Schlueter
+Source: https://github.com/npm/inflight.git
+Link: https://github.com/isaacs/inflight
+-----------
+inherits
+License: ISC
+License File: node_modules/inherits/LICENSE
+Copyright: Copyright (c) Isaac Z. Schlueter
+Source: git://github.com/isaacs/inherits
+Link: git://github.com/isaacs/inherits
+-----------
+internal-slot
+License: MIT
+License File: node_modules/internal-slot/LICENSE
+Copyright: Copyright (c) 2019 Jordan Harband
+Source: git+https://github.com/ljharb/internal-slot.git
+Link: https://github.com/ljharb/internal-slot#readme
+-----------
+is-array-buffer
+License: MIT
+License File: node_modules/is-array-buffer/LICENSE
+Copyright: Copyright (c) 2015 Chen Gengyuan, Inspect JS
+Source: git+https://github.com/inspect-js/is-array-buffer.git
+Link: https://github.com/inspect-js/is-array-buffer#readme
+-----------
+is-arrayish
+License: MIT
+License File: node_modules/is-arrayish/LICENSE
+Copyright: Copyright (c) 2015 JD Ballard
+Source: https://github.com/qix-/node-is-arrayish.git
+Link: https://github.com/qix-/node-is-arrayish.git
+-----------
+is-bigint
+License: MIT
+License File: node_modules/is-bigint/LICENSE
+Copyright: Copyright (c) 2018 Jordan Harband
+Source: git+https://github.com/inspect-js/is-bigint.git
+Link: https://github.com/inspect-js/is-bigint#readme
+-----------
+is-binary-path
+License: MIT
+License File: node_modules/is-binary-path/license
+Copyright: Copyright (c) 2019 Sindre Sorhus <************@*****.***> (https://sindresorhus.com), Paul Miller (https://paulmillr.com)
+Source: sindresorhus/is-binary-path
+Link: sindresorhus/is-binary-path
+-----------
+is-boolean-object
+License: MIT
+License File: node_modules/is-boolean-object/LICENSE
+Copyright: Copyright (c) 2015 Jordan Harband
+Source: git://github.com/inspect-js/is-boolean-object.git
+Link: git://github.com/inspect-js/is-boolean-object.git
+-----------
+is-callable
+License: MIT
+License File: node_modules/is-callable/LICENSE
+Copyright: Copyright (c) 2015 Jordan Harband
+Source: git://github.com/inspect-js/is-callable.git
+Link: git://github.com/inspect-js/is-callable.git
+-----------
+is-core-module
+License: MIT
+License File: node_modules/is-core-module/LICENSE
+Copyright: Copyright (c) 2014 Dave Justice
+Source: git+https://github.com/inspect-js/is-core-module.git
+Link: https://github.com/inspect-js/is-core-module
+-----------
+is-date-object
+License: MIT
+License File: node_modules/is-date-object/LICENSE
+Copyright: Copyright (c) 2015 Jordan Harband
+Source: git://github.com/inspect-js/is-date-object.git
+Link: git://github.com/inspect-js/is-date-object.git
+-----------
+is-extglob
+License: MIT
+License File: node_modules/is-extglob/LICENSE
+Copyright: Copyright (c) 2014-2016, Jon Schlinkert
+Source: jonschlinkert/is-extglob
+Link: https://github.com/jonschlinkert/is-extglob
+-----------
+is-fullwidth-code-point
+License: MIT
+License File: node_modules/is-fullwidth-code-point/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.com)
+Source: sindresorhus/is-fullwidth-code-point
+Link: sindresorhus/is-fullwidth-code-point
+-----------
+is-glob
+License: MIT
+License File: node_modules/is-glob/LICENSE
+Copyright: Copyright (c) 2014-2017, Jon Schlinkert.
+Source: micromatch/is-glob
+Link: https://github.com/micromatch/is-glob
+-----------
+is-negative-zero
+License: MIT
+License File: node_modules/is-negative-zero/LICENSE
+Copyright: Copyright (c) 2014 Jordan Harband
+Source: git://github.com/inspect-js/is-negative-zero.git
+Link: https://github.com/inspect-js/is-negative-zero
+-----------
+is-number-object
+License: MIT
+License File: node_modules/is-number-object/LICENSE
+Copyright: Copyright (c) 2015 Jordan Harband
+Source: git://github.com/inspect-js/is-number-object.git
+Link: https://github.com/inspect-js/is-number-object#readme
+-----------
+is-number
+License: MIT
+License File: node_modules/is-number/LICENSE
+Copyright: Copyright (c) 2014-present, Jon Schlinkert.
+Source: jonschlinkert/is-number
+Link: https://github.com/jonschlinkert/is-number
+-----------
+is-path-inside
+License: MIT
+License File: node_modules/is-path-inside/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.com)
+Source: sindresorhus/is-path-inside
+Link: sindresorhus/is-path-inside
+-----------
+is-regex
+License: MIT
+License File: node_modules/is-regex/LICENSE
+Copyright: Copyright (c) 2014 Jordan Harband
+Source: git://github.com/inspect-js/is-regex.git
+Link: https://github.com/inspect-js/is-regex
+-----------
+is-shared-array-buffer
+License: MIT
+License File: node_modules/is-shared-array-buffer/LICENSE
+Copyright: Copyright (c) 2021 Inspect JS
+Source: git+https://github.com/inspect-js/is-shared-array-buffer.git
+Link: https://github.com/inspect-js/is-shared-array-buffer#readme
+-----------
+is-string
+License: MIT
+License File: node_modules/is-string/LICENSE
+Copyright: Copyright (c) 2015 Jordan Harband
+Source: git://github.com/ljharb/is-string.git
+Link: git://github.com/ljharb/is-string.git
+-----------
+is-symbol
+License: MIT
+License File: node_modules/is-symbol/LICENSE
+Copyright: Copyright (c) 2015 Jordan Harband
+Source: git://github.com/inspect-js/is-symbol.git
+Link: git://github.com/inspect-js/is-symbol.git
+-----------
+is-typed-array
+License: MIT
+License File: node_modules/is-typed-array/LICENSE
+Copyright: Copyright (c) 2015 Jordan Harband
+Source: git://github.com/inspect-js/is-typed-array.git
+Link: git://github.com/inspect-js/is-typed-array.git
+-----------
+is-weakref
+License: MIT
+License File: node_modules/is-weakref/LICENSE
+Copyright: Copyright (c) 2020 Inspect JS
+Source: git+https://github.com/inspect-js/is-weakref.git
+Link: https://github.com/inspect-js/is-weakref#readme
+-----------
+isarray
+License: MIT
+License File: node_modules/isarray/LICENSE
+Copyright: Copyright (c) 2013 Julian Gruber <******@************.***>
+Source: git://github.com/juliangruber/isarray.git
+Link: https://github.com/juliangruber/isarray
+-----------
+isexe
+License: ISC
+License File: node_modules/isexe/LICENSE
+Copyright: Copyright (c) Isaac Z. Schlueter and Contributors
+Source: git+https://github.com/isaacs/isexe.git
+Link: https://github.com/isaacs/isexe#readme
+-----------
+js-yaml
+License: MIT
+License File: node_modules/js-yaml/LICENSE
+Copyright: Copyright (C) 2011-2015 by Vitaly Puzrin
+Source: nodeca/js-yaml
+Link: nodeca/js-yaml
+-----------
+json-buffer
+License: MIT
+License File: node_modules/json-buffer/LICENSE
+Copyright: Copyright (c) 2013 Dominic Tarr
+Source: git://github.com/dominictarr/json-buffer.git
+Link: https://github.com/dominictarr/json-buffer
+-----------
+json-parse-better-errors
+License: MIT
+License File: node_modules/json-parse-better-errors/LICENSE.md
+Copyright: Copyright 2017 Kat Marchán
+Source: https://github.com/zkat/json-parse-better-errors
+Link: https://github.com/zkat/json-parse-better-errors
+-----------
+json-schema-traverse
+License: MIT
+License File: node_modules/json-schema-traverse/LICENSE
+Copyright: Copyright (c) 2017 Evgeny Poberezkin
+Source: git+https://github.com/epoberezkin/json-schema-traverse.git
+Link: https://github.com/epoberezkin/json-schema-traverse#readme
+-----------
+json-stable-stringify-without-jsonify
+License: MIT
+License File: node_modules/json-stable-stringify-without-jsonify/LICENSE
+Source: git://github.com/samn/json-stable-stringify.git
+Link: https://github.com/samn/json-stable-stringify
+-----------
+json5
+License: MIT
+License File: node_modules/json5/LICENSE.md
+Copyright: Copyright (c) 2012-2018 Aseem Kishore, and [others].
+Source: git+https://github.com/json5/json5.git
+Link: http://json5.org/
+-----------
+keyv
+License: MIT
+Source: git+https://github.com/jaredwray/keyv.git
+Link: https://github.com/jaredwray/keyv
+-----------
+levn
+License: MIT
+License File: node_modules/levn/LICENSE
+Copyright: Copyright (c) George Zahariev
+Source: git://github.com/gkz/levn.git
+Link: https://github.com/gkz/levn
+-----------
+linkify-it
+License: MIT
+License File: node_modules/linkify-it/LICENSE
+Copyright: Copyright (c) 2015 Vitaly Puzrin.
+Source: markdown-it/linkify-it
+Link: markdown-it/linkify-it
+-----------
+livereload-js
+License: MIT
+License File: node_modules/livereload-js/LICENSE
+Copyright: Copyright (c) 2010-2012 Andrey Tarantsov
+Source: git://github.com/livereload/livereload-js.git
+Link: https://github.com/livereload/livereload-js
+-----------
+livereload
+License: MIT
+License File: node_modules/livereload/LICENSE
+Copyright: Copyright (c) 2010 Joshua Peek
+Source: http://github.com/napcs/node-livereload.git
+Link: http://github.com/napcs/node-livereload.git
+-----------
+load-json-file
+License: MIT
+License File: node_modules/load-json-file/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.com)
+Source: sindresorhus/load-json-file
+Link: sindresorhus/load-json-file
+-----------
+locate-path
+License: MIT
+License File: node_modules/locate-path/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (https://sindresorhus.com)
+Source: sindresorhus/locate-path
+Link: sindresorhus/locate-path
+-----------
+lodash.debounce
+License: MIT
+License File: node_modules/lodash.debounce/LICENSE
+Source: lodash/lodash
+Link: https://lodash.com/
+-----------
+lodash.merge
+License: MIT
+License File: node_modules/lodash.merge/LICENSE
+Source: lodash/lodash
+Link: https://lodash.com/
+-----------
+lodash.throttle
+License: MIT
+License File: node_modules/lodash.throttle/LICENSE
+Source: lodash/lodash
+Link: https://lodash.com/
+-----------
+markdown-it-task-lists
+License: ISC
+License File: node_modules/markdown-it-task-lists/LICENSE
+Copyright: Copyright (c) 2016, Revin Guillen
+Link: https://github.com/revin/markdown-it-task-lists#readme
+-----------
+markdown-it
+License: MIT
+License File: node_modules/markdown-it/LICENSE
+Copyright: Copyright (c) 2014 Vitaly Puzrin, Alex Kocharin.
+Source: markdown-it/markdown-it
+Link: markdown-it/markdown-it
+-----------
+mdurl
+License: MIT
+License File: node_modules/mdurl/LICENSE
+Copyright: Copyright (c) 2015 Vitaly Puzrin, Alex Kocharin.
+Source: markdown-it/mdurl
+Link: markdown-it/mdurl
+-----------
+memorystream
+License File: node_modules/memorystream/LICENSE
+Copyright: Copyright (C) 2011 Dmitry Nizovtsev
+Source: https://github.com/JSBizon/node-memorystream.git
+Link: https://github.com/JSBizon/node-memorystream
+-----------
+minimatch
+License: ISC
+License File: node_modules/minimatch/LICENSE
+Copyright: Copyright (c) Isaac Z. Schlueter and Contributors
+Source: git://github.com/isaacs/minimatch.git
+Link: git://github.com/isaacs/minimatch.git
+-----------
+minimist
+License: MIT
+License File: node_modules/minimist/LICENSE
+Source: git://github.com/minimistjs/minimist.git
+Link: https://github.com/minimistjs/minimist
+-----------
+ms
+License: MIT
+License File: node_modules/ms/license.md
+Copyright: Copyright (c) 2016 Zeit, Inc.
+Source: zeit/ms
+Link: zeit/ms
+-----------
+natural-compare
+License: MIT
+Source: git://github.com/litejs/natural-compare-lite.git
+Link: git://github.com/litejs/natural-compare-lite.git
+-----------
+nice-try
+License: MIT
+License File: node_modules/nice-try/LICENSE
+Copyright: Copyright (c) 2018 Tobias Reich
+Source: https://github.com/electerious/nice-try.git
+Link: https://github.com/electerious/nice-try
+-----------
+normalize-package-data
+License: BSD-2-Clause
+License File: node_modules/normalize-package-data/LICENSE
+Copyright: Copyright (c) Meryn Stol ("Author")
+All rights reserved.
+Source: git://github.com/npm/normalize-package-data.git
+Link: git://github.com/npm/normalize-package-data.git
+-----------
+normalize-path
+License: MIT
+License File: node_modules/normalize-path/LICENSE
+Copyright: Copyright (c) 2014-2018, Jon Schlinkert.
+Source: jonschlinkert/normalize-path
+Link: https://github.com/jonschlinkert/normalize-path
+-----------
+npm-run-all
+License: MIT
+License File: node_modules/npm-run-all/LICENSE
+Copyright: Copyright (c) 2015 Toru Nagashima
+Source: mysticatea/npm-run-all
+Link: https://github.com/mysticatea/npm-run-all
+-----------
+object-inspect
+License: MIT
+License File: node_modules/object-inspect/LICENSE
+Copyright: Copyright (c) 2013 James Halliday
+Source: git://github.com/inspect-js/object-inspect.git
+Link: https://github.com/inspect-js/object-inspect
+-----------
+object-keys
+License: MIT
+License File: node_modules/object-keys/LICENSE
+Copyright: Copyright (C) 2013 Jordan Harband
+Source: git://github.com/ljharb/object-keys.git
+Link: git://github.com/ljharb/object-keys.git
+-----------
+object.assign
+License: MIT
+License File: node_modules/object.assign/LICENSE
+Copyright: Copyright (c) 2014 Jordan Harband
+Source: git://github.com/ljharb/object.assign.git
+Link: git://github.com/ljharb/object.assign.git
+-----------
+object.entries
+License: MIT
+License File: node_modules/object.entries/LICENSE
+Copyright: Copyright (c) 2015 Jordan Harband
+Source: git://github.com/es-shims/Object.entries.git
+Link: git://github.com/es-shims/Object.entries.git
+-----------
+object.fromentries
+License: MIT
+License File: node_modules/object.fromentries/LICENSE
+Copyright: Copyright (c) 2018 Jordan Harband
+Source: git://github.com/es-shims/Object.fromEntries.git
+Link: git://github.com/es-shims/Object.fromEntries.git
+-----------
+object.groupby
+License: MIT
+License File: node_modules/object.groupby/LICENSE
+Copyright: Copyright (c) 2023 ECMAScript Shims
+Source: git+https://github.com/es-shims/Object.groupBy.git
+Link: https://github.com/es-shims/Object.groupBy#readme
+-----------
+object.values
+License: MIT
+License File: node_modules/object.values/LICENSE
+Copyright: Copyright (c) 2015 Jordan Harband
+Source: git://github.com/es-shims/Object.values.git
+Link: git://github.com/es-shims/Object.values.git
+-----------
+once
+License: ISC
+License File: node_modules/once/LICENSE
+Copyright: Copyright (c) Isaac Z. Schlueter and Contributors
+Source: git://github.com/isaacs/once
+Link: git://github.com/isaacs/once
+-----------
+optionator
+License: MIT
+License File: node_modules/optionator/LICENSE
+Copyright: Copyright (c) George Zahariev
+Source: git://github.com/gkz/optionator.git
+Link: https://github.com/gkz/optionator
+-----------
+opts
+License: BSD-2-Clause
+License File: node_modules/opts/LICENSE.txt
+Copyright: Copyright (c) 2010, Joey Mazzarelli
+All rights reserved.
+Source: github:khtdr/opts
+Link: http://khtdr.com/opts
+-----------
+p-limit
+License: MIT
+License File: node_modules/p-limit/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (https://sindresorhus.com)
+Source: sindresorhus/p-limit
+Link: sindresorhus/p-limit
+-----------
+p-locate
+License: MIT
+License File: node_modules/p-locate/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (https://sindresorhus.com)
+Source: sindresorhus/p-locate
+Link: sindresorhus/p-locate
+-----------
+p-try
+License: MIT
+License File: node_modules/p-try/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.com)
+Source: sindresorhus/p-try
+Link: sindresorhus/p-try
+-----------
+parent-module
+License: MIT
+License File: node_modules/parent-module/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.com)
+Source: sindresorhus/parent-module
+Link: sindresorhus/parent-module
+-----------
+parse-json
+License: MIT
+License File: node_modules/parse-json/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.com)
+Source: sindresorhus/parse-json
+Link: sindresorhus/parse-json
+-----------
+path-exists
+License: MIT
+License File: node_modules/path-exists/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.com)
+Source: sindresorhus/path-exists
+Link: sindresorhus/path-exists
+-----------
+path-is-absolute
+License: MIT
+License File: node_modules/path-is-absolute/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.com)
+Source: sindresorhus/path-is-absolute
+Link: sindresorhus/path-is-absolute
+-----------
+path-key
+License: MIT
+License File: node_modules/path-key/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.com)
+Source: sindresorhus/path-key
+Link: sindresorhus/path-key
+-----------
+path-parse
+License: MIT
+License File: node_modules/path-parse/LICENSE
+Copyright: Copyright (c) 2015 Javier Blanco
+Source: https://github.com/jbgutierrez/path-parse.git
+Link: https://github.com/jbgutierrez/path-parse#readme
+-----------
+path-type
+License: MIT
+License File: node_modules/path-type/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.com)
+Source: sindresorhus/path-type
+Link: sindresorhus/path-type
+-----------
+picomatch
+License: MIT
+License File: node_modules/picomatch/LICENSE
+Copyright: Copyright (c) 2017-present, Jon Schlinkert.
+Source: micromatch/picomatch
+Link: https://github.com/micromatch/picomatch
+-----------
+pidtree
+License: MIT
+License File: node_modules/pidtree/license
+Copyright: Copyright (c) 2018 Simone Primarosa
+Source: github:simonepri/pidtree
+Link: http://github.com/simonepri/pidtree#readme
+-----------
+pify
+License: MIT
+License File: node_modules/pify/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.com)
+Source: sindresorhus/pify
+Link: sindresorhus/pify
+-----------
+possible-typed-array-names
+License: MIT
+License File: node_modules/possible-typed-array-names/LICENSE
+Copyright: Copyright (c) 2024 Jordan Harband
+Source: git+https://github.com/ljharb/possible-typed-array-names.git
+Link: https://github.com/ljharb/possible-typed-array-names#readme
+-----------
+prelude-ls
+License: MIT
+License File: node_modules/prelude-ls/LICENSE
+Copyright: Copyright (c) George Zahariev
+Source: git://github.com/gkz/prelude-ls.git
+Link: http://preludels.com
+-----------
+punycode
+License: MIT
+License File: node_modules/punycode/LICENSE-MIT.txt
+Source: https://github.com/mathiasbynens/punycode.js.git
+Link: https://mths.be/punycode
+-----------
+queue-microtask
+License: MIT
+License File: node_modules/queue-microtask/LICENSE
+Copyright: Copyright (c) Feross Aboukhadijeh
+Source: git://github.com/feross/queue-microtask.git
+Link: https://github.com/feross/queue-microtask
+-----------
+read-pkg
+License: MIT
+License File: node_modules/read-pkg/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.com)
+Source: sindresorhus/read-pkg
+Link: sindresorhus/read-pkg
+-----------
+readdirp
+License: MIT
+License File: node_modules/readdirp/LICENSE
+Copyright: Copyright (c) 2012-2019 Thorsten Lorenz, Paul Miller (https://paulmillr.com)
+Source: git://github.com/paulmillr/readdirp.git
+Link: https://github.com/paulmillr/readdirp
+-----------
+regexp.prototype.flags
+License: MIT
+License File: node_modules/regexp.prototype.flags/LICENSE
+Copyright: Copyright (C) 2014 Jordan Harband
+Source: git://github.com/es-shims/RegExp.prototype.flags.git
+Link: git://github.com/es-shims/RegExp.prototype.flags.git
+-----------
+require-directory
+License: MIT
+License File: node_modules/require-directory/LICENSE
+Copyright: Copyright (c) 2011 Troy Goode <*********@*****.***>
+Source: git://github.com/troygoode/node-require-directory.git
+Link: https://github.com/troygoode/node-require-directory/
+-----------
+require-main-filename
+License: ISC
+License File: node_modules/require-main-filename/LICENSE.txt
+Copyright: Copyright (c) 2016, Contributors
+Link: https://github.com/yargs/require-main-filename#readme
+-----------
+resolve-from
+License: MIT
+License File: node_modules/resolve-from/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.com)
+Source: sindresorhus/resolve-from
+Link: sindresorhus/resolve-from
+-----------
+resolve
+License: MIT
+License File: node_modules/resolve/LICENSE
+Copyright: Copyright (c) 2012 James Halliday
+Source: git://github.com/browserify/resolve.git
+Link: git://github.com/browserify/resolve.git
+-----------
+reusify
+License: MIT
+License File: node_modules/reusify/LICENSE
+Copyright: Copyright (c) 2015 Matteo Collina
+Source: git+https://github.com/mcollina/reusify.git
+Link: https://github.com/mcollina/reusify#readme
+-----------
+rimraf
+License: ISC
+License File: node_modules/rimraf/LICENSE
+Copyright: Copyright (c) Isaac Z. Schlueter and Contributors
+Source: git://github.com/isaacs/rimraf.git
+Link: git://github.com/isaacs/rimraf.git
+-----------
+run-parallel
+License: MIT
+License File: node_modules/run-parallel/LICENSE
+Copyright: Copyright (c) Feross Aboukhadijeh
+Source: git://github.com/feross/run-parallel.git
+Link: https://github.com/feross/run-parallel
+-----------
+safe-array-concat
+License: MIT
+License File: node_modules/safe-array-concat/LICENSE
+Copyright: Copyright (c) 2023 Jordan Harband
+Source: git+https://github.com/ljharb/safe-array-concat.git
+Link: https://github.com/ljharb/safe-array-concat#readme
+-----------
+safe-regex-test
+License: MIT
+License File: node_modules/safe-regex-test/LICENSE
+Copyright: Copyright (c) 2022 Jordan Harband
+Source: git+https://github.com/ljharb/safe-regex-test.git
+Link: https://github.com/ljharb/safe-regex-test#readme
+-----------
+sass
+License: MIT
+License File: node_modules/sass/LICENSE
+Copyright: Copyright (c) 2016, Google Inc.
+Source: https://github.com/sass/dart-sass
+Link: https://github.com/sass/dart-sass
+-----------
+semver
+License: ISC
+License File: node_modules/semver/LICENSE
+Copyright: Copyright (c) Isaac Z. Schlueter and Contributors
+Source: https://github.com/npm/node-semver.git
+Link: https://github.com/npm/node-semver.git
+-----------
+set-blocking
+License: ISC
+License File: node_modules/set-blocking/LICENSE.txt
+Copyright: Copyright (c) 2016, Contributors
+Source: git+https://github.com/yargs/set-blocking.git
+Link: https://github.com/yargs/set-blocking#readme
+-----------
+set-function-length
+License: MIT
+License File: node_modules/set-function-length/LICENSE
+Copyright: Copyright (c) Jordan Harband and contributors
+Source: git+https://github.com/ljharb/set-function-length.git
+Link: https://github.com/ljharb/set-function-length#readme
+-----------
+set-function-name
+License: MIT
+License File: node_modules/set-function-name/LICENSE
+Copyright: Copyright (c) Jordan Harband and contributors
+Source: git+https://github.com/ljharb/set-function-name.git
+Link: https://github.com/ljharb/set-function-name#readme
+-----------
+shebang-command
+License: MIT
+License File: node_modules/shebang-command/license
+Copyright: Copyright (c) Kevin Mårtensson <***************@*****.***> (github.com/kevva)
+Source: kevva/shebang-command
+Link: kevva/shebang-command
+-----------
+shebang-regex
+License: MIT
+License File: node_modules/shebang-regex/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.com)
+Source: sindresorhus/shebang-regex
+Link: sindresorhus/shebang-regex
+-----------
+shell-quote
+License: MIT
+License File: node_modules/shell-quote/LICENSE
+Copyright: Copyright (c) 2013 James Halliday (****@********.***)
+Source: http://github.com/ljharb/shell-quote.git
+Link: https://github.com/ljharb/shell-quote
+-----------
+side-channel
+License: MIT
+License File: node_modules/side-channel/LICENSE
+Copyright: Copyright (c) 2019 Jordan Harband
+Source: git+https://github.com/ljharb/side-channel.git
+Link: https://github.com/ljharb/side-channel#readme
+-----------
+snabbdom
+License: MIT
+License File: node_modules/snabbdom/LICENSE
+Copyright: Copyright (c) 2015 Simon Friis Vindum
+Source: git+https://github.com/snabbdom/snabbdom.git
+Link: https://github.com/snabbdom/snabbdom#readme
+-----------
+sortablejs
+License: MIT
+License File: node_modules/sortablejs/LICENSE
+Source: git://github.com/SortableJS/Sortable.git
+Link: git://github.com/SortableJS/Sortable.git
+-----------
+source-map-js
+License: BSD-3-Clause
+License File: node_modules/source-map-js/LICENSE
+Copyright: Copyright (c) 2009-2011, Mozilla Foundation and contributors
+All rights reserved.
+Source: 7rulnik/source-map-js
+Link: https://github.com/7rulnik/source-map-js
+-----------
+spdx-correct
+License: Apache-2.0
+License File: node_modules/spdx-correct/LICENSE
+Source: jslicense/spdx-correct.js
+Link: jslicense/spdx-correct.js
+-----------
+spdx-exceptions
+License: CC-BY-3.0
+Source: kemitchell/spdx-exceptions.json
+Link: kemitchell/spdx-exceptions.json
+-----------
+spdx-expression-parse
+License: MIT
+License File: node_modules/spdx-expression-parse/LICENSE
+Copyright: Copyright (c) 2015 Kyle E. Mitchell & other authors listed in AUTHORS
+Source: jslicense/spdx-expression-parse.js
+Link: jslicense/spdx-expression-parse.js
+-----------
+spdx-license-ids
+License: CC0-1.0
+Source: jslicense/spdx-license-ids
+Link: jslicense/spdx-license-ids
+-----------
+string-width
+License: MIT
+License File: node_modules/string-width/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.com)
+Source: sindresorhus/string-width
+Link: sindresorhus/string-width
+-----------
+string.prototype.padend
+License: MIT
+License File: node_modules/string.prototype.padend/LICENSE
+Copyright: Copyright (c) 2015 EcmaScript Shims
+Source: git://github.com/es-shims/String.prototype.padEnd.git
+Link: git://github.com/es-shims/String.prototype.padEnd.git
+-----------
+string.prototype.trim
+License: MIT
+License File: node_modules/string.prototype.trim/LICENSE
+Copyright: Copyright (c) 2015 Jordan Harband
+Source: git://github.com/es-shims/String.prototype.trim.git
+Link: git://github.com/es-shims/String.prototype.trim.git
+-----------
+string.prototype.trimend
+License: MIT
+License File: node_modules/string.prototype.trimend/LICENSE
+Copyright: Copyright (c) 2017 Khaled Al-Ansari
+Source: git://github.com/es-shims/String.prototype.trimEnd.git
+Link: git://github.com/es-shims/String.prototype.trimEnd.git
+-----------
+string.prototype.trimstart
+License: MIT
+License File: node_modules/string.prototype.trimstart/LICENSE
+Copyright: Copyright (c) 2017 Khaled Al-Ansari
+Source: git://github.com/es-shims/String.prototype.trimStart.git
+Link: git://github.com/es-shims/String.prototype.trimStart.git
+-----------
+strip-ansi
+License: MIT
+License File: node_modules/strip-ansi/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.com)
+Source: chalk/strip-ansi
+Link: chalk/strip-ansi
+-----------
+strip-bom
+License: MIT
+License File: node_modules/strip-bom/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.com)
+Source: sindresorhus/strip-bom
+Link: sindresorhus/strip-bom
+-----------
+strip-json-comments
+License: MIT
+License File: node_modules/strip-json-comments/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (https://sindresorhus.com)
+Source: sindresorhus/strip-json-comments
+Link: sindresorhus/strip-json-comments
+-----------
+style-mod
+License: MIT
+License File: node_modules/style-mod/LICENSE
+Copyright: Copyright (C) 2018 by Marijn Haverbeke <******@*********.******> and others
+Source: git+https://github.com/marijnh/style-mod.git
+Link: git+https://github.com/marijnh/style-mod.git
+-----------
+supports-color
+License: MIT
+License File: node_modules/supports-color/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.com)
+Source: chalk/supports-color
+Link: chalk/supports-color
+-----------
+supports-preserve-symlinks-flag
+License: MIT
+License File: node_modules/supports-preserve-symlinks-flag/LICENSE
+Copyright: Copyright (c) 2022 Inspect JS
+Source: git+https://github.com/inspect-js/node-supports-preserve-symlinks-flag.git
+Link: https://github.com/inspect-js/node-supports-preserve-symlinks-flag#readme
+-----------
+text-table
+License: MIT
+License File: node_modules/text-table/LICENSE
+Source: git://github.com/substack/text-table.git
+Link: https://github.com/substack/text-table
+-----------
+to-regex-range
+License: MIT
+License File: node_modules/to-regex-range/LICENSE
+Copyright: Copyright (c) 2015-present, Jon Schlinkert.
+Source: micromatch/to-regex-range
+Link: https://github.com/micromatch/to-regex-range
+-----------
+tsconfig-paths
+License: MIT
+License File: node_modules/tsconfig-paths/LICENSE
+Copyright: Copyright (c) 2016 Jonas Kello
+Source: https://github.com/dividab/tsconfig-paths
+Link: https://github.com/dividab/tsconfig-paths
+-----------
+type-check
+License: MIT
+License File: node_modules/type-check/LICENSE
+Copyright: Copyright (c) George Zahariev
+Source: git://github.com/gkz/type-check.git
+Link: https://github.com/gkz/type-check
+-----------
+type-fest
+License: (MIT OR CC0-1.0)
+License File: node_modules/type-fest/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (https:/sindresorhus.com)
+Source: sindresorhus/type-fest
+Link: sindresorhus/type-fest
+-----------
+typed-array-buffer
+License: MIT
+License File: node_modules/typed-array-buffer/LICENSE
+Copyright: Copyright (c) 2023 Jordan Harband
+Source: git+https://github.com/ljharb/typed-array-buffer.git
+Link: https://github.com/ljharb/typed-array-buffer#readme
+-----------
+typed-array-byte-length
+License: MIT
+License File: node_modules/typed-array-byte-length/LICENSE
+Copyright: Copyright (c) 2020 Inspect JS
+Source: git+https://github.com/inspect-js/typed-array-byte-length.git
+Link: https://github.com/inspect-js/typed-array-byte-length#readme
+-----------
+typed-array-byte-offset
+License: MIT
+License File: node_modules/typed-array-byte-offset/LICENSE
+Copyright: Copyright (c) 2020 Inspect JS
+Source: git+https://github.com/inspect-js/typed-array-byte-offset.git
+Link: https://github.com/inspect-js/typed-array-byte-offset#readme
+-----------
+typed-array-length
+License: MIT
+License File: node_modules/typed-array-length/LICENSE
+Copyright: Copyright (c) 2020 Inspect JS
+Source: git+https://github.com/inspect-js/typed-array-length.git
+Link: https://github.com/inspect-js/typed-array-length#readme
+-----------
+uc.micro
+License: MIT
+License File: node_modules/uc.micro/LICENSE.txt
+Source: markdown-it/uc.micro
+Link: markdown-it/uc.micro
+-----------
+unbox-primitive
+License: MIT
+License File: node_modules/unbox-primitive/LICENSE
+Copyright: Copyright (c) 2019 Jordan Harband
+Source: git+https://github.com/ljharb/unbox-primitive.git
+Link: https://github.com/ljharb/unbox-primitive#readme
+-----------
+uri-js
+License: BSD-2-Clause
+License File: node_modules/uri-js/LICENSE
+Copyright: Copyright 2011 Gary Court. All rights reserved.
+Source: http://github.com/garycourt/uri-js
+Link: https://github.com/garycourt/uri-js
+-----------
+validate-npm-package-license
+License: Apache-2.0
+License File: node_modules/validate-npm-package-license/LICENSE
+Source: kemitchell/validate-npm-package-license.js
+Link: kemitchell/validate-npm-package-license.js
+-----------
+w3c-keyname
+License: MIT
+License File: node_modules/w3c-keyname/LICENSE
+Copyright: Copyright (C) 2016 by Marijn Haverbeke <******@*********.******> and others
+Source: git+https://github.com/marijnh/w3c-keyname.git
+Link: https://github.com/marijnh/w3c-keyname#readme
+-----------
+which-boxed-primitive
+License: MIT
+License File: node_modules/which-boxed-primitive/LICENSE
+Copyright: Copyright (c) 2019 Jordan Harband
+Source: git+https://github.com/inspect-js/which-boxed-primitive.git
+Link: https://github.com/inspect-js/which-boxed-primitive#readme
+-----------
+which-module
+License: ISC
+License File: node_modules/which-module/LICENSE
+Copyright: Copyright (c) 2016, Contributors
+Source: git+https://github.com/nexdrew/which-module.git
+Link: https://github.com/nexdrew/which-module#readme
+-----------
+which-typed-array
+License: MIT
+License File: node_modules/which-typed-array/LICENSE
+Copyright: Copyright (c) 2015 Jordan Harband
+Source: git://github.com/inspect-js/which-typed-array.git
+Link: git://github.com/inspect-js/which-typed-array.git
+-----------
+which
+License: ISC
+License File: node_modules/which/LICENSE
+Copyright: Copyright (c) Isaac Z. Schlueter and Contributors
+Source: git://github.com/isaacs/node-which.git
+Link: git://github.com/isaacs/node-which.git
+-----------
+wrap-ansi
+License: MIT
+License File: node_modules/wrap-ansi/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.com)
+Source: chalk/wrap-ansi
+Link: chalk/wrap-ansi
+-----------
+wrappy
+License: ISC
+License File: node_modules/wrappy/LICENSE
+Copyright: Copyright (c) Isaac Z. Schlueter and Contributors
+Source: https://github.com/npm/wrappy
+Link: https://github.com/npm/wrappy
+-----------
+ws
+License: MIT
+License File: node_modules/ws/LICENSE
+Copyright: Copyright (c) 2011 Einar Otto Stangvik <*******@*****.***>
+Source: websockets/ws
+Link: https://github.com/websockets/ws
+-----------
+y18n
+License: ISC
+License File: node_modules/y18n/LICENSE
+Copyright: Copyright (c) 2015, Contributors
+Link: https://github.com/yargs/y18n
+-----------
+yargs-parser
+License: ISC
+License File: node_modules/yargs-parser/LICENSE.txt
+Copyright: Copyright (c) 2016, Contributors
+-----------
+yargs
+License: MIT
+License File: node_modules/yargs/LICENSE
+Copyright: Copyright 2010 James Halliday (****@********.***)
+Modified work Copyright 2014 Contributors (***@*****.***)
+Source: https://github.com/yargs/yargs.git
+Link: https://yargs.js.org/
+-----------
+yocto-queue
+License: MIT
+License File: node_modules/yocto-queue/license
+Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (https://sindresorhus.com)
+Source: sindresorhus/yocto-queue
+Link: sindresorhus/yocto-queue
+-----------
+@aashutoshrathi/word-wrap
+License: MIT
+License File: node_modules/@aashutoshrathi/word-wrap/LICENSE
+Copyright: Copyright (c) 2014-2016, Jon Schlinkert
+Source: git+https://github.com/aashutoshrathi/word-wrap.git
+Link: https://github.com/aashutoshrathi/word-wrap
+-----------
+@codemirror/autocomplete
+License: MIT
+License File: node_modules/@codemirror/autocomplete/LICENSE
+Copyright: Copyright (C) 2018-2021 by Marijn Haverbeke <******@*********.******> and others
+Source: https://github.com/codemirror/autocomplete.git
+Link: https://github.com/codemirror/autocomplete.git
+-----------
+@codemirror/commands
+License: MIT
+License File: node_modules/@codemirror/commands/LICENSE
+Copyright: Copyright (C) 2018-2021 by Marijn Haverbeke <******@*********.******> and others
+Source: https://github.com/codemirror/commands.git
+Link: https://github.com/codemirror/commands.git
+-----------
+@codemirror/lang-css
+License: MIT
+License File: node_modules/@codemirror/lang-css/LICENSE
+Copyright: Copyright (C) 2018-2021 by Marijn Haverbeke <******@*********.******> and others
+Source: https://github.com/codemirror/lang-css.git
+Link: https://github.com/codemirror/lang-css.git
+-----------
+@codemirror/lang-html
+License: MIT
+License File: node_modules/@codemirror/lang-html/LICENSE
+Copyright: Copyright (C) 2018-2021 by Marijn Haverbeke <******@*********.******> and others
+Source: https://github.com/codemirror/lang-html.git
+Link: https://github.com/codemirror/lang-html.git
+-----------
+@codemirror/lang-javascript
+License: MIT
+License File: node_modules/@codemirror/lang-javascript/LICENSE
+Copyright: Copyright (C) 2018-2021 by Marijn Haverbeke <******@*********.******> and others
+Source: https://github.com/codemirror/lang-javascript.git
+Link: https://github.com/codemirror/lang-javascript.git
+-----------
+@codemirror/lang-json
+License: MIT
+License File: node_modules/@codemirror/lang-json/LICENSE
+Copyright: Copyright (C) 2018-2021 by Marijn Haverbeke <*******@*****.***> and others
+Source: https://github.com/codemirror/lang-json.git
+Link: https://github.com/codemirror/lang-json.git
+-----------
+@codemirror/lang-markdown
+License: MIT
+License File: node_modules/@codemirror/lang-markdown/LICENSE
+Copyright: Copyright (C) 2018-2021 by Marijn Haverbeke <******@*********.******> and others
+Source: https://github.com/codemirror/lang-markdown.git
+Link: https://github.com/codemirror/lang-markdown.git
+-----------
+@codemirror/lang-php
+License: MIT
+License File: node_modules/@codemirror/lang-php/LICENSE
+Copyright: Copyright (C) 2018-2021 by Marijn Haverbeke <*******@*****.***> and others
+Source: https://github.com/codemirror/lang-php.git
+Link: https://github.com/codemirror/lang-php.git
+-----------
+@codemirror/lang-xml
+License: MIT
+License File: node_modules/@codemirror/lang-xml/LICENSE
+Copyright: Copyright (C) 2018-2021 by Marijn Haverbeke <*******@*****.***> and others
+Source: https://github.com/codemirror/lang-xml.git
+Link: https://github.com/codemirror/lang-xml.git
+-----------
+@codemirror/language
+License: MIT
+License File: node_modules/@codemirror/language/LICENSE
+Copyright: Copyright (C) 2018-2021 by Marijn Haverbeke <******@*********.******> and others
+Source: https://github.com/codemirror/language.git
+Link: https://github.com/codemirror/language.git
+-----------
+@codemirror/legacy-modes
+License: MIT
+License File: node_modules/@codemirror/legacy-modes/LICENSE
+Copyright: Copyright (C) 2018-2021 by Marijn Haverbeke <******@*********.******> and others
+Source: https://github.com/codemirror/legacy-modes.git
+Link: https://github.com/codemirror/legacy-modes.git
+-----------
+@codemirror/lint
+License: MIT
+License File: node_modules/@codemirror/lint/LICENSE
+Copyright: Copyright (C) 2018-2021 by Marijn Haverbeke <******@*********.******> and others
+Source: https://github.com/codemirror/lint.git
+Link: https://github.com/codemirror/lint.git
+-----------
+@codemirror/search
+License: MIT
+License File: node_modules/@codemirror/search/LICENSE
+Copyright: Copyright (C) 2018-2021 by Marijn Haverbeke <******@*********.******> and others
+Source: https://github.com/codemirror/search.git
+Link: https://github.com/codemirror/search.git
+-----------
+@codemirror/state
+License: MIT
+License File: node_modules/@codemirror/state/LICENSE
+Copyright: Copyright (C) 2018-2021 by Marijn Haverbeke <******@*********.******> and others
+Source: https://github.com/codemirror/state.git
+Link: https://github.com/codemirror/state.git
+-----------
+@codemirror/theme-one-dark
+License: MIT
+License File: node_modules/@codemirror/theme-one-dark/LICENSE
+Copyright: Copyright (C) 2018-2021 by Marijn Haverbeke <******@*********.******> and others
+Source: https://github.com/codemirror/theme-one-dark.git
+Link: https://github.com/codemirror/theme-one-dark.git
+-----------
+@codemirror/view
+License: MIT
+License File: node_modules/@codemirror/view/LICENSE
+Copyright: Copyright (C) 2018-2021 by Marijn Haverbeke <******@*********.******> and others
+Source: https://github.com/codemirror/view.git
+Link: https://github.com/codemirror/view.git
+-----------
+@esbuild/linux-x64
+License: MIT
+Source: git+https://github.com/evanw/esbuild.git
+Link: git+https://github.com/evanw/esbuild.git
+-----------
+@eslint-community/eslint-utils
+License: MIT
+License File: node_modules/@eslint-community/eslint-utils/LICENSE
+Copyright: Copyright (c) 2018 Toru Nagashima
+Source: https://github.com/eslint-community/eslint-utils
+Link: https://github.com/eslint-community/eslint-utils#readme
+-----------
+@eslint-community/regexpp
+License: MIT
+License File: node_modules/@eslint-community/regexpp/LICENSE
+Copyright: Copyright (c) 2018 Toru Nagashima
+Source: https://github.com/eslint-community/regexpp
+Link: https://github.com/eslint-community/regexpp#readme
+-----------
+@eslint/eslintrc
+License: MIT
+License File: node_modules/@eslint/eslintrc/LICENSE
+Source: eslint/eslintrc
+Link: https://github.com/eslint/eslintrc#readme
+-----------
+@eslint/js
+License: MIT
+License File: node_modules/@eslint/js/LICENSE
+Source: https://github.com/eslint/eslint.git
+Link: https://eslint.org
+-----------
+@humanwhocodes/config-array
+License: Apache-2.0
+License File: node_modules/@humanwhocodes/config-array/LICENSE
+Source: git+https://github.com/humanwhocodes/config-array.git
+Link: https://github.com/humanwhocodes/config-array#readme
+-----------
+@humanwhocodes/module-importer
+License: Apache-2.0
+License File: node_modules/@humanwhocodes/module-importer/LICENSE
+Source: git+https://github.com/humanwhocodes/module-importer.git
+Link: git+https://github.com/humanwhocodes/module-importer.git
+-----------
+@humanwhocodes/object-schema
+License: BSD-3-Clause
+License File: node_modules/@humanwhocodes/object-schema/LICENSE
+Copyright: Copyright (c) 2019, Human Who Codes
+All rights reserved.
+Source: git+https://github.com/humanwhocodes/object-schema.git
+Link: https://github.com/humanwhocodes/object-schema#readme
+-----------
+@lezer/common
+License: MIT
+License File: node_modules/@lezer/common/LICENSE
+Copyright: Copyright (C) 2018 by Marijn Haverbeke <******@*********.******> and others
+Source: https://github.com/lezer-parser/common.git
+Link: https://github.com/lezer-parser/common.git
+-----------
+@lezer/css
+License: MIT
+License File: node_modules/@lezer/css/LICENSE
+Copyright: Copyright (C) 2018 by Marijn Haverbeke <******@*********.******> and others
+Source: https://github.com/lezer-parser/css.git
+Link: https://github.com/lezer-parser/css.git
+-----------
+@lezer/generator
+License: MIT
+License File: node_modules/@lezer/generator/LICENSE
+Copyright: Copyright (C) 2018 by Marijn Haverbeke <******@*********.******> and others
+Source: https://github.com/lezer-parser/generator.git
+Link: https://github.com/lezer-parser/generator.git
+-----------
+@lezer/highlight
+License: MIT
+License File: node_modules/@lezer/highlight/LICENSE
+Copyright: Copyright (C) 2018 by Marijn Haverbeke <******@*********.******> and others
+Source: https://github.com/lezer-parser/highlight.git
+Link: https://github.com/lezer-parser/highlight.git
+-----------
+@lezer/html
+License: MIT
+License File: node_modules/@lezer/html/LICENSE
+Copyright: Copyright (C) 2018 by Marijn Haverbeke <******@*********.******> and others
+Source: https://github.com/lezer-parser/html.git
+Link: https://github.com/lezer-parser/html.git
+-----------
+@lezer/javascript
+License: MIT
+License File: node_modules/@lezer/javascript/LICENSE
+Copyright: Copyright (C) 2018 by Marijn Haverbeke <******@*********.******> and others
+Source: https://github.com/lezer-parser/javascript.git
+Link: https://github.com/lezer-parser/javascript.git
+-----------
+@lezer/json
+License: MIT
+License File: node_modules/@lezer/json/LICENSE
+Copyright: Copyright (C) 2020 by Marijn Haverbeke <******@*********.******>, Arun Srinivasan <*******@*****.***>, and others
+Source: https://github.com/lezer-parser/json.git
+Link: https://github.com/lezer-parser/json.git
+-----------
+@lezer/lr
+License: MIT
+License File: node_modules/@lezer/lr/LICENSE
+Copyright: Copyright (C) 2018 by Marijn Haverbeke <******@*********.******> and others
+Source: https://github.com/lezer-parser/lr.git
+Link: https://github.com/lezer-parser/lr.git
+-----------
+@lezer/markdown
+License: MIT
+License File: node_modules/@lezer/markdown/LICENSE
+Copyright: Copyright (C) 2020 by Marijn Haverbeke <******@*********.******> and others
+Source: https://github.com/lezer-parser/markdown.git
+Link: https://github.com/lezer-parser/markdown.git
+-----------
+@lezer/php
+License: MIT
+License File: node_modules/@lezer/php/LICENSE
+Copyright: Copyright (C) 2018 by Marijn Haverbeke <******@*********.******> and others
+Source: https://github.com/lezer-parser/php.git
+Link: https://github.com/lezer-parser/php.git
+-----------
+@lezer/xml
+License: MIT
+License File: node_modules/@lezer/xml/LICENSE
+Copyright: Copyright (C) 2018 by Marijn Haverbeke <******@*********.******> and others
+Source: https://github.com/lezer-parser/xml.git
+Link: https://github.com/lezer-parser/xml.git
+-----------
+@nodelib/fs.scandir
+License: MIT
+License File: node_modules/@nodelib/fs.scandir/LICENSE
+Copyright: Copyright (c) Denis Malinochkin
+Source: https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.scandir
+Link: https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.scandir
+-----------
+@nodelib/fs.stat
+License: MIT
+License File: node_modules/@nodelib/fs.stat/LICENSE
+Copyright: Copyright (c) Denis Malinochkin
+Source: https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.stat
+Link: https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.stat
+-----------
+@nodelib/fs.walk
+License: MIT
+License File: node_modules/@nodelib/fs.walk/LICENSE
+Copyright: Copyright (c) Denis Malinochkin
+Source: https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.walk
+Link: https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.walk
+-----------
+@ssddanbrown/codemirror-lang-smarty
+License: MIT
+License File: node_modules/@ssddanbrown/codemirror-lang-smarty/LICENSE
+Copyright: Copyright (C) 2023 by Dan Brown, Marijn Haverbeke and others
+-----------
+@ssddanbrown/codemirror-lang-twig
+License: MIT
+License File: node_modules/@ssddanbrown/codemirror-lang-twig/LICENSE
+Copyright: Copyright (C) 2023 by Dan Brown, Marijn Haverbeke and others
+-----------
+@types/json5
+License: MIT
+Source: https://www.github.com/DefinitelyTyped/DefinitelyTyped.git
+Link: https://www.github.com/DefinitelyTyped/DefinitelyTyped.git
+-----------
+@ungap/structured-clone
+License: ISC
+License File: node_modules/@ungap/structured-clone/LICENSE
+Copyright: Copyright (c) 2021, Andrea Giammarchi, @WebReflection
+Source: git+https://github.com/ungap/structured-clone.git
+Link: https://github.com/ungap/structured-clone#readme
--- /dev/null
+aws/aws-crt-php
+License: Apache-2.0
+License File: vendor/aws/aws-crt-php/LICENSE
+Source: https://github.com/awslabs/aws-crt-php.git
+Link: https://github.com/awslabs/aws-crt-php
+-----------
+aws/aws-sdk-php
+License: Apache-2.0
+License File: vendor/aws/aws-sdk-php/LICENSE
+Source: https://github.com/aws/aws-sdk-php.git
+Link: http://aws.amazon.com/sdkforphp
+-----------
+bacon/bacon-qr-code
+License: BSD-2-Clause
+License File: vendor/bacon/bacon-qr-code/LICENSE
+Copyright: Copyright (c) 2017, Ben Scholzen 'DASPRiD'
+All rights reserved.
+Source: https://github.com/Bacon/BaconQrCode.git
+Link: https://github.com/Bacon/BaconQrCode
+-----------
+barryvdh/laravel-dompdf
+License: MIT
+License File: vendor/barryvdh/laravel-dompdf/LICENSE
+Copyright: Copyright (c) 2021 barryvdh
+Source: https://github.com/barryvdh/laravel-dompdf.git
+Link: https://github.com/barryvdh/laravel-dompdf.git
+-----------
+barryvdh/laravel-snappy
+License: MIT
+License File: vendor/barryvdh/laravel-snappy/LICENSE
+Copyright: Copyright (c) 2018
+Source: https://github.com/barryvdh/laravel-snappy.git
+Link: https://github.com/barryvdh/laravel-snappy.git
+-----------
+brick/math
+License: MIT
+License File: vendor/brick/math/LICENSE
+Copyright: Copyright (c) 2013-present Benjamin Morel
+Source: https://github.com/brick/math.git
+Link: https://github.com/brick/math.git
+-----------
+carbonphp/carbon-doctrine-types
+License: MIT
+License File: vendor/carbonphp/carbon-doctrine-types/LICENSE
+Copyright: Copyright (c) 2023 Carbon
+Source: https://github.com/CarbonPHP/carbon-doctrine-types.git
+Link: https://github.com/CarbonPHP/carbon-doctrine-types.git
+-----------
+dasprid/enum
+License: BSD-2-Clause
+License File: vendor/dasprid/enum/LICENSE
+Copyright: Copyright (c) 2017, Ben Scholzen 'DASPRiD'
+All rights reserved.
+Source: https://github.com/DASPRiD/Enum.git
+Link: https://github.com/DASPRiD/Enum.git
+-----------
+dflydev/dot-access-data
+License: MIT
+License File: vendor/dflydev/dot-access-data/LICENSE
+Copyright: Copyright (c) 2012 Dragonfly Development Inc.
+Source: https://github.com/dflydev/dflydev-dot-access-data.git
+Link: https://github.com/dflydev/dflydev-dot-access-data
+-----------
+doctrine/cache
+License: MIT
+License File: vendor/doctrine/cache/LICENSE
+Copyright: Copyright (c) 2006-2015 Doctrine Project
+Source: https://github.com/doctrine/cache.git
+Link: https://www.doctrine-project.org/projects/cache.html
+-----------
+doctrine/dbal
+License: MIT
+License File: vendor/doctrine/dbal/LICENSE
+Copyright: Copyright (c) 2006-2018 Doctrine Project
+Source: https://github.com/doctrine/dbal.git
+Link: https://www.doctrine-project.org/projects/dbal.html
+-----------
+doctrine/deprecations
+License: MIT
+License File: vendor/doctrine/deprecations/LICENSE
+Copyright: Copyright (c) 2020-2021 Doctrine Project
+Source: https://github.com/doctrine/deprecations.git
+Link: https://www.doctrine-project.org/
+-----------
+doctrine/event-manager
+License: MIT
+License File: vendor/doctrine/event-manager/LICENSE
+Copyright: Copyright (c) 2006-2015 Doctrine Project
+Source: https://github.com/doctrine/event-manager.git
+Link: https://www.doctrine-project.org/projects/event-manager.html
+-----------
+doctrine/inflector
+License: MIT
+License File: vendor/doctrine/inflector/LICENSE
+Copyright: Copyright (c) 2006-2015 Doctrine Project
+Source: https://github.com/doctrine/inflector.git
+Link: https://www.doctrine-project.org/projects/inflector.html
+-----------
+doctrine/lexer
+License: MIT
+License File: vendor/doctrine/lexer/LICENSE
+Copyright: Copyright (c) 2006-2018 Doctrine Project
+Source: https://github.com/doctrine/lexer.git
+Link: https://www.doctrine-project.org/projects/lexer.html
+-----------
+dompdf/dompdf
+License: LGPL-2.1
+License File: vendor/dompdf/dompdf/LICENSE.LGPL
+Copyright: Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+Source: https://github.com/dompdf/dompdf.git
+Link: https://github.com/dompdf/dompdf
+-----------
+dragonmantank/cron-expression
+License: MIT
+License File: vendor/dragonmantank/cron-expression/LICENSE
+Copyright: Copyright (c) 2011 Michael Dowling <*********@*****.***>, 2016 Chris Tankersley <*****@***********.***>, and contributors
+Source: https://github.com/dragonmantank/cron-expression.git
+Link: https://github.com/dragonmantank/cron-expression.git
+-----------
+egulias/email-validator
+License: MIT
+License File: vendor/egulias/email-validator/LICENSE
+Copyright: Copyright (c) 2013-2023 Eduardo Gulias Davis
+Source: https://github.com/egulias/EmailValidator.git
+Link: https://github.com/egulias/EmailValidator
+-----------
+fruitcake/php-cors
+License: MIT
+License File: vendor/fruitcake/php-cors/LICENSE
+Copyright: Copyright (c) 2013-2017 Alexander <***.*****@*****.***>
+Copyright (c) 2017-2022 Barryvdh <********@*****.***>
+Source: https://github.com/fruitcake/php-cors.git
+Link: https://github.com/fruitcake/php-cors
+-----------
+graham-campbell/result-type
+License: MIT
+License File: vendor/graham-campbell/result-type/LICENSE
+Copyright: Copyright (c) 2020-2023 Graham Campbell <*****@**********.**.**>
+Source: https://github.com/GrahamCampbell/Result-Type.git
+Link: https://github.com/GrahamCampbell/Result-Type.git
+-----------
+guzzlehttp/guzzle
+License: MIT
+License File: vendor/guzzlehttp/guzzle/LICENSE
+Copyright: Copyright (c) 2011 Michael Dowling <*********@*****.***>
+Copyright (c) 2012 Jeremy Lindblom <**********@*****.***>
+Copyright (c) 2014 Graham Campbell <*****@**********.**.**>
+Copyright (c) 2015 Márk Sági-Kazár <****.*********@*****.***>
+Copyright (c) 2015 Tobias Schultze <*********@**********.**>
+Copyright (c) 2016 Tobias Nyholm <******.******@*****.***>
+Copyright (c) 2016 George Mponos <*******@*****.***>
+Source: https://github.com/guzzle/guzzle.git
+Link: https://github.com/guzzle/guzzle.git
+-----------
+guzzlehttp/promises
+License: MIT
+License File: vendor/guzzlehttp/promises/LICENSE
+Copyright: Copyright (c) 2015 Michael Dowling <*********@*****.***>
+Copyright (c) 2015 Graham Campbell <*****@**********.**.**>
+Copyright (c) 2017 Tobias Schultze <*********@**********.**>
+Copyright (c) 2020 Tobias Nyholm <******.******@*****.***>
+Source: https://github.com/guzzle/promises.git
+Link: https://github.com/guzzle/promises.git
+-----------
+guzzlehttp/psr7
+License: MIT
+License File: vendor/guzzlehttp/psr7/LICENSE
+Copyright: Copyright (c) 2015 Michael Dowling <*********@*****.***>
+Copyright (c) 2015 Márk Sági-Kazár <****.*********@*****.***>
+Copyright (c) 2015 Graham Campbell <*****@**********.**.**>
+Copyright (c) 2016 Tobias Schultze <*********@**********.**>
+Copyright (c) 2016 George Mponos <*******@*****.***>
+Copyright (c) 2018 Tobias Nyholm <******.******@*****.***>
+Source: https://github.com/guzzle/psr7.git
+Link: https://github.com/guzzle/psr7.git
+-----------
+guzzlehttp/uri-template
+License: MIT
+License File: vendor/guzzlehttp/uri-template/LICENSE
+Copyright: Copyright (c) 2014 Michael Dowling <*********@*****.***>
+Copyright (c) 2020 George Mponos <*******@*****.***>
+Copyright (c) 2020 Graham Campbell <*****@**********.**.**>
+Source: https://github.com/guzzle/uri-template.git
+Link: https://github.com/guzzle/uri-template.git
+-----------
+intervention/gif
+License: MIT
+License File: vendor/intervention/gif/LICENSE
+Copyright: Copyright (c) 2020 Oliver Vogel
+Source: https://github.com/Intervention/gif.git
+Link: https://github.com/intervention/gif
+-----------
+intervention/image
+License: MIT
+License File: vendor/intervention/image/LICENSE
+Copyright: Copyright (c) 2013-2024 Oliver Vogel
+Source: https://github.com/Intervention/image.git
+Link: https://image.intervention.io/
+-----------
+knplabs/knp-snappy
+License: MIT
+License File: vendor/knplabs/knp-snappy/LICENSE
+Copyright: Copyright (c) 2010 Matthieu Bontemps
+Source: https://github.com/KnpLabs/snappy.git
+Link: http://github.com/KnpLabs/snappy
+-----------
+laravel/framework
+License: MIT
+License File: vendor/laravel/framework/LICENSE.md
+Copyright: Copyright (c) Taylor Otwell
+Source: https://github.com/laravel/framework.git
+Link: https://laravel.com
+-----------
+laravel/prompts
+License: MIT
+License File: vendor/laravel/prompts/LICENSE.md
+Copyright: Copyright (c) Taylor Otwell
+Source: https://github.com/laravel/prompts.git
+Link: https://github.com/laravel/prompts.git
+-----------
+laravel/serializable-closure
+License: MIT
+License File: vendor/laravel/serializable-closure/LICENSE.md
+Copyright: Copyright (c) Taylor Otwell
+Source: https://github.com/laravel/serializable-closure.git
+Link: https://github.com/laravel/serializable-closure.git
+-----------
+laravel/socialite
+License: MIT
+License File: vendor/laravel/socialite/LICENSE.md
+Copyright: Copyright (c) Taylor Otwell
+Source: https://github.com/laravel/socialite.git
+Link: https://laravel.com
+-----------
+laravel/tinker
+License: MIT
+License File: vendor/laravel/tinker/LICENSE.md
+Copyright: Copyright (c) Taylor Otwell
+Source: https://github.com/laravel/tinker.git
+Link: https://github.com/laravel/tinker.git
+-----------
+league/commonmark
+License: BSD-3-Clause
+License File: vendor/league/commonmark/LICENSE
+Copyright: Copyright (c) 2014-2022, Colin O'Dell. All rights reserved. Some code based on commonmark.js (copyright 2014-2018, John MacFarlane) and commonmark-java (copyright 2015-2016, Atlassian Pty Ltd)
+Source: https://github.com/thephpleague/commonmark.git
+Link: https://commonmark.thephpleague.com
+-----------
+league/config
+License: BSD-3-Clause
+License File: vendor/league/config/LICENSE.md
+Copyright: Copyright (c) 2022, Colin O'Dell. All rights reserved.
+Source: https://github.com/thephpleague/config.git
+Link: https://config.thephpleague.com
+-----------
+league/flysystem
+License: MIT
+License File: vendor/league/flysystem/LICENSE
+Copyright: Copyright (c) 2013-2024 Frank de Jonge
+Source: https://github.com/thephpleague/flysystem.git
+Link: https://github.com/thephpleague/flysystem.git
+-----------
+league/flysystem-aws-s3-v3
+License: MIT
+License File: vendor/league/flysystem-aws-s3-v3/LICENSE
+Copyright: Copyright (c) 2013-2024 Frank de Jonge
+Source: https://github.com/thephpleague/flysystem-aws-s3-v3.git
+Link: https://github.com/thephpleague/flysystem-aws-s3-v3.git
+-----------
+league/flysystem-local
+License: MIT
+License File: vendor/league/flysystem-local/LICENSE
+Copyright: Copyright (c) 2013-2024 Frank de Jonge
+Source: https://github.com/thephpleague/flysystem-local.git
+Link: https://github.com/thephpleague/flysystem-local.git
+-----------
+league/html-to-markdown
+License: MIT
+License File: vendor/league/html-to-markdown/LICENSE
+Copyright: Copyright (c) 2015 Colin O'Dell; Originally created by Nick Cernis
+Source: https://github.com/thephpleague/html-to-markdown.git
+Link: https://github.com/thephpleague/html-to-markdown
+-----------
+league/mime-type-detection
+License: MIT
+License File: vendor/league/mime-type-detection/LICENSE
+Copyright: Copyright (c) 2013-2023 Frank de Jonge
+Source: https://github.com/thephpleague/mime-type-detection.git
+Link: https://github.com/thephpleague/mime-type-detection.git
+-----------
+league/oauth1-client
+License: MIT
+License File: vendor/league/oauth1-client/LICENSE
+Copyright: Copyright (c) 2013 Ben Corlett <**********@**.***>
+Source: https://github.com/thephpleague/oauth1-client.git
+Link: https://github.com/thephpleague/oauth1-client.git
+-----------
+league/oauth2-client
+License: MIT
+License File: vendor/league/oauth2-client/LICENSE
+Copyright: Copyright (c) 2013-2020 Alex Bilbie <*****@**********.***>
+Source: https://github.com/thephpleague/oauth2-client.git
+Link: https://github.com/thephpleague/oauth2-client.git
+-----------
+masterminds/html5
+License: MIT
+License File: vendor/masterminds/html5/LICENSE.txt
+Copyright: Copyright (c) 2013 The Authors of HTML5-PHP
+Source: https://github.com/Masterminds/html5-php.git
+Link: http://masterminds.github.io/html5-php
+-----------
+monolog/monolog
+License: MIT
+License File: vendor/monolog/monolog/LICENSE
+Copyright: Copyright (c) 2011-2020 Jordi Boggiano
+Source: https://github.com/Seldaek/monolog.git
+Link: https://github.com/Seldaek/monolog
+-----------
+mtdowling/jmespath.php
+License: MIT
+License File: vendor/mtdowling/jmespath.php/LICENSE
+Copyright: Copyright (c) 2014 Michael Dowling, https://github.com/mtdowling
+Source: https://github.com/jmespath/jmespath.php.git
+Link: https://github.com/jmespath/jmespath.php.git
+-----------
+nesbot/carbon
+License: MIT
+License File: vendor/nesbot/carbon/LICENSE
+Copyright: Copyright (C) Brian Nesbitt
+Source: https://github.com/briannesbitt/Carbon.git
+Link: https://carbon.nesbot.com
+-----------
+nette/schema
+License: BSD-3-Clause GPL-2.0-only GPL-3.0-only
+License File: vendor/nette/schema/license.md
+Copyright: Copyright (c) 2004, 2014 David Grudl (https://davidgrudl.com)
+All rights reserved.
+Source: https://github.com/nette/schema.git
+Link: https://nette.org
+-----------
+nette/utils
+License: BSD-3-Clause GPL-2.0-only GPL-3.0-only
+License File: vendor/nette/utils/license.md
+Copyright: Copyright (c) 2004, 2014 David Grudl (https://davidgrudl.com)
+All rights reserved.
+Source: https://github.com/nette/utils.git
+Link: https://nette.org
+-----------
+nikic/php-parser
+License: BSD-3-Clause
+License File: vendor/nikic/php-parser/LICENSE
+Copyright: Copyright (c) 2011, Nikita Popov
+All rights reserved.
+Source: https://github.com/nikic/PHP-Parser.git
+Link: https://github.com/nikic/PHP-Parser.git
+-----------
+nunomaduro/termwind
+License: MIT
+License File: vendor/nunomaduro/termwind/LICENSE.md
+Copyright: Copyright (c) Nuno Maduro <***********@*****.***>
+Source: https://github.com/nunomaduro/termwind.git
+Link: https://github.com/nunomaduro/termwind.git
+-----------
+onelogin/php-saml
+License: MIT
+License File: vendor/onelogin/php-saml/LICENSE
+Copyright: Copyright (c) 2010-2016 OneLogin, Inc.
+Source: https://github.com/onelogin/php-saml.git
+Link: https://developers.onelogin.com/saml/php
+-----------
+paragonie/constant_time_encoding
+License: MIT
+License File: vendor/paragonie/constant_time_encoding/LICENSE.txt
+Copyright: Copyright (c) 2016 - 2022 Paragon Initiative Enterprises
+Source: https://github.com/paragonie/constant_time_encoding.git
+Link: https://github.com/paragonie/constant_time_encoding.git
+-----------
+paragonie/random_compat
+License: MIT
+License File: vendor/paragonie/random_compat/LICENSE
+Copyright: Copyright (c) 2015 Paragon Initiative Enterprises
+Source: https://github.com/paragonie/random_compat.git
+Link: https://github.com/paragonie/random_compat.git
+-----------
+phenx/php-font-lib
+License: LGPL-2.1-or-later
+License File: vendor/phenx/php-font-lib/LICENSE
+Copyright: Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+Source: https://github.com/dompdf/php-font-lib.git
+Link: https://github.com/PhenX/php-font-lib
+-----------
+phenx/php-svg-lib
+License: LGPL-3.0-or-later
+License File: vendor/phenx/php-svg-lib/LICENSE
+Copyright: Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+Source: https://github.com/dompdf/php-svg-lib.git
+Link: https://github.com/PhenX/php-svg-lib
+-----------
+phpoption/phpoption
+License: Apache-2.0
+License File: vendor/phpoption/phpoption/LICENSE
+Source: https://github.com/schmittjoh/php-option.git
+Link: https://github.com/schmittjoh/php-option.git
+-----------
+phpseclib/phpseclib
+License: MIT
+License File: vendor/phpseclib/phpseclib/LICENSE
+Copyright: Copyright (c) 2011-2019 TerraFrost and other contributors
+Source: https://github.com/phpseclib/phpseclib.git
+Link: http://phpseclib.sourceforge.net
+-----------
+pragmarx/google2fa
+License: MIT
+License File: vendor/pragmarx/google2fa/LICENSE.md
+Copyright: Copyright 2014-2018 Phil, Antonio Carlos Ribeiro and All Contributors
+Source: https://github.com/antonioribeiro/google2fa.git
+Link: https://github.com/antonioribeiro/google2fa.git
+-----------
+predis/predis
+License: MIT
+License File: vendor/predis/predis/LICENSE
+Copyright: Copyright (c) 2009-2020 Daniele Alessandri (original work)
+Copyright (c) 2021-2023 Till Krüss (modified work)
+Source: https://github.com/predis/predis.git
+Link: http://github.com/predis/predis
+-----------
+psr/cache
+License: MIT
+License File: vendor/psr/cache/LICENSE.txt
+Copyright: Copyright (c) 2015 PHP Framework Interoperability Group
+Source: https://github.com/php-fig/cache.git
+Link: https://github.com/php-fig/cache.git
+-----------
+psr/clock
+License: MIT
+License File: vendor/psr/clock/LICENSE
+Copyright: Copyright (c) 2017 PHP Framework Interoperability Group
+Source: https://github.com/php-fig/clock.git
+Link: https://github.com/php-fig/clock
+-----------
+psr/container
+License: MIT
+License File: vendor/psr/container/LICENSE
+Copyright: Copyright (c) 2013-2016 container-interop
+Copyright (c) 2016 PHP Framework Interoperability Group
+Source: https://github.com/php-fig/container.git
+Link: https://github.com/php-fig/container
+-----------
+psr/event-dispatcher
+License: MIT
+License File: vendor/psr/event-dispatcher/LICENSE
+Copyright: Copyright (c) 2018 PHP-FIG
+Source: https://github.com/php-fig/event-dispatcher.git
+Link: https://github.com/php-fig/event-dispatcher.git
+-----------
+psr/http-client
+License: MIT
+License File: vendor/psr/http-client/LICENSE
+Copyright: Copyright (c) 2017 PHP Framework Interoperability Group
+Source: https://github.com/php-fig/http-client.git
+Link: https://github.com/php-fig/http-client
+-----------
+psr/http-factory
+License: MIT
+License File: vendor/psr/http-factory/LICENSE
+Copyright: Copyright (c) 2018 PHP-FIG
+Source: https://github.com/php-fig/http-factory.git
+Link: https://github.com/php-fig/http-factory.git
+-----------
+psr/http-message
+License: MIT
+License File: vendor/psr/http-message/LICENSE
+Copyright: Copyright (c) 2014 PHP Framework Interoperability Group
+Source: https://github.com/php-fig/http-message.git
+Link: https://github.com/php-fig/http-message
+-----------
+psr/log
+License: MIT
+License File: vendor/psr/log/LICENSE
+Copyright: Copyright (c) 2012 PHP Framework Interoperability Group
+Source: https://github.com/php-fig/log.git
+Link: https://github.com/php-fig/log
+-----------
+psr/simple-cache
+License: MIT
+License File: vendor/psr/simple-cache/LICENSE.md
+Copyright: Copyright (c) 2016 PHP Framework Interoperability Group
+Source: https://github.com/php-fig/simple-cache.git
+Link: https://github.com/php-fig/simple-cache.git
+-----------
+psy/psysh
+License: MIT
+License File: vendor/psy/psysh/LICENSE
+Copyright: Copyright (c) 2012-2023 Justin Hileman
+Source: https://github.com/bobthecow/psysh.git
+Link: http://psysh.org
+-----------
+ralouphie/getallheaders
+License: MIT
+License File: vendor/ralouphie/getallheaders/LICENSE
+Copyright: Copyright (c) 2014 Ralph Khattar
+Source: https://github.com/ralouphie/getallheaders.git
+Link: https://github.com/ralouphie/getallheaders.git
+-----------
+ramsey/collection
+License: MIT
+License File: vendor/ramsey/collection/LICENSE
+Copyright: Copyright (c) 2015-2022 Ben Ramsey <***@*********.***>
+Source: https://github.com/ramsey/collection.git
+Link: https://github.com/ramsey/collection.git
+-----------
+ramsey/uuid
+License: MIT
+License File: vendor/ramsey/uuid/LICENSE
+Copyright: Copyright (c) 2012-2023 Ben Ramsey <***@*********.***>
+Source: https://github.com/ramsey/uuid.git
+Link: https://github.com/ramsey/uuid.git
+-----------
+robrichards/xmlseclibs
+License: BSD-3-Clause
+License File: vendor/robrichards/xmlseclibs/LICENSE
+Copyright: Copyright (c) 2007-2019, Robert Richards <*********@*********.***>.
+Source: https://github.com/robrichards/xmlseclibs.git
+Link: https://github.com/robrichards/xmlseclibs
+-----------
+sabberworm/php-css-parser
+License: MIT
+License File: vendor/sabberworm/php-css-parser/LICENSE
+Copyright: Copyright (c) 2011 Raphael Schweikert, https://www.sabberworm.com/
+Source: https://github.com/MyIntervals/PHP-CSS-Parser.git
+Link: https://www.sabberworm.com/blog/2010/6/10/php-css-parser
+-----------
+socialiteproviders/discord
+License: MIT
+Source: https://github.com/SocialiteProviders/Discord.git
+Link: https://github.com/SocialiteProviders/Discord.git
+-----------
+socialiteproviders/gitlab
+License: MIT
+Source: https://github.com/SocialiteProviders/GitLab.git
+Link: https://github.com/SocialiteProviders/GitLab.git
+-----------
+socialiteproviders/manager
+License: MIT
+License File: vendor/socialiteproviders/manager/LICENSE
+Copyright: Copyright (c) 2015 Andy Wendt
+Source: https://github.com/SocialiteProviders/Manager.git
+Link: https://socialiteproviders.com
+-----------
+socialiteproviders/microsoft-azure
+License: MIT
+Source: https://github.com/SocialiteProviders/Microsoft-Azure.git
+Link: https://github.com/SocialiteProviders/Microsoft-Azure.git
+-----------
+socialiteproviders/okta
+License: MIT
+Source: https://github.com/SocialiteProviders/Okta.git
+Link: https://github.com/SocialiteProviders/Okta.git
+-----------
+socialiteproviders/twitch
+License: MIT
+Source: https://github.com/SocialiteProviders/Twitch.git
+Link: https://github.com/SocialiteProviders/Twitch.git
+-----------
+ssddanbrown/htmldiff
+License: MIT
+License File: vendor/ssddanbrown/htmldiff/license.md
+Copyright: Copyright (c) 2020 Nathan Herald, Rohland de Charmoy, Dan Brown
+Source: https://github.com/ssddanbrown/HtmlDiff.git
+Link: https://github.com/ssddanbrown/htmldiff
+-----------
+ssddanbrown/symfony-mailer
+License: MIT
+License File: vendor/ssddanbrown/symfony-mailer/LICENSE
+Copyright: Copyright (c) 2019-present Fabien Potencier
+Source: https://github.com/ssddanbrown/symfony-mailer.git
+Link: https://symfony.com
+-----------
+symfony/console
+License: MIT
+License File: vendor/symfony/console/LICENSE
+Copyright: Copyright (c) 2004-present Fabien Potencier
+Source: https://github.com/symfony/console.git
+Link: https://symfony.com
+-----------
+symfony/css-selector
+License: MIT
+License File: vendor/symfony/css-selector/LICENSE
+Copyright: Copyright (c) 2004-present Fabien Potencier
+Source: https://github.com/symfony/css-selector.git
+Link: https://symfony.com
+-----------
+symfony/deprecation-contracts
+License: MIT
+License File: vendor/symfony/deprecation-contracts/LICENSE
+Copyright: Copyright (c) 2020-present Fabien Potencier
+Source: https://github.com/symfony/deprecation-contracts.git
+Link: https://symfony.com
+-----------
+symfony/error-handler
+License: MIT
+License File: vendor/symfony/error-handler/LICENSE
+Copyright: Copyright (c) 2019-present Fabien Potencier
+Source: https://github.com/symfony/error-handler.git
+Link: https://symfony.com
+-----------
+symfony/event-dispatcher
+License: MIT
+License File: vendor/symfony/event-dispatcher/LICENSE
+Copyright: Copyright (c) 2004-present Fabien Potencier
+Source: https://github.com/symfony/event-dispatcher.git
+Link: https://symfony.com
+-----------
+symfony/event-dispatcher-contracts
+License: MIT
+License File: vendor/symfony/event-dispatcher-contracts/LICENSE
+Copyright: Copyright (c) 2018-present Fabien Potencier
+Source: https://github.com/symfony/event-dispatcher-contracts.git
+Link: https://symfony.com
+-----------
+symfony/finder
+License: MIT
+License File: vendor/symfony/finder/LICENSE
+Copyright: Copyright (c) 2004-present Fabien Potencier
+Source: https://github.com/symfony/finder.git
+Link: https://symfony.com
+-----------
+symfony/http-foundation
+License: MIT
+License File: vendor/symfony/http-foundation/LICENSE
+Copyright: Copyright (c) 2004-present Fabien Potencier
+Source: https://github.com/symfony/http-foundation.git
+Link: https://symfony.com
+-----------
+symfony/http-kernel
+License: MIT
+License File: vendor/symfony/http-kernel/LICENSE
+Copyright: Copyright (c) 2004-present Fabien Potencier
+Source: https://github.com/symfony/http-kernel.git
+Link: https://symfony.com
+-----------
+symfony/mime
+License: MIT
+License File: vendor/symfony/mime/LICENSE
+Copyright: Copyright (c) 2010-present Fabien Potencier
+Source: https://github.com/symfony/mime.git
+Link: https://symfony.com
+-----------
+symfony/polyfill-ctype
+License: MIT
+License File: vendor/symfony/polyfill-ctype/LICENSE
+Copyright: Copyright (c) 2018-present Fabien Potencier
+Source: https://github.com/symfony/polyfill-ctype.git
+Link: https://symfony.com
+-----------
+symfony/polyfill-intl-grapheme
+License: MIT
+License File: vendor/symfony/polyfill-intl-grapheme/LICENSE
+Copyright: Copyright (c) 2015-present Fabien Potencier
+Source: https://github.com/symfony/polyfill-intl-grapheme.git
+Link: https://symfony.com
+-----------
+symfony/polyfill-intl-idn
+License: MIT
+License File: vendor/symfony/polyfill-intl-idn/LICENSE
+Copyright: Copyright (c) 2018-present Fabien Potencier and Trevor Rowbotham <******.*********@**.**>
+Source: https://github.com/symfony/polyfill-intl-idn.git
+Link: https://symfony.com
+-----------
+symfony/polyfill-intl-normalizer
+License: MIT
+License File: vendor/symfony/polyfill-intl-normalizer/LICENSE
+Copyright: Copyright (c) 2015-present Fabien Potencier
+Source: https://github.com/symfony/polyfill-intl-normalizer.git
+Link: https://symfony.com
+-----------
+symfony/polyfill-mbstring
+License: MIT
+License File: vendor/symfony/polyfill-mbstring/LICENSE
+Copyright: Copyright (c) 2015-present Fabien Potencier
+Source: https://github.com/symfony/polyfill-mbstring.git
+Link: https://symfony.com
+-----------
+symfony/polyfill-php72
+License: MIT
+License File: vendor/symfony/polyfill-php72/LICENSE
+Copyright: Copyright (c) 2015-present Fabien Potencier
+Source: https://github.com/symfony/polyfill-php72.git
+Link: https://symfony.com
+-----------
+symfony/polyfill-php80
+License: MIT
+License File: vendor/symfony/polyfill-php80/LICENSE
+Copyright: Copyright (c) 2020-present Fabien Potencier
+Source: https://github.com/symfony/polyfill-php80.git
+Link: https://symfony.com
+-----------
+symfony/polyfill-php83
+License: MIT
+License File: vendor/symfony/polyfill-php83/LICENSE
+Copyright: Copyright (c) 2022-present Fabien Potencier
+Source: https://github.com/symfony/polyfill-php83.git
+Link: https://symfony.com
+-----------
+symfony/polyfill-uuid
+License: MIT
+License File: vendor/symfony/polyfill-uuid/LICENSE
+Copyright: Copyright (c) 2018-present Fabien Potencier
+Source: https://github.com/symfony/polyfill-uuid.git
+Link: https://symfony.com
+-----------
+symfony/process
+License: MIT
+License File: vendor/symfony/process/LICENSE
+Copyright: Copyright (c) 2004-present Fabien Potencier
+Source: https://github.com/symfony/process.git
+Link: https://symfony.com
+-----------
+symfony/routing
+License: MIT
+License File: vendor/symfony/routing/LICENSE
+Copyright: Copyright (c) 2004-present Fabien Potencier
+Source: https://github.com/symfony/routing.git
+Link: https://symfony.com
+-----------
+symfony/service-contracts
+License: MIT
+License File: vendor/symfony/service-contracts/LICENSE
+Copyright: Copyright (c) 2018-present Fabien Potencier
+Source: https://github.com/symfony/service-contracts.git
+Link: https://symfony.com
+-----------
+symfony/string
+License: MIT
+License File: vendor/symfony/string/LICENSE
+Copyright: Copyright (c) 2019-present Fabien Potencier
+Source: https://github.com/symfony/string.git
+Link: https://symfony.com
+-----------
+symfony/translation
+License: MIT
+License File: vendor/symfony/translation/LICENSE
+Copyright: Copyright (c) 2004-present Fabien Potencier
+Source: https://github.com/symfony/translation.git
+Link: https://symfony.com
+-----------
+symfony/translation-contracts
+License: MIT
+License File: vendor/symfony/translation-contracts/LICENSE
+Copyright: Copyright (c) 2018-present Fabien Potencier
+Source: https://github.com/symfony/translation-contracts.git
+Link: https://symfony.com
+-----------
+symfony/uid
+License: MIT
+License File: vendor/symfony/uid/LICENSE
+Copyright: Copyright (c) 2020-present Fabien Potencier
+Source: https://github.com/symfony/uid.git
+Link: https://symfony.com
+-----------
+symfony/var-dumper
+License: MIT
+License File: vendor/symfony/var-dumper/LICENSE
+Copyright: Copyright (c) 2014-present Fabien Potencier
+Source: https://github.com/symfony/var-dumper.git
+Link: https://symfony.com
+-----------
+tijsverkoyen/css-to-inline-styles
+License: BSD-3-Clause
+License File: vendor/tijsverkoyen/css-to-inline-styles/LICENSE.md
+Copyright: Copyright (c) Tijs Verkoyen. All rights reserved.
+Source: https://github.com/tijsverkoyen/CssToInlineStyles.git
+Link: https://github.com/tijsverkoyen/CssToInlineStyles
+-----------
+vlucas/phpdotenv
+License: BSD-3-Clause
+License File: vendor/vlucas/phpdotenv/LICENSE
+Copyright: Copyright (c) 2014, Graham Campbell.
+Source: https://github.com/vlucas/phpdotenv.git
+Link: https://github.com/vlucas/phpdotenv.git
+-----------
+voku/portable-ascii
+License: MIT
+License File: vendor/voku/portable-ascii/LICENSE.txt
+Copyright: Copyright (C) 2019 Lars Moelleken
+Source: https://github.com/voku/portable-ascii.git
+Link: https://github.com/voku/portable-ascii
+-----------
+webmozart/assert
+License: MIT
+License File: vendor/webmozart/assert/LICENSE
+Copyright: Copyright (c) 2014 Bernhard Schussek
+Source: https://github.com/webmozarts/assert.git
+Link: https://github.com/webmozarts/assert.git
'webhooks_last_errored' => 'Last Errored:',
'webhooks_last_error_message' => 'Last Error Message:',
+ // Licensing
+ 'licenses' => 'Licenses',
+ 'licenses_desc' => 'This page details license information for BookStack in addition to the projects & libraries that are used within BookStack. Many projects listed may only be used in a development context.',
+ 'licenses_bookstack' => 'BookStack License',
+ 'licenses_php' => 'PHP Library Licenses',
+ 'licenses_js' => 'JavaScript Library Licenses',
+ 'licenses_other' => 'Other Licenses',
+ 'license_details' => 'License Details',
//! If editing translations files directly please ignore this in all
//! languages apart from en. Content will be auto-copied from en.
"@ssddanbrown/codemirror-lang-twig": "^1.0.0",
"codemirror": "^6.0.1",
"idb-keyval": "^6.2.1",
- "markdown-it": "^13.0.2",
+ "markdown-it": "^14.1.0",
"markdown-it-task-lists": "^2.1.1",
"snabbdom": "^3.5.1",
"sortablejs": "^1.15.1"
"eslint-plugin-import": "^2.29.0",
"livereload": "^0.9.3",
"npm-run-all": "^4.1.5",
- "punycode": "^2.3.1",
"sass": "^1.69.5"
}
},
}
},
"node_modules/@codemirror/autocomplete": {
- "version": "6.12.0",
- "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.12.0.tgz",
- "integrity": "sha512-r4IjdYFthwbCQyvqnSlx0WBHRHi8nBvU+WjJxFUij81qsBfhNudf/XKKmmC2j3m0LaOYUQTf3qiEK1J8lO1sdg==",
+ "version": "6.15.0",
+ "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.15.0.tgz",
+ "integrity": "sha512-G2Zm0mXznxz97JhaaOdoEG2cVupn4JjPaS4AcNvZzhOsnnG9YVN68VzfoUw6dYTsIxT6a/cmoFEN47KAWhXaOg==",
"dependencies": {
"@codemirror/language": "^6.0.0",
"@codemirror/state": "^6.0.0",
}
},
"node_modules/@codemirror/lang-xml": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/@codemirror/lang-xml/-/lang-xml-6.0.2.tgz",
- "integrity": "sha512-JQYZjHL2LAfpiZI2/qZ/qzDuSqmGKMwyApYmEUUCTxLM4MWS7sATUEfIguZQr9Zjx/7gcdnewb039smF6nC2zw==",
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/@codemirror/lang-xml/-/lang-xml-6.1.0.tgz",
+ "integrity": "sha512-3z0blhicHLfwi2UgkZYRPioSgVTo9PV5GP5ducFH6FaHy0IAJRg+ixj5gTR1gnT/glAIC8xv4w2VL1LoZfs+Jg==",
"dependencies": {
"@codemirror/autocomplete": "^6.0.0",
"@codemirror/language": "^6.4.0",
"@codemirror/state": "^6.0.0",
+ "@codemirror/view": "^6.0.0",
"@lezer/common": "^1.0.0",
"@lezer/xml": "^1.0.0"
}
}
},
"node_modules/@codemirror/legacy-modes": {
- "version": "6.3.3",
- "resolved": "https://registry.npmjs.org/@codemirror/legacy-modes/-/legacy-modes-6.3.3.tgz",
- "integrity": "sha512-X0Z48odJ0KIoh/HY8Ltz75/4tDYc9msQf1E/2trlxFaFFhgjpVHjZ/BCXe1Lk7s4Gd67LL/CeEEHNI+xHOiESg==",
+ "version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/@codemirror/legacy-modes/-/legacy-modes-6.4.0.tgz",
+ "integrity": "sha512-5m/K+1A6gYR0e+h/dEde7LoGimMjRtWXZFg4Lo70cc8HzjSdHe3fLwjWMR0VRl5KFT1SxalSap7uMgPKF28wBA==",
"dependencies": {
"@codemirror/language": "^6.0.0"
}
}
},
"node_modules/@codemirror/view": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.24.1.tgz",
- "integrity": "sha512-sBfP4rniPBRQzNakwuQEqjEuiJDWJyF2kqLLqij4WXRoVwPPJfjx966Eq3F7+OPQxDtMt/Q9MWLoZLWjeveBlg==",
+ "version": "6.26.1",
+ "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.26.1.tgz",
+ "integrity": "sha512-wLw0t3R9AwOSQThdZ5Onw8QQtem5asE7+bPlnzc57eubPqiuJKIzwjMZ+C42vQett+iva+J8VgFV4RYWDBh5FA==",
"dependencies": {
"@codemirror/state": "^6.4.0",
"style-mod": "^4.1.0",
}
},
"node_modules/@esbuild/aix-ppc64": {
- "version": "0.20.1",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.1.tgz",
- "integrity": "sha512-m55cpeupQ2DbuRGQMMZDzbv9J9PgVelPjlcmM5kxHnrBdBx6REaEd7LamYV7Dm8N7rCyR/XwU6rVP8ploKtIkA==",
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz",
+ "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==",
"cpu": [
"ppc64"
],
}
},
"node_modules/@esbuild/android-arm": {
- "version": "0.20.1",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.1.tgz",
- "integrity": "sha512-4j0+G27/2ZXGWR5okcJi7pQYhmkVgb4D7UKwxcqrjhvp5TKWx3cUjgB1CGj1mfdmJBQ9VnUGgUhign+FPF2Zgw==",
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz",
+ "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==",
"cpu": [
"arm"
],
}
},
"node_modules/@esbuild/android-arm64": {
- "version": "0.20.1",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.1.tgz",
- "integrity": "sha512-hCnXNF0HM6AjowP+Zou0ZJMWWa1VkD77BXe959zERgGJBBxB+sV+J9f/rcjeg2c5bsukD/n17RKWXGFCO5dD5A==",
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz",
+ "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==",
"cpu": [
"arm64"
],
}
},
"node_modules/@esbuild/android-x64": {
- "version": "0.20.1",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.1.tgz",
- "integrity": "sha512-MSfZMBoAsnhpS+2yMFYIQUPs8Z19ajwfuaSZx+tSl09xrHZCjbeXXMsUF/0oq7ojxYEpsSo4c0SfjxOYXRbpaA==",
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz",
+ "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==",
"cpu": [
"x64"
],
}
},
"node_modules/@esbuild/darwin-arm64": {
- "version": "0.20.1",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.1.tgz",
- "integrity": "sha512-Ylk6rzgMD8klUklGPzS414UQLa5NPXZD5tf8JmQU8GQrj6BrFA/Ic9tb2zRe1kOZyCbGl+e8VMbDRazCEBqPvA==",
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz",
+ "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==",
"cpu": [
"arm64"
],
}
},
"node_modules/@esbuild/darwin-x64": {
- "version": "0.20.1",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.1.tgz",
- "integrity": "sha512-pFIfj7U2w5sMp52wTY1XVOdoxw+GDwy9FsK3OFz4BpMAjvZVs0dT1VXs8aQm22nhwoIWUmIRaE+4xow8xfIDZA==",
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz",
+ "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==",
"cpu": [
"x64"
],
}
},
"node_modules/@esbuild/freebsd-arm64": {
- "version": "0.20.1",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.1.tgz",
- "integrity": "sha512-UyW1WZvHDuM4xDz0jWun4qtQFauNdXjXOtIy7SYdf7pbxSWWVlqhnR/T2TpX6LX5NI62spt0a3ldIIEkPM6RHw==",
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz",
+ "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==",
"cpu": [
"arm64"
],
}
},
"node_modules/@esbuild/freebsd-x64": {
- "version": "0.20.1",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.1.tgz",
- "integrity": "sha512-itPwCw5C+Jh/c624vcDd9kRCCZVpzpQn8dtwoYIt2TJF3S9xJLiRohnnNrKwREvcZYx0n8sCSbvGH349XkcQeg==",
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz",
+ "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==",
"cpu": [
"x64"
],
}
},
"node_modules/@esbuild/linux-arm": {
- "version": "0.20.1",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.1.tgz",
- "integrity": "sha512-LojC28v3+IhIbfQ+Vu4Ut5n3wKcgTu6POKIHN9Wpt0HnfgUGlBuyDDQR4jWZUZFyYLiz4RBBBmfU6sNfn6RhLw==",
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz",
+ "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==",
"cpu": [
"arm"
],
}
},
"node_modules/@esbuild/linux-arm64": {
- "version": "0.20.1",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.1.tgz",
- "integrity": "sha512-cX8WdlF6Cnvw/DO9/X7XLH2J6CkBnz7Twjpk56cshk9sjYVcuh4sXQBy5bmTwzBjNVZze2yaV1vtcJS04LbN8w==",
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz",
+ "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==",
"cpu": [
"arm64"
],
}
},
"node_modules/@esbuild/linux-ia32": {
- "version": "0.20.1",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.1.tgz",
- "integrity": "sha512-4H/sQCy1mnnGkUt/xszaLlYJVTz3W9ep52xEefGtd6yXDQbz/5fZE5dFLUgsPdbUOQANcVUa5iO6g3nyy5BJiw==",
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz",
+ "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==",
"cpu": [
"ia32"
],
}
},
"node_modules/@esbuild/linux-loong64": {
- "version": "0.20.1",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.1.tgz",
- "integrity": "sha512-c0jgtB+sRHCciVXlyjDcWb2FUuzlGVRwGXgI+3WqKOIuoo8AmZAddzeOHeYLtD+dmtHw3B4Xo9wAUdjlfW5yYA==",
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz",
+ "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==",
"cpu": [
"loong64"
],
}
},
"node_modules/@esbuild/linux-mips64el": {
- "version": "0.20.1",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.1.tgz",
- "integrity": "sha512-TgFyCfIxSujyuqdZKDZ3yTwWiGv+KnlOeXXitCQ+trDODJ+ZtGOzLkSWngynP0HZnTsDyBbPy7GWVXWaEl6lhA==",
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz",
+ "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==",
"cpu": [
"mips64el"
],
}
},
"node_modules/@esbuild/linux-ppc64": {
- "version": "0.20.1",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.1.tgz",
- "integrity": "sha512-b+yuD1IUeL+Y93PmFZDZFIElwbmFfIKLKlYI8M6tRyzE6u7oEP7onGk0vZRh8wfVGC2dZoy0EqX1V8qok4qHaw==",
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz",
+ "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==",
"cpu": [
"ppc64"
],
}
},
"node_modules/@esbuild/linux-riscv64": {
- "version": "0.20.1",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.1.tgz",
- "integrity": "sha512-wpDlpE0oRKZwX+GfomcALcouqjjV8MIX8DyTrxfyCfXxoKQSDm45CZr9fanJ4F6ckD4yDEPT98SrjvLwIqUCgg==",
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz",
+ "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==",
"cpu": [
"riscv64"
],
}
},
"node_modules/@esbuild/linux-s390x": {
- "version": "0.20.1",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.1.tgz",
- "integrity": "sha512-5BepC2Au80EohQ2dBpyTquqGCES7++p7G+7lXe1bAIvMdXm4YYcEfZtQrP4gaoZ96Wv1Ute61CEHFU7h4FMueQ==",
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz",
+ "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==",
"cpu": [
"s390x"
],
}
},
"node_modules/@esbuild/linux-x64": {
- "version": "0.20.1",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.1.tgz",
- "integrity": "sha512-5gRPk7pKuaIB+tmH+yKd2aQTRpqlf1E4f/mC+tawIm/CGJemZcHZpp2ic8oD83nKgUPMEd0fNanrnFljiruuyA==",
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz",
+ "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==",
"cpu": [
"x64"
],
}
},
"node_modules/@esbuild/netbsd-x64": {
- "version": "0.20.1",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.1.tgz",
- "integrity": "sha512-4fL68JdrLV2nVW2AaWZBv3XEm3Ae3NZn/7qy2KGAt3dexAgSVT+Hc97JKSZnqezgMlv9x6KV0ZkZY7UO5cNLCg==",
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz",
+ "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==",
"cpu": [
"x64"
],
}
},
"node_modules/@esbuild/openbsd-x64": {
- "version": "0.20.1",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.1.tgz",
- "integrity": "sha512-GhRuXlvRE+twf2ES+8REbeCb/zeikNqwD3+6S5y5/x+DYbAQUNl0HNBs4RQJqrechS4v4MruEr8ZtAin/hK5iw==",
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz",
+ "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==",
"cpu": [
"x64"
],
}
},
"node_modules/@esbuild/sunos-x64": {
- "version": "0.20.1",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.1.tgz",
- "integrity": "sha512-ZnWEyCM0G1Ex6JtsygvC3KUUrlDXqOihw8RicRuQAzw+c4f1D66YlPNNV3rkjVW90zXVsHwZYWbJh3v+oQFM9Q==",
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz",
+ "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==",
"cpu": [
"x64"
],
}
},
"node_modules/@esbuild/win32-arm64": {
- "version": "0.20.1",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.1.tgz",
- "integrity": "sha512-QZ6gXue0vVQY2Oon9WyLFCdSuYbXSoxaZrPuJ4c20j6ICedfsDilNPYfHLlMH7vGfU5DQR0czHLmJvH4Nzis/A==",
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz",
+ "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==",
"cpu": [
"arm64"
],
}
},
"node_modules/@esbuild/win32-ia32": {
- "version": "0.20.1",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.1.tgz",
- "integrity": "sha512-HzcJa1NcSWTAU0MJIxOho8JftNp9YALui3o+Ny7hCh0v5f90nprly1U3Sj1Ldj/CvKKdvvFsCRvDkpsEMp4DNw==",
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz",
+ "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==",
"cpu": [
"ia32"
],
}
},
"node_modules/@esbuild/win32-x64": {
- "version": "0.20.1",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.1.tgz",
- "integrity": "sha512-0MBh53o6XtI6ctDnRMeQ+xoCN8kD2qI1rY1KgF/xdWQwoFeKou7puvDfV8/Wv4Ctx2rRpET/gGdz3YlNtNACSA==",
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz",
+ "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==",
"cpu": [
"x64"
],
}
},
"node_modules/@eslint/js": {
- "version": "8.56.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz",
- "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==",
+ "version": "8.57.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
+ "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
"node_modules/@humanwhocodes/object-schema": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz",
- "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==",
+ "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==",
"dev": true
},
"node_modules/@lezer/common": {
}
},
"node_modules/@lezer/generator": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/@lezer/generator/-/generator-1.6.0.tgz",
- "integrity": "sha512-mDwFNchv4jBEoZBaZbr5GlKR7BM6W/ZanTOZN6p4avuzcmYHTZ0nIbwtBqvXoeBrqmFSvL2zHL5TX9FWkXKc2w==",
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/@lezer/generator/-/generator-1.7.0.tgz",
+ "integrity": "sha512-IJ16tx3biLKlCXUzcK4v8S10AVa2BSM2rB12rtAL6f1hL2TS/HQQlGCoWRvanlL2J4mCYEEIv9uG7n4kVMkVDA==",
"dev": true,
"dependencies": {
"@lezer/common": "^1.1.0",
}
},
"node_modules/@lezer/html": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/@lezer/html/-/html-1.3.8.tgz",
- "integrity": "sha512-EXseJ3pUzWxE6XQBQdqWHZqqlGQRSuNMBcLb6mZWS2J2v+QZhOObD+3ZIKIcm59ntTzyor4LqFTb72iJc3k23Q==",
+ "version": "1.3.9",
+ "resolved": "https://registry.npmjs.org/@lezer/html/-/html-1.3.9.tgz",
+ "integrity": "sha512-MXxeCMPyrcemSLGaTQEZx0dBUH0i+RPl8RN5GwMAzo53nTsd/Unc/t5ZxACeQoyPUM5/GkPLRUs2WliOImzkRA==",
"dependencies": {
"@lezer/common": "^1.2.0",
"@lezer/highlight": "^1.0.0",
}
},
"node_modules/@lezer/javascript": {
- "version": "1.4.13",
- "resolved": "https://registry.npmjs.org/@lezer/javascript/-/javascript-1.4.13.tgz",
- "integrity": "sha512-5IBr8LIO3xJdJH1e9aj/ZNLE4LSbdsx25wFmGRAZsj2zSmwAYjx26JyU/BYOCpRQlu1jcv1z3vy4NB9+UkfRow==",
+ "version": "1.4.14",
+ "resolved": "https://registry.npmjs.org/@lezer/javascript/-/javascript-1.4.14.tgz",
+ "integrity": "sha512-GEdUyspTRgc5dwIGebUk+f3BekvqEWVIYsIuAC3pA8e8wcikGwBZRWRa450L0s8noGWuULwnmi4yjxTnYz9PpA==",
"dependencies": {
"@lezer/common": "^1.2.0",
"@lezer/highlight": "^1.1.3",
}
},
"node_modules/@lezer/markdown": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@lezer/markdown/-/markdown-1.2.0.tgz",
- "integrity": "sha512-d7MwsfAukZJo1GpPrcPGa3MxaFFOqNp0gbqF+3F7pTeNDOgeJN1muXzx1XXDPt+Ac+/voCzsH7qXqnn+xReG/g==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@lezer/markdown/-/markdown-1.3.0.tgz",
+ "integrity": "sha512-ErbEQ15eowmJUyT095e9NJc3BI9yZ894fjSDtHftD0InkfUBGgnKSU6dvan9jqsZuNHg2+ag/1oyDRxNsENupQ==",
"dependencies": {
"@lezer/common": "^1.0.0",
"@lezer/highlight": "^1.0.0"
}
},
"node_modules/@lezer/xml": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@lezer/xml/-/xml-1.0.4.tgz",
- "integrity": "sha512-WmXKb5eX8+rRfZYSNRR5TPee/ZoDgBdVS/rj1VCJGDKa5gNldIctQYibCoFVyNhvZsyL/8nHbZJZPM4gnXN2Vw==",
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@lezer/xml/-/xml-1.0.5.tgz",
+ "integrity": "sha512-VFouqOzmUWfIg+tfmpcdV33ewtK+NSwd4ngSe1aG7HFb4BN0ExyY1b8msp+ndFrnlG4V4iC8yXacjFtrwERnaw==",
"dependencies": {
"@lezer/common": "^1.2.0",
"@lezer/highlight": "^1.0.0",
}
},
"node_modules/array-includes": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz",
- "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==",
- "dev": true,
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "get-intrinsic": "^1.2.1",
- "is-string": "^1.0.7"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/array.prototype.filter": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.3.tgz",
- "integrity": "sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==",
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz",
+ "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "es-array-method-boxes-properly": "^1.0.0",
+ "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_modules/array.prototype.findlastindex": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.4.tgz",
- "integrity": "sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==",
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz",
+ "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.5",
+ "call-bind": "^1.0.7",
"define-properties": "^1.2.1",
- "es-abstract": "^1.22.3",
+ "es-abstract": "^1.23.2",
"es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
"es-shim-unscopables": "^1.0.2"
},
"engines": {
"dev": true
},
"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,
"engines": {
"node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/brace-expansion": {
"node": ">= 8"
}
},
+ "node_modules/data-view-buffer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz",
+ "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/data-view-byte-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz",
+ "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/data-view-byte-offset": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz",
+ "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"dev": true
},
"node_modules/entities": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
- "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==",
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
"engines": {
"node": ">=0.12"
},
}
},
"node_modules/es-abstract": {
- "version": "1.22.4",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.4.tgz",
- "integrity": "sha512-vZYJlk2u6qHYxBOTjAeg7qUxHdNfih64Uu2J8QqWgXZ2cri0ZpJAkzDUK/q593+mvKwlxyaxr6F1Q+3LKoQRgg==",
+ "version": "1.23.3",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz",
+ "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==",
"dev": true,
"dependencies": {
"array-buffer-byte-length": "^1.0.1",
"arraybuffer.prototype.slice": "^1.0.3",
- "available-typed-arrays": "^1.0.6",
+ "available-typed-arrays": "^1.0.7",
"call-bind": "^1.0.7",
+ "data-view-buffer": "^1.0.1",
+ "data-view-byte-length": "^1.0.1",
+ "data-view-byte-offset": "^1.0.0",
"es-define-property": "^1.0.0",
"es-errors": "^1.3.0",
- "es-set-tostringtag": "^2.0.2",
+ "es-object-atoms": "^1.0.0",
+ "es-set-tostringtag": "^2.0.3",
"es-to-primitive": "^1.2.1",
"function.prototype.name": "^1.1.6",
"get-intrinsic": "^1.2.4",
"globalthis": "^1.0.3",
"gopd": "^1.0.1",
"has-property-descriptors": "^1.0.2",
- "has-proto": "^1.0.1",
+ "has-proto": "^1.0.3",
"has-symbols": "^1.0.3",
- "hasown": "^2.0.1",
+ "hasown": "^2.0.2",
"internal-slot": "^1.0.7",
"is-array-buffer": "^3.0.4",
"is-callable": "^1.2.7",
- "is-negative-zero": "^2.0.2",
+ "is-data-view": "^1.0.1",
+ "is-negative-zero": "^2.0.3",
"is-regex": "^1.1.4",
- "is-shared-array-buffer": "^1.0.2",
+ "is-shared-array-buffer": "^1.0.3",
"is-string": "^1.0.7",
"is-typed-array": "^1.1.13",
"is-weakref": "^1.0.2",
"object-keys": "^1.1.1",
"object.assign": "^4.1.5",
"regexp.prototype.flags": "^1.5.2",
- "safe-array-concat": "^1.1.0",
+ "safe-array-concat": "^1.1.2",
"safe-regex-test": "^1.0.3",
- "string.prototype.trim": "^1.2.8",
- "string.prototype.trimend": "^1.0.7",
- "string.prototype.trimstart": "^1.0.7",
- "typed-array-buffer": "^1.0.1",
- "typed-array-byte-length": "^1.0.0",
- "typed-array-byte-offset": "^1.0.0",
- "typed-array-length": "^1.0.4",
+ "string.prototype.trim": "^1.2.9",
+ "string.prototype.trimend": "^1.0.8",
+ "string.prototype.trimstart": "^1.0.8",
+ "typed-array-buffer": "^1.0.2",
+ "typed-array-byte-length": "^1.0.1",
+ "typed-array-byte-offset": "^1.0.2",
+ "typed-array-length": "^1.0.6",
"unbox-primitive": "^1.0.2",
- "which-typed-array": "^1.1.14"
+ "which-typed-array": "^1.1.15"
},
"engines": {
"node": ">= 0.4"
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/es-array-method-boxes-properly": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz",
- "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==",
- "dev": true
- },
"node_modules/es-define-property": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
"node": ">= 0.4"
}
},
+ "node_modules/es-object-atoms": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz",
+ "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==",
+ "dev": true,
+ "dependencies": {
+ "es-errors": "^1.3.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/es-set-tostringtag": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz",
- "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz",
+ "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==",
"dev": true,
"dependencies": {
- "get-intrinsic": "^1.2.2",
- "has-tostringtag": "^1.0.0",
- "hasown": "^2.0.0"
+ "get-intrinsic": "^1.2.4",
+ "has-tostringtag": "^1.0.2",
+ "hasown": "^2.0.1"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/esbuild": {
- "version": "0.20.1",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.1.tgz",
- "integrity": "sha512-OJwEgrpWm/PCMsLVWXKqvcjme3bHNpOgN7Tb6cQnR5n0TPbQx1/Xrn7rqM+wn17bYeT6MGB5sn1Bh5YiGi70nA==",
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz",
+ "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==",
"dev": true,
"hasInstallScript": true,
"bin": {
"node": ">=12"
},
"optionalDependencies": {
- "@esbuild/aix-ppc64": "0.20.1",
- "@esbuild/android-arm": "0.20.1",
- "@esbuild/android-arm64": "0.20.1",
- "@esbuild/android-x64": "0.20.1",
- "@esbuild/darwin-arm64": "0.20.1",
- "@esbuild/darwin-x64": "0.20.1",
- "@esbuild/freebsd-arm64": "0.20.1",
- "@esbuild/freebsd-x64": "0.20.1",
- "@esbuild/linux-arm": "0.20.1",
- "@esbuild/linux-arm64": "0.20.1",
- "@esbuild/linux-ia32": "0.20.1",
- "@esbuild/linux-loong64": "0.20.1",
- "@esbuild/linux-mips64el": "0.20.1",
- "@esbuild/linux-ppc64": "0.20.1",
- "@esbuild/linux-riscv64": "0.20.1",
- "@esbuild/linux-s390x": "0.20.1",
- "@esbuild/linux-x64": "0.20.1",
- "@esbuild/netbsd-x64": "0.20.1",
- "@esbuild/openbsd-x64": "0.20.1",
- "@esbuild/sunos-x64": "0.20.1",
- "@esbuild/win32-arm64": "0.20.1",
- "@esbuild/win32-ia32": "0.20.1",
- "@esbuild/win32-x64": "0.20.1"
+ "@esbuild/aix-ppc64": "0.20.2",
+ "@esbuild/android-arm": "0.20.2",
+ "@esbuild/android-arm64": "0.20.2",
+ "@esbuild/android-x64": "0.20.2",
+ "@esbuild/darwin-arm64": "0.20.2",
+ "@esbuild/darwin-x64": "0.20.2",
+ "@esbuild/freebsd-arm64": "0.20.2",
+ "@esbuild/freebsd-x64": "0.20.2",
+ "@esbuild/linux-arm": "0.20.2",
+ "@esbuild/linux-arm64": "0.20.2",
+ "@esbuild/linux-ia32": "0.20.2",
+ "@esbuild/linux-loong64": "0.20.2",
+ "@esbuild/linux-mips64el": "0.20.2",
+ "@esbuild/linux-ppc64": "0.20.2",
+ "@esbuild/linux-riscv64": "0.20.2",
+ "@esbuild/linux-s390x": "0.20.2",
+ "@esbuild/linux-x64": "0.20.2",
+ "@esbuild/netbsd-x64": "0.20.2",
+ "@esbuild/openbsd-x64": "0.20.2",
+ "@esbuild/sunos-x64": "0.20.2",
+ "@esbuild/win32-arm64": "0.20.2",
+ "@esbuild/win32-ia32": "0.20.2",
+ "@esbuild/win32-x64": "0.20.2"
}
},
"node_modules/escape-string-regexp": {
}
},
"node_modules/eslint": {
- "version": "8.56.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz",
- "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==",
+ "version": "8.57.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
+ "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1",
"@eslint/eslintrc": "^2.1.4",
- "@eslint/js": "8.56.0",
- "@humanwhocodes/config-array": "^0.11.13",
+ "@eslint/js": "8.57.0",
+ "@humanwhocodes/config-array": "^0.11.14",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
"@ungap/structured-clone": "^1.2.0",
}
},
"node_modules/eslint-module-utils": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz",
- "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==",
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz",
+ "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==",
"dev": true,
"dependencies": {
"debug": "^3.2.7"
}
},
"node_modules/flatted": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.0.tgz",
- "integrity": "sha512-noqGuLw158+DuD9UPRKHpJ2hGxpFyDlYYrfM0mWt4XhT4n0lwzTLh70Tkdyy4kyTmyTT9Bv7bWAJqw7cgkEXDg==",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz",
+ "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==",
"dev": true
},
"node_modules/for-each": {
}
},
"node_modules/hasown": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz",
- "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
"dev": true,
"dependencies": {
"function-bind": "^1.1.2"
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-data-view": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz",
+ "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==",
+ "dev": true,
+ "dependencies": {
+ "is-typed-array": "^1.1.13"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-date-object": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
}
},
"node_modules/is-shared-array-buffer": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
- "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz",
+ "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2"
+ "call-bind": "^1.0.7"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/linkify-it": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz",
- "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz",
+ "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==",
"dependencies": {
- "uc.micro": "^1.0.1"
+ "uc.micro": "^2.0.0"
}
},
"node_modules/livereload": {
"dev": true
},
"node_modules/markdown-it": {
- "version": "13.0.2",
- "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.2.tgz",
- "integrity": "sha512-FtwnEuuK+2yVU7goGn/MJ0WBZMM9ZPgU9spqlFs7/A/pDIUNSOQZhUgOqYCficIuR2QaFnrt8LHqBWsbTAoI5w==",
+ "version": "14.1.0",
+ "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz",
+ "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==",
"dependencies": {
"argparse": "^2.0.1",
- "entities": "~3.0.1",
- "linkify-it": "^4.0.1",
- "mdurl": "^1.0.1",
- "uc.micro": "^1.0.5"
+ "entities": "^4.4.0",
+ "linkify-it": "^5.0.0",
+ "mdurl": "^2.0.0",
+ "punycode.js": "^2.3.1",
+ "uc.micro": "^2.1.0"
},
"bin": {
- "markdown-it": "bin/markdown-it.js"
+ "markdown-it": "bin/markdown-it.mjs"
}
},
"node_modules/markdown-it-task-lists": {
"integrity": "sha512-TxFAc76Jnhb2OUu+n3yz9RMu4CwGfaT788br6HhEDlvWfdeJcLUsxk1Hgw2yJio0OXsxv7pyIPmvECY7bMbluA=="
},
"node_modules/mdurl": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
- "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g=="
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz",
+ "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w=="
},
"node_modules/memorystream": {
"version": "0.3.1",
}
},
"node_modules/object.entries": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz",
- "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==",
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz",
+ "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/object.fromentries": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz",
- "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==",
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz",
+ "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
+ "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"
}
},
"node_modules/object.groupby": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.2.tgz",
- "integrity": "sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz",
+ "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==",
"dev": true,
"dependencies": {
- "array.prototype.filter": "^1.0.3",
- "call-bind": "^1.0.5",
+ "call-bind": "^1.0.7",
"define-properties": "^1.2.1",
- "es-abstract": "^1.22.3",
- "es-errors": "^1.0.0"
+ "es-abstract": "^1.23.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
}
},
"node_modules/object.values": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz",
- "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz",
+ "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
"node": ">=6"
}
},
+ "node_modules/punycode.js": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz",
+ "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/queue-microtask": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
}
},
"node_modules/safe-array-concat": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz",
- "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz",
+ "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.5",
- "get-intrinsic": "^1.2.2",
+ "call-bind": "^1.0.7",
+ "get-intrinsic": "^1.2.4",
"has-symbols": "^1.0.3",
"isarray": "^2.0.5"
},
}
},
"node_modules/sass": {
- "version": "1.71.0",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.71.0.tgz",
- "integrity": "sha512-HKKIKf49Vkxlrav3F/w6qRuPcmImGVbIXJ2I3Kg0VMA+3Bav+8yE9G5XmP5lMj6nl4OlqbPftGAscNaNu28b8w==",
+ "version": "1.74.1",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.74.1.tgz",
+ "integrity": "sha512-w0Z9p/rWZWelb88ISOLyvqTWGmtmu2QJICqDBGyNnfG4OUnPX9BBjjYIXUpXCMOOg5MQWNpqzt876la1fsTvUA==",
"dev": true,
"dependencies": {
"chokidar": ">=3.0.0 <4.0.0",
"dev": true
},
"node_modules/set-function-length": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz",
- "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==",
+ "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,
"dependencies": {
- "define-data-property": "^1.1.2",
+ "define-data-property": "^1.1.4",
"es-errors": "^1.3.0",
"function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.3",
+ "get-intrinsic": "^1.2.4",
"gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.1"
+ "has-property-descriptors": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/side-channel": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.5.tgz",
- "integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
+ "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.6",
+ "call-bind": "^1.0.7",
"es-errors": "^1.3.0",
"get-intrinsic": "^1.2.4",
"object-inspect": "^1.13.1"
"integrity": "sha512-FJF5jgdfvoKn1MAKSdGs33bIqLi3LmsgVTliuX6iITj834F+JRQZN90Z93yql8h0K2t0RwDPBmxwlbZfDcxNZA=="
},
"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.0",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
+ "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/string.prototype.padend": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.5.tgz",
- "integrity": "sha512-DOB27b/2UTTD+4myKUFh+/fXWcu/UDyASIXfg+7VzoCNNGOfWvoyU/x5pvVHr++ztyt/oSYI1BcWBBG/hmlNjA==",
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz",
+ "integrity": "sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
+ "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"
}
},
"node_modules/string.prototype.trim": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz",
- "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==",
+ "version": "1.2.9",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz",
+ "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.0",
+ "es-object-atoms": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/string.prototype.trimend": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz",
- "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==",
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz",
+ "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/string.prototype.trimstart": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz",
- "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==",
+ "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,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
+ "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/style-mod": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.0.tgz",
- "integrity": "sha512-Ca5ib8HrFn+f+0n4N4ScTIA9iTOQ7MaGS1ylHcoVqW9J7w2w8PzN6g9gKmTYgGEBH8e120+RCmhpje6jC5uGWA=="
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.2.tgz",
+ "integrity": "sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw=="
},
"node_modules/supports-color": {
"version": "7.2.0",
}
},
"node_modules/typed-array-byte-length": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz",
- "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz",
+ "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
+ "call-bind": "^1.0.7",
"for-each": "^0.3.3",
- "has-proto": "^1.0.1",
- "is-typed-array": "^1.1.10"
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/typed-array-length": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz",
- "integrity": "sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz",
+ "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==",
"dev": true,
"dependencies": {
"call-bind": "^1.0.7",
}
},
"node_modules/uc.micro": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
- "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA=="
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz",
+ "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A=="
},
"node_modules/unbox-primitive": {
"version": "1.0.2",
"dev": true
},
"node_modules/which-typed-array": {
- "version": "1.1.14",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz",
- "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==",
+ "version": "1.1.15",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz",
+ "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==",
"dev": true,
"dependencies": {
- "available-typed-arrays": "^1.0.6",
- "call-bind": "^1.0.5",
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.7",
"for-each": "^0.3.3",
"gopd": "^1.0.1",
- "has-tostringtag": "^1.0.1"
+ "has-tostringtag": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
"eslint-plugin-import": "^2.29.0",
"livereload": "^0.9.3",
"npm-run-all": "^4.1.5",
- "punycode": "^2.3.1",
"sass": "^1.69.5"
},
"dependencies": {
"@ssddanbrown/codemirror-lang-twig": "^1.0.0",
"codemirror": "^6.0.1",
"idb-keyval": "^6.2.1",
- "markdown-it": "^13.0.2",
+ "markdown-it": "^14.1.0",
"markdown-it-task-lists": "^2.1.1",
"snabbdom": "^3.5.1",
"sortablejs": "^1.15.1"
excludePaths:
- ./Config/**/*.php
+ - ./dev/**/*.php
checkMissingIterableValueType: false
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
-<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd"
- bootstrap="vendor/autoload.php"
- colors="true">
- <coverage>
- <include>
- <directory suffix=".php">app/</directory>
- </include>
- </coverage>
+<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.5/phpunit.xsd" bootstrap="vendor/autoload.php" colors="true">
<testsuites>
<testsuite name="Application Test Suite">
<directory>./tests/</directory>
<server name="APP_DEFAULT_DARK_MODE" value="false"/>
<server name="IP_ADDRESS_PRECISION" value="4"/>
</php>
+ <source>
+ <include>
+ <directory suffix=".php">app/</directory>
+ </include>
+ </source>
</phpunit>
[](https://github.com/BookStackApp/BookStack/actions)
[](https://codeclimate.com/github/BookStackApp/BookStack/maintainability)
+[](https://source.bookstackapp.com/)
[](https://gh-stats.bookstackapp.com/)
[](https://discord.gg/ztkBqR2)
[](https://fosstodon.org/@bookstack)
-[](https://x.com/bookstack_app)
[](https://foss.video/c/bookstack)
[](https://www.youtube.com/bookstackapp)
## 📚 Project Definition
-BookStack is an opinionated wiki system that provides a pleasant and simple out-of-the-box experience. New users to an instance should find the experience intuitive and only basic word-processing skills should be required to get involved in creating content on BookStack. The platform should provide advanced power features to those that desire it but they should not interfere with the core simple user experience.
+BookStack is an opinionated documentation platform that provides a pleasant and simple out-of-the-box experience. New users to an instance should find the experience intuitive and only basic word-processing skills should be required to get involved in creating content on BookStack. The platform should provide advanced power features to those that desire it but they should not interfere with the core simple user experience.
BookStack is not designed as an extensible platform to be used for purposes that differ to the statement above.
In regard to development philosophy, BookStack has a relaxed, open & positive approach. At the end of the day this is free software developed and maintained by people donating their own free time.
+You can read more about the project and its origins in [our FAQ here](https://www.bookstackapp.com/about/project-faq/).
+
## 🌟 Project Sponsors
Shown below are our bronze, silver and gold project sponsors.
[Project donation details](https://www.bookstackapp.com/donate/) - [GitHub Sponsors Page](https://github.com/sponsors/ssddanbrown) - [Ko-fi Page](https://ko-fi.com/ssddanbrown)
-#### Gold Sponsor
-
-<table><tbody><tr>
-<td align="center"><a href="https://www.federated.computer/bookstack/" target="_blank">
- <img width="240" src="https://media.githubusercontent.com/media/BookStackApp/website/main/static/images/sponsors/federated-computer.png" alt="Diagrams.net">
-</a></td>
-</tr></tbody></table>
-
#### Bronze Sponsors
<table><tbody><tr>
* [PHPStan](https://phpstan.org/) & [Larastan](https://github.com/nunomaduro/larastan) - _[MIT](https://github.com/phpstan/phpstan/blob/master/LICENSE) and [MIT](https://github.com/nunomaduro/larastan/blob/master/LICENSE.md)_
* [PHP_CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer) - _[BSD 3-Clause](https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt)_
* [JakeArchibald/IDB-Keyval](https://github.com/jakearchibald/idb-keyval) - _[Apache-2.0](https://github.com/jakearchibald/idb-keyval/blob/main/LICENCE)_
+
+For a detailed breakdown of the JavaScript & PHP projects imported & used via NPM & composer package managers, along with their licenses, please see the [dev/licensing/js-library-licenses.txt](dev/licensing/js-library-licenses.txt) and [dev/licensing/php-library-licenses.txt](dev/licensing/php-library-licenses.txt) files.
\ No newline at end of file
const content = elem.textContent.trimEnd();
let langName = '';
+ let innerCodeDirection = '';
if (innerCodeElem !== null) {
langName = innerCodeElem.className.replace('language-', '');
+ innerCodeDirection = innerCodeElem.getAttribute('dir');
}
const wrapper = document.createElement('div');
elem.parentNode.insertBefore(wrapper, elem);
- const direction = innerCodeElem.getAttribute('dir') || elem.getAttribute('dir') || '';
+ const direction = innerCodeDirection || elem.getAttribute('dir') || '';
if (direction) {
wrapper.setAttribute('dir', direction);
}
import {Component} from './component';
-import {init as initEditor} from '../markdown/editor';
export class MarkdownEditor extends Component {
const settingInputs = settingContainer.querySelectorAll('input[type="checkbox"]');
this.editor = null;
- initEditor({
- pageId: this.pageId,
- container: this.elem,
- displayEl: this.display,
- inputEl: this.input,
- drawioUrl: this.getDrawioUrl(),
- settingInputs: Array.from(settingInputs),
- text: {
- serverUploadLimit: this.serverUploadLimitText,
- imageUploadError: this.imageUploadErrorText,
- },
+ window.importVersioned('markdown').then(markdown => {
+ return markdown.init({
+ pageId: this.pageId,
+ container: this.elem,
+ displayEl: this.display,
+ inputEl: this.input,
+ drawioUrl: this.getDrawioUrl(),
+ settingInputs: Array.from(settingInputs),
+ text: {
+ serverUploadLimit: this.serverUploadLimitText,
+ imageUploadError: this.imageUploadErrorText,
+ },
+ });
}).then(editor => {
this.editor = editor;
this.setupListeners();
toolbar: 'bold italic link bullist numlist',
content_style: getContentStyle(options),
file_picker_types: 'file',
- valid_elements: 'p,a[href|title],ol,ul,li,strong,em,br',
+ valid_elements: 'p,a[href|title|target],ol,ul,li,strong,em,br',
file_picker_callback: filePickerCallback,
init_instance_callback(editor) {
addCustomHeadContent(editor.getDoc());
video {
max-width: 100%;
}
+
+ a {
+ text-decoration: underline;
+ }
}
/**
body {
display: block;
background-color: #fff;
- padding-inline-start: 16px;
- padding-inline-end: 16px;
+ padding-inline-start: 12px;
+ padding-inline-end: 12px;
+ max-width: 864px;
}
[drawio-diagram]:hover {
outline: 2px solid var(--color-primary);
padding-block-end: 1rem;
outline: 0;
display: block;
+ max-width: 870px;
}
.wysiwyg-input.mce-content-body {
--- /dev/null
+@extends('layouts.simple')
+
+@section('body')
+
+ <div class="container small">
+
+ <div class="my-l"> </div>
+
+ <div class="card content-wrap auto-height">
+
+ <h1 class="list-heading">{{ trans('settings.licenses') }}</h1>
+ <p>{{ trans('settings.licenses_desc') }}</p>
+
+ <ul>
+ <li><a href="#bookstack-license">{{ trans('settings.licenses_bookstack') }}</a></li>
+ <li><a href="#php-lib-licenses">{{ trans('settings.licenses_php') }}</a></li>
+ <li><a href="#js-lib-licenses">{{ trans('settings.licenses_js') }}</a></li>
+ <li><a href="#other-licenses">{{ trans('settings.licenses_other') }}</a></li>
+ </ul>
+ </div>
+
+ <div id="bookstack-license" class="card content-wrap auto-height">
+ <h3 class="list-heading">{{ trans('settings.licenses_bookstack') }}</h3>
+ <div style="white-space: pre-wrap;" class="mb-m">{{ $license }}</div>
+ <p>BookStack® is a UK registered trade mark of Daniel Brown. </p>
+ </div>
+
+ <div id="php-lib-licenses" class="card content-wrap auto-height">
+ <h3 class="list-heading">{{ trans('settings.licenses_php') }}</h3>
+ <div style="white-space: pre-wrap;">{{ $phpLibData }}</div>
+ </div>
+
+ <div id="js-lib-licenses" class="card content-wrap auto-height">
+ <h3 class="list-heading">{{ trans('settings.licenses_js') }}</h3>
+ <div style="white-space: pre-wrap;">{{ $jsLibData }}</div>
+ </div>
+
+ <div id="other-licenses" class="card content-wrap auto-height">
+ <h3 class="list-heading">{{ trans('settings.licenses_other') }}</h3>
+ <div style="white-space: pre-line;">BookStack makes heavy use of PHP:
+ License: PHP License, version 3.01
+ License File: https://www.php.net/license/3_01.txt
+ Copyright: Copyright (c) 1999 - 2019 The PHP Group. All rights reserved.
+ Link: https://www.php.net/
+ -----------
+ BookStack uses Icons from Google Material Icons:
+ License: Apache License Version 2.0
+ License File: https://github.com/google/material-design-icons/blob/master/LICENSE
+ Copyright: Copyright 2020 Google LLC
+ Link: https://github.com/google/material-design-icons
+ -----------
+ BookStack is distributed with TinyMCE:
+ License: MIT
+ License File: https://github.com/tinymce/tinymce/blob/release/6.7/LICENSE.TXT
+ Copyright: Copyright (c) 2022 Ephox Corporation DBA Tiny Technologies, Inc.
+ Link: https://github.com/tinymce/tinymce
+ </div>
+ </div>
+ </div>
+
+@endsection
\ No newline at end of file
<h5 class="mt-xl">{{ trans('settings.system_version') }}</h5>
<div class="py-xs">
<a target="_blank" rel="noopener noreferrer" href="https://github.com/BookStackApp/BookStack/releases">
- BookStack @if(strpos($version, 'v') !== 0) version @endif {{ $version }}
+ BookStack @if(!str_starts_with($version, 'v')) version @endif {{ $version }}
</a>
+ <br>
+ <a target="_blank" href="{{ url('/licenses') }}" class="text-muted">{{ trans('settings.license_details') }}</a>
</div>
</div>
use BookStack\Api\ApiDocsController;
use BookStack\Api\UserApiTokenController;
use BookStack\App\HomeController;
+use BookStack\App\MetaController;
use BookStack\Entities\Controllers as EntityControllers;
use BookStack\Http\Middleware\VerifyCsrfToken;
use BookStack\Permissions\PermissionsController;
use Illuminate\View\Middleware\ShareErrorsFromSession;
Route::get('/status', [SettingControllers\StatusController::class, 'show']);
-Route::get('/robots.txt', [HomeController::class, 'robots']);
-Route::get('/favicon.ico', [HomeController::class, 'favicon']);
-Route::get('/manifest.json', [HomeController::class, 'pwaManifest']);
+Route::get('/robots.txt', [MetaController::class, 'robots']);
+Route::get('/favicon.ico', [MetaController::class, 'favicon']);
+Route::get('/manifest.json', [MetaController::class, 'pwaManifest']);
+Route::get('/licenses', [MetaController::class, 'licenses']);
// Authenticated routes...
Route::middleware('auth')->group(function () {
// Metadata routes
Route::view('/help/wysiwyg', 'help.wysiwyg');
-Route::fallback([HomeController::class, 'notFound'])->name('fallback');
+Route::fallback([MetaController::class, 'notFound'])->name('fallback');
$resp = $this->followingRedirects()->post('/password/email', [
'email' => $editor->email,
]);
- Notification::assertTimesSent(1, ResetPasswordNotification::class);
+ Notification::assertSentTimes(ResetPasswordNotification::class, 1);
$resp->assertSee('A password reset link will be sent to ' . $editor->email . ' if that email address is found in the system.');
}
}
namespace Tests;
use Illuminate\Contracts\Console\Kernel;
+use Illuminate\Foundation\Application;
trait CreatesApplication
{
/**
* Creates the application.
- *
- * @return \Illuminate\Foundation\Application
*/
- public function createApplication()
+ public function createApplication(): Application
{
$app = require __DIR__ . '/../bootstrap/app.php';
$app->make(Kernel::class)->bootstrap();
{
$book = $this->entities->book();
- $input = '<h1>Test</h1><p id="abc" href="beans">Content<a href="#cat" data-a="b">a</a><section>Hello</section></p>';
- $expected = '<p>Content<a href="#cat">a</a></p>';
+ $input = '<h1>Test</h1><p id="abc" href="beans">Content<a href="#cat" target="_blank" data-a="b">a</a><section>Hello</section></p>';
+ $expected = '<p>Content<a href="#cat" target="_blank">a</a></p>';
$this->asEditor()->put($book->getUrl(), [
'name' => $book->name,
--- /dev/null
+<?php
+
+namespace Tests;
+
+class LicensesTest extends TestCase
+{
+ public function test_licenses_endpoint()
+ {
+ $resp = $this->get('/licenses');
+ $resp->assertOk();
+ $resp->assertSee('Licenses');
+ $resp->assertSee('PHP Library Licenses');
+ $resp->assertSee('Dan Brown and the BookStack Project contributors');
+ $resp->assertSee('doctrine/dbal');
+ $resp->assertSee('@codemirror/lang-html');
+ }
+
+ public function test_licenses_linked_to_from_settings()
+ {
+ $resp = $this->asAdmin()->get('/settings/features');
+ $html = $this->withHtml($resp);
+ $html->assertLinkExists(url('/licenses'), 'License Details');
+ }
+}
}
}
- protected function createReference(Model $from, Model $to)
+ public function test_reference_from_deleted_item_does_not_count_or_show_in_references_page()
+ {
+ $page = $this->entities->page();
+ $referencingPageA = $this->entities->page();
+ $referencingPageB = $this->entities->page();
+
+ $this->asEditor();
+ $this->createReference($referencingPageA, $page);
+ $this->createReference($referencingPageB, $page);
+
+ $resp = $this->get($page->getUrl());
+ $resp->assertSee('Referenced by 2 items');
+
+ $this->delete($referencingPageA->getUrl());
+
+ $resp = $this->get($page->getUrl());
+ $resp->assertSee('Referenced by 1 item');
+
+ $resp = $this->get($page->getUrl('/references'));
+ $resp->assertOk();
+ $resp->assertSee($referencingPageB->getUrl());
+ $resp->assertDontSee($referencingPageA->getUrl());
+ }
+
+ protected function createReference(Model $from, Model $to): void
{
(new Reference())->forceFill([
'from_type' => $from->getMorphClass(),
public function test_smtp_scheme_and_certain_port_forces_tls_usage()
{
$isMailTlsRequired = function () {
- /** @var \BookStack\App\Mail\EsmtpTransport $transport */
+ /** @var EsmtpTransport $transport */
$transport = Mail::mailer('smtp')->getSymfonyTransport();
Mail::purge('smtp');
return $transport->getTlsRequirement();