From fd5ff6eb60844e034eaf04f1b2f3a59dd77ace5f Mon Sep 17 00:00:00 2001 From: geekr Date: Thu, 9 Mar 2023 14:26:51 +0800 Subject: [PATCH 01/13] =?UTF-8?q?=E5=9F=BA=E4=BA=8EInertia+Vue3=E9=87=8D?= =?UTF-8?q?=E6=9E=84GeekChat=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Auth/AuthenticatedSessionController.php | 53 + .../Auth/ConfirmablePasswordController.php | 42 + ...mailVerificationNotificationController.php | 25 + .../EmailVerificationPromptController.php | 23 + .../Auth/NewPasswordController.php | 69 + .../Controllers/Auth/PasswordController.php | 29 + .../Auth/PasswordResetLinkController.php | 51 + .../Auth/RegisteredUserController.php | 52 + .../Auth/VerifyEmailController.php | 28 + app/Http/Controllers/ChatController.php | 18 +- app/Http/Kernel.php | 2 + app/Http/Middleware/HandleInertiaRequests.php | 44 + app/Http/Requests/Auth/LoginRequest.php | 85 + app/Http/Requests/ProfileUpdateRequest.php | 23 + app/Providers/RouteServiceProvider.php | 2 +- composer.json | 9 +- composer.lock | 202 +- jsconfig.json | 9 + package-lock.json | 4393 ++++++++++++++++- package.json | 14 +- postcss.config.js | 6 + resources/css/app.css | 3 + resources/js/Components/ApplicationLogo.vue | 7 + resources/js/Components/Checkbox.vue | 34 + resources/js/Components/DangerButton.vue | 17 + resources/js/Components/Dropdown.vue | 74 + resources/js/Components/DropdownLink.vue | 11 + resources/js/Components/Head.vue | 0 resources/js/Components/InputError.vue | 11 + resources/js/Components/InputLabel.vue | 10 + resources/js/Components/Modal.vue | 98 + resources/js/Components/NavLink.vue | 18 + resources/js/Components/PrimaryButton.vue | 17 + resources/js/Components/ResponsiveNavLink.vue | 18 + resources/js/Components/SecondaryButton.vue | 17 + resources/js/Components/TextInput.vue | 26 + resources/js/Layouts/AuthenticatedLayout.vue | 152 + resources/js/Layouts/GuestLayout.vue | 20 + resources/js/Pages/Auth/ConfirmPassword.vue | 50 + resources/js/Pages/Auth/ForgotPassword.vue | 59 + resources/js/Pages/Auth/Login.vue | 90 + resources/js/Pages/Auth/Register.vue | 104 + resources/js/Pages/Auth/ResetPassword.vue | 86 + resources/js/Pages/Auth/VerifyEmail.vue | 49 + resources/js/Pages/Dashboard.vue | 22 + resources/js/Pages/Welcome.vue | 119 + resources/js/app.js | 27 + resources/views/app.blade.php | 21 + routes/auth.php | 59 + routes/web.php | 26 +- tailwind.config.js | 21 + tests/Feature/Auth/AuthenticationTest.php | 45 + tests/Feature/Auth/EmailVerificationTest.php | 65 + .../Feature/Auth/PasswordConfirmationTest.php | 44 + tests/Feature/Auth/PasswordResetTest.php | 71 + tests/Feature/Auth/PasswordUpdateTest.php | 51 + tests/Feature/Auth/RegistrationTest.php | 32 + vite.config.js | 11 +- 58 files changed, 6492 insertions(+), 272 deletions(-) create mode 100644 app/Http/Controllers/Auth/AuthenticatedSessionController.php create mode 100644 app/Http/Controllers/Auth/ConfirmablePasswordController.php create mode 100644 app/Http/Controllers/Auth/EmailVerificationNotificationController.php create mode 100644 app/Http/Controllers/Auth/EmailVerificationPromptController.php create mode 100644 app/Http/Controllers/Auth/NewPasswordController.php create mode 100644 app/Http/Controllers/Auth/PasswordController.php create mode 100644 app/Http/Controllers/Auth/PasswordResetLinkController.php create mode 100644 app/Http/Controllers/Auth/RegisteredUserController.php create mode 100644 app/Http/Controllers/Auth/VerifyEmailController.php create mode 100644 app/Http/Middleware/HandleInertiaRequests.php create mode 100644 app/Http/Requests/Auth/LoginRequest.php create mode 100644 app/Http/Requests/ProfileUpdateRequest.php create mode 100644 jsconfig.json create mode 100644 postcss.config.js create mode 100644 resources/js/Components/ApplicationLogo.vue create mode 100644 resources/js/Components/Checkbox.vue create mode 100644 resources/js/Components/DangerButton.vue create mode 100644 resources/js/Components/Dropdown.vue create mode 100644 resources/js/Components/DropdownLink.vue create mode 100644 resources/js/Components/Head.vue create mode 100644 resources/js/Components/InputError.vue create mode 100644 resources/js/Components/InputLabel.vue create mode 100644 resources/js/Components/Modal.vue create mode 100644 resources/js/Components/NavLink.vue create mode 100644 resources/js/Components/PrimaryButton.vue create mode 100644 resources/js/Components/ResponsiveNavLink.vue create mode 100644 resources/js/Components/SecondaryButton.vue create mode 100644 resources/js/Components/TextInput.vue create mode 100644 resources/js/Layouts/AuthenticatedLayout.vue create mode 100644 resources/js/Layouts/GuestLayout.vue create mode 100644 resources/js/Pages/Auth/ConfirmPassword.vue create mode 100644 resources/js/Pages/Auth/ForgotPassword.vue create mode 100644 resources/js/Pages/Auth/Login.vue create mode 100644 resources/js/Pages/Auth/Register.vue create mode 100644 resources/js/Pages/Auth/ResetPassword.vue create mode 100644 resources/js/Pages/Auth/VerifyEmail.vue create mode 100644 resources/js/Pages/Dashboard.vue create mode 100644 resources/js/Pages/Welcome.vue create mode 100644 resources/views/app.blade.php create mode 100644 routes/auth.php create mode 100644 tailwind.config.js create mode 100644 tests/Feature/Auth/AuthenticationTest.php create mode 100644 tests/Feature/Auth/EmailVerificationTest.php create mode 100644 tests/Feature/Auth/PasswordConfirmationTest.php create mode 100644 tests/Feature/Auth/PasswordResetTest.php create mode 100644 tests/Feature/Auth/PasswordUpdateTest.php create mode 100644 tests/Feature/Auth/RegistrationTest.php diff --git a/app/Http/Controllers/Auth/AuthenticatedSessionController.php b/app/Http/Controllers/Auth/AuthenticatedSessionController.php new file mode 100644 index 0000000..2fddead --- /dev/null +++ b/app/Http/Controllers/Auth/AuthenticatedSessionController.php @@ -0,0 +1,53 @@ + Route::has('password.request'), + 'status' => session('status'), + ]); + } + + /** + * Handle an incoming authentication request. + */ + public function store(LoginRequest $request): RedirectResponse + { + $request->authenticate(); + + $request->session()->regenerate(); + + return redirect()->intended(RouteServiceProvider::HOME); + } + + /** + * Destroy an authenticated session. + */ + public function destroy(Request $request): RedirectResponse + { + Auth::guard('web')->logout(); + + $request->session()->invalidate(); + + $request->session()->regenerateToken(); + + return redirect('/'); + } +} diff --git a/app/Http/Controllers/Auth/ConfirmablePasswordController.php b/app/Http/Controllers/Auth/ConfirmablePasswordController.php new file mode 100644 index 0000000..1031482 --- /dev/null +++ b/app/Http/Controllers/Auth/ConfirmablePasswordController.php @@ -0,0 +1,42 @@ +validate([ + 'email' => $request->user()->email, + 'password' => $request->password, + ])) { + throw ValidationException::withMessages([ + 'password' => __('auth.password'), + ]); + } + + $request->session()->put('auth.password_confirmed_at', time()); + + return redirect()->intended(RouteServiceProvider::HOME); + } +} diff --git a/app/Http/Controllers/Auth/EmailVerificationNotificationController.php b/app/Http/Controllers/Auth/EmailVerificationNotificationController.php new file mode 100644 index 0000000..96ba772 --- /dev/null +++ b/app/Http/Controllers/Auth/EmailVerificationNotificationController.php @@ -0,0 +1,25 @@ +user()->hasVerifiedEmail()) { + return redirect()->intended(RouteServiceProvider::HOME); + } + + $request->user()->sendEmailVerificationNotification(); + + return back()->with('status', 'verification-link-sent'); + } +} diff --git a/app/Http/Controllers/Auth/EmailVerificationPromptController.php b/app/Http/Controllers/Auth/EmailVerificationPromptController.php new file mode 100644 index 0000000..813b6ed --- /dev/null +++ b/app/Http/Controllers/Auth/EmailVerificationPromptController.php @@ -0,0 +1,23 @@ +user()->hasVerifiedEmail() + ? redirect()->intended(RouteServiceProvider::HOME) + : Inertia::render('Auth/VerifyEmail', ['status' => session('status')]); + } +} diff --git a/app/Http/Controllers/Auth/NewPasswordController.php b/app/Http/Controllers/Auth/NewPasswordController.php new file mode 100644 index 0000000..394cc4a --- /dev/null +++ b/app/Http/Controllers/Auth/NewPasswordController.php @@ -0,0 +1,69 @@ + $request->email, + 'token' => $request->route('token'), + ]); + } + + /** + * Handle an incoming new password request. + * + * @throws \Illuminate\Validation\ValidationException + */ + public function store(Request $request): RedirectResponse + { + $request->validate([ + 'token' => 'required', + 'email' => 'required|email', + 'password' => ['required', 'confirmed', Rules\Password::defaults()], + ]); + + // Here we will attempt to reset the user's password. If it is successful we + // will update the password on an actual user model and persist it to the + // database. Otherwise we will parse the error and return the response. + $status = Password::reset( + $request->only('email', 'password', 'password_confirmation', 'token'), + function ($user) use ($request) { + $user->forceFill([ + 'password' => Hash::make($request->password), + 'remember_token' => Str::random(60), + ])->save(); + + event(new PasswordReset($user)); + } + ); + + // If the password was successfully reset, we will redirect the user back to + // the application's home authenticated view. If there is an error we can + // redirect them back to where they came from with their error message. + if ($status == Password::PASSWORD_RESET) { + return redirect()->route('login')->with('status', __($status)); + } + + throw ValidationException::withMessages([ + 'email' => [trans($status)], + ]); + } +} diff --git a/app/Http/Controllers/Auth/PasswordController.php b/app/Http/Controllers/Auth/PasswordController.php new file mode 100644 index 0000000..57a82b5 --- /dev/null +++ b/app/Http/Controllers/Auth/PasswordController.php @@ -0,0 +1,29 @@ +validate([ + 'current_password' => ['required', 'current_password'], + 'password' => ['required', Password::defaults(), 'confirmed'], + ]); + + $request->user()->update([ + 'password' => Hash::make($validated['password']), + ]); + + return back(); + } +} diff --git a/app/Http/Controllers/Auth/PasswordResetLinkController.php b/app/Http/Controllers/Auth/PasswordResetLinkController.php new file mode 100644 index 0000000..b22c544 --- /dev/null +++ b/app/Http/Controllers/Auth/PasswordResetLinkController.php @@ -0,0 +1,51 @@ + session('status'), + ]); + } + + /** + * Handle an incoming password reset link request. + * + * @throws \Illuminate\Validation\ValidationException + */ + public function store(Request $request): RedirectResponse + { + $request->validate([ + 'email' => 'required|email', + ]); + + // We will send the password reset link to this user. Once we have attempted + // to send the link, we will examine the response then see the message we + // need to show to the user. Finally, we'll send out a proper response. + $status = Password::sendResetLink( + $request->only('email') + ); + + if ($status == Password::RESET_LINK_SENT) { + return back()->with('status', __($status)); + } + + throw ValidationException::withMessages([ + 'email' => [trans($status)], + ]); + } +} diff --git a/app/Http/Controllers/Auth/RegisteredUserController.php b/app/Http/Controllers/Auth/RegisteredUserController.php new file mode 100644 index 0000000..a9f20f2 --- /dev/null +++ b/app/Http/Controllers/Auth/RegisteredUserController.php @@ -0,0 +1,52 @@ +validate([ + 'name' => 'required|string|max:255', + 'email' => 'required|string|email|max:255|unique:'.User::class, + 'password' => ['required', 'confirmed', Rules\Password::defaults()], + ]); + + $user = User::create([ + 'name' => $request->name, + 'email' => $request->email, + 'password' => Hash::make($request->password), + ]); + + event(new Registered($user)); + + Auth::login($user); + + return redirect(RouteServiceProvider::HOME); + } +} diff --git a/app/Http/Controllers/Auth/VerifyEmailController.php b/app/Http/Controllers/Auth/VerifyEmailController.php new file mode 100644 index 0000000..ea87940 --- /dev/null +++ b/app/Http/Controllers/Auth/VerifyEmailController.php @@ -0,0 +1,28 @@ +user()->hasVerifiedEmail()) { + return redirect()->intended(RouteServiceProvider::HOME.'?verified=1'); + } + + if ($request->user()->markEmailAsVerified()) { + event(new Verified($request->user())); + } + + return redirect()->intended(RouteServiceProvider::HOME.'?verified=1'); + } +} diff --git a/app/Http/Controllers/ChatController.php b/app/Http/Controllers/ChatController.php index 02c6d5c..48ff84b 100644 --- a/app/Http/Controllers/ChatController.php +++ b/app/Http/Controllers/ChatController.php @@ -5,23 +5,33 @@ use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use GeekrOpenAI\Laravel\Facades\OpenAI; +use Illuminate\Support\Facades\Redirect; +use Inertia\Inertia; class ChatController extends Controller { + public function index() + { + $messages = collect(session('messages', []))->reject(fn ($message) => $message['role'] === 'system'); + return Inertia::render('Welcome', [ + 'messages' => $messages->toArray(), + ]); + } + /** * Handle the incoming prompt. */ public function chat(Request $request): RedirectResponse { $request->validate([ - 'message' => 'required|string' + 'prompt' => 'required|string' ]); $messages = $request->session()->get('messages', [ ['role' => 'system', 'content' => 'You are GeekChat - A ChatGPT clone. Answer as concisely as possible.'] ]); - $messages[] = ['role' => 'user', 'content' => $request->input('message')]; + $messages[] = ['role' => 'user', 'content' => $request->input('prompt')]; $response = OpenAI::chat()->create([ 'model' => 'gpt-3.5-turbo', @@ -32,7 +42,7 @@ public function chat(Request $request): RedirectResponse $request->session()->put('messages', $messages); - return redirect('/'); + return Redirect::to('/'); } /** @@ -42,6 +52,6 @@ public function reset(Request $request): RedirectResponse { $request->session()->forget('messages'); - return redirect('/'); + return Redirect::to('/'); } } diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index c34cdcf..7558faa 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -36,6 +36,8 @@ class Kernel extends HttpKernel \Illuminate\View\Middleware\ShareErrorsFromSession::class, \App\Http\Middleware\VerifyCsrfToken::class, \Illuminate\Routing\Middleware\SubstituteBindings::class, + \App\Http\Middleware\HandleInertiaRequests::class, + \Illuminate\Http\Middleware\AddLinkHeadersForPreloadedAssets::class, ], 'api' => [ diff --git a/app/Http/Middleware/HandleInertiaRequests.php b/app/Http/Middleware/HandleInertiaRequests.php new file mode 100644 index 0000000..73266e2 --- /dev/null +++ b/app/Http/Middleware/HandleInertiaRequests.php @@ -0,0 +1,44 @@ + + */ + public function share(Request $request): array + { + return array_merge(parent::share($request), [ + 'auth' => [ + 'user' => $request->user(), + ], + 'ziggy' => function () use ($request) { + return array_merge((new Ziggy)->toArray(), [ + 'location' => $request->url(), + ]); + }, + ]); + } +} diff --git a/app/Http/Requests/Auth/LoginRequest.php b/app/Http/Requests/Auth/LoginRequest.php new file mode 100644 index 0000000..7a19bc0 --- /dev/null +++ b/app/Http/Requests/Auth/LoginRequest.php @@ -0,0 +1,85 @@ + + */ + public function rules(): array + { + return [ + 'email' => ['required', 'string', 'email'], + 'password' => ['required', 'string'], + ]; + } + + /** + * Attempt to authenticate the request's credentials. + * + * @throws \Illuminate\Validation\ValidationException + */ + public function authenticate(): void + { + $this->ensureIsNotRateLimited(); + + if (! Auth::attempt($this->only('email', 'password'), $this->boolean('remember'))) { + RateLimiter::hit($this->throttleKey()); + + throw ValidationException::withMessages([ + 'email' => trans('auth.failed'), + ]); + } + + RateLimiter::clear($this->throttleKey()); + } + + /** + * Ensure the login request is not rate limited. + * + * @throws \Illuminate\Validation\ValidationException + */ + public function ensureIsNotRateLimited(): void + { + if (! RateLimiter::tooManyAttempts($this->throttleKey(), 5)) { + return; + } + + event(new Lockout($this)); + + $seconds = RateLimiter::availableIn($this->throttleKey()); + + throw ValidationException::withMessages([ + 'email' => trans('auth.throttle', [ + 'seconds' => $seconds, + 'minutes' => ceil($seconds / 60), + ]), + ]); + } + + /** + * Get the rate limiting throttle key for the request. + */ + public function throttleKey(): string + { + return Str::transliterate(Str::lower($this->input('email')).'|'.$this->ip()); + } +} diff --git a/app/Http/Requests/ProfileUpdateRequest.php b/app/Http/Requests/ProfileUpdateRequest.php new file mode 100644 index 0000000..327ce6f --- /dev/null +++ b/app/Http/Requests/ProfileUpdateRequest.php @@ -0,0 +1,23 @@ + + */ + public function rules(): array + { + return [ + 'name' => ['string', 'max:255'], + 'email' => ['email', 'max:255', Rule::unique(User::class)->ignore($this->user()->id)], + ]; + } +} diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php index bc49109..f859850 100644 --- a/app/Providers/RouteServiceProvider.php +++ b/app/Providers/RouteServiceProvider.php @@ -17,7 +17,7 @@ class RouteServiceProvider extends ServiceProvider * * @var string */ - public const HOME = '/home'; + public const HOME = '/dashboard'; /** * Define your route model bindings, pattern filters, and other route configuration. diff --git a/composer.json b/composer.json index 798950e..5936d3b 100644 --- a/composer.json +++ b/composer.json @@ -9,17 +9,20 @@ "license": "MIT", "require": { "php": "^8.1", + "geekr/openai-laravel": "dev-master", "guzzlehttp/guzzle": "^7.2", + "inertiajs/inertia-laravel": "^0.6.8", "laravel/framework": "^10.0", "laravel/octane": "^1.4", "laravel/sanctum": "^3.2", "laravel/tinker": "^2.8", "openai-php/client": "^0.3.4", - "geekr/openai-laravel": "dev-master", - "spiral/roadrunner": "^2.8.2" + "spiral/roadrunner": "^2.8.2", + "tightenco/ziggy": "^1.0" }, "require-dev": { "fakerphp/faker": "^1.9.1", + "laravel/breeze": "^1.19", "laravel/pint": "^1.0", "laravel/sail": "^1.21", "mockery/mockery": "^1.4.4", @@ -70,4 +73,4 @@ }, "minimum-stability": "stable", "prefer-stable": true -} \ No newline at end of file +} diff --git a/composer.lock b/composer.lock index 94ce0da..375be1e 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "dab827c5f044e7312db47ea44366b60a", + "content-hash": "569aea56755d37f37f253a5ecc6c2041", "packages": [ { "name": "brick/math", @@ -1112,6 +1112,78 @@ ], "time": "2021-10-07T12:57:01+00:00" }, + { + "name": "inertiajs/inertia-laravel", + "version": "v0.6.9", + "source": { + "type": "git", + "url": "https://github.com/inertiajs/inertia-laravel.git", + "reference": "b983c6eb2fe7460df6170060cdd7b47b5ef6832a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/inertiajs/inertia-laravel/zipball/b983c6eb2fe7460df6170060cdd7b47b5ef6832a", + "reference": "b983c6eb2fe7460df6170060cdd7b47b5ef6832a", + "shasum": "" + }, + "require": { + "ext-json": "*", + "laravel/framework": "^6.0|^7.0|^8.74|^9.0|^10.0", + "php": "^7.2|~8.0.0|~8.1.0|~8.2.0" + }, + "require-dev": { + "mockery/mockery": "^1.3.3", + "orchestra/testbench": "^4.0|^5.0|^6.4|^7.0|^8.0", + "phpunit/phpunit": "^8.0|^9.5.8", + "roave/security-advisories": "dev-master" + }, + "suggest": { + "ext-pcntl": "Recommended when running the Inertia SSR server via the `inertia:start-ssr` artisan command." + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Inertia\\ServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "./helpers.php" + ], + "psr-4": { + "Inertia\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jonathan Reinink", + "email": "jonathan@reinink.ca", + "homepage": "https://reinink.ca" + } + ], + "description": "The Laravel adapter for Inertia.js.", + "keywords": [ + "inertia", + "laravel" + ], + "support": { + "issues": "https://github.com/inertiajs/inertia-laravel/issues", + "source": "https://github.com/inertiajs/inertia-laravel/tree/v0.6.9" + }, + "funding": [ + { + "url": "https://github.com/reinink", + "type": "github" + } + ], + "time": "2023-01-17T01:02:51+00:00" + }, { "name": "laminas/laminas-diactoros", "version": "2.24.0", @@ -6363,6 +6435,73 @@ ], "time": "2023-02-16T09:57:23+00:00" }, + { + "name": "tightenco/ziggy", + "version": "v1.5.0", + "source": { + "type": "git", + "url": "https://github.com/tighten/ziggy.git", + "reference": "419ac3f71b60795b392ec1ba6ee72e179977afc8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/tighten/ziggy/zipball/419ac3f71b60795b392ec1ba6ee72e179977afc8", + "reference": "419ac3f71b60795b392ec1ba6ee72e179977afc8", + "shasum": "" + }, + "require": { + "ext-json": "*", + "laravel/framework": ">=5.4@dev" + }, + "require-dev": { + "orchestra/testbench": "^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0", + "phpunit/phpunit": "^6.0 || ^7.0 || ^8.0 || ^9.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Tightenco\\Ziggy\\ZiggyServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Tightenco\\Ziggy\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Coulbourne", + "email": "daniel@tighten.co" + }, + { + "name": "Jake Bathman", + "email": "jake@tighten.co" + }, + { + "name": "Jacob Baker-Kretzmar", + "email": "jacob@tighten.co" + } + ], + "description": "Generates a Blade directive exporting all of your named Laravel routes. Also provides a nice route() helper function in JavaScript.", + "homepage": "https://github.com/tighten/ziggy", + "keywords": [ + "Ziggy", + "javascript", + "laravel", + "routes" + ], + "support": { + "issues": "https://github.com/tighten/ziggy/issues", + "source": "https://github.com/tighten/ziggy/tree/v1.5.0" + }, + "time": "2022-09-23T22:15:05+00:00" + }, { "name": "tijsverkoyen/css-to-inline-styles", "version": "2.2.6", @@ -6824,6 +6963,67 @@ }, "time": "2020-07-09T08:09:16+00:00" }, + { + "name": "laravel/breeze", + "version": "v1.19.2", + "source": { + "type": "git", + "url": "https://github.com/laravel/breeze.git", + "reference": "725e0c4fb1f630afdd90b5fba2a7f6d8d547ac29" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/breeze/zipball/725e0c4fb1f630afdd90b5fba2a7f6d8d547ac29", + "reference": "725e0c4fb1f630afdd90b5fba2a7f6d8d547ac29", + "shasum": "" + }, + "require": { + "illuminate/console": "^9.21|^10.0", + "illuminate/filesystem": "^9.21|^10.0", + "illuminate/support": "^9.21|^10.0", + "illuminate/validation": "^9.21|^10.0", + "php": "^8.0.2" + }, + "conflict": { + "laravel/framework": "<9.37.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + }, + "laravel": { + "providers": [ + "Laravel\\Breeze\\BreezeServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Breeze\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Minimal Laravel authentication scaffolding with Blade and Tailwind.", + "keywords": [ + "auth", + "laravel" + ], + "support": { + "issues": "https://github.com/laravel/breeze/issues", + "source": "https://github.com/laravel/breeze" + }, + "time": "2023-02-18T20:55:43+00:00" + }, { "name": "laravel/pint", "version": "v1.6.0", diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 0000000..97921a9 --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@/*": ["resources/js/*"] + } + }, + "exclude": ["node_modules", "public"] +} diff --git a/package-lock.json b/package-lock.json index f3458d0..080d1f4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,22 +1,31 @@ { - "name": "chatgpt-laravel", + "name": "geekchat", "lockfileVersion": 3, "requires": true, "packages": { "": { + "dependencies": { + "@kangc/v-md-editor": "^2.3.15", + "highlight.js": "^11.7.0", + "vue3-markdown-it": "^1.0.10" + }, "devDependencies": { + "@inertiajs/vue3": "^1.0.0", + "@tailwindcss/forms": "^0.5.3", "@vitejs/plugin-vue": "^4.0.0", + "autoprefixer": "^10.4.12", "axios": "^1.1.2", "laravel-vite-plugin": "^0.7.2", - "vite": "^4.0.0" + "postcss": "^8.4.18", + "tailwindcss": "^3.2.1", + "vite": "^4.0.0", + "vue": "^3.2.41" } }, "node_modules/@babel/parser": { "version": "7.21.2", "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.21.2.tgz", "integrity": "sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==", - "dev": true, - "peer": true, "bin": { "parser": "bin/babel-parser.js" }, @@ -24,6 +33,23 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/runtime": { + "version": "7.21.0", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.21.0.tgz", + "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", + "dependencies": { + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@braintree/sanitize-url": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/@braintree/sanitize-url/-/sanitize-url-3.1.0.tgz", + "integrity": "sha512-GcIY79elgB+azP74j8vqkiXz8xLFfIzbQJdlwOPisgbKT00tviJQuEghOXSMVxJ00HoYJbGswr4kcllUc4xCcg==", + "deprecated": "Potential XSS vulnerability patched in v6.0.0." + }, "node_modules/@esbuild/android-arm": { "version": "0.16.17", "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.16.17.tgz", @@ -376,6 +402,181 @@ "node": ">=12" } }, + "node_modules/@inertiajs/core": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/@inertiajs/core/-/core-1.0.2.tgz", + "integrity": "sha512-IJryvuNBcOIEZqKaA1vsX++hroovrLfb4jezym/W6NqxpsacoOkCLqWFneiScTaa5IiU0Wv0Li3lCuxK7DwTEQ==", + "dev": true, + "dependencies": { + "axios": "^1.2.0", + "deepmerge": "^4.0.0", + "nprogress": "^0.2.0", + "qs": "^6.9.0" + } + }, + "node_modules/@inertiajs/vue3": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/@inertiajs/vue3/-/vue3-1.0.2.tgz", + "integrity": "sha512-8LU6fd3BcmmxN7kHWgF06zKXnqZibi3+2UJ5Im1WsMXfqZO4jwaz5qFU2NjOBQEgcm5t+FNv1fbAESGEC8eezg==", + "dev": true, + "dependencies": { + "@inertiajs/core": "1.0.2", + "lodash.clonedeep": "^4.5.0", + "lodash.isequal": "^4.5.0" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/@kangc/v-md-editor": { + "version": "2.3.15", + "resolved": "https://registry.npmmirror.com/@kangc/v-md-editor/-/v-md-editor-2.3.15.tgz", + "integrity": "sha512-tPsBJd4YwJSZK3+mbeBu9Iol9Zi3BboNr1QbDfsxVQ/4hlMgEpMT+vj3/e5FNwgBx50RIphU0j9qNLK+dgFmqA==", + "dependencies": { + "@babel/runtime": "^7.14.0", + "@vuepress/markdown": "^1.8.2", + "codemirror": "^5.61.1", + "copy-to-clipboard": "^3.3.1", + "highlight.js": "^10.7.2", + "insert-text-at-cursor": "^0.3.0", + "katex": "^0.13.11", + "markdown-it": "^12.3.2", + "markdown-it-attrs": "^4.0.0", + "markdown-it-container": "^3.0.0", + "mermaid": "^8.10.1", + "prismjs": "^1.23.0", + "resize-observer-polyfill": "^1.5.1", + "vant": "^3.1.3", + "xss": "^1.0.9" + }, + "peerDependencies": { + "@vue/compiler-sfc": "^3.0.0", + "vue": "^3.0.0" + } + }, + "node_modules/@kangc/v-md-editor/node_modules/highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmmirror.com/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "engines": { + "node": "*" + } + }, + "node_modules/@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dependencies": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@tailwindcss/forms": { + "version": "0.5.3", + "resolved": "https://registry.npmmirror.com/@tailwindcss/forms/-/forms-0.5.3.tgz", + "integrity": "sha512-y5mb86JUoiUgBjY/o6FJSFZSEttfb3Q5gllE4xoKjAAD+vBrnIhE4dViwUuow3va8mpH4s9jyUbUbrRGoRdc2Q==", + "dev": true, + "dependencies": { + "mini-svg-data-uri": "^1.2.3" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1" + } + }, + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/linkify-it": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/@types/linkify-it/-/linkify-it-3.0.2.tgz", + "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==", + "peer": true + }, + "node_modules/@types/markdown-it": { + "version": "12.2.3", + "resolved": "https://registry.npmmirror.com/@types/markdown-it/-/markdown-it-12.2.3.tgz", + "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==", + "peer": true, + "dependencies": { + "@types/linkify-it": "*", + "@types/mdurl": "*" + } + }, + "node_modules/@types/mdurl": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/@types/mdurl/-/mdurl-1.0.2.tgz", + "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==", + "peer": true + }, + "node_modules/@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==" + }, + "node_modules/@types/node": { + "version": "18.14.6", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-18.14.6.tgz", + "integrity": "sha512-93+VvleD3mXwlLI/xASjw0FzKcwzl3OdTCzm1LaRfqgS21gfFtK3zDXM5Op9TeeMsJVOaJ2VRDpT9q4Y3d0AvA==" + }, + "node_modules/@vant/icons": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/@vant/icons/-/icons-1.8.0.tgz", + "integrity": "sha512-sKfEUo2/CkQFuERxvkuF6mGQZDKu3IQdj5rV9Fm0weJXtchDSSQ+zt8qPCNUEhh9Y8shy5PzxbvAfOOkCwlCXg==" + }, + "node_modules/@vant/popperjs": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/@vant/popperjs/-/popperjs-1.3.0.tgz", + "integrity": "sha512-hB+czUG+aHtjhaEmCJDuXOep0YTZjdlRR+4MSmIFnkCQIxJaXLQdSsR90XWvAI2yvKUI7TCGqR8pQg2RtvkMHw==" + }, + "node_modules/@vant/use": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/@vant/use/-/use-1.5.0.tgz", + "integrity": "sha512-Dk7aMn7gLpoDew2tix/mjXpP0PoERWcxWh+pRY4xxl0MG4eeByAAyZSE6PgMpof4Yorqn7yq8KmeQcaVnxq2cg==" + }, "node_modules/@vitejs/plugin-vue": { "version": "4.0.0", "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-4.0.0.tgz", @@ -393,8 +594,6 @@ "version": "3.2.47", "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.47.tgz", "integrity": "sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==", - "dev": true, - "peer": true, "dependencies": { "@babel/parser": "^7.16.4", "@vue/shared": "3.2.47", @@ -406,8 +605,6 @@ "version": "3.2.47", "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz", "integrity": "sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==", - "dev": true, - "peer": true, "dependencies": { "@vue/compiler-core": "3.2.47", "@vue/shared": "3.2.47" @@ -417,8 +614,6 @@ "version": "3.2.47", "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz", "integrity": "sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==", - "dev": true, - "peer": true, "dependencies": { "@babel/parser": "^7.16.4", "@vue/compiler-core": "3.2.47", @@ -436,8 +631,6 @@ "version": "3.2.47", "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz", "integrity": "sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==", - "dev": true, - "peer": true, "dependencies": { "@vue/compiler-dom": "3.2.47", "@vue/shared": "3.2.47" @@ -447,8 +640,6 @@ "version": "3.2.47", "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.47.tgz", "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==", - "dev": true, - "peer": true, "dependencies": { "@vue/shared": "3.2.47" } @@ -457,8 +648,6 @@ "version": "3.2.47", "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz", "integrity": "sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==", - "dev": true, - "peer": true, "dependencies": { "@babel/parser": "^7.16.4", "@vue/compiler-core": "3.2.47", @@ -471,8 +660,6 @@ "version": "3.2.47", "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.47.tgz", "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==", - "dev": true, - "peer": true, "dependencies": { "@vue/reactivity": "3.2.47", "@vue/shared": "3.2.47" @@ -482,8 +669,6 @@ "version": "3.2.47", "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz", "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==", - "dev": true, - "peer": true, "dependencies": { "@vue/runtime-core": "3.2.47", "@vue/shared": "3.2.47", @@ -494,8 +679,6 @@ "version": "3.2.47", "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.47.tgz", "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==", - "dev": true, - "peer": true, "dependencies": { "@vue/compiler-ssr": "3.2.47", "@vue/shared": "3.2.47" @@ -507,332 +690,3960 @@ "node_modules/@vue/shared": { "version": "3.2.47", "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.47.tgz", - "integrity": "sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==", - "dev": true, - "peer": true + "integrity": "sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==" }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true + "node_modules/@vuepress/markdown": { + "version": "1.9.9", + "resolved": "https://registry.npmmirror.com/@vuepress/markdown/-/markdown-1.9.9.tgz", + "integrity": "sha512-JzFdBdGe5aoiKSaEgF+h3JLDXNVfWPI5DJWXrIt7rhhkMJesF6HowIznPLdXqukzHfXHcPvo9oQ4o6eT0YmVGA==", + "dependencies": { + "@vuepress/shared-utils": "1.9.9", + "markdown-it": "^8.4.1", + "markdown-it-anchor": "^5.0.2", + "markdown-it-chain": "^1.3.0", + "markdown-it-emoji": "^1.4.0", + "markdown-it-table-of-contents": "^0.4.0", + "prismjs": "^1.13.0" + } }, - "node_modules/axios": { - "version": "1.3.4", - "resolved": "https://registry.npmmirror.com/axios/-/axios-1.3.4.tgz", - "integrity": "sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ==", - "dev": true, + "node_modules/@vuepress/markdown/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" + "sprintf-js": "~1.0.2" } }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, + "node_modules/@vuepress/markdown/node_modules/entities": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + }, + "node_modules/@vuepress/markdown/node_modules/linkify-it": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/linkify-it/-/linkify-it-2.2.0.tgz", + "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", "dependencies": { - "delayed-stream": "~1.0.0" + "uc.micro": "^1.0.1" + } + }, + "node_modules/@vuepress/markdown/node_modules/markdown-it": { + "version": "8.4.2", + "resolved": "https://registry.npmmirror.com/markdown-it/-/markdown-it-8.4.2.tgz", + "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==", + "dependencies": { + "argparse": "^1.0.7", + "entities": "~1.1.1", + "linkify-it": "^2.0.0", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" }, - "engines": { - "node": ">= 0.8" + "bin": { + "markdown-it": "bin/markdown-it.js" } }, - "node_modules/csstype": { - "version": "2.6.21", - "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz", - "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==", - "dev": true, - "peer": true + "node_modules/@vuepress/markdown/node_modules/markdown-it-anchor": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/markdown-it-anchor/-/markdown-it-anchor-5.3.0.tgz", + "integrity": "sha512-/V1MnLL/rgJ3jkMWo84UR+K+jF1cxNG1a+KwqeXqTIJ+jtA8aWSHuigx8lTzauiIjBDbwF3NcWQMotd0Dm39jA==", + "peerDependencies": { + "markdown-it": "*" + } }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "engines": { - "node": ">=0.4.0" + "node_modules/@vuepress/markdown/node_modules/markdown-it-emoji": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/markdown-it-emoji/-/markdown-it-emoji-1.4.0.tgz", + "integrity": "sha512-QCz3Hkd+r5gDYtS2xsFXmBYrgw6KuWcJZLCEkdfAuwzZbShCmCfta+hwAMq4NX/4xPzkSHduMKgMkkPUJxSXNg==" + }, + "node_modules/@vuepress/shared-utils": { + "version": "1.9.9", + "resolved": "https://registry.npmmirror.com/@vuepress/shared-utils/-/shared-utils-1.9.9.tgz", + "integrity": "sha512-qhk/7QF5LgMEXhEB1hlqreGFgkz4p2pmaBBNFxnAnYmSwmyO+u/oFOpZLI16QRx9Wg6ekR2ENmByQLxV7y4lJg==", + "dependencies": { + "chalk": "^2.3.2", + "escape-html": "^1.0.3", + "fs-extra": "^7.0.1", + "globby": "^9.2.0", + "gray-matter": "^4.0.1", + "hash-sum": "^1.0.2", + "semver": "^6.0.0", + "toml": "^3.0.0", + "upath": "^1.1.0" } }, - "node_modules/esbuild": { - "version": "0.16.17", - "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.16.17.tgz", - "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==", + "node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true, - "hasInstallScript": true, "bin": { - "esbuild": "bin/esbuild" + "acorn": "bin/acorn" }, "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.16.17", - "@esbuild/android-arm64": "0.16.17", - "@esbuild/android-x64": "0.16.17", - "@esbuild/darwin-arm64": "0.16.17", - "@esbuild/darwin-x64": "0.16.17", - "@esbuild/freebsd-arm64": "0.16.17", - "@esbuild/freebsd-x64": "0.16.17", - "@esbuild/linux-arm": "0.16.17", - "@esbuild/linux-arm64": "0.16.17", - "@esbuild/linux-ia32": "0.16.17", - "@esbuild/linux-loong64": "0.16.17", - "@esbuild/linux-mips64el": "0.16.17", - "@esbuild/linux-ppc64": "0.16.17", - "@esbuild/linux-riscv64": "0.16.17", - "@esbuild/linux-s390x": "0.16.17", - "@esbuild/linux-x64": "0.16.17", - "@esbuild/netbsd-x64": "0.16.17", - "@esbuild/openbsd-x64": "0.16.17", - "@esbuild/sunos-x64": "0.16.17", - "@esbuild/win32-arm64": "0.16.17", - "@esbuild/win32-ia32": "0.16.17", - "@esbuild/win32-x64": "0.16.17" + "node": ">=0.4.0" } }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "node_modules/acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmmirror.com/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", "dev": true, - "peer": true + "dependencies": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + } }, - "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", "dev": true, "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "node": ">=0.4.0" } }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "color-convert": "^1.9.0" }, "engines": { - "node": ">= 6" + "node": ">=4" } }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": ">= 8" } }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmmirror.com/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", "dev": true }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", "engines": { - "node": ">= 0.4.0" + "node": ">=0.10.0" } }, - "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dev": true, - "dependencies": { - "has": "^1.0.3" + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/laravel-vite-plugin": { - "version": "0.7.4", - "resolved": "https://registry.npmmirror.com/laravel-vite-plugin/-/laravel-vite-plugin-0.7.4.tgz", - "integrity": "sha512-NlIuXbeuI+4NZzRpWNpGHRVTwuFWessvD7QoD+o2MlyAi7qyUS4J8r4/yTlu1dl9lxcR7iKoYUmHQqZDcrw2KA==", - "dev": true, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", "dependencies": { - "picocolors": "^1.0.0", - "vite-plugin-full-reload": "^1.0.5" + "array-uniq": "^1.0.1" }, "engines": { - "node": ">=14" - }, - "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0" + "node": ">=0.10.0" } }, - "node_modules/magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmmirror.com/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.13", + "resolved": "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.4.13.tgz", + "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-lite": "^1.0.30001426", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/axios": { + "version": "1.3.4", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.3.4.tgz", + "integrity": "sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmmirror.com/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "node_modules/call-me-maybe": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/call-me-maybe/-/call-me-maybe-1.0.2.tgz", + "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==" + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001462", + "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001462.tgz", + "integrity": "sha512-PDd20WuOBPiasZ7KbFnmQRyuLE7cFXW2PVd7dmALzbkUXEP46upAuCDm9eY9vho8fgNMGmbAX92QBZHzcnWIqw==", + "dev": true + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmmirror.com/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/codemirror": { + "version": "5.65.12", + "resolved": "https://registry.npmmirror.com/codemirror/-/codemirror-5.65.12.tgz", + "integrity": "sha512-z2jlHBocElRnPYysN2HAuhXbO3DNB0bcSKmNz3hcWR2Js2Dkhc1bEOxG93Z3DeUrnm+qx56XOY5wQmbP5KY0sw==" + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-convert/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmmirror.com/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/copy-to-clipboard": { + "version": "3.3.3", + "resolved": "https://registry.npmmirror.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", + "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==", + "dependencies": { + "toggle-selection": "^1.0.6" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssfilter": { + "version": "0.0.10", + "resolved": "https://registry.npmmirror.com/cssfilter/-/cssfilter-0.0.10.tgz", + "integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==" + }, + "node_modules/csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" + }, + "node_modules/d3": { + "version": "7.8.2", + "resolved": "https://registry.npmmirror.com/d3/-/d3-7.8.2.tgz", + "integrity": "sha512-WXty7qOGSHb7HR7CfOzwN1Gw04MUOzN8qh9ZUsvwycIMb4DYMpY9xczZ6jUorGtO6bR9BPMPaueIKwiDxu9uiQ==", + "dependencies": { + "d3-array": "3", + "d3-axis": "3", + "d3-brush": "3", + "d3-chord": "3", + "d3-color": "3", + "d3-contour": "4", + "d3-delaunay": "6", + "d3-dispatch": "3", + "d3-drag": "3", + "d3-dsv": "3", + "d3-ease": "3", + "d3-fetch": "3", + "d3-force": "3", + "d3-format": "3", + "d3-geo": "3", + "d3-hierarchy": "3", + "d3-interpolate": "3", + "d3-path": "3", + "d3-polygon": "3", + "d3-quadtree": "3", + "d3-random": "3", + "d3-scale": "4", + "d3-scale-chromatic": "3", + "d3-selection": "3", + "d3-shape": "3", + "d3-time": "3", + "d3-time-format": "4", + "d3-timer": "3", + "d3-transition": "3", + "d3-zoom": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-array": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/d3-array/-/d3-array-3.2.2.tgz", + "integrity": "sha512-yEEyEAbDrF8C6Ob2myOBLjwBLck1Z89jMGFee0oPsn95GqjerpaOA4ch+vc2l0FNFFwMD5N7OCSEN5eAlsUbgQ==", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-axis": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/d3-axis/-/d3-axis-3.0.0.tgz", + "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-brush": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/d3-brush/-/d3-brush-3.0.0.tgz", + "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "3", + "d3-transition": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-chord": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/d3-chord/-/d3-chord-3.0.1.tgz", + "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", + "dependencies": { + "d3-path": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-collection": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/d3-collection/-/d3-collection-1.0.7.tgz", + "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==" + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-contour": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/d3-contour/-/d3-contour-4.0.2.tgz", + "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", + "dependencies": { + "d3-array": "^3.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-delaunay": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/d3-delaunay/-/d3-delaunay-6.0.2.tgz", + "integrity": "sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==", + "dependencies": { + "delaunator": "5" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dispatch": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-drag": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/d3-drag/-/d3-drag-3.0.0.tgz", + "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-selection": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dsv": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", + "dependencies": { + "commander": "7", + "iconv-lite": "0.6", + "rw": "1" + }, + "bin": { + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dsv/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-fetch": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/d3-fetch/-/d3-fetch-3.0.1.tgz", + "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", + "dependencies": { + "d3-dsv": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-force": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-geo": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/d3-geo/-/d3-geo-3.1.0.tgz", + "integrity": "sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA==", + "dependencies": { + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-hierarchy": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-polygon": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/d3-polygon/-/d3-polygon-3.0.1.tgz", + "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-quadtree": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-random": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/d3-random/-/d3-random-3.0.1.tgz", + "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale-chromatic": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz", + "integrity": "sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==", + "dependencies": { + "d3-color": "1 - 3", + "d3-interpolate": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-selection": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/d3-selection/-/d3-selection-3.0.0.tgz", + "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-transition": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "dependencies": { + "d3-color": "1 - 3", + "d3-dispatch": "1 - 3", + "d3-ease": "1 - 3", + "d3-interpolate": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "d3-selection": "2 - 3" + } + }, + "node_modules/d3-voronoi": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/d3-voronoi/-/d3-voronoi-1.1.4.tgz", + "integrity": "sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==" + }, + "node_modules/d3-zoom": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/d3-zoom/-/d3-zoom-3.0.0.tgz", + "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "2 - 3", + "d3-transition": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre": { + "version": "0.8.5", + "resolved": "https://registry.npmmirror.com/dagre/-/dagre-0.8.5.tgz", + "integrity": "sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==", + "dependencies": { + "graphlib": "^2.1.8", + "lodash": "^4.17.15" + } + }, + "node_modules/dagre-d3": { + "version": "0.6.4", + "resolved": "https://registry.npmmirror.com/dagre-d3/-/dagre-d3-0.6.4.tgz", + "integrity": "sha512-e/6jXeCP7/ptlAM48clmX4xTZc5Ek6T6kagS7Oz2HrYSdqcLZFLqpAfh7ldbZRFfxCZVyh61NEPR08UQRVxJzQ==", + "dependencies": { + "d3": "^5.14", + "dagre": "^0.8.5", + "graphlib": "^2.1.8", + "lodash": "^4.17.15" + } + }, + "node_modules/dagre-d3/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/dagre-d3/node_modules/d3": { + "version": "5.16.0", + "resolved": "https://registry.npmmirror.com/d3/-/d3-5.16.0.tgz", + "integrity": "sha512-4PL5hHaHwX4m7Zr1UapXW23apo6pexCgdetdJ5kTmADpG/7T9Gkxw0M0tf/pjoB63ezCCm0u5UaFYy2aMt0Mcw==", + "dependencies": { + "d3-array": "1", + "d3-axis": "1", + "d3-brush": "1", + "d3-chord": "1", + "d3-collection": "1", + "d3-color": "1", + "d3-contour": "1", + "d3-dispatch": "1", + "d3-drag": "1", + "d3-dsv": "1", + "d3-ease": "1", + "d3-fetch": "1", + "d3-force": "1", + "d3-format": "1", + "d3-geo": "1", + "d3-hierarchy": "1", + "d3-interpolate": "1", + "d3-path": "1", + "d3-polygon": "1", + "d3-quadtree": "1", + "d3-random": "1", + "d3-scale": "2", + "d3-scale-chromatic": "1", + "d3-selection": "1", + "d3-shape": "1", + "d3-time": "1", + "d3-time-format": "2", + "d3-timer": "1", + "d3-transition": "1", + "d3-voronoi": "1", + "d3-zoom": "1" + } + }, + "node_modules/dagre-d3/node_modules/d3-array": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/d3-array/-/d3-array-1.2.4.tgz", + "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" + }, + "node_modules/dagre-d3/node_modules/d3-axis": { + "version": "1.0.12", + "resolved": "https://registry.npmmirror.com/d3-axis/-/d3-axis-1.0.12.tgz", + "integrity": "sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ==" + }, + "node_modules/dagre-d3/node_modules/d3-brush": { + "version": "1.1.6", + "resolved": "https://registry.npmmirror.com/d3-brush/-/d3-brush-1.1.6.tgz", + "integrity": "sha512-7RW+w7HfMCPyZLifTz/UnJmI5kdkXtpCbombUSs8xniAyo0vIbrDzDwUJB6eJOgl9u5DQOt2TQlYumxzD1SvYA==", + "dependencies": { + "d3-dispatch": "1", + "d3-drag": "1", + "d3-interpolate": "1", + "d3-selection": "1", + "d3-transition": "1" + } + }, + "node_modules/dagre-d3/node_modules/d3-chord": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/d3-chord/-/d3-chord-1.0.6.tgz", + "integrity": "sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA==", + "dependencies": { + "d3-array": "1", + "d3-path": "1" + } + }, + "node_modules/dagre-d3/node_modules/d3-color": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/d3-color/-/d3-color-1.4.1.tgz", + "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" + }, + "node_modules/dagre-d3/node_modules/d3-contour": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/d3-contour/-/d3-contour-1.3.2.tgz", + "integrity": "sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg==", + "dependencies": { + "d3-array": "^1.1.1" + } + }, + "node_modules/dagre-d3/node_modules/d3-dispatch": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/d3-dispatch/-/d3-dispatch-1.0.6.tgz", + "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==" + }, + "node_modules/dagre-d3/node_modules/d3-drag": { + "version": "1.2.5", + "resolved": "https://registry.npmmirror.com/d3-drag/-/d3-drag-1.2.5.tgz", + "integrity": "sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w==", + "dependencies": { + "d3-dispatch": "1", + "d3-selection": "1" + } + }, + "node_modules/dagre-d3/node_modules/d3-dsv": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/d3-dsv/-/d3-dsv-1.2.0.tgz", + "integrity": "sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g==", + "dependencies": { + "commander": "2", + "iconv-lite": "0.4", + "rw": "1" + }, + "bin": { + "csv2json": "bin/dsv2json", + "csv2tsv": "bin/dsv2dsv", + "dsv2dsv": "bin/dsv2dsv", + "dsv2json": "bin/dsv2json", + "json2csv": "bin/json2dsv", + "json2dsv": "bin/json2dsv", + "json2tsv": "bin/json2dsv", + "tsv2csv": "bin/dsv2dsv", + "tsv2json": "bin/dsv2json" + } + }, + "node_modules/dagre-d3/node_modules/d3-ease": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/d3-ease/-/d3-ease-1.0.7.tgz", + "integrity": "sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==" + }, + "node_modules/dagre-d3/node_modules/d3-fetch": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/d3-fetch/-/d3-fetch-1.2.0.tgz", + "integrity": "sha512-yC78NBVcd2zFAyR/HnUiBS7Lf6inSCoWcSxFfw8FYL7ydiqe80SazNwoffcqOfs95XaLo7yebsmQqDKSsXUtvA==", + "dependencies": { + "d3-dsv": "1" + } + }, + "node_modules/dagre-d3/node_modules/d3-force": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/d3-force/-/d3-force-1.2.1.tgz", + "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==", + "dependencies": { + "d3-collection": "1", + "d3-dispatch": "1", + "d3-quadtree": "1", + "d3-timer": "1" + } + }, + "node_modules/dagre-d3/node_modules/d3-format": { + "version": "1.4.5", + "resolved": "https://registry.npmmirror.com/d3-format/-/d3-format-1.4.5.tgz", + "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==" + }, + "node_modules/dagre-d3/node_modules/d3-geo": { + "version": "1.12.1", + "resolved": "https://registry.npmmirror.com/d3-geo/-/d3-geo-1.12.1.tgz", + "integrity": "sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==", + "dependencies": { + "d3-array": "1" + } + }, + "node_modules/dagre-d3/node_modules/d3-hierarchy": { + "version": "1.1.9", + "resolved": "https://registry.npmmirror.com/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz", + "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==" + }, + "node_modules/dagre-d3/node_modules/d3-interpolate": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/d3-interpolate/-/d3-interpolate-1.4.0.tgz", + "integrity": "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==", + "dependencies": { + "d3-color": "1" + } + }, + "node_modules/dagre-d3/node_modules/d3-path": { + "version": "1.0.9", + "resolved": "https://registry.npmmirror.com/d3-path/-/d3-path-1.0.9.tgz", + "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" + }, + "node_modules/dagre-d3/node_modules/d3-polygon": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/d3-polygon/-/d3-polygon-1.0.6.tgz", + "integrity": "sha512-k+RF7WvI08PC8reEoXa/w2nSg5AUMTi+peBD9cmFc+0ixHfbs4QmxxkarVal1IkVkgxVuk9JSHhJURHiyHKAuQ==" + }, + "node_modules/dagre-d3/node_modules/d3-quadtree": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/d3-quadtree/-/d3-quadtree-1.0.7.tgz", + "integrity": "sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==" + }, + "node_modules/dagre-d3/node_modules/d3-random": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/d3-random/-/d3-random-1.1.2.tgz", + "integrity": "sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ==" + }, + "node_modules/dagre-d3/node_modules/d3-scale": { + "version": "2.2.2", + "resolved": "https://registry.npmmirror.com/d3-scale/-/d3-scale-2.2.2.tgz", + "integrity": "sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==", + "dependencies": { + "d3-array": "^1.2.0", + "d3-collection": "1", + "d3-format": "1", + "d3-interpolate": "1", + "d3-time": "1", + "d3-time-format": "2" + } + }, + "node_modules/dagre-d3/node_modules/d3-scale-chromatic": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz", + "integrity": "sha512-ACcL46DYImpRFMBcpk9HhtIyC7bTBR4fNOPxwVSl0LfulDAwyiHyPOTqcDG1+t5d4P9W7t/2NAuWu59aKko/cg==", + "dependencies": { + "d3-color": "1", + "d3-interpolate": "1" + } + }, + "node_modules/dagre-d3/node_modules/d3-selection": { + "version": "1.4.2", + "resolved": "https://registry.npmmirror.com/d3-selection/-/d3-selection-1.4.2.tgz", + "integrity": "sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg==" + }, + "node_modules/dagre-d3/node_modules/d3-shape": { + "version": "1.3.7", + "resolved": "https://registry.npmmirror.com/d3-shape/-/d3-shape-1.3.7.tgz", + "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", + "dependencies": { + "d3-path": "1" + } + }, + "node_modules/dagre-d3/node_modules/d3-time": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/d3-time/-/d3-time-1.1.0.tgz", + "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==" + }, + "node_modules/dagre-d3/node_modules/d3-time-format": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/d3-time-format/-/d3-time-format-2.3.0.tgz", + "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==", + "dependencies": { + "d3-time": "1" + } + }, + "node_modules/dagre-d3/node_modules/d3-timer": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/d3-timer/-/d3-timer-1.0.10.tgz", + "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==" + }, + "node_modules/dagre-d3/node_modules/d3-transition": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/d3-transition/-/d3-transition-1.3.2.tgz", + "integrity": "sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA==", + "dependencies": { + "d3-color": "1", + "d3-dispatch": "1", + "d3-ease": "1", + "d3-interpolate": "1", + "d3-selection": "^1.1.0", + "d3-timer": "1" + } + }, + "node_modules/dagre-d3/node_modules/d3-zoom": { + "version": "1.8.3", + "resolved": "https://registry.npmmirror.com/d3-zoom/-/d3-zoom-1.8.3.tgz", + "integrity": "sha512-VoLXTK4wvy1a0JpH2Il+F2CiOhVu7VRXWF5M/LroMIh3/zBAC3WAt7QoIvPibOavVo20hN6/37vwAsdBejLyKQ==", + "dependencies": { + "d3-dispatch": "1", + "d3-drag": "1", + "d3-interpolate": "1", + "d3-selection": "1", + "d3-transition": "1" + } + }, + "node_modules/dagre-d3/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmmirror.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/deepmerge": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-4.3.0.tgz", + "integrity": "sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defined": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/defined/-/defined-1.0.1.tgz", + "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", + "dev": true + }, + "node_modules/delaunator": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/delaunator/-/delaunator-5.0.0.tgz", + "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==", + "dependencies": { + "robust-predicates": "^3.0.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/detective": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/detective/-/detective-5.2.1.tgz", + "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", + "dev": true, + "dependencies": { + "acorn-node": "^1.8.2", + "defined": "^1.0.0", + "minimist": "^1.2.6" + }, + "bin": { + "detective": "bin/detective.js" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "2.2.2", + "resolved": "https://registry.npmmirror.com/dir-glob/-/dir-glob-2.2.2.tgz", + "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", + "dependencies": { + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "node_modules/dompurify": { + "version": "2.3.5", + "resolved": "https://registry.npmmirror.com/dompurify/-/dompurify-2.3.5.tgz", + "integrity": "sha512-kD+f8qEaa42+mjdOpKeztu9Mfx5bv9gVLO6K9jRx4uGvh6Wv06Srn4jr1wPNY2OOUGGSKHNFN+A8MA3v0E0QAQ==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.324", + "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.324.tgz", + "integrity": "sha512-m+eBs/kh3TXnCuqDF6aHLLRwLK2U471JAbZ1KYigf0TM96fZglxv0/ZFBvyIxnLKsIWUoDiVnHTA2mhYz1fqdA==", + "dev": true + }, + "node_modules/entities": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==" + }, + "node_modules/esbuild": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.16.17.tgz", + "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.16.17", + "@esbuild/android-arm64": "0.16.17", + "@esbuild/android-x64": "0.16.17", + "@esbuild/darwin-arm64": "0.16.17", + "@esbuild/darwin-x64": "0.16.17", + "@esbuild/freebsd-arm64": "0.16.17", + "@esbuild/freebsd-x64": "0.16.17", + "@esbuild/linux-arm": "0.16.17", + "@esbuild/linux-arm64": "0.16.17", + "@esbuild/linux-ia32": "0.16.17", + "@esbuild/linux-loong64": "0.16.17", + "@esbuild/linux-mips64el": "0.16.17", + "@esbuild/linux-ppc64": "0.16.17", + "@esbuild/linux-riscv64": "0.16.17", + "@esbuild/linux-s390x": "0.16.17", + "@esbuild/linux-x64": "0.16.17", + "@esbuild/netbsd-x64": "0.16.17", + "@esbuild/openbsd-x64": "0.16.17", + "@esbuild/sunos-x64": "0.16.17", + "@esbuild/win32-arm64": "0.16.17", + "@esbuild/win32-ia32": "0.16.17", + "@esbuild/win32-x64": "0.16.17" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmmirror.com/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "dev": true, + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig==" + }, + "node_modules/globby": { + "version": "9.2.0", + "resolved": "https://registry.npmmirror.com/globby/-/globby-9.2.0.tgz", + "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", + "dependencies": { + "@types/glob": "^7.1.1", + "array-union": "^1.0.2", + "dir-glob": "^2.2.2", + "fast-glob": "^2.2.6", + "glob": "^7.1.3", + "ignore": "^4.0.3", + "pify": "^4.0.1", + "slash": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/globby/node_modules/@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/globby/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmmirror.com/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globby/node_modules/fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-2.2.7.tgz", + "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "dependencies": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/globby/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globby/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/globby/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globby/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globby/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globby/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globby/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globby/node_modules/micromatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globby/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "engines": { + "node": ">=6" + } + }, + "node_modules/globby/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "node_modules/graphlib": { + "version": "2.1.8", + "resolved": "https://registry.npmmirror.com/graphlib/-/graphlib-2.1.8.tgz", + "integrity": "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==", + "dependencies": { + "lodash": "^4.17.15" + } + }, + "node_modules/gray-matter": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/gray-matter/-/gray-matter-4.0.3.tgz", + "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "dependencies": { + "js-yaml": "^3.13.1", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==" + }, + "node_modules/highlight.js": { + "version": "11.7.0", + "resolved": "https://registry.npmmirror.com/highlight.js/-/highlight.js-11.7.0.tgz", + "integrity": "sha512-1rRqesRFhMO/PRF+G86evnyJkCgaZFOI+Z6kdj15TA18funfoqJXvgPCLSf0SWq3SRfg1j3HlDs8o4s3EGq1oQ==", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmmirror.com/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/insert-text-at-cursor": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/insert-text-at-cursor/-/insert-text-at-cursor-0.3.0.tgz", + "integrity": "sha512-/nPtyeX9xPUvxZf+r0518B7uqNKlP+LqNJqSiXFEaa2T71rWIwTVXGH7hB9xO/EVdwa5/pWlFCPwShOW81XIxQ==" + }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "engines": { + "node": ">=12" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/javascript-stringify": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/javascript-stringify/-/javascript-stringify-1.6.0.tgz", + "integrity": "sha512-fnjC0up+0SjEJtgmmG+teeel68kutkvzfctO/KxE3qJlbunkJYAshgH3boU++gSBHP8z5/r0ts0qRIrHf0RTQQ==" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/js-yaml/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/katex": { + "version": "0.13.24", + "resolved": "https://registry.npmmirror.com/katex/-/katex-0.13.24.tgz", + "integrity": "sha512-jZxYuKCma3VS5UuxOx/rFV1QyGSl3Uy/i0kTJF3HgQ5xMinCQVF8Zd4bMY/9aI9b9A2pjIBOsjSSm68ykTAr8w==", + "dependencies": { + "commander": "^8.0.0" + }, + "bin": { + "katex": "cli.js" + } + }, + "node_modules/khroma": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/khroma/-/khroma-1.4.1.tgz", + "integrity": "sha512-+GmxKvmiRuCcUYDgR7g5Ngo0JEDeOsGdNONdU2zsiBQaK4z19Y2NvXqfEDE0ZiIrg45GTZyAnPLVsLZZACYm3Q==" + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/laravel-vite-plugin": { + "version": "0.7.4", + "resolved": "https://registry.npmmirror.com/laravel-vite-plugin/-/laravel-vite-plugin-0.7.4.tgz", + "integrity": "sha512-NlIuXbeuI+4NZzRpWNpGHRVTwuFWessvD7QoD+o2MlyAi7qyUS4J8r4/yTlu1dl9lxcR7iKoYUmHQqZDcrw2KA==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "vite-plugin-full-reload": "^1.0.5" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/linkify-it": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "dependencies": { + "uc.micro": "^1.0.1" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "dev": true + }, + "node_modules/lodash.flow": { + "version": "3.5.0", + "resolved": "https://registry.npmmirror.com/lodash.flow/-/lodash.flow-3.5.0.tgz", + "integrity": "sha512-ff3BX/tSioo+XojX4MOsOMhJw0nZoUEF011LX8g8d3gvjVbxd89cCio4BCXronjxcTUIJUoqKEUA+n4CqvvRPw==" + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "dev": true + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmmirror.com/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/markdown-it": { + "version": "12.3.2", + "resolved": "https://registry.npmmirror.com/markdown-it/-/markdown-it-12.3.2.tgz", + "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "dependencies": { + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/markdown-it-abbr": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/markdown-it-abbr/-/markdown-it-abbr-1.0.4.tgz", + "integrity": "sha512-ZeA4Z4SaBbYysZap5iZcxKmlPL6bYA8grqhzJIHB1ikn7njnzaP8uwbtuXc4YXD5LicI4/2Xmc0VwmSiFV04gg==" + }, + "node_modules/markdown-it-anchor": { + "version": "8.6.7", + "resolved": "https://registry.npmmirror.com/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz", + "integrity": "sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==", + "peerDependencies": { + "@types/markdown-it": "*", + "markdown-it": "*" + } + }, + "node_modules/markdown-it-attrs": { + "version": "4.1.6", + "resolved": "https://registry.npmmirror.com/markdown-it-attrs/-/markdown-it-attrs-4.1.6.tgz", + "integrity": "sha512-O7PDKZlN8RFMyDX13JnctQompwrrILuz2y43pW2GagcwpIIElkAdfeek+erHfxUOlXWPsjFeWmZ8ch1xtRLWpA==", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "markdown-it": ">= 9.0.0" + } + }, + "node_modules/markdown-it-chain": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/markdown-it-chain/-/markdown-it-chain-1.3.0.tgz", + "integrity": "sha512-XClV8I1TKy8L2qsT9iX3qiV+50ZtcInGXI80CA+DP62sMs7hXlyV/RM3hfwy5O3Ad0sJm9xIwQELgANfESo8mQ==", + "dependencies": { + "webpack-chain": "^4.9.0" + }, + "engines": { + "node": ">=6.9" + }, + "peerDependencies": { + "markdown-it": ">=5.0.0" + } + }, + "node_modules/markdown-it-container": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/markdown-it-container/-/markdown-it-container-3.0.0.tgz", + "integrity": "sha512-y6oKTq4BB9OQuY/KLfk/O3ysFhB3IMYoIWhGJEidXt1NQFocFK2sA2t0NYZAMyMShAGL6x5OPIbrmXPIqaN9rw==" + }, + "node_modules/markdown-it-deflist": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/markdown-it-deflist/-/markdown-it-deflist-2.1.0.tgz", + "integrity": "sha512-3OuqoRUlSxJiuQYu0cWTLHNhhq2xtoSFqsZK8plANg91+RJQU1ziQ6lA2LzmFAEes18uPBsHZpcX6We5l76Nzg==" + }, + "node_modules/markdown-it-emoji": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/markdown-it-emoji/-/markdown-it-emoji-2.0.2.tgz", + "integrity": "sha512-zLftSaNrKuYl0kR5zm4gxXjHaOI3FAOEaloKmRA5hijmJZvSjmxcokOLlzycb/HXlUFWzXqpIEoyEMCE4i9MvQ==" + }, + "node_modules/markdown-it-footnote": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/markdown-it-footnote/-/markdown-it-footnote-3.0.3.tgz", + "integrity": "sha512-YZMSuCGVZAjzKMn+xqIco9d1cLGxbELHZ9do/TSYVzraooV8ypsppKNmUJ0fVH5ljkCInQAtFpm8Rb3eXSrt5w==" + }, + "node_modules/markdown-it-highlightjs": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/markdown-it-highlightjs/-/markdown-it-highlightjs-3.6.0.tgz", + "integrity": "sha512-ex+Lq3cVkprh0GpGwFyc53A/rqY6GGzopPCG1xMsf8Ya3XtGC8Uw9tChN1rWbpyDae7tBBhVHVcMM29h4Btamw==", + "dependencies": { + "highlight.js": "^11.3.1", + "lodash.flow": "^3.5.0" + } + }, + "node_modules/markdown-it-ins": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/markdown-it-ins/-/markdown-it-ins-3.0.1.tgz", + "integrity": "sha512-32SSfZqSzqyAmmQ4SHvhxbFqSzPDqsZgMHDwxqPzp+v+t8RsmqsBZRG+RfRQskJko9PfKC2/oxyOs4Yg/CfiRw==" + }, + "node_modules/markdown-it-mark": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/markdown-it-mark/-/markdown-it-mark-3.0.1.tgz", + "integrity": "sha512-HyxjAu6BRsdt6Xcv6TKVQnkz/E70TdGXEFHRYBGLncRE9lBFwDNLVtFojKxjJWgJ+5XxUwLaHXy+2sGBbDn+4A==" + }, + "node_modules/markdown-it-sub": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/markdown-it-sub/-/markdown-it-sub-1.0.0.tgz", + "integrity": "sha512-z2Rm/LzEE1wzwTSDrI+FlPEveAAbgdAdPhdWarq/ZGJrGW/uCQbKAnhoCsE4hAbc3SEym26+W2z/VQB0cQiA9Q==" + }, + "node_modules/markdown-it-sup": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/markdown-it-sup/-/markdown-it-sup-1.0.0.tgz", + "integrity": "sha512-E32m0nV9iyhRR7CrhnzL5msqic7rL1juWre6TQNxsnApg7Uf+F97JOKxUijg5YwXz86lZ0mqfOnutoryyNdntQ==" + }, + "node_modules/markdown-it-table-of-contents": { + "version": "0.4.4", + "resolved": "https://registry.npmmirror.com/markdown-it-table-of-contents/-/markdown-it-table-of-contents-0.4.4.tgz", + "integrity": "sha512-TAIHTHPwa9+ltKvKPWulm/beozQU41Ab+FIefRaQV1NRnpzwcV9QOe6wXQS5WLivm5Q/nlo0rl6laGkMDZE7Gw==", + "engines": { + "node": ">6.4.0" + } + }, + "node_modules/markdown-it-task-lists": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/markdown-it-task-lists/-/markdown-it-task-lists-2.1.1.tgz", + "integrity": "sha512-TxFAc76Jnhb2OUu+n3yz9RMu4CwGfaT788br6HhEDlvWfdeJcLUsxk1Hgw2yJio0OXsxv7pyIPmvECY7bMbluA==" + }, + "node_modules/markdown-it-toc-done-right": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/markdown-it-toc-done-right/-/markdown-it-toc-done-right-4.2.0.tgz", + "integrity": "sha512-UB/IbzjWazwTlNAX0pvWNlJS8NKsOQ4syrXZQ/C72j+jirrsjVRT627lCaylrKJFBQWfRsPmIVQie8x38DEhAQ==" + }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/mermaid": { + "version": "8.14.0", + "resolved": "https://registry.npmmirror.com/mermaid/-/mermaid-8.14.0.tgz", + "integrity": "sha512-ITSHjwVaby1Li738sxhF48sLTxcNyUAoWfoqyztL1f7J6JOLpHOuQPNLBb6lxGPUA0u7xP9IRULgvod0dKu35A==", + "dependencies": { + "@braintree/sanitize-url": "^3.1.0", + "d3": "^7.0.0", + "dagre": "^0.8.5", + "dagre-d3": "^0.6.4", + "dompurify": "2.3.5", + "graphlib": "^2.1.8", + "khroma": "^1.4.1", + "moment-mini": "^2.24.0", + "stylis": "^4.0.10" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mini-svg-data-uri": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", + "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==", + "dev": true, + "bin": { + "mini-svg-data-uri": "cli.js" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/moment-mini": { + "version": "2.29.4", + "resolved": "https://registry.npmmirror.com/moment-mini/-/moment-mini-2.29.4.tgz", + "integrity": "sha512-uhXpYwHFeiTbY9KSgPPRoo1nt8OxNVdMVoTBYHfSEKeRkIkwGpO+gERmhuhBtzfaeOyTkykSrm2+noJBgqt3Hg==" + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmmirror.com/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/node-releases": { + "version": "2.0.10", + "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nprogress": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/nprogress/-/nprogress-0.2.0.tgz", + "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==", + "dev": true + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==" + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-type/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "8.4.21", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "14.1.0", + "resolved": "https://registry.npmmirror.com/postcss-import/-/postcss-import-14.1.0.tgz", + "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmmirror.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "dev": true, + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/postcss-nested/-/postcss-nested-6.0.0.tgz", + "integrity": "sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==", "dev": true, - "peer": true, "dependencies": { - "sourcemap-codec": "^1.4.8" + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.11", + "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", + "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/prismjs": { + "version": "1.29.0", + "resolved": "https://registry.npmmirror.com/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, + "node_modules/qs": { + "version": "6.11.1", + "resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.1.tgz", + "integrity": "sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmmirror.com/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "deprecated": "https://github.com/lydell/resolve-url#deprecated" + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmmirror.com/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/robust-predicates": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/robust-predicates/-/robust-predicates-3.0.1.tgz", + "integrity": "sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==" + }, + "node_modules/rollup": { + "version": "3.18.0", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-3.18.0.tgz", + "integrity": "sha512-J8C6VfEBjkvYPESMQYxKHxNOh4A5a3FlP+0BETGo34HEcE4eTlgCrO2+eWzlu2a/sHs2QUkZco+wscH7jhhgWg==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rw": { + "version": "1.3.3", + "resolved": "https://registry.npmmirror.com/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/section-matter": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "dependencies": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "node_modules/slash": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmmirror.com/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmmirror.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated" + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead" + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, + "node_modules/split-string/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, "engines": { - "node": ">= 0.6" + "node": ">=0.10.0" } }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", "dependencies": { - "mime-db": "1.52.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "engines": { - "node": ">= 0.6" + "node": ">=0.10.0" } }, - "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dependencies": { + "is-descriptor": "^0.1.0" }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": ">=0.10.0" } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "node_modules/static-extend/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/picocolors": { + "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-bom-string": { "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "resolved": "https://registry.npmmirror.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "node_modules/stylis": { + "version": "4.1.3", + "resolved": "https://registry.npmmirror.com/stylis/-/stylis-4.1.3.tgz", + "integrity": "sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==" + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, "engines": { - "node": ">=8.6" + "node": ">= 0.4" } }, - "node_modules/postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "node_modules/tailwindcss": { + "version": "3.2.7", + "resolved": "https://registry.npmmirror.com/tailwindcss/-/tailwindcss-3.2.7.tgz", + "integrity": "sha512-B6DLqJzc21x7wntlH/GsZwEXTBttVSl1FtCzC8WP4oBc/NKef7kaax5jeihkkCEWc831/5NDJ9gRNDK6NEioQQ==", "dev": true, "dependencies": { - "nanoid": "^3.3.4", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "color-name": "^1.1.4", + "detective": "^5.2.1", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.12", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "lilconfig": "^2.0.6", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "postcss": "^8.0.9", + "postcss-import": "^14.1.0", + "postcss-js": "^4.0.0", + "postcss-load-config": "^3.1.4", + "postcss-nested": "6.0.0", + "postcss-selector-parser": "^6.0.11", + "postcss-value-parser": "^4.2.0", + "quick-lru": "^5.1.1", + "resolve": "^1.22.1" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" }, "engines": { - "node": "^10 || ^12 || >=14" + "node": ">=12.13.0" + }, + "peerDependencies": { + "postcss": "^8.0.9" } }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" + "is-buffer": "^1.1.5" }, - "bin": { - "resolve": "bin/resolve" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/rollup": { - "version": "3.18.0", - "resolved": "https://registry.npmmirror.com/rollup/-/rollup-3.18.0.tgz", - "integrity": "sha512-J8C6VfEBjkvYPESMQYxKHxNOh4A5a3FlP+0BETGo34HEcE4eTlgCrO2+eWzlu2a/sHs2QUkZco+wscH7jhhgWg==", + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, - "bin": { - "rollup": "dist/bin/rollup" + "dependencies": { + "is-number": "^7.0.0" }, "engines": { - "node": ">=14.18.0", - "npm": ">=8.0.0" + "node": ">=8.0" + } + }, + "node_modules/to-regex/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "peer": true, + "node_modules/to-regex/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, + "node_modules/toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==" + }, + "node_modules/toml": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/toml/-/toml-3.0.0.tgz", + "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==" + }, + "node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "deprecated": "Please use @jridgewell/sourcemap-codec instead", - "dev": true, - "peer": true + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } }, - "node_modules/supports-preserve-symlinks-flag": { + "node_modules/unset-value": { "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "resolved": "https://registry.npmmirror.com/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", "dev": true, + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "deprecated": "Please see https://github.com/lydell/urix#deprecated" + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "engines": { - "node": ">= 0.4" + "node": ">=0.10.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/vant": { + "version": "3.6.11", + "resolved": "https://registry.npmmirror.com/vant/-/vant-3.6.11.tgz", + "integrity": "sha512-ueEu4rOePQUoeP6mjuVHogmg3t05yejrYkFCG/NMWY2haOscvQTFGDVuUazmNdjgizqL1D9rH6xV0qy2aRWF9Q==", + "dependencies": { + "@vant/icons": "^1.8.0", + "@vant/popperjs": "^1.2.1", + "@vant/use": "^1.4.2" + }, + "peerDependencies": { + "vue": "^3.0.0" } }, "node_modules/vite": { @@ -901,8 +4712,6 @@ "version": "3.2.47", "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.47.tgz", "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==", - "dev": true, - "peer": true, "dependencies": { "@vue/compiler-dom": "3.2.47", "@vue/compiler-sfc": "3.2.47", @@ -910,6 +4719,86 @@ "@vue/server-renderer": "3.2.47", "@vue/shared": "3.2.47" } + }, + "node_modules/vue3-markdown-it": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/vue3-markdown-it/-/vue3-markdown-it-1.0.10.tgz", + "integrity": "sha512-mTvHu0zl7jrh7ojgaZ+tTpCLiS4CVg4bTgTu4KGhw/cRRY5YgIG8QgFAPu6kCzSW6Znc9a52Beb6hFvF4hSMkQ==", + "dependencies": { + "markdown-it": "^12.3.2", + "markdown-it-abbr": "^1.0.4", + "markdown-it-anchor": "^8.4.1", + "markdown-it-deflist": "^2.1.0", + "markdown-it-emoji": "^2.0.0", + "markdown-it-footnote": "^3.0.3", + "markdown-it-highlightjs": "^3.6.0", + "markdown-it-ins": "^3.0.1", + "markdown-it-mark": "^3.0.1", + "markdown-it-sub": "^1.0.0", + "markdown-it-sup": "^1.0.0", + "markdown-it-task-lists": "^2.1.1", + "markdown-it-toc-done-right": "^4.2.0" + } + }, + "node_modules/webpack-chain": { + "version": "4.12.1", + "resolved": "https://registry.npmmirror.com/webpack-chain/-/webpack-chain-4.12.1.tgz", + "integrity": "sha512-BCfKo2YkDe2ByqkEWe1Rw+zko4LsyS75LVr29C6xIrxAg9JHJ4pl8kaIZ396SUSNp6b4815dRZPSTAS8LlURRQ==", + "dependencies": { + "deepmerge": "^1.5.2", + "javascript-stringify": "^1.6.0" + } + }, + "node_modules/webpack-chain/node_modules/deepmerge": { + "version": "1.5.2", + "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-1.5.2.tgz", + "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/xss": { + "version": "1.0.14", + "resolved": "https://registry.npmmirror.com/xss/-/xss-1.0.14.tgz", + "integrity": "sha512-og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw==", + "dependencies": { + "commander": "^2.20.3", + "cssfilter": "0.0.10" + }, + "bin": { + "xss": "bin/xss" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/xss/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } } } } diff --git a/package.json b/package.json index 247762c..f1b7092 100644 --- a/package.json +++ b/package.json @@ -5,9 +5,19 @@ "build": "vite build" }, "devDependencies": { + "@inertiajs/vue3": "^1.0.0", + "@tailwindcss/forms": "^0.5.3", "@vitejs/plugin-vue": "^4.0.0", + "autoprefixer": "^10.4.12", "axios": "^1.1.2", "laravel-vite-plugin": "^0.7.2", - "vite": "^4.0.0" + "postcss": "^8.4.18", + "tailwindcss": "^3.2.1", + "vite": "^4.0.0", + "vue": "^3.2.41" + }, + "dependencies": { + "highlight.js": "^11.7.0", + "vue3-markdown-it": "^1.0.10" } -} +} \ No newline at end of file diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..67cdf1a --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/resources/css/app.css b/resources/css/app.css index e69de29..bd6213e 100644 --- a/resources/css/app.css +++ b/resources/css/app.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; \ No newline at end of file diff --git a/resources/js/Components/ApplicationLogo.vue b/resources/js/Components/ApplicationLogo.vue new file mode 100644 index 0000000..d952df7 --- /dev/null +++ b/resources/js/Components/ApplicationLogo.vue @@ -0,0 +1,7 @@ + diff --git a/resources/js/Components/Checkbox.vue b/resources/js/Components/Checkbox.vue new file mode 100644 index 0000000..277f2ac --- /dev/null +++ b/resources/js/Components/Checkbox.vue @@ -0,0 +1,34 @@ + + + diff --git a/resources/js/Components/DangerButton.vue b/resources/js/Components/DangerButton.vue new file mode 100644 index 0000000..a1db1fd --- /dev/null +++ b/resources/js/Components/DangerButton.vue @@ -0,0 +1,17 @@ + + + diff --git a/resources/js/Components/Dropdown.vue b/resources/js/Components/Dropdown.vue new file mode 100644 index 0000000..622bc50 --- /dev/null +++ b/resources/js/Components/Dropdown.vue @@ -0,0 +1,74 @@ + + + diff --git a/resources/js/Components/DropdownLink.vue b/resources/js/Components/DropdownLink.vue new file mode 100644 index 0000000..f2204a6 --- /dev/null +++ b/resources/js/Components/DropdownLink.vue @@ -0,0 +1,11 @@ + + + diff --git a/resources/js/Components/Head.vue b/resources/js/Components/Head.vue new file mode 100644 index 0000000..e69de29 diff --git a/resources/js/Components/InputError.vue b/resources/js/Components/InputError.vue new file mode 100644 index 0000000..2bb0b8e --- /dev/null +++ b/resources/js/Components/InputError.vue @@ -0,0 +1,11 @@ + + + diff --git a/resources/js/Components/InputLabel.vue b/resources/js/Components/InputLabel.vue new file mode 100644 index 0000000..7a96763 --- /dev/null +++ b/resources/js/Components/InputLabel.vue @@ -0,0 +1,10 @@ + + + diff --git a/resources/js/Components/Modal.vue b/resources/js/Components/Modal.vue new file mode 100644 index 0000000..bb5bb38 --- /dev/null +++ b/resources/js/Components/Modal.vue @@ -0,0 +1,98 @@ + + + diff --git a/resources/js/Components/NavLink.vue b/resources/js/Components/NavLink.vue new file mode 100644 index 0000000..c54d9a7 --- /dev/null +++ b/resources/js/Components/NavLink.vue @@ -0,0 +1,18 @@ + + + diff --git a/resources/js/Components/PrimaryButton.vue b/resources/js/Components/PrimaryButton.vue new file mode 100644 index 0000000..6260768 --- /dev/null +++ b/resources/js/Components/PrimaryButton.vue @@ -0,0 +1,17 @@ + + + diff --git a/resources/js/Components/ResponsiveNavLink.vue b/resources/js/Components/ResponsiveNavLink.vue new file mode 100644 index 0000000..2003793 --- /dev/null +++ b/resources/js/Components/ResponsiveNavLink.vue @@ -0,0 +1,18 @@ + + + diff --git a/resources/js/Components/SecondaryButton.vue b/resources/js/Components/SecondaryButton.vue new file mode 100644 index 0000000..893a23a --- /dev/null +++ b/resources/js/Components/SecondaryButton.vue @@ -0,0 +1,17 @@ + + + diff --git a/resources/js/Components/TextInput.vue b/resources/js/Components/TextInput.vue new file mode 100644 index 0000000..ccc6d53 --- /dev/null +++ b/resources/js/Components/TextInput.vue @@ -0,0 +1,26 @@ + + + diff --git a/resources/js/Layouts/AuthenticatedLayout.vue b/resources/js/Layouts/AuthenticatedLayout.vue new file mode 100644 index 0000000..e839e40 --- /dev/null +++ b/resources/js/Layouts/AuthenticatedLayout.vue @@ -0,0 +1,152 @@ + + + diff --git a/resources/js/Layouts/GuestLayout.vue b/resources/js/Layouts/GuestLayout.vue new file mode 100644 index 0000000..5d86a20 --- /dev/null +++ b/resources/js/Layouts/GuestLayout.vue @@ -0,0 +1,20 @@ + + + diff --git a/resources/js/Pages/Auth/ConfirmPassword.vue b/resources/js/Pages/Auth/ConfirmPassword.vue new file mode 100644 index 0000000..6be73ab --- /dev/null +++ b/resources/js/Pages/Auth/ConfirmPassword.vue @@ -0,0 +1,50 @@ + + + diff --git a/resources/js/Pages/Auth/ForgotPassword.vue b/resources/js/Pages/Auth/ForgotPassword.vue new file mode 100644 index 0000000..0b76519 --- /dev/null +++ b/resources/js/Pages/Auth/ForgotPassword.vue @@ -0,0 +1,59 @@ + + + diff --git a/resources/js/Pages/Auth/Login.vue b/resources/js/Pages/Auth/Login.vue new file mode 100644 index 0000000..f42d82e --- /dev/null +++ b/resources/js/Pages/Auth/Login.vue @@ -0,0 +1,90 @@ + + + diff --git a/resources/js/Pages/Auth/Register.vue b/resources/js/Pages/Auth/Register.vue new file mode 100644 index 0000000..91a507b --- /dev/null +++ b/resources/js/Pages/Auth/Register.vue @@ -0,0 +1,104 @@ + + + diff --git a/resources/js/Pages/Auth/ResetPassword.vue b/resources/js/Pages/Auth/ResetPassword.vue new file mode 100644 index 0000000..edfe208 --- /dev/null +++ b/resources/js/Pages/Auth/ResetPassword.vue @@ -0,0 +1,86 @@ + + + diff --git a/resources/js/Pages/Auth/VerifyEmail.vue b/resources/js/Pages/Auth/VerifyEmail.vue new file mode 100644 index 0000000..2af1d7e --- /dev/null +++ b/resources/js/Pages/Auth/VerifyEmail.vue @@ -0,0 +1,49 @@ + + + diff --git a/resources/js/Pages/Dashboard.vue b/resources/js/Pages/Dashboard.vue new file mode 100644 index 0000000..b8369b5 --- /dev/null +++ b/resources/js/Pages/Dashboard.vue @@ -0,0 +1,22 @@ + + + diff --git a/resources/js/Pages/Welcome.vue b/resources/js/Pages/Welcome.vue new file mode 100644 index 0000000..063ae05 --- /dev/null +++ b/resources/js/Pages/Welcome.vue @@ -0,0 +1,119 @@ + + + \ No newline at end of file diff --git a/resources/js/app.js b/resources/js/app.js index e59d6a0..942b04d 100644 --- a/resources/js/app.js +++ b/resources/js/app.js @@ -1 +1,28 @@ import './bootstrap'; +import '../css/app.css'; + +import { createApp, h } from 'vue'; +import { createInertiaApp } from '@inertiajs/vue3'; +import { resolvePageComponent } from 'laravel-vite-plugin/inertia-helpers'; +import { ZiggyVue } from '../../vendor/tightenco/ziggy/dist/vue.m'; +import Markdown from 'vue3-markdown-it'; + +// 代码高亮 +// import 'highlight.js/styles/github.css'; + +const appName = window.document.getElementsByTagName('title')[0]?.innerText || 'Laravel'; + +createInertiaApp({ + title: (title) => `${title}`, + resolve: (name) => resolvePageComponent(`./Pages/${name}.vue`, import.meta.glob('./Pages/**/*.vue')), + setup({ el, App, props, plugin }) { + return createApp({ render: () => h(App, props) }) + .use(plugin) + .use(ZiggyVue, Ziggy) + .component('markdown', Markdown) + .mount(el); + }, + progress: { + color: '#4B5563', + }, +}); diff --git a/resources/views/app.blade.php b/resources/views/app.blade.php new file mode 100644 index 0000000..334627a --- /dev/null +++ b/resources/views/app.blade.php @@ -0,0 +1,21 @@ + + + + + + + {{ config('app.name', 'Laravel') }} + + + + + + + @routes + @vite(['resources/js/app.js', "resources/js/Pages/{$page['component']}.vue"]) + @inertiaHead + + + @inertia + + diff --git a/routes/auth.php b/routes/auth.php new file mode 100644 index 0000000..1040b51 --- /dev/null +++ b/routes/auth.php @@ -0,0 +1,59 @@ +group(function () { + Route::get('register', [RegisteredUserController::class, 'create']) + ->name('register'); + + Route::post('register', [RegisteredUserController::class, 'store']); + + Route::get('login', [AuthenticatedSessionController::class, 'create']) + ->name('login'); + + Route::post('login', [AuthenticatedSessionController::class, 'store']); + + Route::get('forgot-password', [PasswordResetLinkController::class, 'create']) + ->name('password.request'); + + Route::post('forgot-password', [PasswordResetLinkController::class, 'store']) + ->name('password.email'); + + Route::get('reset-password/{token}', [NewPasswordController::class, 'create']) + ->name('password.reset'); + + Route::post('reset-password', [NewPasswordController::class, 'store']) + ->name('password.store'); +}); + +Route::middleware('auth')->group(function () { + Route::get('verify-email', EmailVerificationPromptController::class) + ->name('verification.notice'); + + Route::get('verify-email/{id}/{hash}', VerifyEmailController::class) + ->middleware(['signed', 'throttle:6,1']) + ->name('verification.verify'); + + Route::post('email/verification-notification', [EmailVerificationNotificationController::class, 'store']) + ->middleware('throttle:6,1') + ->name('verification.send'); + + Route::get('confirm-password', [ConfirmablePasswordController::class, 'show']) + ->name('password.confirm'); + + Route::post('confirm-password', [ConfirmablePasswordController::class, 'store']); + + Route::put('password', [PasswordController::class, 'update'])->name('password.update'); + + Route::post('logout', [AuthenticatedSessionController::class, 'destroy']) + ->name('logout'); +}); diff --git a/routes/web.php b/routes/web.php index b39a952..68066f1 100644 --- a/routes/web.php +++ b/routes/web.php @@ -3,14 +3,24 @@ use App\Http\Controllers\ChatController; use Illuminate\Support\Facades\Route; -Route::get('/', function () { - $messages = collect(session('messages', []))->reject(fn ($message) => $message['role'] === 'system'); +/* +|-------------------------------------------------------------------------- +| Web Routes +|-------------------------------------------------------------------------- +| +| Here is where you can register web routes for your application. These +| routes are loaded by the RouteServiceProvider within a group which +| contains the "web" middleware group. Now create something great! +| +*/ - return view('welcome', [ - 'messages' => $messages - ]); -}); +Route::get('/', ChatController::class . '@index')->name('home'); +Route::post('/chat', ChatController::class . '@chat')->name('chat'); +Route::get('/rest', ChatController::class . '@reset')->name('reset'); -Route::post('/chat', ChatController::class . '@chat'); +// 暂不开放用户认证功能 +// Route::get('/dashboard', function () { +// return Inertia::render('Dashboard'); +// })->middleware(['auth', 'verified'])->name('dashboard'); -Route::get('/reset', ChatController::class . '@reset'); +// require __DIR__ . '/auth.php'; diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..a93f522 --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,21 @@ +const defaultTheme = require('tailwindcss/defaultTheme'); + +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: [ + './vendor/laravel/framework/src/Illuminate/Pagination/resources/views/*.blade.php', + './storage/framework/views/*.php', + './resources/views/**/*.blade.php', + './resources/js/**/*.vue', + ], + + theme: { + extend: { + fontFamily: { + sans: ['Figtree', ...defaultTheme.fontFamily.sans], + }, + }, + }, + + plugins: [require('@tailwindcss/forms')], +}; diff --git a/tests/Feature/Auth/AuthenticationTest.php b/tests/Feature/Auth/AuthenticationTest.php new file mode 100644 index 0000000..2d0eeed --- /dev/null +++ b/tests/Feature/Auth/AuthenticationTest.php @@ -0,0 +1,45 @@ +get('/login'); + + $response->assertStatus(200); + } + + public function test_users_can_authenticate_using_the_login_screen(): void + { + $user = User::factory()->create(); + + $response = $this->post('/login', [ + 'email' => $user->email, + 'password' => 'password', + ]); + + $this->assertAuthenticated(); + $response->assertRedirect(RouteServiceProvider::HOME); + } + + public function test_users_can_not_authenticate_with_invalid_password(): void + { + $user = User::factory()->create(); + + $this->post('/login', [ + 'email' => $user->email, + 'password' => 'wrong-password', + ]); + + $this->assertGuest(); + } +} diff --git a/tests/Feature/Auth/EmailVerificationTest.php b/tests/Feature/Auth/EmailVerificationTest.php new file mode 100644 index 0000000..ba19d9c --- /dev/null +++ b/tests/Feature/Auth/EmailVerificationTest.php @@ -0,0 +1,65 @@ +create([ + 'email_verified_at' => null, + ]); + + $response = $this->actingAs($user)->get('/verify-email'); + + $response->assertStatus(200); + } + + public function test_email_can_be_verified(): void + { + $user = User::factory()->create([ + 'email_verified_at' => null, + ]); + + Event::fake(); + + $verificationUrl = URL::temporarySignedRoute( + 'verification.verify', + now()->addMinutes(60), + ['id' => $user->id, 'hash' => sha1($user->email)] + ); + + $response = $this->actingAs($user)->get($verificationUrl); + + Event::assertDispatched(Verified::class); + $this->assertTrue($user->fresh()->hasVerifiedEmail()); + $response->assertRedirect(RouteServiceProvider::HOME.'?verified=1'); + } + + public function test_email_is_not_verified_with_invalid_hash(): void + { + $user = User::factory()->create([ + 'email_verified_at' => null, + ]); + + $verificationUrl = URL::temporarySignedRoute( + 'verification.verify', + now()->addMinutes(60), + ['id' => $user->id, 'hash' => sha1('wrong-email')] + ); + + $this->actingAs($user)->get($verificationUrl); + + $this->assertFalse($user->fresh()->hasVerifiedEmail()); + } +} diff --git a/tests/Feature/Auth/PasswordConfirmationTest.php b/tests/Feature/Auth/PasswordConfirmationTest.php new file mode 100644 index 0000000..ff85721 --- /dev/null +++ b/tests/Feature/Auth/PasswordConfirmationTest.php @@ -0,0 +1,44 @@ +create(); + + $response = $this->actingAs($user)->get('/confirm-password'); + + $response->assertStatus(200); + } + + public function test_password_can_be_confirmed(): void + { + $user = User::factory()->create(); + + $response = $this->actingAs($user)->post('/confirm-password', [ + 'password' => 'password', + ]); + + $response->assertRedirect(); + $response->assertSessionHasNoErrors(); + } + + public function test_password_is_not_confirmed_with_invalid_password(): void + { + $user = User::factory()->create(); + + $response = $this->actingAs($user)->post('/confirm-password', [ + 'password' => 'wrong-password', + ]); + + $response->assertSessionHasErrors(); + } +} diff --git a/tests/Feature/Auth/PasswordResetTest.php b/tests/Feature/Auth/PasswordResetTest.php new file mode 100644 index 0000000..4a26065 --- /dev/null +++ b/tests/Feature/Auth/PasswordResetTest.php @@ -0,0 +1,71 @@ +get('/forgot-password'); + + $response->assertStatus(200); + } + + public function test_reset_password_link_can_be_requested(): void + { + Notification::fake(); + + $user = User::factory()->create(); + + $this->post('/forgot-password', ['email' => $user->email]); + + Notification::assertSentTo($user, ResetPassword::class); + } + + public function test_reset_password_screen_can_be_rendered(): void + { + Notification::fake(); + + $user = User::factory()->create(); + + $this->post('/forgot-password', ['email' => $user->email]); + + Notification::assertSentTo($user, ResetPassword::class, function ($notification) { + $response = $this->get('/reset-password/'.$notification->token); + + $response->assertStatus(200); + + return true; + }); + } + + public function test_password_can_be_reset_with_valid_token(): void + { + Notification::fake(); + + $user = User::factory()->create(); + + $this->post('/forgot-password', ['email' => $user->email]); + + Notification::assertSentTo($user, ResetPassword::class, function ($notification) use ($user) { + $response = $this->post('/reset-password', [ + 'token' => $notification->token, + 'email' => $user->email, + 'password' => 'password', + 'password_confirmation' => 'password', + ]); + + $response->assertSessionHasNoErrors(); + + return true; + }); + } +} diff --git a/tests/Feature/Auth/PasswordUpdateTest.php b/tests/Feature/Auth/PasswordUpdateTest.php new file mode 100644 index 0000000..bbf079d --- /dev/null +++ b/tests/Feature/Auth/PasswordUpdateTest.php @@ -0,0 +1,51 @@ +create(); + + $response = $this + ->actingAs($user) + ->from('/profile') + ->put('/password', [ + 'current_password' => 'password', + 'password' => 'new-password', + 'password_confirmation' => 'new-password', + ]); + + $response + ->assertSessionHasNoErrors() + ->assertRedirect('/profile'); + + $this->assertTrue(Hash::check('new-password', $user->refresh()->password)); + } + + public function test_correct_password_must_be_provided_to_update_password(): void + { + $user = User::factory()->create(); + + $response = $this + ->actingAs($user) + ->from('/profile') + ->put('/password', [ + 'current_password' => 'wrong-password', + 'password' => 'new-password', + 'password_confirmation' => 'new-password', + ]); + + $response + ->assertSessionHasErrors('current_password') + ->assertRedirect('/profile'); + } +} diff --git a/tests/Feature/Auth/RegistrationTest.php b/tests/Feature/Auth/RegistrationTest.php new file mode 100644 index 0000000..30829b1 --- /dev/null +++ b/tests/Feature/Auth/RegistrationTest.php @@ -0,0 +1,32 @@ +get('/register'); + + $response->assertStatus(200); + } + + public function test_new_users_can_register(): void + { + $response = $this->post('/register', [ + 'name' => 'Test User', + 'email' => 'test@example.com', + 'password' => 'password', + 'password_confirmation' => 'password', + ]); + + $this->assertAuthenticated(); + $response->assertRedirect(RouteServiceProvider::HOME); + } +} diff --git a/vite.config.js b/vite.config.js index 421b569..20de738 100644 --- a/vite.config.js +++ b/vite.config.js @@ -1,11 +1,20 @@ import { defineConfig } from 'vite'; import laravel from 'laravel-vite-plugin'; +import vue from '@vitejs/plugin-vue'; export default defineConfig({ plugins: [ laravel({ - input: ['resources/css/app.css', 'resources/js/app.js'], + input: 'resources/js/app.js', refresh: true, }), + vue({ + template: { + transformAssetUrls: { + base: null, + includeAbsolute: false, + }, + }, + }), ], }); From 97fe139cb9dd5c30e18c613abc4e11d7d147fa26 Mon Sep 17 00:00:00 2001 From: geekr Date: Thu, 9 Mar 2023 20:36:29 +0800 Subject: [PATCH 02/13] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AF=B9=E8=AF=AD?= =?UTF-8?q?=E9=9F=B3=E8=81=8A=E5=A4=A9=E5=92=A8=E8=AF=A2=E7=9A=84=E6=94=AF?= =?UTF-8?q?=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/ChatController.php | 70 ++++++++++++- app/Providers/RouteServiceProvider.php | 6 ++ resources/js/Components/AudioWidget.vue | 102 ++++++++++++++++++ resources/js/Components/IconButton.vue | 23 +++++ resources/js/Components/SubmitButton.vue | 22 ++++ resources/js/Pages/Welcome.vue | 50 +++++++-- resources/js/lib/Recorder.js | 126 +++++++++++++++++++++++ resources/js/lib/Utils.js | 6 ++ resources/js/lib/WavEncoder.js | 66 ++++++++++++ routes/web.php | 3 +- 10 files changed, 465 insertions(+), 9 deletions(-) create mode 100644 resources/js/Components/AudioWidget.vue create mode 100644 resources/js/Components/IconButton.vue create mode 100644 resources/js/Components/SubmitButton.vue create mode 100644 resources/js/lib/Recorder.js create mode 100644 resources/js/lib/Utils.js create mode 100644 resources/js/lib/WavEncoder.js diff --git a/app/Http/Controllers/ChatController.php b/app/Http/Controllers/ChatController.php index 48ff84b..0631dc1 100644 --- a/app/Http/Controllers/ChatController.php +++ b/app/Http/Controllers/ChatController.php @@ -4,8 +4,11 @@ use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; +use Illuminate\Support\Str; use GeekrOpenAI\Laravel\Facades\OpenAI; use Illuminate\Support\Facades\Redirect; +use Illuminate\Support\Facades\Storage; +use Illuminate\Validation\Rules\File; use Inertia\Inertia; class ChatController extends Controller @@ -38,7 +41,72 @@ public function chat(Request $request): RedirectResponse 'messages' => $messages ]); - $messages[] = ['role' => 'assistant', 'content' => $response->choices[0]->message->content]; + $respText = ''; + if (empty($response->choices[0]->message->content)) { + $respText = '对不起,我没有理解你的意思,请重试'; + } else { + $respText = $response->choices[0]->message->content; + } + + $messages[] = ['role' => 'assistant', 'content' => $respText]; + + $request->session()->put('messages', $messages); + + return Redirect::to('/'); + } + + /** + * Handle the incoming audio prompt. + */ + public function audio(Request $request): RedirectResponse + { + $request->validate([ + 'audio' => [ + 'required', + File::types(['mp3', 'mp4', 'mpeg', 'mpga', 'm4a', 'wav', 'webm']) + ->min(1) // 最小不低于 1 KB + ->max(10 * 1024), // 最大不超过 10 MB + ] + ]); + + // 保存到本地 + $fileName = Str::uuid() . '.wav'; + $dir = 'audios' . date('/Y/m/d', time()); + $path = $request->audio->storeAs($dir, $fileName, 'local'); + + $messages = $request->session()->get('messages', [ + ['role' => 'system', 'content' => 'You are GeekChat - A ChatGPT clone. Answer as concisely as possible. 把简体中文作为第一语言'] + ]); + + // $path = 'audios/2023/03/09/test.wav';(测试用) + // 调用 speech to text API 将语音转化为文字 + $response = OpenAI::audio()->transcribe([ + 'model' => 'whisper-1', + 'file' => fopen(Storage::disk('local')->path($path), 'r'), + 'response_format' => 'verbose_json', + ]); + + if (empty($response->text)) { + $messages[] = ['role' => 'system', 'content' => '对不起,我没有听清你说的话,请再试一次']; + $request->session()->put('messages', $messages); + return Redirect::to('/'); + } + + // 接下来的流程和 ChatGPT 一样 + $messages[] = ['role' => 'user', 'content' => $response->text]; + + $response = OpenAI::chat()->create([ + 'model' => 'gpt-3.5-turbo', + 'messages' => $messages + ]); + + $respText = ''; + if (empty($response->choices[0]->message->content)) { + $respText = '对不起,我没有听明白你的意思,请再说一遍'; + } else { + $respText = $response->choices[0]->message->content; + } + $messages[] = ['role' => 'assistant', 'content' => $respText]; $request->session()->put('messages', $messages); diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php index f859850..6396380 100644 --- a/app/Providers/RouteServiceProvider.php +++ b/app/Providers/RouteServiceProvider.php @@ -44,5 +44,11 @@ protected function configureRateLimiting(): void RateLimiter::for('api', function (Request $request) { return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip()); }); + RateLimiter::for('chat', function (Request $request) { + return Limit::perHour(60)->by($request->user()?->id ?: $request->ip()); + }); + RateLimiter::for('audio', function (Request $request) { + return Limit::perHour(30)->by($request->user()?->id ?: $request->ip()); + }); } } diff --git a/resources/js/Components/AudioWidget.vue b/resources/js/Components/AudioWidget.vue new file mode 100644 index 0000000..d01374f --- /dev/null +++ b/resources/js/Components/AudioWidget.vue @@ -0,0 +1,102 @@ + + + + \ No newline at end of file diff --git a/resources/js/Components/IconButton.vue b/resources/js/Components/IconButton.vue new file mode 100644 index 0000000..c7af0db --- /dev/null +++ b/resources/js/Components/IconButton.vue @@ -0,0 +1,23 @@ + + + diff --git a/resources/js/Components/SubmitButton.vue b/resources/js/Components/SubmitButton.vue new file mode 100644 index 0000000..e82990c --- /dev/null +++ b/resources/js/Components/SubmitButton.vue @@ -0,0 +1,22 @@ + + + diff --git a/resources/js/Pages/Welcome.vue b/resources/js/Pages/Welcome.vue index 063ae05..a177ddc 100644 --- a/resources/js/Pages/Welcome.vue +++ b/resources/js/Pages/Welcome.vue @@ -1,5 +1,7 @@ \ No newline at end of file diff --git a/resources/js/lib/Recorder.js b/resources/js/lib/Recorder.js new file mode 100644 index 0000000..08a8532 --- /dev/null +++ b/resources/js/lib/Recorder.js @@ -0,0 +1,126 @@ +/* eslint-disable */ +import convertTimeMMSS from "./Utils"; +import WavEncoder from "./WavEncoder"; + +export default class Recorder { + constructor(options = {}) { + this.beforeRecording = options.beforeRecording; + this.pauseRecording = options.pauseRecording; + this.afterRecording = options.afterRecording; + this.micFailed = options.micFailed; + + this.encoderOptions = { + bitRate: options.bitRate, + sampleRate: options.sampleRate, + }; + + this.bufferSize = 4096; + this.records = []; + + this.isPause = false; + this.isRecording = false; + + this.duration = 0; + this.volume = 0; + + this.wavSamples = []; + + this._duration = 0; + } + + start() { + const constraints = { + video: false, + audio: { + channelCount: 1, + echoCancellation: false, + }, + }; + + this.beforeRecording && this.beforeRecording("start recording"); + + navigator.mediaDevices + .getUserMedia(constraints) + .then(this._micCaptured.bind(this)) + .catch(this._micError.bind(this)); + + this.isPause = false; + this.isRecording = true; + } + + stop() { + this.stream.getTracks().forEach((track) => track.stop()); + this.input.disconnect(); + this.processor.disconnect(); + this.context.close(); + + let record = null; + + const wavEncoder = new WavEncoder({ + bufferSize: this.bufferSize, + sampleRate: this.encoderOptions.sampleRate, + samples: this.wavSamples, + }); + record = wavEncoder.finish(); + this.wavSamples = []; + + record.duration = convertTimeMMSS(this.duration); + this.records.push(record); + + this._duration = 0; + this.duration = 0; + + this.isPause = false; + this.isRecording = false; + + this.afterRecording && this.afterRecording(record); + } + + pause() { + this.stream.getTracks().forEach((track) => track.stop()); + this.input.disconnect(); + this.processor.disconnect(); + + this._duration = this.duration; + this.isPause = true; + + this.pauseRecording && this.pauseRecording("pause recording"); + } + + recordList() { + return this.records; + } + + lastRecord() { + return this.records.slice(-1).pop(); + } + + _micCaptured(stream) { + this.context = new (window.AudioContext || window.webkitAudioContext)(); + this.duration = this._duration; + this.input = this.context.createMediaStreamSource(stream); + this.processor = this.context.createScriptProcessor(this.bufferSize, 1, 1); + this.stream = stream; + + this.processor.onaudioprocess = (ev) => { + const sample = ev.inputBuffer.getChannelData(0); + let sum = 0.0; + + this.wavSamples.push(new Float32Array(sample)); + + for (let i = 0; i < sample.length; ++i) { + sum += sample[i] * sample[i]; + } + + this.duration = parseFloat(this._duration) + parseFloat(this.context.currentTime.toFixed(2)); + this.volume = Math.sqrt(sum / sample.length).toFixed(2); + }; + + this.input.connect(this.processor); + this.processor.connect(this.context.destination); + } + + _micError(error) { + this.micFailed && this.micFailed(error); + } +} diff --git a/resources/js/lib/Utils.js b/resources/js/lib/Utils.js new file mode 100644 index 0000000..a2c1d73 --- /dev/null +++ b/resources/js/lib/Utils.js @@ -0,0 +1,6 @@ +export default function convertTimeMMSS(seconds) { + if (!seconds) { + return null; + } + return new Date(seconds * 1000).toISOString().substr(14, 5); +} \ No newline at end of file diff --git a/resources/js/lib/WavEncoder.js b/resources/js/lib/WavEncoder.js new file mode 100644 index 0000000..6adf8a2 --- /dev/null +++ b/resources/js/lib/WavEncoder.js @@ -0,0 +1,66 @@ +/* eslint-disable */ +export default class { + constructor(options) { + this.bufferSize = options.bufferSize || 4096; + this.sampleRate = options.sampleRate; + this.samples = options.samples; + } + + finish() { + this._joinSamples(); + + const buffer = new ArrayBuffer(44 + this.samples.length * 2); + const view = new DataView(buffer); + + this._writeString(view, 0, 'RIFF'); // RIFF identifier + view.setUint32(4, 36 + this.samples.length * 2, true); // RIFF chunk length + this._writeString(view, 8, 'WAVE'); // RIFF type + this._writeString(view, 12, 'fmt '); // format chunk identifier + view.setUint32(16, 16, true); // format chunk length + view.setUint16(20, 1, true); // sample format (raw) + view.setUint16(22, 1, true); // channel count + view.setUint32(24, this.sampleRate, true); // sample rate + view.setUint32(28, this.sampleRate * 4, true); // byte rate (sample rate * block align) + view.setUint16(32, 4, true); // block align (channel count * bytes per sample) + view.setUint16(34, 16, true); // bits per sample + this._writeString(view, 36, 'data'); // data chunk identifier + view.setUint32(40, this.samples.length * 2, true); // data chunk length + + this._floatTo16BitPCM(view, 44, this.samples); + + const blob = new Blob([view], { type: 'audio/wav' }); + + return { + id: Date.now(), + blob, + url: URL.createObjectURL(blob), + }; + } + + _floatTo16BitPCM(output, offset, input) { + for (let i = 0; i < input.length; i++, offset += 2) { + const s = Math.max(-1, Math.min(1, input[i])); + output.setInt16(offset, s < 0 ? s * 0x8000 : s * 0x7fff, true); + } + } + + _joinSamples() { + const recordLength = this.samples.length * this.bufferSize; + const joinedSamples = new Float64Array(recordLength); + let offset = 0; + + for (let i = 0; i < this.samples.length; i++) { + const sample = this.samples[i]; + joinedSamples.set(sample, offset); + offset += sample.length; + } + + this.samples = joinedSamples; + } + + _writeString(view, offset, string) { + for (let i = 0; i < string.length; i++) { + view.setUint8(offset + i, string.charCodeAt(i)); + } + } +} diff --git a/routes/web.php b/routes/web.php index 68066f1..2365686 100644 --- a/routes/web.php +++ b/routes/web.php @@ -15,7 +15,8 @@ */ Route::get('/', ChatController::class . '@index')->name('home'); -Route::post('/chat', ChatController::class . '@chat')->name('chat'); +Route::post('/chat', ChatController::class . '@chat')->name('chat')->middleware('throttle:chat'); +Route::post('/audio', ChatController::class . '@audio')->name('audio')->middleware('throttle:audio'); Route::get('/rest', ChatController::class . '@reset')->name('reset'); // 暂不开放用户认证功能 From 49bf512026968ea0af8673dc0f012102c7f290be Mon Sep 17 00:00:00 2001 From: geekr Date: Thu, 9 Mar 2023 20:40:33 +0800 Subject: [PATCH 03/13] =?UTF-8?q?=E5=89=8D=E7=AB=AF=E9=9D=99=E6=80=81?= =?UTF-8?q?=E8=B5=84=E6=BA=90=E8=B5=B0CDN=E5=9F=9F=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.example | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.env.example b/.env.example index 6830661..c6f9cfe 100644 --- a/.env.example +++ b/.env.example @@ -3,6 +3,7 @@ APP_ENV=local APP_KEY=base64:LWgxOBPkZqpxH5JwuthrKaxVWXGGiYIGCJTniBHUDKU= APP_DEBUG=true APP_URL=http://chat.geekr.dev +#ASSET_URL=https://cdn.example.com/ LOG_CHANNEL=stack LOG_DEPRECATIONS_CHANNEL=null @@ -58,4 +59,4 @@ VITE_PUSHER_SCHEME="${PUSHER_SCHEME}" VITE_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" OPENAI_API_KEY= -OPENAI_BASE_URI=open.aiproxy.xyz/v1 \ No newline at end of file +OPENAI_BASE_URI=open.aiproxy.xyz/v1 From 8c62d3dcfbbbb382a72d0426276be7c5e3792322 Mon Sep 17 00:00:00 2001 From: geekr Date: Thu, 9 Mar 2023 21:20:43 +0800 Subject: [PATCH 04/13] add assets --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 0171683..f420bbf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,6 @@ /.phpunit.cache /node_modules -/public/build +/public /public/hot /public/storage /storage/*.key From 6651e18e2cd37e1f7655ce0ec0d321bd218f97df Mon Sep 17 00:00:00 2001 From: geekr Date: Thu, 9 Mar 2023 21:21:30 +0800 Subject: [PATCH 05/13] add assets to repo --- .gitignore | 1 - .../build/assets/ApplicationLogo-8824e596.js | 1 + .../build/assets/ConfirmPassword-4192f88b.js | 1 + public/build/assets/Dashboard-2d1fa384.js | 1 + .../build/assets/ForgotPassword-50f25886.js | 1 + public/build/assets/Login-793bcf5b.js | 1 + public/build/assets/PrimaryButton-8d28af52.js | 1 + public/build/assets/Register-369772b0.js | 1 + public/build/assets/ResetPassword-548e794a.js | 1 + public/build/assets/TextInput-81d447e7.js | 1 + public/build/assets/VerifyEmail-cd2b8e9d.js | 1 + public/build/assets/Welcome-d15778e1.js | 1 + .../_plugin-vue_export-helper-c27b6911.js | 1 + public/build/assets/app-38a33b35.js | 114 +++++++++++++++ public/build/assets/app-8bf0b002.css | 1 + public/build/manifest.json | 137 ++++++++++++++++++ 16 files changed, 264 insertions(+), 1 deletion(-) create mode 100644 public/build/assets/ApplicationLogo-8824e596.js create mode 100644 public/build/assets/ConfirmPassword-4192f88b.js create mode 100644 public/build/assets/Dashboard-2d1fa384.js create mode 100644 public/build/assets/ForgotPassword-50f25886.js create mode 100644 public/build/assets/Login-793bcf5b.js create mode 100644 public/build/assets/PrimaryButton-8d28af52.js create mode 100644 public/build/assets/Register-369772b0.js create mode 100644 public/build/assets/ResetPassword-548e794a.js create mode 100644 public/build/assets/TextInput-81d447e7.js create mode 100644 public/build/assets/VerifyEmail-cd2b8e9d.js create mode 100644 public/build/assets/Welcome-d15778e1.js create mode 100644 public/build/assets/_plugin-vue_export-helper-c27b6911.js create mode 100644 public/build/assets/app-38a33b35.js create mode 100644 public/build/assets/app-8bf0b002.css create mode 100644 public/build/manifest.json diff --git a/.gitignore b/.gitignore index f420bbf..9db8f01 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,5 @@ /.phpunit.cache /node_modules -/public /public/hot /public/storage /storage/*.key diff --git a/public/build/assets/ApplicationLogo-8824e596.js b/public/build/assets/ApplicationLogo-8824e596.js new file mode 100644 index 0000000..d90ed4f --- /dev/null +++ b/public/build/assets/ApplicationLogo-8824e596.js @@ -0,0 +1 @@ +import{_ as C}from"./_plugin-vue_export-helper-c27b6911.js";import{o as L,f as o,b as t}from"./app-38a33b35.js";const e={},s={viewBox:"0 0 316 316",xmlns:"http://www.w3.org/2000/svg"},V=t("path",{d:"M305.8 81.125C305.77 80.995 305.69 80.885 305.65 80.755C305.56 80.525 305.49 80.285 305.37 80.075C305.29 79.935 305.17 79.815 305.07 79.685C304.94 79.515 304.83 79.325 304.68 79.175C304.55 79.045 304.39 78.955 304.25 78.845C304.09 78.715 303.95 78.575 303.77 78.475L251.32 48.275C249.97 47.495 248.31 47.495 246.96 48.275L194.51 78.475C194.33 78.575 194.19 78.725 194.03 78.845C193.89 78.955 193.73 79.045 193.6 79.175C193.45 79.325 193.34 79.515 193.21 79.685C193.11 79.815 192.99 79.935 192.91 80.075C192.79 80.285 192.71 80.525 192.63 80.755C192.58 80.875 192.51 80.995 192.48 81.125C192.38 81.495 192.33 81.875 192.33 82.265V139.625L148.62 164.795V52.575C148.62 52.185 148.57 51.805 148.47 51.435C148.44 51.305 148.36 51.195 148.32 51.065C148.23 50.835 148.16 50.595 148.04 50.385C147.96 50.245 147.84 50.125 147.74 49.995C147.61 49.825 147.5 49.635 147.35 49.485C147.22 49.355 147.06 49.265 146.92 49.155C146.76 49.025 146.62 48.885 146.44 48.785L93.99 18.585C92.64 17.805 90.98 17.805 89.63 18.585L37.18 48.785C37 48.885 36.86 49.035 36.7 49.155C36.56 49.265 36.4 49.355 36.27 49.485C36.12 49.635 36.01 49.825 35.88 49.995C35.78 50.125 35.66 50.245 35.58 50.385C35.46 50.595 35.38 50.835 35.3 51.065C35.25 51.185 35.18 51.305 35.15 51.435C35.05 51.805 35 52.185 35 52.575V232.235C35 233.795 35.84 235.245 37.19 236.025L142.1 296.425C142.33 296.555 142.58 296.635 142.82 296.725C142.93 296.765 143.04 296.835 143.16 296.865C143.53 296.965 143.9 297.015 144.28 297.015C144.66 297.015 145.03 296.965 145.4 296.865C145.5 296.835 145.59 296.775 145.69 296.745C145.95 296.655 146.21 296.565 146.45 296.435L251.36 236.035C252.72 235.255 253.55 233.815 253.55 232.245V174.885L303.81 145.945C305.17 145.165 306 143.725 306 142.155V82.265C305.95 81.875 305.89 81.495 305.8 81.125ZM144.2 227.205L100.57 202.515L146.39 176.135L196.66 147.195L240.33 172.335L208.29 190.625L144.2 227.205ZM244.75 114.995V164.795L226.39 154.225L201.03 139.625V89.825L219.39 100.395L244.75 114.995ZM249.12 57.105L292.81 82.265L249.12 107.425L205.43 82.265L249.12 57.105ZM114.49 184.425L96.13 194.995V85.305L121.49 70.705L139.85 60.135V169.815L114.49 184.425ZM91.76 27.425L135.45 52.585L91.76 77.745L48.07 52.585L91.76 27.425ZM43.67 60.135L62.03 70.705L87.39 85.305V202.545V202.555V202.565C87.39 202.735 87.44 202.895 87.46 203.055C87.49 203.265 87.49 203.485 87.55 203.695V203.705C87.6 203.875 87.69 204.035 87.76 204.195C87.84 204.375 87.89 204.575 87.99 204.745C87.99 204.745 87.99 204.755 88 204.755C88.09 204.905 88.22 205.035 88.33 205.175C88.45 205.335 88.55 205.495 88.69 205.635L88.7 205.645C88.82 205.765 88.98 205.855 89.12 205.965C89.28 206.085 89.42 206.225 89.59 206.325C89.6 206.325 89.6 206.325 89.61 206.335C89.62 206.335 89.62 206.345 89.63 206.345L139.87 234.775V285.065L43.67 229.705V60.135ZM244.75 229.705L148.58 285.075V234.775L219.8 194.115L244.75 179.875V229.705ZM297.2 139.625L253.49 164.795V114.995L278.85 100.395L297.21 89.825V139.625H297.2Z"},null,-1),c=[V];function n(r,_){return L(),o("svg",s,c)}const p=C(e,[["render",n]]);export{p as A}; diff --git a/public/build/assets/ConfirmPassword-4192f88b.js b/public/build/assets/ConfirmPassword-4192f88b.js new file mode 100644 index 0000000..7d59d6c --- /dev/null +++ b/public/build/assets/ConfirmPassword-4192f88b.js @@ -0,0 +1 @@ +import{v as l,o as d,c as m,w as t,a as o,u as a,X as c,b as e,d as p,n as u,e as f}from"./app-38a33b35.js";import{_,a as w}from"./PrimaryButton-8d28af52.js";import{_ as b,a as h,b as x}from"./TextInput-81d447e7.js";import"./ApplicationLogo-8824e596.js";import"./_plugin-vue_export-helper-c27b6911.js";const g=e("div",{class:"mb-4 text-sm text-gray-600"}," This is a secure area of the application. Please confirm your password before continuing. ",-1),v=["onSubmit"],V={class:"flex justify-end mt-4"},S={__name:"ConfirmPassword",setup(y){const s=l({password:""}),i=()=>{s.post(route("password.confirm"),{onFinish:()=>s.reset()})};return(C,r)=>(d(),m(w,null,{default:t(()=>[o(a(c),{title:"Confirm Password"}),g,e("form",{onSubmit:f(i,["prevent"])},[e("div",null,[o(b,{for:"password",value:"Password"}),o(h,{id:"password",type:"password",class:"mt-1 block w-full",modelValue:a(s).password,"onUpdate:modelValue":r[0]||(r[0]=n=>a(s).password=n),required:"",autocomplete:"current-password",autofocus:""},null,8,["modelValue"]),o(x,{class:"mt-2",message:a(s).errors.password},null,8,["message"])]),e("div",V,[o(_,{class:u(["ml-4",{"opacity-25":a(s).processing}]),disabled:a(s).processing},{default:t(()=>[p(" Confirm ")]),_:1},8,["class","disabled"])])],40,v)]),_:1}))}};export{S as default}; diff --git a/public/build/assets/Dashboard-2d1fa384.js b/public/build/assets/Dashboard-2d1fa384.js new file mode 100644 index 0000000..fb554af --- /dev/null +++ b/public/build/assets/Dashboard-2d1fa384.js @@ -0,0 +1 @@ +import{A as D}from"./ApplicationLogo-8824e596.js";import{q as M,s as N,h as v,p as L,o as d,f as p,b as e,r as f,i as k,m as $,a,w as o,n as c,u as r,T as B,c as y,l as _,d as u,t as b,g as E,X as j,F as z}from"./app-38a33b35.js";import"./_plugin-vue_export-helper-c27b6911.js";const S={class:"relative"},V={__name:"Dropdown",props:{align:{default:"right"},width:{default:"48"},contentClasses:{default:()=>["py-1","bg-white"]}},setup(n){const s=n,t=m=>{l.value&&m.key==="Escape"&&(l.value=!1)};M(()=>document.addEventListener("keydown",t)),N(()=>document.removeEventListener("keydown",t));const i=v(()=>({48:"w-48"})[s.width.toString()]),g=v(()=>s.align==="left"?"origin-top-left left-0":s.align==="right"?"origin-top-right right-0":"origin-top"),l=L(!1);return(m,h)=>(d(),p("div",S,[e("div",{onClick:h[0]||(h[0]=w=>l.value=!l.value)},[f(m.$slots,"trigger")]),k(e("div",{class:"fixed inset-0 z-40",onClick:h[1]||(h[1]=w=>l.value=!1)},null,512),[[$,l.value]]),a(B,{"enter-active-class":"transition ease-out duration-200","enter-from-class":"transform opacity-0 scale-95","enter-to-class":"transform opacity-100 scale-100","leave-active-class":"transition ease-in duration-75","leave-from-class":"transform opacity-100 scale-100","leave-to-class":"transform opacity-0 scale-95"},{default:o(()=>[k(e("div",{class:c(["absolute z-50 mt-2 rounded-md shadow-lg",[r(i),r(g)]]),style:{display:"none"},onClick:h[2]||(h[2]=w=>l.value=!1)},[e("div",{class:c(["rounded-md ring-1 ring-black ring-opacity-5",n.contentClasses])},[f(m.$slots,"content")],2)],2),[[$,l.value]])]),_:3})]))}},C={__name:"DropdownLink",setup(n){return(s,t)=>(d(),y(r(_),{class:"block w-full px-4 py-2 text-left text-sm leading-5 text-gray-700 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 transition duration-150 ease-in-out"},{default:o(()=>[f(s.$slots,"default")]),_:3}))}},A={__name:"NavLink",props:["href","active"],setup(n){const s=n,t=v(()=>s.active?"inline-flex items-center px-1 pt-1 border-b-2 border-indigo-400 text-sm font-medium leading-5 text-gray-900 focus:outline-none focus:border-indigo-700 transition duration-150 ease-in-out":"inline-flex items-center px-1 pt-1 border-b-2 border-transparent text-sm font-medium leading-5 text-gray-500 hover:text-gray-700 hover:border-gray-300 focus:outline-none focus:text-gray-700 focus:border-gray-300 transition duration-150 ease-in-out");return(i,g)=>(d(),y(r(_),{href:n.href,class:c(r(t))},{default:o(()=>[f(i.$slots,"default")]),_:3},8,["href","class"]))}},x={__name:"ResponsiveNavLink",props:["href","active"],setup(n){const s=n,t=v(()=>s.active?"block w-full pl-3 pr-4 py-2 border-l-4 border-indigo-400 text-left text-base font-medium text-indigo-700 bg-indigo-50 focus:outline-none focus:text-indigo-800 focus:bg-indigo-100 focus:border-indigo-700 transition duration-150 ease-in-out":"block w-full pl-3 pr-4 py-2 border-l-4 border-transparent text-left text-base font-medium text-gray-600 hover:text-gray-800 hover:bg-gray-50 hover:border-gray-300 focus:outline-none focus:text-gray-800 focus:bg-gray-50 focus:border-gray-300 transition duration-150 ease-in-out");return(i,g)=>(d(),y(r(_),{href:n.href,class:c(r(t))},{default:o(()=>[f(i.$slots,"default")]),_:3},8,["href","class"]))}},O={class:"min-h-screen bg-gray-100"},T={class:"bg-white border-b border-gray-100"},F={class:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"},P={class:"flex justify-between h-16"},q={class:"flex"},R={class:"shrink-0 flex items-center"},U={class:"hidden space-x-8 sm:-my-px sm:ml-10 sm:flex"},X={class:"hidden sm:flex sm:items-center sm:ml-6"},Y={class:"ml-3 relative"},G={class:"inline-flex rounded-md"},H={type:"button",class:"inline-flex items-center px-3 py-2 border border-transparent text-sm leading-4 font-medium rounded-md text-gray-500 bg-white hover:text-gray-700 focus:outline-none transition ease-in-out duration-150"},I=e("svg",{class:"ml-2 -mr-0.5 h-4 w-4",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor"},[e("path",{"fill-rule":"evenodd",d:"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z","clip-rule":"evenodd"})],-1),J={class:"-mr-2 flex items-center sm:hidden"},K={class:"h-6 w-6",stroke:"currentColor",fill:"none",viewBox:"0 0 24 24"},Q={class:"pt-2 pb-3 space-y-1"},W={class:"pt-4 pb-1 border-t border-gray-200"},Z={class:"px-4"},ee={class:"font-medium text-base text-gray-800"},te={class:"font-medium text-sm text-gray-500"},se={class:"mt-3 space-y-1"},oe={key:0,class:"bg-white shadow"},ae={class:"max-w-7xl mx-auto py-6 px-4 sm:px-6 lg:px-8"},ne={__name:"AuthenticatedLayout",setup(n){const s=L(!1);return(t,i)=>(d(),p("div",null,[e("div",O,[e("nav",T,[e("div",F,[e("div",P,[e("div",q,[e("div",R,[a(r(_),{href:t.route("dashboard")},{default:o(()=>[a(D,{class:"block h-9 w-auto fill-current text-gray-800"})]),_:1},8,["href"])]),e("div",U,[a(A,{href:t.route("dashboard"),active:t.route().current("dashboard")},{default:o(()=>[u(" Dashboard ")]),_:1},8,["href","active"])])]),e("div",X,[e("div",Y,[a(V,{align:"right",width:"48"},{trigger:o(()=>[e("span",G,[e("button",H,[u(b(t.$page.props.auth.user.name)+" ",1),I])])]),content:o(()=>[a(C,{href:t.route("profile.edit")},{default:o(()=>[u(" Profile ")]),_:1},8,["href"]),a(C,{href:t.route("logout"),method:"post",as:"button"},{default:o(()=>[u(" Log Out ")]),_:1},8,["href"])]),_:1})])]),e("div",J,[e("button",{onClick:i[0]||(i[0]=g=>s.value=!s.value),class:"inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out"},[(d(),p("svg",K,[e("path",{class:c({hidden:s.value,"inline-flex":!s.value}),"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 6h16M4 12h16M4 18h16"},null,2),e("path",{class:c({hidden:!s.value,"inline-flex":s.value}),"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"},null,2)]))])])])]),e("div",{class:c([{block:s.value,hidden:!s.value},"sm:hidden"])},[e("div",Q,[a(x,{href:t.route("dashboard"),active:t.route().current("dashboard")},{default:o(()=>[u(" Dashboard ")]),_:1},8,["href","active"])]),e("div",W,[e("div",Z,[e("div",ee,b(t.$page.props.auth.user.name),1),e("div",te,b(t.$page.props.auth.user.email),1)]),e("div",se,[a(x,{href:t.route("profile.edit")},{default:o(()=>[u(" Profile ")]),_:1},8,["href"]),a(x,{href:t.route("logout"),method:"post",as:"button"},{default:o(()=>[u(" Log Out ")]),_:1},8,["href"])])])],2)]),t.$slots.header?(d(),p("header",oe,[e("div",ae,[f(t.$slots,"header")])])):E("",!0),e("main",null,[f(t.$slots,"default")])])]))}},re=e("h2",{class:"font-semibold text-xl text-gray-800 leading-tight"},"Dashboard",-1),ie=e("div",{class:"py-12"},[e("div",{class:"max-w-7xl mx-auto sm:px-6 lg:px-8"},[e("div",{class:"bg-white overflow-hidden shadow-sm sm:rounded-lg"},[e("div",{class:"p-6 text-gray-900"},"You're logged in!")])])],-1),ce={__name:"Dashboard",setup(n){return(s,t)=>(d(),p(z,null,[a(r(j),{title:"Dashboard"}),a(ne,null,{header:o(()=>[re]),default:o(()=>[ie]),_:1})],64))}};export{ce as default}; diff --git a/public/build/assets/ForgotPassword-50f25886.js b/public/build/assets/ForgotPassword-50f25886.js new file mode 100644 index 0000000..9b36ee4 --- /dev/null +++ b/public/build/assets/ForgotPassword-50f25886.js @@ -0,0 +1 @@ +import{v as d,o as i,c as u,w as r,a,u as s,X as c,f as _,t as f,g as p,b as t,d as w,n as g,e as b}from"./app-38a33b35.js";import{_ as y,a as x}from"./PrimaryButton-8d28af52.js";import{_ as k,a as h,b as v}from"./TextInput-81d447e7.js";import"./ApplicationLogo-8824e596.js";import"./_plugin-vue_export-helper-c27b6911.js";const V=t("div",{class:"mb-4 text-sm text-gray-600"}," Forgot your password? No problem. Just let us know your email address and we will email you a password reset link that will allow you to choose a new one. ",-1),N={key:0,class:"mb-4 font-medium text-sm text-green-600"},$=["onSubmit"],B={class:"flex items-center justify-end mt-4"},q={__name:"ForgotPassword",props:{status:String},setup(o){const e=d({email:""}),m=()=>{e.post(route("password.email"))};return(S,l)=>(i(),u(x,null,{default:r(()=>[a(s(c),{title:"Forgot Password"}),V,o.status?(i(),_("div",N,f(o.status),1)):p("",!0),t("form",{onSubmit:b(m,["prevent"])},[t("div",null,[a(k,{for:"email",value:"Email"}),a(h,{id:"email",type:"email",class:"mt-1 block w-full",modelValue:s(e).email,"onUpdate:modelValue":l[0]||(l[0]=n=>s(e).email=n),required:"",autofocus:"",autocomplete:"username"},null,8,["modelValue"]),a(v,{class:"mt-2",message:s(e).errors.email},null,8,["message"])]),t("div",B,[a(y,{class:g({"opacity-25":s(e).processing}),disabled:s(e).processing},{default:r(()=>[w(" Email Password Reset Link ")]),_:1},8,["class","disabled"])])],40,$)]),_:1}))}};export{q as default}; diff --git a/public/build/assets/Login-793bcf5b.js b/public/build/assets/Login-793bcf5b.js new file mode 100644 index 0000000..7482d91 --- /dev/null +++ b/public/build/assets/Login-793bcf5b.js @@ -0,0 +1 @@ +import{h as w,i as k,j as x,u as s,o as d,f as h,k as v,v as y,c as u,w as m,a,X as V,t as $,g as c,b as r,l as B,d as f,n as C,e as N}from"./app-38a33b35.js";import{_ as R,a as S}from"./PrimaryButton-8d28af52.js";import{_ as p,a as _,b as g}from"./TextInput-81d447e7.js";import"./ApplicationLogo-8824e596.js";import"./_plugin-vue_export-helper-c27b6911.js";const U=["value"],q={__name:"Checkbox",props:{checked:{type:[Array,Boolean],default:!1},value:{default:null}},emits:["update:checked"],setup(l,{emit:e}){const i=l,n=w({get(){return i.checked},set(t){e("update:checked",t)}});return(t,o)=>k((d(),h("input",{type:"checkbox",value:l.value,"onUpdate:modelValue":o[0]||(o[0]=b=>v(n)?n.value=b:null),class:"rounded border-gray-300 text-indigo-600 shadow-sm focus:ring-indigo-500"},null,8,U)),[[x,s(n)]])}},L={key:0,class:"mb-4 font-medium text-sm text-green-600"},P=["onSubmit"],j={class:"mt-4"},D={class:"block mt-4"},E={class:"flex items-center"},F=r("span",{class:"ml-2 text-sm text-gray-600"},"Remember me",-1),M={class:"flex items-center justify-end mt-4"},H={__name:"Login",props:{canResetPassword:Boolean,status:String},setup(l){const e=y({email:"",password:"",remember:!1}),i=()=>{e.post(route("login"),{onFinish:()=>e.reset("password")})};return(n,t)=>(d(),u(S,null,{default:m(()=>[a(s(V),{title:"Log in"}),l.status?(d(),h("div",L,$(l.status),1)):c("",!0),r("form",{onSubmit:N(i,["prevent"])},[r("div",null,[a(p,{for:"email",value:"Email"}),a(_,{id:"email",type:"email",class:"mt-1 block w-full",modelValue:s(e).email,"onUpdate:modelValue":t[0]||(t[0]=o=>s(e).email=o),required:"",autofocus:"",autocomplete:"username"},null,8,["modelValue"]),a(g,{class:"mt-2",message:s(e).errors.email},null,8,["message"])]),r("div",j,[a(p,{for:"password",value:"Password"}),a(_,{id:"password",type:"password",class:"mt-1 block w-full",modelValue:s(e).password,"onUpdate:modelValue":t[1]||(t[1]=o=>s(e).password=o),required:"",autocomplete:"current-password"},null,8,["modelValue"]),a(g,{class:"mt-2",message:s(e).errors.password},null,8,["message"])]),r("div",D,[r("label",E,[a(q,{name:"remember",checked:s(e).remember,"onUpdate:checked":t[2]||(t[2]=o=>s(e).remember=o)},null,8,["checked"]),F])]),r("div",M,[l.canResetPassword?(d(),u(s(B),{key:0,href:n.route("password.request"),class:"underline text-sm text-gray-600 hover:text-gray-900 rounded-md focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500"},{default:m(()=>[f(" Forgot your password? ")]),_:1},8,["href"])):c("",!0),a(R,{class:C(["ml-4",{"opacity-25":s(e).processing}]),disabled:s(e).processing},{default:m(()=>[f(" Log in ")]),_:1},8,["class","disabled"])])],40,P)]),_:1}))}};export{H as default}; diff --git a/public/build/assets/PrimaryButton-8d28af52.js b/public/build/assets/PrimaryButton-8d28af52.js new file mode 100644 index 0000000..80d1134 --- /dev/null +++ b/public/build/assets/PrimaryButton-8d28af52.js @@ -0,0 +1 @@ +import{A as c}from"./ApplicationLogo-8824e596.js";import{o,f as a,b as s,a as r,w as u,u as l,l as d,r as n}from"./app-38a33b35.js";const f={class:"min-h-screen flex flex-col sm:justify-center items-center pt-6 sm:pt-0 bg-gray-100"},p={class:"w-full sm:max-w-md mt-6 px-6 py-4 bg-white shadow-md overflow-hidden sm:rounded-lg"},y={__name:"GuestLayout",setup(t){return(e,i)=>(o(),a("div",f,[s("div",null,[r(l(d),{href:"/"},{default:u(()=>[r(c,{class:"w-20 h-20 fill-current text-gray-500"})]),_:1})]),s("div",p,[n(e.$slots,"default")])]))}},m=["type"],h={__name:"PrimaryButton",props:{type:{type:String,default:"submit"}},setup(t){return(e,i)=>(o(),a("button",{type:t.type,class:"inline-flex items-center px-4 py-2 bg-gray-800 border border-transparent rounded-md font-semibold text-xs text-white uppercase tracking-widest hover:bg-gray-700 focus:bg-gray-700 active:bg-gray-900 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 transition ease-in-out duration-150"},[n(e.$slots,"default")],8,m))}};export{h as _,y as a}; diff --git a/public/build/assets/Register-369772b0.js b/public/build/assets/Register-369772b0.js new file mode 100644 index 0000000..33afc24 --- /dev/null +++ b/public/build/assets/Register-369772b0.js @@ -0,0 +1 @@ +import{v as f,o as p,c as _,w as n,a,u as s,X as w,b as r,d,l as g,n as V,e as v}from"./app-38a33b35.js";import{_ as b,a as y}from"./PrimaryButton-8d28af52.js";import{_ as t,a as m,b as i}from"./TextInput-81d447e7.js";import"./ApplicationLogo-8824e596.js";import"./_plugin-vue_export-helper-c27b6911.js";const x=["onSubmit"],k={class:"mt-4"},$={class:"mt-4"},h={class:"mt-4"},q={class:"flex items-center justify-end mt-4"},S={__name:"Register",setup(N){const e=f({name:"",email:"",password:"",password_confirmation:"",terms:!1}),u=()=>{e.post(route("register"),{onFinish:()=>e.reset("password","password_confirmation")})};return(c,o)=>(p(),_(y,null,{default:n(()=>[a(s(w),{title:"Register"}),r("form",{onSubmit:v(u,["prevent"])},[r("div",null,[a(t,{for:"name",value:"Name"}),a(m,{id:"name",type:"text",class:"mt-1 block w-full",modelValue:s(e).name,"onUpdate:modelValue":o[0]||(o[0]=l=>s(e).name=l),required:"",autofocus:"",autocomplete:"name"},null,8,["modelValue"]),a(i,{class:"mt-2",message:s(e).errors.name},null,8,["message"])]),r("div",k,[a(t,{for:"email",value:"Email"}),a(m,{id:"email",type:"email",class:"mt-1 block w-full",modelValue:s(e).email,"onUpdate:modelValue":o[1]||(o[1]=l=>s(e).email=l),required:"",autocomplete:"username"},null,8,["modelValue"]),a(i,{class:"mt-2",message:s(e).errors.email},null,8,["message"])]),r("div",$,[a(t,{for:"password",value:"Password"}),a(m,{id:"password",type:"password",class:"mt-1 block w-full",modelValue:s(e).password,"onUpdate:modelValue":o[2]||(o[2]=l=>s(e).password=l),required:"",autocomplete:"new-password"},null,8,["modelValue"]),a(i,{class:"mt-2",message:s(e).errors.password},null,8,["message"])]),r("div",h,[a(t,{for:"password_confirmation",value:"Confirm Password"}),a(m,{id:"password_confirmation",type:"password",class:"mt-1 block w-full",modelValue:s(e).password_confirmation,"onUpdate:modelValue":o[3]||(o[3]=l=>s(e).password_confirmation=l),required:"",autocomplete:"new-password"},null,8,["modelValue"]),a(i,{class:"mt-2",message:s(e).errors.password_confirmation},null,8,["message"])]),r("div",q,[a(s(g),{href:c.route("login"),class:"underline text-sm text-gray-600 hover:text-gray-900 rounded-md focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500"},{default:n(()=>[d(" Already registered? ")]),_:1},8,["href"]),a(b,{class:V(["ml-4",{"opacity-25":s(e).processing}]),disabled:s(e).processing},{default:n(()=>[d(" Register ")]),_:1},8,["class","disabled"])])],40,x)]),_:1}))}};export{S as default}; diff --git a/public/build/assets/ResetPassword-548e794a.js b/public/build/assets/ResetPassword-548e794a.js new file mode 100644 index 0000000..89f573f --- /dev/null +++ b/public/build/assets/ResetPassword-548e794a.js @@ -0,0 +1 @@ +import{v as c,o as f,c as w,w as d,a as o,u as e,X as _,b as t,d as V,n as b,e as g}from"./app-38a33b35.js";import{_ as v,a as k}from"./PrimaryButton-8d28af52.js";import{_ as l,a as i,b as m}from"./TextInput-81d447e7.js";import"./ApplicationLogo-8824e596.js";import"./_plugin-vue_export-helper-c27b6911.js";const x=["onSubmit"],y={class:"mt-4"},P={class:"mt-4"},$={class:"flex items-center justify-end mt-4"},U={__name:"ResetPassword",props:{email:String,token:String},setup(p){const n=p,s=c({token:n.token,email:n.email,password:"",password_confirmation:""}),u=()=>{s.post(route("password.store"),{onFinish:()=>s.reset("password","password_confirmation")})};return(S,a)=>(f(),w(k,null,{default:d(()=>[o(e(_),{title:"Reset Password"}),t("form",{onSubmit:g(u,["prevent"])},[t("div",null,[o(l,{for:"email",value:"Email"}),o(i,{id:"email",type:"email",class:"mt-1 block w-full",modelValue:e(s).email,"onUpdate:modelValue":a[0]||(a[0]=r=>e(s).email=r),required:"",autofocus:"",autocomplete:"username"},null,8,["modelValue"]),o(m,{class:"mt-2",message:e(s).errors.email},null,8,["message"])]),t("div",y,[o(l,{for:"password",value:"Password"}),o(i,{id:"password",type:"password",class:"mt-1 block w-full",modelValue:e(s).password,"onUpdate:modelValue":a[1]||(a[1]=r=>e(s).password=r),required:"",autocomplete:"new-password"},null,8,["modelValue"]),o(m,{class:"mt-2",message:e(s).errors.password},null,8,["message"])]),t("div",P,[o(l,{for:"password_confirmation",value:"Confirm Password"}),o(i,{id:"password_confirmation",type:"password",class:"mt-1 block w-full",modelValue:e(s).password_confirmation,"onUpdate:modelValue":a[2]||(a[2]=r=>e(s).password_confirmation=r),required:"",autocomplete:"new-password"},null,8,["modelValue"]),o(m,{class:"mt-2",message:e(s).errors.password_confirmation},null,8,["message"])]),t("div",$,[o(v,{class:b({"opacity-25":e(s).processing}),disabled:e(s).processing},{default:d(()=>[V(" Reset Password ")]),_:1},8,["class","disabled"])])],40,x)]),_:1}))}};export{U as default}; diff --git a/public/build/assets/TextInput-81d447e7.js b/public/build/assets/TextInput-81d447e7.js new file mode 100644 index 0000000..237cfbe --- /dev/null +++ b/public/build/assets/TextInput-81d447e7.js @@ -0,0 +1 @@ +import{i as c,m as i,o as s,f as a,b as d,t as n,r as m,p,q as _}from"./app-38a33b35.js";const f={class:"text-sm text-red-600"},k={__name:"InputError",props:["message"],setup(e){return(o,t)=>c((s(),a("div",null,[d("p",f,n(e.message),1)],512)),[[i,e.message]])}},v={class:"block font-medium text-sm text-gray-700"},g={key:0},h={key:1},y={__name:"InputLabel",props:["value"],setup(e){return(o,t)=>(s(),a("label",v,[e.value?(s(),a("span",g,n(e.value),1)):(s(),a("span",h,[m(o.$slots,"default")]))]))}},b=["value"],$={__name:"TextInput",props:["modelValue"],emits:["update:modelValue"],setup(e,{expose:o}){const t=p(null);return _(()=>{t.value.hasAttribute("autofocus")&&t.value.focus()}),o({focus:()=>t.value.focus()}),(r,u)=>(s(),a("input",{class:"border-gray-300 focus:border-indigo-500 focus:ring-indigo-500 rounded-md shadow-sm",value:e.modelValue,onInput:u[0]||(u[0]=l=>r.$emit("update:modelValue",l.target.value)),ref_key:"input",ref:t},null,40,b))}};export{y as _,$ as a,k as b}; diff --git a/public/build/assets/VerifyEmail-cd2b8e9d.js b/public/build/assets/VerifyEmail-cd2b8e9d.js new file mode 100644 index 0000000..5f313c4 --- /dev/null +++ b/public/build/assets/VerifyEmail-cd2b8e9d.js @@ -0,0 +1 @@ +import{v as m,h as f,o as a,c as g,w as s,a as o,u as e,X as _,f as p,g as h,b as i,d as n,n as y,l as v,e as b}from"./app-38a33b35.js";import{_ as x,a as k}from"./PrimaryButton-8d28af52.js";import"./ApplicationLogo-8824e596.js";import"./_plugin-vue_export-helper-c27b6911.js";const w=i("div",{class:"mb-4 text-sm text-gray-600"}," Thanks for signing up! Before getting started, could you verify your email address by clicking on the link we just emailed to you? If you didn't receive the email, we will gladly send you another. ",-1),V={key:0,class:"mb-4 font-medium text-sm text-green-600"},B=["onSubmit"],E={class:"mt-4 flex items-center justify-between"},T={__name:"VerifyEmail",props:{status:String},setup(r){const c=r,t=m({}),d=()=>{t.post(route("verification.send"))},l=f(()=>c.status==="verification-link-sent");return(u,N)=>(a(),g(k,null,{default:s(()=>[o(e(_),{title:"Email Verification"}),w,e(l)?(a(),p("div",V," A new verification link has been sent to the email address you provided during registration. ")):h("",!0),i("form",{onSubmit:b(d,["prevent"])},[i("div",E,[o(x,{class:y({"opacity-25":e(t).processing}),disabled:e(t).processing},{default:s(()=>[n(" Resend Verification Email ")]),_:1},8,["class","disabled"]),o(e(v),{href:u.route("logout"),method:"post",as:"button",class:"underline text-sm text-gray-600 hover:text-gray-900 rounded-md focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500"},{default:s(()=>[n("Log Out")]),_:1},8,["href"])])],40,B)]),_:1}))}};export{T as default}; diff --git a/public/build/assets/Welcome-d15778e1.js b/public/build/assets/Welcome-d15778e1.js new file mode 100644 index 0000000..2a53873 --- /dev/null +++ b/public/build/assets/Welcome-d15778e1.js @@ -0,0 +1 @@ +import{o as a,f as l,x as M,c as _,n as g,v as C,y as B,a as f,w as z,u,X as A,b as s,F as v,z as F,t as w,g as x,i as L,A as E,e as U,d as b,B as R,O as H}from"./app-38a33b35.js";import{_ as S}from"./_plugin-vue_export-helper-c27b6911.js";function T(n){return n?new Date(n*1e3).toISOString().substr(14,5):null}class V{constructor(t){this.bufferSize=t.bufferSize||4096,this.sampleRate=t.sampleRate,this.samples=t.samples}finish(){this._joinSamples();const t=new ArrayBuffer(44+this.samples.length*2),e=new DataView(t);this._writeString(e,0,"RIFF"),e.setUint32(4,36+this.samples.length*2,!0),this._writeString(e,8,"WAVE"),this._writeString(e,12,"fmt "),e.setUint32(16,16,!0),e.setUint16(20,1,!0),e.setUint16(22,1,!0),e.setUint32(24,this.sampleRate,!0),e.setUint32(28,this.sampleRate*4,!0),e.setUint16(32,4,!0),e.setUint16(34,16,!0),this._writeString(e,36,"data"),e.setUint32(40,this.samples.length*2,!0),this._floatTo16BitPCM(e,44,this.samples);const r=new Blob([e],{type:"audio/wav"});return{id:Date.now(),blob:r,url:URL.createObjectURL(r)}}_floatTo16BitPCM(t,e,r){for(let o=0;or.stop()),this.input.disconnect(),this.processor.disconnect(),this.context.close();let t=null;t=new V({bufferSize:this.bufferSize,sampleRate:this.encoderOptions.sampleRate,samples:this.wavSamples}).finish(),this.wavSamples=[],t.duration=T(this.duration),this.records.push(t),this._duration=0,this.duration=0,this.isPause=!1,this.isRecording=!1,this.afterRecording&&this.afterRecording(t)}pause(){this.stream.getTracks().forEach(t=>t.stop()),this.input.disconnect(),this.processor.disconnect(),this._duration=this.duration,this.isPause=!0,this.pauseRecording&&this.pauseRecording("pause recording")}recordList(){return this.records}lastRecord(){return this.records.slice(-1).pop()}_micCaptured(t){this.context=new(window.AudioContext||window.webkitAudioContext),this.duration=this._duration,this.input=this.context.createMediaStreamSource(t),this.processor=this.context.createScriptProcessor(this.bufferSize,1,1),this.stream=t,this.processor.onaudioprocess=e=>{const r=e.inputBuffer.getChannelData(0);let o=0;this.wavSamples.push(new Float32Array(r));for(let i=0;i',mic:'',play:'',save:'',stop:'',volume:''}}}},D=["innerHTML"];function G(n,t,e,r,o,i){return a(),l("div",{innerHTML:o.icons[e.name]},null,8,D)}const $=S(j,[["render",G]]),P="无法使用麦克风,请确保具备硬件条件以及授权应用使用你的麦克风",N="体验版目前仅支持30秒以内语音, 请重试",I="录音数据为空, 点击小话筒->开始讲话->讲完点终止键,再来一次吧",W={name:"AudioWidget",props:{time:{type:Number,default:30},bitRate:{type:Number,default:128},sampleRate:{type:Number,default:44100}},components:{IconButton:$},data(){return{recording:!1,recordedAudio:null,recordedBlob:null,recorder:null,errorMessage:null}},computed:{buttonClass(){return"absolute right-0 top-0 h-full flex items-center justify-center mx-auto px-2 py-2 fill-current rounded-md text-sm cursor-pointer"}},beforeUnmount(){this.recording&&this.stopRecorder()},methods:{toggleRecording(){this.recording=!this.recording,this.recording?this.initRecorder():this.stopRecording()},initRecorder(){this.recorder=new O({micFailed:this.micFailed,bitRate:this.bitRate,sampleRate:this.sampleRate}),this.recorder.start(),this.errorMessage=null},stopRecording(){this.recorder.stop();const n=this.recorder.recordList();if(this.recordedAudio=n[0].url,this.recordedBlob=n[0].blob,this.recordedAudio&&this.recordedBlob){if(this.recorder.duration>this.time){this.errorMessage=N,this.$emit("audio-failed",this.errorMessage);return}if(!this.recordedBlob){this.errorMessage=I,this.$emit("audio-failed",this.errorMessage);return}this.$emit("audio-upload",this.recordedBlob)}},micFailed(){this.recording=!1,this.errorMessage=P,this.$emit("audio-failed",this.errorMessage)}}};function q(n,t,e,r,o,i){const m=M("icon-button");return a(),l("div",null,[o.recording?(a(),_(m,{key:0,class:g(i.buttonClass),name:"stop",onClick:i.toggleRecording},null,8,["class","onClick"])):(a(),_(m,{key:1,class:g(i.buttonClass),name:"mic",onClick:i.toggleRecording},null,8,["class","onClick"]))])}const X=S(W,[["render",q]]),J=s("link",{rel:"shortcut icon",type:"image/png",href:"https://image.gstatics.cn/icon/geekchat.png"},null,-1),K={class:"flex flex-col space-y-4 p-4"},Q={class:"ml-4"},Y={class:"text-lg"},Z={key:0,href:"#",class:"font-medium text-gray-900"},ee={key:1,href:"#",class:"font-medium text-gray-900"},te={class:"mt-1"},se={class:"text-gray-600"},re=s("div",{id:"msg-anchor"},null,-1),oe={key:0,class:"flex rounded-lg p-4 bg-green-200 flex-reverse'"},ie={class:"ml-4"},ne={class:"mt-1"},ae={class:"text-gray-500"},ce={key:1,class:"flex rounded-lg p-4 bg-red-400 flex-reverse'"},le={class:"ml-4"},de={class:"mt-1"},he={class:"text-gray-100"},ue=["onSubmit"],me={class:"relative w-full"},pe=["disabled"],ge=s("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor",class:"w-6 h-6"},[s("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 12L3.269 3.126A59.768 59.768 0 0121.485 12 59.77 59.77 0 013.27 20.876L5.999 12zm0 0h7.5"})],-1),fe=[ge],_e=s("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor",class:"w-6 h-6"},[s("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0"})],-1),ve=[_e],we=s("footer",{class:"text-center sm:text-left"},[s("div",{class:"p-4 text-center text-neutral-700"},[b(" GeekChat 由 "),s("a",{href:"https://geekr.dev",target:"_blank",class:"text-neutral-800 dark:text-neutral-400"},"极客书房"),b(" 友情赞助,你可以通过文字或语音进行聊天和咨询 ")])],-1),Re={__name:"Welcome",props:{canLogin:Boolean,canRegister:Boolean,messages:Array},setup(n){const t=C({prompt:""}),e=B({error:"",toast:""}),r=()=>{t.post(route("chat"),{onStart:()=>{e.error="",t.reset(),e.toast="GeekChat正在思考如何回答您的问题,请稍候..."},onFinish:c=>{c.status>=400&&(c.status==429?e.error="请求过于频繁,请稍后再试":e.error="请求处理失败,请重试"),e.toast="",i()}})},o=()=>{R.get(route("reset")).then(c=>{H.reload()})},i=()=>{document.querySelector("#msg-anchor").scrollIntoView({behavior:"smooth"})},m=c=>{const d=new FormData;d.append("audio",c),e.error="",e.toast="GeekChat正在识别语音并思考如何回答您的问题,请稍候...",R.post(route("audio"),d).then(p=>{e.toast="",location.reload(),i()}).catch(p=>{e.toast="",p.includes("429")?e.error="请求过于频繁,请稍后再试":e.error="处理语音失败,可能没录音成功(按下话筒图标->开始讲话->讲完按下终止图标,操作不要太快),再来一次试试吧",i()})},y=c=>{e.error=c,e.toast=""};return(c,d)=>{const p=M("markdown");return a(),l(v,null,[f(u(A),{title:"GeekChat - ChatGPT免费体验版"},{default:z(()=>[J]),_:1}),s("div",K,[(a(!0),l(v,null,F(n.messages,(h,k)=>(a(),l("div",{key:k,class:g([h.role=="assistant"?"flex rounded-lg p-4 bg-green-200 flex-reverse":"flex rounded-lg p-4 bg-blue-200"])},[s("div",Q,[s("div",Y,[h.role=="assistant"?(a(),l("a",Z,"GeekChat")):(a(),l("a",ee,"你"))]),s("div",te,[s("p",se,[f(p,{source:h.content},null,8,["source"])])])])],2))),128)),re,e.toast?(a(),l("div",oe,[s("div",ie,[s("div",ne,[s("p",ae,w(e.toast),1)])])])):x("",!0),e.error?(a(),l("div",ce,[s("div",le,[s("div",de,[s("p",he,w(e.error),1)])])])):x("",!0)]),s("form",{class:"p-4 flex space-x-4 justify-center items-center",onSubmit:U(r,["prevent"])},[s("div",me,[L(s("input",{id:"message",placeholder:"输入你的问题...",type:"text",name:"prompt",autocomplete:"off","onUpdate:modelValue":d[0]||(d[0]=h=>u(t).prompt=h),class:"w-full first-letter:border rounded-md p-2 flex-1",required:""},null,512),[[E,u(t).prompt]]),f(X,{onAudioUpload:m,onAudioFailed:y})]),s("button",{class:g({"flex items-center justify-center px-4 py-2 bg-green-500 hover:bg-green-600 text-white rounded-md text-sm md:text-base":!0,"opacity-25":u(t).processing}),disabled:u(t).processing,type:"submit"},fe,10,pe),s("button",{class:"flex items-center justify-center px-4 py-2 bg-gray-400 hover:bg-gray-500 text-white rounded-md text-sm md:text-base",onClick:o},ve)],40,ue),we],64)}}};export{Re as default}; diff --git a/public/build/assets/_plugin-vue_export-helper-c27b6911.js b/public/build/assets/_plugin-vue_export-helper-c27b6911.js new file mode 100644 index 0000000..718edd3 --- /dev/null +++ b/public/build/assets/_plugin-vue_export-helper-c27b6911.js @@ -0,0 +1 @@ +const s=(t,r)=>{const o=t.__vccOpts||t;for(const[c,e]of r)o[c]=e;return o};export{s as _}; diff --git a/public/build/assets/app-38a33b35.js b/public/build/assets/app-38a33b35.js new file mode 100644 index 0000000..72e0182 --- /dev/null +++ b/public/build/assets/app-38a33b35.js @@ -0,0 +1,114 @@ +const Fu="modulepreload",Uu=function(e){return"/build/"+e},Yl={},dn=function(r,a,o){if(!a||a.length===0)return r();const m=document.getElementsByTagName("link");return Promise.all(a.map(g=>{if(g=Uu(g),g in Yl)return;Yl[g]=!0;const S=g.endsWith(".css"),s=S?'[rel="stylesheet"]':"";if(!!o)for(let n=m.length-1;n>=0;n--){const i=m[n];if(i.href===g&&(!S||i.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${g}"]${s}`))return;const t=document.createElement("link");if(t.rel=S?"stylesheet":Fu,S||(t.as="script",t.crossOrigin=""),t.href=g,document.head.appendChild(t),S)return new Promise((n,i)=>{t.addEventListener("load",n),t.addEventListener("error",()=>i(new Error(`Unable to preload CSS for ${g}`)))})})).then(()=>r())};function s_(e,r){return function(){return e.apply(r,arguments)}}const{toString:l_}=Object.prototype,{getPrototypeOf:js}=Object,Ws=(e=>r=>{const a=l_.call(r);return e[a]||(e[a]=a.slice(8,-1).toLowerCase())})(Object.create(null)),en=e=>(e=e.toLowerCase(),r=>Ws(r)===e),mo=e=>r=>typeof r===e,{isArray:Ma}=Array,ai=mo("undefined");function Bu(e){return e!==null&&!ai(e)&&e.constructor!==null&&!ai(e.constructor)&&Cn(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const c_=en("ArrayBuffer");function Gu(e){let r;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?r=ArrayBuffer.isView(e):r=e&&e.buffer&&c_(e.buffer),r}const Yu=mo("string"),Cn=mo("function"),__=mo("number"),Qs=e=>e!==null&&typeof e=="object",qu=e=>e===!0||e===!1,Vi=e=>{if(Ws(e)!=="object")return!1;const r=js(e);return(r===null||r===Object.prototype||Object.getPrototypeOf(r)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},Hu=en("Date"),Vu=en("File"),zu=en("Blob"),$u=en("FileList"),ju=e=>Qs(e)&&Cn(e.pipe),Wu=e=>{const r="[object FormData]";return e&&(typeof FormData=="function"&&e instanceof FormData||l_.call(e)===r||Cn(e.toString)&&e.toString()===r)},Qu=en("URLSearchParams"),Ku=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function gi(e,r,{allOwnKeys:a=!1}={}){if(e===null||typeof e>"u")return;let o,m;if(typeof e!="object"&&(e=[e]),Ma(e))for(o=0,m=e.length;o0;)if(m=a[o],r===m.toLowerCase())return m;return null}const u_=(()=>typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global)(),p_=e=>!ai(e)&&e!==u_;function cs(){const{caseless:e}=p_(this)&&this||{},r={},a=(o,m)=>{const g=e&&d_(r,m)||m;Vi(r[g])&&Vi(o)?r[g]=cs(r[g],o):Vi(o)?r[g]=cs({},o):Ma(o)?r[g]=o.slice():r[g]=o};for(let o=0,m=arguments.length;o(gi(r,(m,g)=>{a&&Cn(m)?e[g]=s_(m,a):e[g]=m},{allOwnKeys:o}),e),Xu=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),Ju=(e,r,a,o)=>{e.prototype=Object.create(r.prototype,o),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:r.prototype}),a&&Object.assign(e.prototype,a)},ep=(e,r,a,o)=>{let m,g,S;const s={};if(r=r||{},e==null)return r;do{for(m=Object.getOwnPropertyNames(e),g=m.length;g-- >0;)S=m[g],(!o||o(S,e,r))&&!s[S]&&(r[S]=e[S],s[S]=!0);e=a!==!1&&js(e)}while(e&&(!a||a(e,r))&&e!==Object.prototype);return r},tp=(e,r,a)=>{e=String(e),(a===void 0||a>e.length)&&(a=e.length),a-=r.length;const o=e.indexOf(r,a);return o!==-1&&o===a},rp=e=>{if(!e)return null;if(Ma(e))return e;let r=e.length;if(!__(r))return null;const a=new Array(r);for(;r-- >0;)a[r]=e[r];return a},np=(e=>r=>e&&r instanceof e)(typeof Uint8Array<"u"&&js(Uint8Array)),ap=(e,r)=>{const o=(e&&e[Symbol.iterator]).call(e);let m;for(;(m=o.next())&&!m.done;){const g=m.value;r.call(e,g[0],g[1])}},ip=(e,r)=>{let a;const o=[];for(;(a=e.exec(r))!==null;)o.push(a);return o},op=en("HTMLFormElement"),sp=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(a,o,m){return o.toUpperCase()+m}),ql=(({hasOwnProperty:e})=>(r,a)=>e.call(r,a))(Object.prototype),lp=en("RegExp"),m_=(e,r)=>{const a=Object.getOwnPropertyDescriptors(e),o={};gi(a,(m,g)=>{r(m,g,e)!==!1&&(o[g]=m)}),Object.defineProperties(e,o)},cp=e=>{m_(e,(r,a)=>{if(Cn(e)&&["arguments","caller","callee"].indexOf(a)!==-1)return!1;const o=e[a];if(Cn(o)){if(r.enumerable=!1,"writable"in r){r.writable=!1;return}r.set||(r.set=()=>{throw Error("Can not rewrite read-only method '"+a+"'")})}})},_p=(e,r)=>{const a={},o=m=>{m.forEach(g=>{a[g]=!0})};return Ma(e)?o(e):o(String(e).split(r)),a},dp=()=>{},up=(e,r)=>(e=+e,Number.isFinite(e)?e:r),Uo="abcdefghijklmnopqrstuvwxyz",Hl="0123456789",g_={DIGIT:Hl,ALPHA:Uo,ALPHA_DIGIT:Uo+Uo.toUpperCase()+Hl},pp=(e=16,r=g_.ALPHA_DIGIT)=>{let a="";const{length:o}=r;for(;e--;)a+=r[Math.random()*o|0];return a};function mp(e){return!!(e&&Cn(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}const gp=e=>{const r=new Array(10),a=(o,m)=>{if(Qs(o)){if(r.indexOf(o)>=0)return;if(!("toJSON"in o)){r[m]=o;const g=Ma(o)?[]:{};return gi(o,(S,s)=>{const c=a(S,m+1);!ai(c)&&(g[s]=c)}),r[m]=void 0,g}}return o};return a(e,0)},ee={isArray:Ma,isArrayBuffer:c_,isBuffer:Bu,isFormData:Wu,isArrayBufferView:Gu,isString:Yu,isNumber:__,isBoolean:qu,isObject:Qs,isPlainObject:Vi,isUndefined:ai,isDate:Hu,isFile:Vu,isBlob:zu,isRegExp:lp,isFunction:Cn,isStream:ju,isURLSearchParams:Qu,isTypedArray:np,isFileList:$u,forEach:gi,merge:cs,extend:Zu,trim:Ku,stripBOM:Xu,inherits:Ju,toFlatObject:ep,kindOf:Ws,kindOfTest:en,endsWith:tp,toArray:rp,forEachEntry:ap,matchAll:ip,isHTMLForm:op,hasOwnProperty:ql,hasOwnProp:ql,reduceDescriptors:m_,freezeMethods:cp,toObjectSet:_p,toCamelCase:sp,noop:dp,toFiniteNumber:up,findKey:d_,global:u_,isContextDefined:p_,ALPHABET:g_,generateString:pp,isSpecCompliantForm:mp,toJSONObject:gp};function We(e,r,a,o,m){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",r&&(this.code=r),a&&(this.config=a),o&&(this.request=o),m&&(this.response=m)}ee.inherits(We,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:ee.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const f_=We.prototype,E_={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{E_[e]={value:e}});Object.defineProperties(We,E_);Object.defineProperty(f_,"isAxiosError",{value:!0});We.from=(e,r,a,o,m,g)=>{const S=Object.create(f_);return ee.toFlatObject(e,S,function(c){return c!==Error.prototype},s=>s!=="isAxiosError"),We.call(S,e.message,r,a,o,m),S.cause=e,S.name=e.name,g&&Object.assign(S,g),S};const fp=null;function _s(e){return ee.isPlainObject(e)||ee.isArray(e)}function S_(e){return ee.endsWith(e,"[]")?e.slice(0,-2):e}function Vl(e,r,a){return e?e.concat(r).map(function(m,g){return m=S_(m),!a&&g?"["+m+"]":m}).join(a?".":""):r}function Ep(e){return ee.isArray(e)&&!e.some(_s)}const Sp=ee.toFlatObject(ee,{},null,function(r){return/^is[A-Z]/.test(r)});function go(e,r,a){if(!ee.isObject(e))throw new TypeError("target must be an object");r=r||new FormData,a=ee.toFlatObject(a,{metaTokens:!0,dots:!1,indexes:!1},!1,function(u,p){return!ee.isUndefined(p[u])});const o=a.metaTokens,m=a.visitor||n,g=a.dots,S=a.indexes,c=(a.Blob||typeof Blob<"u"&&Blob)&&ee.isSpecCompliantForm(r);if(!ee.isFunction(m))throw new TypeError("visitor must be a function");function t(d){if(d===null)return"";if(ee.isDate(d))return d.toISOString();if(!c&&ee.isBlob(d))throw new We("Blob is not supported. Use a Buffer instead.");return ee.isArrayBuffer(d)||ee.isTypedArray(d)?c&&typeof Blob=="function"?new Blob([d]):Buffer.from(d):d}function n(d,u,p){let E=d;if(d&&!p&&typeof d=="object"){if(ee.endsWith(u,"{}"))u=o?u:u.slice(0,-2),d=JSON.stringify(d);else if(ee.isArray(d)&&Ep(d)||(ee.isFileList(d)||ee.endsWith(u,"[]"))&&(E=ee.toArray(d)))return u=S_(u),E.forEach(function(h,b){!(ee.isUndefined(h)||h===null)&&r.append(S===!0?Vl([u],b,g):S===null?u:u+"[]",t(h))}),!1}return _s(d)?!0:(r.append(Vl(p,u,g),t(d)),!1)}const i=[],l=Object.assign(Sp,{defaultVisitor:n,convertValue:t,isVisitable:_s});function _(d,u){if(!ee.isUndefined(d)){if(i.indexOf(d)!==-1)throw Error("Circular reference detected in "+u.join("."));i.push(d),ee.forEach(d,function(E,f){(!(ee.isUndefined(E)||E===null)&&m.call(r,E,ee.isString(f)?f.trim():f,u,l))===!0&&_(E,u?u.concat(f):[f])}),i.pop()}}if(!ee.isObject(e))throw new TypeError("data must be an object");return _(e),r}function zl(e){const r={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(o){return r[o]})}function Ks(e,r){this._pairs=[],e&&go(e,this,r)}const h_=Ks.prototype;h_.append=function(r,a){this._pairs.push([r,a])};h_.toString=function(r){const a=r?function(o){return r.call(this,o,zl)}:zl;return this._pairs.map(function(m){return a(m[0])+"="+a(m[1])},"").join("&")};function hp(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function b_(e,r,a){if(!r)return e;const o=a&&a.encode||hp,m=a&&a.serialize;let g;if(m?g=m(r,a):g=ee.isURLSearchParams(r)?r.toString():new Ks(r,a).toString(o),g){const S=e.indexOf("#");S!==-1&&(e=e.slice(0,S)),e+=(e.indexOf("?")===-1?"?":"&")+g}return e}class bp{constructor(){this.handlers=[]}use(r,a,o){return this.handlers.push({fulfilled:r,rejected:a,synchronous:o?o.synchronous:!1,runWhen:o?o.runWhen:null}),this.handlers.length-1}eject(r){this.handlers[r]&&(this.handlers[r]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(r){ee.forEach(this.handlers,function(o){o!==null&&r(o)})}}const $l=bp,T_={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Tp=typeof URLSearchParams<"u"?URLSearchParams:Ks,yp=typeof FormData<"u"?FormData:null,Cp=typeof Blob<"u"?Blob:null,vp=(()=>{let e;return typeof navigator<"u"&&((e=navigator.product)==="ReactNative"||e==="NativeScript"||e==="NS")?!1:typeof window<"u"&&typeof document<"u"})(),Op=(()=>typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function")(),kr={isBrowser:!0,classes:{URLSearchParams:Tp,FormData:yp,Blob:Cp},isStandardBrowserEnv:vp,isStandardBrowserWebWorkerEnv:Op,protocols:["http","https","file","blob","url","data"]};function Rp(e,r){return go(e,new kr.classes.URLSearchParams,Object.assign({visitor:function(a,o,m,g){return kr.isNode&&ee.isBuffer(a)?(this.append(o,a.toString("base64")),!1):g.defaultVisitor.apply(this,arguments)}},r))}function Np(e){return ee.matchAll(/\w+|\[(\w*)]/g,e).map(r=>r[0]==="[]"?"":r[1]||r[0])}function Ap(e){const r={},a=Object.keys(e);let o;const m=a.length;let g;for(o=0;o=a.length;return S=!S&&ee.isArray(m)?m.length:S,c?(ee.hasOwnProp(m,S)?m[S]=[m[S],o]:m[S]=o,!s):((!m[S]||!ee.isObject(m[S]))&&(m[S]=[]),r(a,o,m[S],g)&&ee.isArray(m[S])&&(m[S]=Ap(m[S])),!s)}if(ee.isFormData(e)&&ee.isFunction(e.entries)){const a={};return ee.forEachEntry(e,(o,m)=>{r(Np(o),m,a,0)}),a}return null}const Ip={"Content-Type":void 0};function Dp(e,r,a){if(ee.isString(e))try{return(r||JSON.parse)(e),ee.trim(e)}catch(o){if(o.name!=="SyntaxError")throw o}return(a||JSON.stringify)(e)}const fo={transitional:T_,adapter:["xhr","http"],transformRequest:[function(r,a){const o=a.getContentType()||"",m=o.indexOf("application/json")>-1,g=ee.isObject(r);if(g&&ee.isHTMLForm(r)&&(r=new FormData(r)),ee.isFormData(r))return m&&m?JSON.stringify(y_(r)):r;if(ee.isArrayBuffer(r)||ee.isBuffer(r)||ee.isStream(r)||ee.isFile(r)||ee.isBlob(r))return r;if(ee.isArrayBufferView(r))return r.buffer;if(ee.isURLSearchParams(r))return a.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),r.toString();let s;if(g){if(o.indexOf("application/x-www-form-urlencoded")>-1)return Rp(r,this.formSerializer).toString();if((s=ee.isFileList(r))||o.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return go(s?{"files[]":r}:r,c&&new c,this.formSerializer)}}return g||m?(a.setContentType("application/json",!1),Dp(r)):r}],transformResponse:[function(r){const a=this.transitional||fo.transitional,o=a&&a.forcedJSONParsing,m=this.responseType==="json";if(r&&ee.isString(r)&&(o&&!this.responseType||m)){const S=!(a&&a.silentJSONParsing)&&m;try{return JSON.parse(r)}catch(s){if(S)throw s.name==="SyntaxError"?We.from(s,We.ERR_BAD_RESPONSE,this,null,this.response):s}}return r}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:kr.classes.FormData,Blob:kr.classes.Blob},validateStatus:function(r){return r>=200&&r<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};ee.forEach(["delete","get","head"],function(r){fo.headers[r]={}});ee.forEach(["post","put","patch"],function(r){fo.headers[r]=ee.merge(Ip)});const Zs=fo,wp=ee.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),xp=e=>{const r={};let a,o,m;return e&&e.split(` +`).forEach(function(S){m=S.indexOf(":"),a=S.substring(0,m).trim().toLowerCase(),o=S.substring(m+1).trim(),!(!a||r[a]&&wp[a])&&(a==="set-cookie"?r[a]?r[a].push(o):r[a]=[o]:r[a]=r[a]?r[a]+", "+o:o)}),r},jl=Symbol("internals");function Ba(e){return e&&String(e).trim().toLowerCase()}function zi(e){return e===!1||e==null?e:ee.isArray(e)?e.map(zi):String(e)}function Mp(e){const r=Object.create(null),a=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let o;for(;o=a.exec(e);)r[o[1]]=o[2];return r}function Lp(e){return/^[-_a-zA-Z]+$/.test(e.trim())}function Bo(e,r,a,o,m){if(ee.isFunction(o))return o.call(this,r,a);if(m&&(r=a),!!ee.isString(r)){if(ee.isString(o))return r.indexOf(o)!==-1;if(ee.isRegExp(o))return o.test(r)}}function kp(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(r,a,o)=>a.toUpperCase()+o)}function Pp(e,r){const a=ee.toCamelCase(" "+r);["get","set","has"].forEach(o=>{Object.defineProperty(e,o+a,{value:function(m,g,S){return this[o].call(this,r,m,g,S)},configurable:!0})})}class Eo{constructor(r){r&&this.set(r)}set(r,a,o){const m=this;function g(s,c,t){const n=Ba(c);if(!n)throw new Error("header name must be a non-empty string");const i=ee.findKey(m,n);(!i||m[i]===void 0||t===!0||t===void 0&&m[i]!==!1)&&(m[i||c]=zi(s))}const S=(s,c)=>ee.forEach(s,(t,n)=>g(t,n,c));return ee.isPlainObject(r)||r instanceof this.constructor?S(r,a):ee.isString(r)&&(r=r.trim())&&!Lp(r)?S(xp(r),a):r!=null&&g(a,r,o),this}get(r,a){if(r=Ba(r),r){const o=ee.findKey(this,r);if(o){const m=this[o];if(!a)return m;if(a===!0)return Mp(m);if(ee.isFunction(a))return a.call(this,m,o);if(ee.isRegExp(a))return a.exec(m);throw new TypeError("parser must be boolean|regexp|function")}}}has(r,a){if(r=Ba(r),r){const o=ee.findKey(this,r);return!!(o&&this[o]!==void 0&&(!a||Bo(this,this[o],o,a)))}return!1}delete(r,a){const o=this;let m=!1;function g(S){if(S=Ba(S),S){const s=ee.findKey(o,S);s&&(!a||Bo(o,o[s],s,a))&&(delete o[s],m=!0)}}return ee.isArray(r)?r.forEach(g):g(r),m}clear(r){const a=Object.keys(this);let o=a.length,m=!1;for(;o--;){const g=a[o];(!r||Bo(this,this[g],g,r,!0))&&(delete this[g],m=!0)}return m}normalize(r){const a=this,o={};return ee.forEach(this,(m,g)=>{const S=ee.findKey(o,g);if(S){a[S]=zi(m),delete a[g];return}const s=r?kp(g):String(g).trim();s!==g&&delete a[g],a[s]=zi(m),o[s]=!0}),this}concat(...r){return this.constructor.concat(this,...r)}toJSON(r){const a=Object.create(null);return ee.forEach(this,(o,m)=>{o!=null&&o!==!1&&(a[m]=r&&ee.isArray(o)?o.join(", "):o)}),a}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([r,a])=>r+": "+a).join(` +`)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(r){return r instanceof this?r:new this(r)}static concat(r,...a){const o=new this(r);return a.forEach(m=>o.set(m)),o}static accessor(r){const o=(this[jl]=this[jl]={accessors:{}}).accessors,m=this.prototype;function g(S){const s=Ba(S);o[s]||(Pp(m,S),o[s]=!0)}return ee.isArray(r)?r.forEach(g):g(r),this}}Eo.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);ee.freezeMethods(Eo.prototype);ee.freezeMethods(Eo);const Zr=Eo;function Go(e,r){const a=this||Zs,o=r||a,m=Zr.from(o.headers);let g=o.data;return ee.forEach(e,function(s){g=s.call(a,g,m.normalize(),r?r.status:void 0)}),m.normalize(),g}function C_(e){return!!(e&&e.__CANCEL__)}function fi(e,r,a){We.call(this,e??"canceled",We.ERR_CANCELED,r,a),this.name="CanceledError"}ee.inherits(fi,We,{__CANCEL__:!0});function Fp(e,r,a){const o=a.config.validateStatus;!a.status||!o||o(a.status)?e(a):r(new We("Request failed with status code "+a.status,[We.ERR_BAD_REQUEST,We.ERR_BAD_RESPONSE][Math.floor(a.status/100)-4],a.config,a.request,a))}const Up=kr.isStandardBrowserEnv?function(){return{write:function(a,o,m,g,S,s){const c=[];c.push(a+"="+encodeURIComponent(o)),ee.isNumber(m)&&c.push("expires="+new Date(m).toGMTString()),ee.isString(g)&&c.push("path="+g),ee.isString(S)&&c.push("domain="+S),s===!0&&c.push("secure"),document.cookie=c.join("; ")},read:function(a){const o=document.cookie.match(new RegExp("(^|;\\s*)("+a+")=([^;]*)"));return o?decodeURIComponent(o[3]):null},remove:function(a){this.write(a,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}();function Bp(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function Gp(e,r){return r?e.replace(/\/+$/,"")+"/"+r.replace(/^\/+/,""):e}function v_(e,r){return e&&!Bp(r)?Gp(e,r):r}const Yp=kr.isStandardBrowserEnv?function(){const r=/(msie|trident)/i.test(navigator.userAgent),a=document.createElement("a");let o;function m(g){let S=g;return r&&(a.setAttribute("href",S),S=a.href),a.setAttribute("href",S),{href:a.href,protocol:a.protocol?a.protocol.replace(/:$/,""):"",host:a.host,search:a.search?a.search.replace(/^\?/,""):"",hash:a.hash?a.hash.replace(/^#/,""):"",hostname:a.hostname,port:a.port,pathname:a.pathname.charAt(0)==="/"?a.pathname:"/"+a.pathname}}return o=m(window.location.href),function(S){const s=ee.isString(S)?m(S):S;return s.protocol===o.protocol&&s.host===o.host}}():function(){return function(){return!0}}();function qp(e){const r=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return r&&r[1]||""}function Hp(e,r){e=e||10;const a=new Array(e),o=new Array(e);let m=0,g=0,S;return r=r!==void 0?r:1e3,function(c){const t=Date.now(),n=o[g];S||(S=t),a[m]=c,o[m]=t;let i=g,l=0;for(;i!==m;)l+=a[i++],i=i%e;if(m=(m+1)%e,m===g&&(g=(g+1)%e),t-S{const g=m.loaded,S=m.lengthComputable?m.total:void 0,s=g-a,c=o(s),t=g<=S;a=g;const n={loaded:g,total:S,progress:S?g/S:void 0,bytes:s,rate:c||void 0,estimated:c&&S&&t?(S-g)/c:void 0,event:m};n[r?"download":"upload"]=!0,e(n)}}const Vp=typeof XMLHttpRequest<"u",zp=Vp&&function(e){return new Promise(function(a,o){let m=e.data;const g=Zr.from(e.headers).normalize(),S=e.responseType;let s;function c(){e.cancelToken&&e.cancelToken.unsubscribe(s),e.signal&&e.signal.removeEventListener("abort",s)}ee.isFormData(m)&&(kr.isStandardBrowserEnv||kr.isStandardBrowserWebWorkerEnv)&&g.setContentType(!1);let t=new XMLHttpRequest;if(e.auth){const _=e.auth.username||"",d=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";g.set("Authorization","Basic "+btoa(_+":"+d))}const n=v_(e.baseURL,e.url);t.open(e.method.toUpperCase(),b_(n,e.params,e.paramsSerializer),!0),t.timeout=e.timeout;function i(){if(!t)return;const _=Zr.from("getAllResponseHeaders"in t&&t.getAllResponseHeaders()),u={data:!S||S==="text"||S==="json"?t.responseText:t.response,status:t.status,statusText:t.statusText,headers:_,config:e,request:t};Fp(function(E){a(E),c()},function(E){o(E),c()},u),t=null}if("onloadend"in t?t.onloadend=i:t.onreadystatechange=function(){!t||t.readyState!==4||t.status===0&&!(t.responseURL&&t.responseURL.indexOf("file:")===0)||setTimeout(i)},t.onabort=function(){t&&(o(new We("Request aborted",We.ECONNABORTED,e,t)),t=null)},t.onerror=function(){o(new We("Network Error",We.ERR_NETWORK,e,t)),t=null},t.ontimeout=function(){let d=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const u=e.transitional||T_;e.timeoutErrorMessage&&(d=e.timeoutErrorMessage),o(new We(d,u.clarifyTimeoutError?We.ETIMEDOUT:We.ECONNABORTED,e,t)),t=null},kr.isStandardBrowserEnv){const _=(e.withCredentials||Yp(n))&&e.xsrfCookieName&&Up.read(e.xsrfCookieName);_&&g.set(e.xsrfHeaderName,_)}m===void 0&&g.setContentType(null),"setRequestHeader"in t&&ee.forEach(g.toJSON(),function(d,u){t.setRequestHeader(u,d)}),ee.isUndefined(e.withCredentials)||(t.withCredentials=!!e.withCredentials),S&&S!=="json"&&(t.responseType=e.responseType),typeof e.onDownloadProgress=="function"&&t.addEventListener("progress",Wl(e.onDownloadProgress,!0)),typeof e.onUploadProgress=="function"&&t.upload&&t.upload.addEventListener("progress",Wl(e.onUploadProgress)),(e.cancelToken||e.signal)&&(s=_=>{t&&(o(!_||_.type?new fi(null,e,t):_),t.abort(),t=null)},e.cancelToken&&e.cancelToken.subscribe(s),e.signal&&(e.signal.aborted?s():e.signal.addEventListener("abort",s)));const l=qp(n);if(l&&kr.protocols.indexOf(l)===-1){o(new We("Unsupported protocol "+l+":",We.ERR_BAD_REQUEST,e));return}t.send(m||null)})},$i={http:fp,xhr:zp};ee.forEach($i,(e,r)=>{if(e){try{Object.defineProperty(e,"name",{value:r})}catch{}Object.defineProperty(e,"adapterName",{value:r})}});const $p={getAdapter:e=>{e=ee.isArray(e)?e:[e];const{length:r}=e;let a,o;for(let m=0;me instanceof Zr?e.toJSON():e;function va(e,r){r=r||{};const a={};function o(t,n,i){return ee.isPlainObject(t)&&ee.isPlainObject(n)?ee.merge.call({caseless:i},t,n):ee.isPlainObject(n)?ee.merge({},n):ee.isArray(n)?n.slice():n}function m(t,n,i){if(ee.isUndefined(n)){if(!ee.isUndefined(t))return o(void 0,t,i)}else return o(t,n,i)}function g(t,n){if(!ee.isUndefined(n))return o(void 0,n)}function S(t,n){if(ee.isUndefined(n)){if(!ee.isUndefined(t))return o(void 0,t)}else return o(void 0,n)}function s(t,n,i){if(i in r)return o(t,n);if(i in e)return o(void 0,t)}const c={url:g,method:g,data:g,baseURL:S,transformRequest:S,transformResponse:S,paramsSerializer:S,timeout:S,timeoutMessage:S,withCredentials:S,adapter:S,responseType:S,xsrfCookieName:S,xsrfHeaderName:S,onUploadProgress:S,onDownloadProgress:S,decompress:S,maxContentLength:S,maxBodyLength:S,beforeRedirect:S,transport:S,httpAgent:S,httpsAgent:S,cancelToken:S,socketPath:S,responseEncoding:S,validateStatus:s,headers:(t,n)=>m(Kl(t),Kl(n),!0)};return ee.forEach(Object.keys(e).concat(Object.keys(r)),function(n){const i=c[n]||m,l=i(e[n],r[n],n);ee.isUndefined(l)&&i!==s||(a[n]=l)}),a}const O_="1.3.4",Xs={};["object","boolean","number","function","string","symbol"].forEach((e,r)=>{Xs[e]=function(o){return typeof o===e||"a"+(r<1?"n ":" ")+e}});const Zl={};Xs.transitional=function(r,a,o){function m(g,S){return"[Axios v"+O_+"] Transitional option '"+g+"'"+S+(o?". "+o:"")}return(g,S,s)=>{if(r===!1)throw new We(m(S," has been removed"+(a?" in "+a:"")),We.ERR_DEPRECATED);return a&&!Zl[S]&&(Zl[S]=!0,console.warn(m(S," has been deprecated since v"+a+" and will be removed in the near future"))),r?r(g,S,s):!0}};function jp(e,r,a){if(typeof e!="object")throw new We("options must be an object",We.ERR_BAD_OPTION_VALUE);const o=Object.keys(e);let m=o.length;for(;m-- >0;){const g=o[m],S=r[g];if(S){const s=e[g],c=s===void 0||S(s,g,e);if(c!==!0)throw new We("option "+g+" must be "+c,We.ERR_BAD_OPTION_VALUE);continue}if(a!==!0)throw new We("Unknown option "+g,We.ERR_BAD_OPTION)}}const ds={assertOptions:jp,validators:Xs},un=ds.validators;class Zi{constructor(r){this.defaults=r,this.interceptors={request:new $l,response:new $l}}request(r,a){typeof r=="string"?(a=a||{},a.url=r):a=r||{},a=va(this.defaults,a);const{transitional:o,paramsSerializer:m,headers:g}=a;o!==void 0&&ds.assertOptions(o,{silentJSONParsing:un.transitional(un.boolean),forcedJSONParsing:un.transitional(un.boolean),clarifyTimeoutError:un.transitional(un.boolean)},!1),m!==void 0&&ds.assertOptions(m,{encode:un.function,serialize:un.function},!0),a.method=(a.method||this.defaults.method||"get").toLowerCase();let S;S=g&&ee.merge(g.common,g[a.method]),S&&ee.forEach(["delete","get","head","post","put","patch","common"],d=>{delete g[d]}),a.headers=Zr.concat(S,g);const s=[];let c=!0;this.interceptors.request.forEach(function(u){typeof u.runWhen=="function"&&u.runWhen(a)===!1||(c=c&&u.synchronous,s.unshift(u.fulfilled,u.rejected))});const t=[];this.interceptors.response.forEach(function(u){t.push(u.fulfilled,u.rejected)});let n,i=0,l;if(!c){const d=[Ql.bind(this),void 0];for(d.unshift.apply(d,s),d.push.apply(d,t),l=d.length,n=Promise.resolve(a);i{if(!o._listeners)return;let g=o._listeners.length;for(;g-- >0;)o._listeners[g](m);o._listeners=null}),this.promise.then=m=>{let g;const S=new Promise(s=>{o.subscribe(s),g=s}).then(m);return S.cancel=function(){o.unsubscribe(g)},S},r(function(g,S,s){o.reason||(o.reason=new fi(g,S,s),a(o.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(r){if(this.reason){r(this.reason);return}this._listeners?this._listeners.push(r):this._listeners=[r]}unsubscribe(r){if(!this._listeners)return;const a=this._listeners.indexOf(r);a!==-1&&this._listeners.splice(a,1)}static source(){let r;return{token:new Js(function(m){r=m}),cancel:r}}}const Wp=Js;function Qp(e){return function(a){return e.apply(null,a)}}function Kp(e){return ee.isObject(e)&&e.isAxiosError===!0}const us={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(us).forEach(([e,r])=>{us[r]=e});const Zp=us;function R_(e){const r=new ji(e),a=s_(ji.prototype.request,r);return ee.extend(a,ji.prototype,r,{allOwnKeys:!0}),ee.extend(a,r,null,{allOwnKeys:!0}),a.create=function(m){return R_(va(e,m))},a}const ht=R_(Zs);ht.Axios=ji;ht.CanceledError=fi;ht.CancelToken=Wp;ht.isCancel=C_;ht.VERSION=O_;ht.toFormData=go;ht.AxiosError=We;ht.Cancel=ht.CanceledError;ht.all=function(r){return Promise.all(r)};ht.spread=Qp;ht.isAxiosError=Kp;ht.mergeConfig=va;ht.AxiosHeaders=Zr;ht.formToJSON=e=>y_(ee.isHTMLForm(e)?new FormData(e):e);ht.HttpStatusCode=Zp;ht.default=ht;const ps=ht;window.axios=ps;window.axios.defaults.headers.common["X-Requested-With"]="XMLHttpRequest";function So(e,r){const a=Object.create(null),o=e.split(",");for(let m=0;m!!a[m.toLowerCase()]:m=>!!a[m]}const Xp="Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt",Jp=So(Xp);function Ei(e){if(ye(e)){const r={};for(let a=0;a{if(a){const o=a.split(tm);o.length>1&&(r[o[0].trim()]=o[1].trim())}}),r}function Si(e){let r="";if(lt(e))r=e;else if(ye(e))for(let a=0;avn(a,r))}const lm=e=>lt(e)?e:e==null?"":ye(e)||rt(e)&&(e.toString===I_||!xe(e.toString))?JSON.stringify(e,A_,2):String(e),A_=(e,r)=>r&&r.__v_isRef?A_(e,r.value):Ea(r)?{[`Map(${r.size})`]:[...r.entries()].reduce((a,[o,m])=>(a[`${o} =>`]=m,a),{})}:oa(r)?{[`Set(${r.size})`]:[...r.values()]}:rt(r)&&!ye(r)&&!D_(r)?String(r):r,Je={},fa=[],Tr=()=>{},cm=()=>!1,_m=/^on[^a-z]/,hi=e=>_m.test(e),el=e=>e.startsWith("onUpdate:"),_t=Object.assign,tl=(e,r)=>{const a=e.indexOf(r);a>-1&&e.splice(a,1)},dm=Object.prototype.hasOwnProperty,je=(e,r)=>dm.call(e,r),ye=Array.isArray,Ea=e=>La(e)==="[object Map]",oa=e=>La(e)==="[object Set]",Xl=e=>La(e)==="[object Date]",um=e=>La(e)==="[object RegExp]",xe=e=>typeof e=="function",lt=e=>typeof e=="string",ii=e=>typeof e=="symbol",rt=e=>e!==null&&typeof e=="object",rl=e=>rt(e)&&xe(e.then)&&xe(e.catch),I_=Object.prototype.toString,La=e=>I_.call(e),pm=e=>La(e).slice(8,-1),D_=e=>La(e)==="[object Object]",nl=e=>lt(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Wa=So(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),bo=e=>{const r=Object.create(null);return a=>r[a]||(r[a]=e(a))},mm=/-(\w)/g,Zt=bo(e=>e.replace(mm,(r,a)=>a?a.toUpperCase():"")),gm=/\B([A-Z])/g,mr=bo(e=>e.replace(gm,"-$1").toLowerCase()),bi=bo(e=>e.charAt(0).toUpperCase()+e.slice(1)),Qa=bo(e=>e?`on${bi(e)}`:""),Oa=(e,r)=>!Object.is(e,r),Sa=(e,r)=>{for(let a=0;a{Object.defineProperty(e,r,{configurable:!0,enumerable:!1,value:a})},Ji=e=>{const r=parseFloat(e);return isNaN(r)?e:r},eo=e=>{const r=lt(e)?Number(e):NaN;return isNaN(r)?e:r};let Jl;const fm=()=>Jl||(Jl=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});let sr;class al{constructor(r=!1){this.detached=r,this._active=!0,this.effects=[],this.cleanups=[],this.parent=sr,!r&&sr&&(this.index=(sr.scopes||(sr.scopes=[])).push(this)-1)}get active(){return this._active}run(r){if(this._active){const a=sr;try{return sr=this,r()}finally{sr=a}}}on(){sr=this}off(){sr=this.parent}stop(r){if(this._active){let a,o;for(a=0,o=this.effects.length;a{const r=new Set(e);return r.w=0,r.n=0,r},M_=e=>(e.w&On)>0,L_=e=>(e.n&On)>0,hm=({deps:e})=>{if(e.length)for(let r=0;r{const{deps:r}=e;if(r.length){let a=0;for(let o=0;o{(n==="length"||n>=c)&&s.push(t)})}else switch(a!==void 0&&s.push(S.get(a)),r){case"add":ye(e)?nl(a)&&s.push(S.get("length")):(s.push(S.get(Qn)),Ea(e)&&s.push(S.get(gs)));break;case"delete":ye(e)||(s.push(S.get(Qn)),Ea(e)&&s.push(S.get(gs)));break;case"set":Ea(e)&&s.push(S.get(Qn));break}if(s.length===1)s[0]&&fs(s[0]);else{const c=[];for(const t of s)t&&c.push(...t);fs(il(c))}}function fs(e,r){const a=ye(e)?e:[...e];for(const o of a)o.computed&&tc(o);for(const o of a)o.computed||tc(o)}function tc(e,r){(e!==Sr||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}function Cm(e,r){var a;return(a=to.get(e))===null||a===void 0?void 0:a.get(r)}const vm=So("__proto__,__v_isRef,__isVue"),F_=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(ii)),Om=To(),Rm=To(!1,!0),Nm=To(!0),Am=To(!0,!0),rc=Im();function Im(){const e={};return["includes","indexOf","lastIndexOf"].forEach(r=>{e[r]=function(...a){const o=qe(this);for(let g=0,S=this.length;g{e[r]=function(...a){ka();const o=qe(this)[r].apply(this,a);return Pa(),o}}),e}function Dm(e){const r=qe(this);return Xt(r,"has",e),r.hasOwnProperty(e)}function To(e=!1,r=!1){return function(o,m,g){if(m==="__v_isReactive")return!e;if(m==="__v_isReadonly")return e;if(m==="__v_isShallow")return r;if(m==="__v_raw"&&g===(e?r?V_:H_:r?q_:Y_).get(o))return o;const S=ye(o);if(!e){if(S&&je(rc,m))return Reflect.get(rc,m,g);if(m==="hasOwnProperty")return Dm}const s=Reflect.get(o,m,g);return(ii(m)?F_.has(m):vm(m))||(e||Xt(o,"get",m),r)?s:yt(s)?S&&nl(m)?s:s.value:rt(s)?e?sl(s):yi(s):s}}const wm=U_(),xm=U_(!0);function U_(e=!1){return function(a,o,m,g){let S=a[o];if(ra(S)&&yt(S)&&!yt(m))return!1;if(!e&&(!oi(m)&&!ra(m)&&(S=qe(S),m=qe(m)),!ye(a)&&yt(S)&&!yt(m)))return S.value=m,!0;const s=ye(a)&&nl(o)?Number(o)e,yo=e=>Reflect.getPrototypeOf(e);function Ii(e,r,a=!1,o=!1){e=e.__v_raw;const m=qe(e),g=qe(r);a||(r!==g&&Xt(m,"get",r),Xt(m,"get",g));const{has:S}=yo(m),s=o?ol:a?cl:li;if(S.call(m,r))return s(e.get(r));if(S.call(m,g))return s(e.get(g));e!==m&&e.get(r)}function Di(e,r=!1){const a=this.__v_raw,o=qe(a),m=qe(e);return r||(e!==m&&Xt(o,"has",e),Xt(o,"has",m)),e===m?a.has(e):a.has(e)||a.has(m)}function wi(e,r=!1){return e=e.__v_raw,!r&&Xt(qe(e),"iterate",Qn),Reflect.get(e,"size",e)}function nc(e){e=qe(e);const r=qe(this);return yo(r).has.call(r,e)||(r.add(e),Jr(r,"add",e,e)),this}function ac(e,r){r=qe(r);const a=qe(this),{has:o,get:m}=yo(a);let g=o.call(a,e);g||(e=qe(e),g=o.call(a,e));const S=m.call(a,e);return a.set(e,r),g?Oa(r,S)&&Jr(a,"set",e,r):Jr(a,"add",e,r),this}function ic(e){const r=qe(this),{has:a,get:o}=yo(r);let m=a.call(r,e);m||(e=qe(e),m=a.call(r,e)),o&&o.call(r,e);const g=r.delete(e);return m&&Jr(r,"delete",e,void 0),g}function oc(){const e=qe(this),r=e.size!==0,a=e.clear();return r&&Jr(e,"clear",void 0,void 0),a}function xi(e,r){return function(o,m){const g=this,S=g.__v_raw,s=qe(S),c=r?ol:e?cl:li;return!e&&Xt(s,"iterate",Qn),S.forEach((t,n)=>o.call(m,c(t),c(n),g))}}function Mi(e,r,a){return function(...o){const m=this.__v_raw,g=qe(m),S=Ea(g),s=e==="entries"||e===Symbol.iterator&&S,c=e==="keys"&&S,t=m[e](...o),n=a?ol:r?cl:li;return!r&&Xt(g,"iterate",c?gs:Qn),{next(){const{value:i,done:l}=t.next();return l?{value:i,done:l}:{value:s?[n(i[0]),n(i[1])]:n(i),done:l}},[Symbol.iterator](){return this}}}}function pn(e){return function(...r){return e==="delete"?!1:this}}function Um(){const e={get(g){return Ii(this,g)},get size(){return wi(this)},has:Di,add:nc,set:ac,delete:ic,clear:oc,forEach:xi(!1,!1)},r={get(g){return Ii(this,g,!1,!0)},get size(){return wi(this)},has:Di,add:nc,set:ac,delete:ic,clear:oc,forEach:xi(!1,!0)},a={get(g){return Ii(this,g,!0)},get size(){return wi(this,!0)},has(g){return Di.call(this,g,!0)},add:pn("add"),set:pn("set"),delete:pn("delete"),clear:pn("clear"),forEach:xi(!0,!1)},o={get(g){return Ii(this,g,!0,!0)},get size(){return wi(this,!0)},has(g){return Di.call(this,g,!0)},add:pn("add"),set:pn("set"),delete:pn("delete"),clear:pn("clear"),forEach:xi(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(g=>{e[g]=Mi(g,!1,!1),a[g]=Mi(g,!0,!1),r[g]=Mi(g,!1,!0),o[g]=Mi(g,!0,!0)}),[e,a,r,o]}const[Bm,Gm,Ym,qm]=Um();function Co(e,r){const a=r?e?qm:Ym:e?Gm:Bm;return(o,m,g)=>m==="__v_isReactive"?!e:m==="__v_isReadonly"?e:m==="__v_raw"?o:Reflect.get(je(a,m)&&m in o?a:o,m,g)}const Hm={get:Co(!1,!1)},Vm={get:Co(!1,!0)},zm={get:Co(!0,!1)},$m={get:Co(!0,!0)},Y_=new WeakMap,q_=new WeakMap,H_=new WeakMap,V_=new WeakMap;function jm(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Wm(e){return e.__v_skip||!Object.isExtensible(e)?0:jm(pm(e))}function yi(e){return ra(e)?e:vo(e,!1,B_,Hm,Y_)}function z_(e){return vo(e,!1,Pm,Vm,q_)}function sl(e){return vo(e,!0,G_,zm,H_)}function Qm(e){return vo(e,!0,Fm,$m,V_)}function vo(e,r,a,o,m){if(!rt(e)||e.__v_raw&&!(r&&e.__v_isReactive))return e;const g=m.get(e);if(g)return g;const S=Wm(e);if(S===0)return e;const s=new Proxy(e,S===2?o:a);return m.set(e,s),s}function Kn(e){return ra(e)?Kn(e.__v_raw):!!(e&&e.__v_isReactive)}function ra(e){return!!(e&&e.__v_isReadonly)}function oi(e){return!!(e&&e.__v_isShallow)}function ll(e){return Kn(e)||ra(e)}function qe(e){const r=e&&e.__v_raw;return r?qe(r):e}function si(e){return Xi(e,"__v_skip",!0),e}const li=e=>rt(e)?yi(e):e,cl=e=>rt(e)?sl(e):e;function _l(e){bn&&Sr&&(e=qe(e),P_(e.dep||(e.dep=il())))}function Oo(e,r){e=qe(e);const a=e.dep;a&&fs(a)}function yt(e){return!!(e&&e.__v_isRef===!0)}function Zn(e){return j_(e,!1)}function $_(e){return j_(e,!0)}function j_(e,r){return yt(e)?e:new Km(e,r)}class Km{constructor(r,a){this.__v_isShallow=a,this.dep=void 0,this.__v_isRef=!0,this._rawValue=a?r:qe(r),this._value=a?r:li(r)}get value(){return _l(this),this._value}set value(r){const a=this.__v_isShallow||oi(r)||ra(r);r=a?r:qe(r),Oa(r,this._rawValue)&&(this._rawValue=r,this._value=a?r:li(r),Oo(this))}}function Zm(e){Oo(e)}function W_(e){return yt(e)?e.value:e}const Xm={get:(e,r,a)=>W_(Reflect.get(e,r,a)),set:(e,r,a,o)=>{const m=e[r];return yt(m)&&!yt(a)?(m.value=a,!0):Reflect.set(e,r,a,o)}};function dl(e){return Kn(e)?e:new Proxy(e,Xm)}class Jm{constructor(r){this.dep=void 0,this.__v_isRef=!0;const{get:a,set:o}=r(()=>_l(this),()=>Oo(this));this._get=a,this._set=o}get value(){return this._get()}set value(r){this._set(r)}}function eg(e){return new Jm(e)}function tg(e){const r=ye(e)?new Array(e.length):{};for(const a in e)r[a]=Q_(e,a);return r}class rg{constructor(r,a,o){this._object=r,this._key=a,this._defaultValue=o,this.__v_isRef=!0}get value(){const r=this._object[this._key];return r===void 0?this._defaultValue:r}set value(r){this._object[this._key]=r}get dep(){return Cm(qe(this._object),this._key)}}function Q_(e,r,a){const o=e[r];return yt(o)?o:new rg(e,r,a)}var K_;class ng{constructor(r,a,o,m){this._setter=a,this.dep=void 0,this.__v_isRef=!0,this[K_]=!1,this._dirty=!0,this.effect=new Ti(r,()=>{this._dirty||(this._dirty=!0,Oo(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!m,this.__v_isReadonly=o}get value(){const r=qe(this);return _l(r),(r._dirty||!r._cacheable)&&(r._dirty=!1,r._value=r.effect.run()),r._value}set value(r){this._setter(r)}}K_="__v_isReadonly";function ag(e,r,a=!1){let o,m;const g=xe(e);return g?(o=e,m=Tr):(o=e.get,m=e.set),new ng(o,m,g||!m,a)}function ig(e,...r){}function og(e,r){}function Xr(e,r,a,o){let m;try{m=o?e(...o):e()}catch(g){sa(g,r,a)}return m}function cr(e,r,a,o){if(xe(e)){const g=Xr(e,r,a,o);return g&&rl(g)&&g.catch(S=>{sa(S,r,a)}),g}const m=[];for(let g=0;g>>1;_i(Pt[o])Mr&&Pt.splice(r,1)}function ml(e){ye(e)?ha.push(...e):(!jr||!jr.includes(e,e.allowRecurse?Vn+1:Vn))&&ha.push(e),X_()}function sc(e,r=ci?Mr+1:0){for(;r_i(a)-_i(o)),Vn=0;Vne.id==null?1/0:e.id,_g=(e,r)=>{const a=_i(e)-_i(r);if(a===0){if(e.pre&&!r.pre)return-1;if(r.pre&&!e.pre)return 1}return a};function J_(e){Es=!1,ci=!0,Pt.sort(_g);const r=Tr;try{for(Mr=0;Mrpa.emit(m,...g)),Li=[]):typeof window<"u"&&window.HTMLElement&&!(!((o=(a=window.navigator)===null||a===void 0?void 0:a.userAgent)===null||o===void 0)&&o.includes("jsdom"))?((r.__VUE_DEVTOOLS_HOOK_REPLAY__=r.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(g=>{ed(g,r)}),setTimeout(()=>{pa||(r.__VUE_DEVTOOLS_HOOK_REPLAY__=null,Li=[])},3e3)):Li=[]}function dg(e,r,...a){if(e.isUnmounted)return;const o=e.vnode.props||Je;let m=a;const g=r.startsWith("update:"),S=g&&r.slice(7);if(S&&S in o){const n=`${S==="modelValue"?"model":S}Modifiers`,{number:i,trim:l}=o[n]||Je;l&&(m=a.map(_=>lt(_)?_.trim():_)),i&&(m=a.map(Ji))}let s,c=o[s=Qa(r)]||o[s=Qa(Zt(r))];!c&&g&&(c=o[s=Qa(mr(r))]),c&&cr(c,e,6,m);const t=o[s+"Once"];if(t){if(!e.emitted)e.emitted={};else if(e.emitted[s])return;e.emitted[s]=!0,cr(t,e,6,m)}}function td(e,r,a=!1){const o=r.emitsCache,m=o.get(e);if(m!==void 0)return m;const g=e.emits;let S={},s=!1;if(!xe(e)){const c=t=>{const n=td(t,r,!0);n&&(s=!0,_t(S,n))};!a&&r.mixins.length&&r.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!g&&!s?(rt(e)&&o.set(e,null),null):(ye(g)?g.forEach(c=>S[c]=null):_t(S,g),rt(e)&&o.set(e,S),S)}function No(e,r){return!e||!hi(r)?!1:(r=r.slice(2).replace(/Once$/,""),je(e,r[0].toLowerCase()+r.slice(1))||je(e,mr(r))||je(e,r))}let Dt=null,Ao=null;function di(e){const r=Dt;return Dt=e,Ao=e&&e.type.__scopeId||null,r}function ug(e){Ao=e}function pg(){Ao=null}const mg=e=>gl;function gl(e,r=Dt,a){if(!r||e._n)return e;const o=(...m)=>{o._d&&vs(-1);const g=di(r);let S;try{S=e(...m)}finally{di(g),o._d&&vs(1)}return S};return o._n=!0,o._c=!0,o._d=!0,o}function Wi(e){const{type:r,vnode:a,proxy:o,withProxy:m,props:g,propsOptions:[S],slots:s,attrs:c,emit:t,render:n,renderCache:i,data:l,setupState:_,ctx:d,inheritAttrs:u}=e;let p,E;const f=di(e);try{if(a.shapeFlag&4){const b=m||o;p=lr(n.call(b,b,i,g,_,l,d)),E=c}else{const b=r;p=lr(b.length>1?b(g,{attrs:c,slots:s,emit:t}):b(g,null)),E=r.props?c:fg(c)}}catch(b){Ja.length=0,sa(b,e,1),p=ot(Ft)}let h=p;if(E&&u!==!1){const b=Object.keys(E),{shapeFlag:C}=h;b.length&&C&7&&(S&&b.some(el)&&(E=Eg(E,S)),h=Fr(h,E))}return a.dirs&&(h=Fr(h),h.dirs=h.dirs?h.dirs.concat(a.dirs):a.dirs),a.transition&&(h.transition=a.transition),p=h,di(f),p}function gg(e){let r;for(let a=0;a{let r;for(const a in e)(a==="class"||a==="style"||hi(a))&&((r||(r={}))[a]=e[a]);return r},Eg=(e,r)=>{const a={};for(const o in e)(!el(o)||!(o.slice(9)in r))&&(a[o]=e[o]);return a};function Sg(e,r,a){const{props:o,children:m,component:g}=e,{props:S,children:s,patchFlag:c}=r,t=g.emitsOptions;if(r.dirs||r.transition)return!0;if(a&&c>=0){if(c&1024)return!0;if(c&16)return o?lc(o,S,t):!!S;if(c&8){const n=r.dynamicProps;for(let i=0;ie.__isSuspense,hg={name:"Suspense",__isSuspense:!0,process(e,r,a,o,m,g,S,s,c,t){e==null?Tg(r,a,o,m,g,S,s,c,t):yg(e,r,a,o,m,S,s,c,t)},hydrate:Cg,create:El,normalize:vg},bg=hg;function ui(e,r){const a=e.props&&e.props[r];xe(a)&&a()}function Tg(e,r,a,o,m,g,S,s,c){const{p:t,o:{createElement:n}}=c,i=n("div"),l=e.suspense=El(e,m,o,r,i,a,g,S,s,c);t(null,l.pendingBranch=e.ssContent,i,null,o,l,g,S),l.deps>0?(ui(e,"onPending"),ui(e,"onFallback"),t(null,e.ssFallback,r,a,o,null,g,S),ba(l,e.ssFallback)):l.resolve()}function yg(e,r,a,o,m,g,S,s,{p:c,um:t,o:{createElement:n}}){const i=r.suspense=e.suspense;i.vnode=r,r.el=e.el;const l=r.ssContent,_=r.ssFallback,{activeBranch:d,pendingBranch:u,isInFallback:p,isHydrating:E}=i;if(u)i.pendingBranch=l,hr(l,u)?(c(u,l,i.hiddenContainer,null,m,i,g,S,s),i.deps<=0?i.resolve():p&&(c(d,_,a,o,m,null,g,S,s),ba(i,_))):(i.pendingId++,E?(i.isHydrating=!1,i.activeBranch=u):t(u,m,i),i.deps=0,i.effects.length=0,i.hiddenContainer=n("div"),p?(c(null,l,i.hiddenContainer,null,m,i,g,S,s),i.deps<=0?i.resolve():(c(d,_,a,o,m,null,g,S,s),ba(i,_))):d&&hr(l,d)?(c(d,l,a,o,m,i,g,S,s),i.resolve(!0)):(c(null,l,i.hiddenContainer,null,m,i,g,S,s),i.deps<=0&&i.resolve()));else if(d&&hr(l,d))c(d,l,a,o,m,i,g,S,s),ba(i,l);else if(ui(r,"onPending"),i.pendingBranch=l,i.pendingId++,c(null,l,i.hiddenContainer,null,m,i,g,S,s),i.deps<=0)i.resolve();else{const{timeout:f,pendingId:h}=i;f>0?setTimeout(()=>{i.pendingId===h&&i.fallback(_)},f):f===0&&i.fallback(_)}}function El(e,r,a,o,m,g,S,s,c,t,n=!1){const{p:i,m:l,um:_,n:d,o:{parentNode:u,remove:p}}=t,E=e.props?eo(e.props.timeout):void 0,f={vnode:e,parent:r,parentComponent:a,isSVG:S,container:o,hiddenContainer:m,anchor:g,deps:0,pendingId:0,timeout:typeof E=="number"?E:-1,activeBranch:null,pendingBranch:null,isInFallback:!0,isHydrating:n,isUnmounted:!1,effects:[],resolve(h=!1){const{vnode:b,activeBranch:C,pendingBranch:O,pendingId:T,effects:v,parentComponent:R,container:I}=f;if(f.isHydrating)f.isHydrating=!1;else if(!h){const N=C&&O.transition&&O.transition.mode==="out-in";N&&(C.transition.afterLeave=()=>{T===f.pendingId&&l(O,I,A,0)});let{anchor:A}=f;C&&(A=d(C),_(C,R,f,!0)),N||l(O,I,A,0)}ba(f,O),f.pendingBranch=null,f.isInFallback=!1;let x=f.parent,w=!1;for(;x;){if(x.pendingBranch){x.effects.push(...v),w=!0;break}x=x.parent}w||ml(v),f.effects=[],ui(b,"onResolve")},fallback(h){if(!f.pendingBranch)return;const{vnode:b,activeBranch:C,parentComponent:O,container:T,isSVG:v}=f;ui(b,"onFallback");const R=d(C),I=()=>{f.isInFallback&&(i(null,h,T,R,O,null,v,s,c),ba(f,h))},x=h.transition&&h.transition.mode==="out-in";x&&(C.transition.afterLeave=I),f.isInFallback=!0,_(C,O,null,!0),x||I()},move(h,b,C){f.activeBranch&&l(f.activeBranch,h,b,C),f.container=h},next(){return f.activeBranch&&d(f.activeBranch)},registerDep(h,b){const C=!!f.pendingBranch;C&&f.deps++;const O=h.vnode.el;h.asyncDep.catch(T=>{sa(T,h,0)}).then(T=>{if(h.isUnmounted||f.isUnmounted||f.pendingId!==h.suspenseId)return;h.asyncResolved=!0;const{vnode:v}=h;Os(h,T,!1),O&&(v.el=O);const R=!O&&h.subTree.el;b(h,v,u(O||h.subTree.el),O?null:d(h.subTree),f,S,c),R&&p(R),fl(h,v.el),C&&--f.deps===0&&f.resolve()})},unmount(h,b){f.isUnmounted=!0,f.activeBranch&&_(f.activeBranch,a,h,b),f.pendingBranch&&_(f.pendingBranch,a,h,b)}};return f}function Cg(e,r,a,o,m,g,S,s,c){const t=r.suspense=El(r,o,a,e.parentNode,document.createElement("div"),null,m,g,S,s,!0),n=c(e,t.pendingBranch=r.ssContent,a,t,g,S);return t.deps===0&&t.resolve(),n}function vg(e){const{shapeFlag:r,children:a}=e,o=r&32;e.ssContent=cc(o?a.default:a),e.ssFallback=o?cc(a.fallback):ot(Ft)}function cc(e){let r;if(xe(e)){const a=ia&&e._c;a&&(e._d=!1,Lo()),e=e(),a&&(e._d=!0,r=Kt,Dd())}return ye(e)&&(e=gg(e)),e=lr(e),r&&!e.dynamicChildren&&(e.dynamicChildren=r.filter(a=>a!==e)),e}function nd(e,r){r&&r.pendingBranch?ye(e)?r.effects.push(...e):r.effects.push(e):ml(e)}function ba(e,r){e.activeBranch=r;const{vnode:a,parentComponent:o}=e,m=a.el=r.el;o&&o.subTree===a&&(o.vnode.el=m,fl(o,m))}function ad(e,r){if(ct){let a=ct.provides;const o=ct.parent&&ct.parent.provides;o===a&&(a=ct.provides=Object.create(o)),a[e]=r}}function Ka(e,r,a=!1){const o=ct||Dt;if(o){const m=o.parent==null?o.vnode.appContext&&o.vnode.appContext.provides:o.parent.provides;if(m&&e in m)return m[e];if(arguments.length>1)return a&&xe(r)?r.call(o.proxy):r}}function Og(e,r){return Ci(e,null,r)}function id(e,r){return Ci(e,null,{flush:"post"})}function Rg(e,r){return Ci(e,null,{flush:"sync"})}const ki={};function Ta(e,r,a){return Ci(e,r,a)}function Ci(e,r,{immediate:a,deep:o,flush:m,onTrack:g,onTrigger:S}=Je){const s=x_()===(ct==null?void 0:ct.scope)?ct:null;let c,t=!1,n=!1;if(yt(e)?(c=()=>e.value,t=oi(e)):Kn(e)?(c=()=>e,o=!0):ye(e)?(n=!0,t=e.some(h=>Kn(h)||oi(h)),c=()=>e.map(h=>{if(yt(h))return h.value;if(Kn(h))return jn(h);if(xe(h))return Xr(h,s,2)})):xe(e)?r?c=()=>Xr(e,s,2):c=()=>{if(!(s&&s.isUnmounted))return i&&i(),cr(e,s,3,[l])}:c=Tr,r&&o){const h=c;c=()=>jn(h())}let i,l=h=>{i=E.onStop=()=>{Xr(h,s,4)}},_;if(Na)if(l=Tr,r?a&&cr(r,s,3,[c(),n?[]:void 0,l]):c(),m==="sync"){const h=Hd();_=h.__watcherHandles||(h.__watcherHandles=[])}else return Tr;let d=n?new Array(e.length).fill(ki):ki;const u=()=>{if(E.active)if(r){const h=E.run();(o||t||(n?h.some((b,C)=>Oa(b,d[C])):Oa(h,d)))&&(i&&i(),cr(r,s,3,[h,d===ki?void 0:n&&d[0]===ki?[]:d,l]),d=h)}else E.run()};u.allowRecurse=!!r;let p;m==="sync"?p=u:m==="post"?p=()=>At(u,s&&s.suspense):(u.pre=!0,s&&(u.id=s.uid),p=()=>Ro(u));const E=new Ti(c,p);r?a?u():d=E.run():m==="post"?At(E.run.bind(E),s&&s.suspense):E.run();const f=()=>{E.stop(),s&&s.scope&&tl(s.scope.effects,E)};return _&&_.push(f),f}function Ng(e,r,a){const o=this.proxy,m=lt(e)?e.includes(".")?od(o,e):()=>o[e]:e.bind(o,o);let g;xe(r)?g=r:(g=r.handler,a=r);const S=ct;Nn(this);const s=Ci(m,g.bind(o),a);return S?Nn(S):Tn(),s}function od(e,r){const a=r.split(".");return()=>{let o=e;for(let m=0;m{jn(a,r)});else if(D_(e))for(const a in e)jn(e[a],r);return e}function Sl(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Oi(()=>{e.isMounted=!0}),xo(()=>{e.isUnmounting=!0}),e}const pr=[Function,Array],Ag={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:pr,onEnter:pr,onAfterEnter:pr,onEnterCancelled:pr,onBeforeLeave:pr,onLeave:pr,onAfterLeave:pr,onLeaveCancelled:pr,onBeforeAppear:pr,onAppear:pr,onAfterAppear:pr,onAppearCancelled:pr},setup(e,{slots:r}){const a=In(),o=Sl();let m;return()=>{const g=r.default&&Io(r.default(),!0);if(!g||!g.length)return;let S=g[0];if(g.length>1){for(const u of g)if(u.type!==Ft){S=u;break}}const s=qe(e),{mode:c}=s;if(o.isLeaving)return qo(S);const t=_c(S);if(!t)return qo(S);const n=Ra(t,s,o,a);na(t,n);const i=a.subTree,l=i&&_c(i);let _=!1;const{getTransitionKey:d}=t.type;if(d){const u=d();m===void 0?m=u:u!==m&&(m=u,_=!0)}if(l&&l.type!==Ft&&(!hr(t,l)||_)){const u=Ra(l,s,o,a);if(na(l,u),c==="out-in")return o.isLeaving=!0,u.afterLeave=()=>{o.isLeaving=!1,a.update.active!==!1&&a.update()},qo(S);c==="in-out"&&t.type!==Ft&&(u.delayLeave=(p,E,f)=>{const h=sd(o,l);h[String(l.key)]=l,p._leaveCb=()=>{E(),p._leaveCb=void 0,delete n.delayedLeave},n.delayedLeave=f})}return S}}},hl=Ag;function sd(e,r){const{leavingVNodes:a}=e;let o=a.get(r.type);return o||(o=Object.create(null),a.set(r.type,o)),o}function Ra(e,r,a,o){const{appear:m,mode:g,persisted:S=!1,onBeforeEnter:s,onEnter:c,onAfterEnter:t,onEnterCancelled:n,onBeforeLeave:i,onLeave:l,onAfterLeave:_,onLeaveCancelled:d,onBeforeAppear:u,onAppear:p,onAfterAppear:E,onAppearCancelled:f}=r,h=String(e.key),b=sd(a,e),C=(v,R)=>{v&&cr(v,o,9,R)},O=(v,R)=>{const I=R[1];C(v,R),ye(v)?v.every(x=>x.length<=1)&&I():v.length<=1&&I()},T={mode:g,persisted:S,beforeEnter(v){let R=s;if(!a.isMounted)if(m)R=u||s;else return;v._leaveCb&&v._leaveCb(!0);const I=b[h];I&&hr(e,I)&&I.el._leaveCb&&I.el._leaveCb(),C(R,[v])},enter(v){let R=c,I=t,x=n;if(!a.isMounted)if(m)R=p||c,I=E||t,x=f||n;else return;let w=!1;const N=v._enterCb=A=>{w||(w=!0,A?C(x,[v]):C(I,[v]),T.delayedLeave&&T.delayedLeave(),v._enterCb=void 0)};R?O(R,[v,N]):N()},leave(v,R){const I=String(e.key);if(v._enterCb&&v._enterCb(!0),a.isUnmounting)return R();C(i,[v]);let x=!1;const w=v._leaveCb=N=>{x||(x=!0,R(),N?C(d,[v]):C(_,[v]),v._leaveCb=void 0,b[I]===e&&delete b[I])};b[I]=e,l?O(l,[v,w]):w()},clone(v){return Ra(v,r,a,o)}};return T}function qo(e){if(vi(e))return e=Fr(e),e.children=null,e}function _c(e){return vi(e)?e.children?e.children[0]:void 0:e}function na(e,r){e.shapeFlag&6&&e.component?na(e.component.subTree,r):e.shapeFlag&128?(e.ssContent.transition=r.clone(e.ssContent),e.ssFallback.transition=r.clone(e.ssFallback)):e.transition=r}function Io(e,r=!1,a){let o=[],m=0;for(let g=0;g1)for(let g=0;g!!e.type.__asyncLoader;function Ig(e){xe(e)&&(e={loader:e});const{loader:r,loadingComponent:a,errorComponent:o,delay:m=200,timeout:g,suspensible:S=!0,onError:s}=e;let c=null,t,n=0;const i=()=>(n++,c=null,l()),l=()=>{let _;return c||(_=c=r().catch(d=>{if(d=d instanceof Error?d:new Error(String(d)),s)return new Promise((u,p)=>{s(d,()=>u(i()),()=>p(d),n+1)});throw d}).then(d=>_!==c&&c?c:(d&&(d.__esModule||d[Symbol.toStringTag]==="Module")&&(d=d.default),t=d,d)))};return Fa({name:"AsyncComponentWrapper",__asyncLoader:l,get __asyncResolved(){return t},setup(){const _=ct;if(t)return()=>Ho(t,_);const d=f=>{c=null,sa(f,_,13,!o)};if(S&&_.suspense||Na)return l().then(f=>()=>Ho(f,_)).catch(f=>(d(f),()=>o?ot(o,{error:f}):null));const u=Zn(!1),p=Zn(),E=Zn(!!m);return m&&setTimeout(()=>{E.value=!1},m),g!=null&&setTimeout(()=>{if(!u.value&&!p.value){const f=new Error(`Async component timed out after ${g}ms.`);d(f),p.value=f}},g),l().then(()=>{u.value=!0,_.parent&&vi(_.parent.vnode)&&Ro(_.parent.update)}).catch(f=>{d(f),p.value=f}),()=>{if(u.value&&t)return Ho(t,_);if(p.value&&o)return ot(o,{error:p.value});if(a&&!E.value)return ot(a)}}})}function Ho(e,r){const{ref:a,props:o,children:m,ce:g}=r.vnode,S=ot(e,o,m);return S.ref=a,S.ce=g,delete r.vnode.ce,S}const vi=e=>e.type.__isKeepAlive,Dg={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:r}){const a=In(),o=a.ctx;if(!o.renderer)return()=>{const f=r.default&&r.default();return f&&f.length===1?f[0]:f};const m=new Map,g=new Set;let S=null;const s=a.suspense,{renderer:{p:c,m:t,um:n,o:{createElement:i}}}=o,l=i("div");o.activate=(f,h,b,C,O)=>{const T=f.component;t(f,h,b,0,s),c(T.vnode,f,h,b,T,s,C,f.slotScopeIds,O),At(()=>{T.isDeactivated=!1,T.a&&Sa(T.a);const v=f.props&&f.props.onVnodeMounted;v&&Qt(v,T.parent,f)},s)},o.deactivate=f=>{const h=f.component;t(f,l,null,1,s),At(()=>{h.da&&Sa(h.da);const b=f.props&&f.props.onVnodeUnmounted;b&&Qt(b,h.parent,f),h.isDeactivated=!0},s)};function _(f){Vo(f),n(f,a,s,!0)}function d(f){m.forEach((h,b)=>{const C=Ns(h.type);C&&(!f||!f(C))&&u(b)})}function u(f){const h=m.get(f);!S||!hr(h,S)?_(h):S&&Vo(S),m.delete(f),g.delete(f)}Ta(()=>[e.include,e.exclude],([f,h])=>{f&&d(b=>$a(f,b)),h&&d(b=>!$a(h,b))},{flush:"post",deep:!0});let p=null;const E=()=>{p!=null&&m.set(p,zo(a.subTree))};return Oi(E),wo(E),xo(()=>{m.forEach(f=>{const{subTree:h,suspense:b}=a,C=zo(h);if(f.type===C.type&&f.key===C.key){Vo(C);const O=C.component.da;O&&At(O,b);return}_(f)})}),()=>{if(p=null,!r.default)return null;const f=r.default(),h=f[0];if(f.length>1)return S=null,f;if(!Rn(h)||!(h.shapeFlag&4)&&!(h.shapeFlag&128))return S=null,h;let b=zo(h);const C=b.type,O=Ns(Xn(b)?b.type.__asyncResolved||{}:C),{include:T,exclude:v,max:R}=e;if(T&&(!O||!$a(T,O))||v&&O&&$a(v,O))return S=b,h;const I=b.key==null?C:b.key,x=m.get(I);return b.el&&(b=Fr(b),h.shapeFlag&128&&(h.ssContent=b)),p=I,x?(b.el=x.el,b.component=x.component,b.transition&&na(b,b.transition),b.shapeFlag|=512,g.delete(I),g.add(I)):(g.add(I),R&&g.size>parseInt(R,10)&&u(g.values().next().value)),b.shapeFlag|=256,S=b,rd(h.type)?h:b}}},wg=Dg;function $a(e,r){return ye(e)?e.some(a=>$a(a,r)):lt(e)?e.split(",").includes(r):um(e)?e.test(r):!1}function ld(e,r){_d(e,"a",r)}function cd(e,r){_d(e,"da",r)}function _d(e,r,a=ct){const o=e.__wdc||(e.__wdc=()=>{let m=a;for(;m;){if(m.isDeactivated)return;m=m.parent}return e()});if(Do(r,o,a),a){let m=a.parent;for(;m&&m.parent;)vi(m.parent.vnode)&&xg(o,r,a,m),m=m.parent}}function xg(e,r,a,o){const m=Do(r,e,o,!0);Mo(()=>{tl(o[r],m)},a)}function Vo(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function zo(e){return e.shapeFlag&128?e.ssContent:e}function Do(e,r,a=ct,o=!1){if(a){const m=a[e]||(a[e]=[]),g=r.__weh||(r.__weh=(...S)=>{if(a.isUnmounted)return;ka(),Nn(a);const s=cr(r,a,e,S);return Tn(),Pa(),s});return o?m.unshift(g):m.push(g),g}}const tn=e=>(r,a=ct)=>(!Na||e==="sp")&&Do(e,(...o)=>r(...o),a),dd=tn("bm"),Oi=tn("m"),ud=tn("bu"),wo=tn("u"),xo=tn("bum"),Mo=tn("um"),pd=tn("sp"),md=tn("rtg"),gd=tn("rtc");function fd(e,r=ct){Do("ec",e,r)}function Mg(e,r){const a=Dt;if(a===null)return e;const o=Po(a)||a.proxy,m=e.dirs||(e.dirs=[]);for(let g=0;gr(S,s,void 0,g&&g[s]));else{const S=Object.keys(e);m=new Array(S.length);for(let s=0,c=S.length;s{const g=o.fn(...m);return g&&(g.key=o.key),g}:o.fn)}return e}function Gg(e,r,a={},o,m){if(Dt.isCE||Dt.parent&&Xn(Dt.parent)&&Dt.parent.isCE)return r!=="default"&&(a.name=r),ot("slot",a,o&&o());let g=e[r];g&&g._c&&(g._d=!1),Lo();const S=g&&Sd(g(a)),s=Ol(It,{key:a.key||S&&S.key||`_${r}`},S||(o?o():[]),S&&e._===1?64:-2);return!m&&s.scopeId&&(s.slotScopeIds=[s.scopeId+"-s"]),g&&g._c&&(g._d=!0),s}function Sd(e){return e.some(r=>Rn(r)?!(r.type===Ft||r.type===It&&!Sd(r.children)):!0)?e:null}function Yg(e,r){const a={};for(const o in e)a[r&&/[A-Z]/.test(o)?`on:${o}`:Qa(o)]=e[o];return a}const Ss=e=>e?Pd(e)?Po(e)||e.proxy:Ss(e.parent):null,Za=_t(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Ss(e.parent),$root:e=>Ss(e.root),$emit:e=>e.emit,$options:e=>yl(e),$forceUpdate:e=>e.f||(e.f=()=>Ro(e.update)),$nextTick:e=>e.n||(e.n=pl.bind(e.proxy)),$watch:e=>Ng.bind(e)}),$o=(e,r)=>e!==Je&&!e.__isScriptSetup&&je(e,r),hs={get({_:e},r){const{ctx:a,setupState:o,data:m,props:g,accessCache:S,type:s,appContext:c}=e;let t;if(r[0]!=="$"){const _=S[r];if(_!==void 0)switch(_){case 1:return o[r];case 2:return m[r];case 4:return a[r];case 3:return g[r]}else{if($o(o,r))return S[r]=1,o[r];if(m!==Je&&je(m,r))return S[r]=2,m[r];if((t=e.propsOptions[0])&&je(t,r))return S[r]=3,g[r];if(a!==Je&&je(a,r))return S[r]=4,a[r];bs&&(S[r]=0)}}const n=Za[r];let i,l;if(n)return r==="$attrs"&&Xt(e,"get",r),n(e);if((i=s.__cssModules)&&(i=i[r]))return i;if(a!==Je&&je(a,r))return S[r]=4,a[r];if(l=c.config.globalProperties,je(l,r))return l[r]},set({_:e},r,a){const{data:o,setupState:m,ctx:g}=e;return $o(m,r)?(m[r]=a,!0):o!==Je&&je(o,r)?(o[r]=a,!0):je(e.props,r)||r[0]==="$"&&r.slice(1)in e?!1:(g[r]=a,!0)},has({_:{data:e,setupState:r,accessCache:a,ctx:o,appContext:m,propsOptions:g}},S){let s;return!!a[S]||e!==Je&&je(e,S)||$o(r,S)||(s=g[0])&&je(s,S)||je(o,S)||je(Za,S)||je(m.config.globalProperties,S)},defineProperty(e,r,a){return a.get!=null?e._.accessCache[r]=0:je(a,"value")&&this.set(e,r,a.value,null),Reflect.defineProperty(e,r,a)}},qg=_t({},hs,{get(e,r){if(r!==Symbol.unscopables)return hs.get(e,r,e)},has(e,r){return r[0]!=="_"&&!Jp(r)}});let bs=!0;function Hg(e){const r=yl(e),a=e.proxy,o=e.ctx;bs=!1,r.beforeCreate&&uc(r.beforeCreate,e,"bc");const{data:m,computed:g,methods:S,watch:s,provide:c,inject:t,created:n,beforeMount:i,mounted:l,beforeUpdate:_,updated:d,activated:u,deactivated:p,beforeDestroy:E,beforeUnmount:f,destroyed:h,unmounted:b,render:C,renderTracked:O,renderTriggered:T,errorCaptured:v,serverPrefetch:R,expose:I,inheritAttrs:x,components:w,directives:N,filters:A}=r;if(t&&Vg(t,o,null,e.appContext.config.unwrapInjectedRef),S)for(const G in S){const z=S[G];xe(z)&&(o[G]=z.bind(a))}if(m){const G=m.call(a,a);rt(G)&&(e.data=yi(G))}if(bs=!0,g)for(const G in g){const z=g[G],j=xe(z)?z.bind(a,a):xe(z.get)?z.get.bind(a,a):Tr,Y=!xe(z)&&xe(z.set)?z.set.bind(a):Tr,_e=Gd({get:j,set:Y});Object.defineProperty(o,G,{enumerable:!0,configurable:!0,get:()=>_e.value,set:de=>_e.value=de})}if(s)for(const G in s)hd(s[G],o,a,G);if(c){const G=xe(c)?c.call(a):c;Reflect.ownKeys(G).forEach(z=>{ad(z,G[z])})}n&&uc(n,e,"c");function L(G,z){ye(z)?z.forEach(j=>G(j.bind(a))):z&&G(z.bind(a))}if(L(dd,i),L(Oi,l),L(ud,_),L(wo,d),L(ld,u),L(cd,p),L(fd,v),L(gd,O),L(md,T),L(xo,f),L(Mo,b),L(pd,R),ye(I))if(I.length){const G=e.exposed||(e.exposed={});I.forEach(z=>{Object.defineProperty(G,z,{get:()=>a[z],set:j=>a[z]=j})})}else e.exposed||(e.exposed={});C&&e.render===Tr&&(e.render=C),x!=null&&(e.inheritAttrs=x),w&&(e.components=w),N&&(e.directives=N)}function Vg(e,r,a=Tr,o=!1){ye(e)&&(e=Ts(e));for(const m in e){const g=e[m];let S;rt(g)?"default"in g?S=Ka(g.from||m,g.default,!0):S=Ka(g.from||m):S=Ka(g),yt(S)&&o?Object.defineProperty(r,m,{enumerable:!0,configurable:!0,get:()=>S.value,set:s=>S.value=s}):r[m]=S}}function uc(e,r,a){cr(ye(e)?e.map(o=>o.bind(r.proxy)):e.bind(r.proxy),r,a)}function hd(e,r,a,o){const m=o.includes(".")?od(a,o):()=>a[o];if(lt(e)){const g=r[e];xe(g)&&Ta(m,g)}else if(xe(e))Ta(m,e.bind(a));else if(rt(e))if(ye(e))e.forEach(g=>hd(g,r,a,o));else{const g=xe(e.handler)?e.handler.bind(a):r[e.handler];xe(g)&&Ta(m,g,e)}}function yl(e){const r=e.type,{mixins:a,extends:o}=r,{mixins:m,optionsCache:g,config:{optionMergeStrategies:S}}=e.appContext,s=g.get(r);let c;return s?c=s:!m.length&&!a&&!o?c=r:(c={},m.length&&m.forEach(t=>no(c,t,S,!0)),no(c,r,S)),rt(r)&&g.set(r,c),c}function no(e,r,a,o=!1){const{mixins:m,extends:g}=r;g&&no(e,g,a,!0),m&&m.forEach(S=>no(e,S,a,!0));for(const S in r)if(!(o&&S==="expose")){const s=zg[S]||a&&a[S];e[S]=s?s(e[S],r[S]):r[S]}return e}const zg={data:pc,props:Hn,emits:Hn,methods:Hn,computed:Hn,beforeCreate:Yt,created:Yt,beforeMount:Yt,mounted:Yt,beforeUpdate:Yt,updated:Yt,beforeDestroy:Yt,beforeUnmount:Yt,destroyed:Yt,unmounted:Yt,activated:Yt,deactivated:Yt,errorCaptured:Yt,serverPrefetch:Yt,components:Hn,directives:Hn,watch:jg,provide:pc,inject:$g};function pc(e,r){return r?e?function(){return _t(xe(e)?e.call(this,this):e,xe(r)?r.call(this,this):r)}:r:e}function $g(e,r){return Hn(Ts(e),Ts(r))}function Ts(e){if(ye(e)){const r={};for(let a=0;a0)&&!(S&16)){if(S&8){const n=e.vnode.dynamicProps;for(let i=0;i{c=!0;const[l,_]=Td(i,r,!0);_t(S,l),_&&s.push(..._)};!a&&r.mixins.length&&r.mixins.forEach(n),e.extends&&n(e.extends),e.mixins&&e.mixins.forEach(n)}if(!g&&!c)return rt(e)&&o.set(e,fa),fa;if(ye(g))for(let n=0;n-1,_[1]=u<0||d-1||je(_,"default"))&&s.push(i)}}}const t=[S,s];return rt(e)&&o.set(e,t),t}function mc(e){return e[0]!=="$"}function gc(e){const r=e&&e.toString().match(/^\s*(function|class) (\w+)/);return r?r[2]:e===null?"null":""}function fc(e,r){return gc(e)===gc(r)}function Ec(e,r){return ye(r)?r.findIndex(a=>fc(a,e)):xe(r)&&fc(r,e)?0:-1}const yd=e=>e[0]==="_"||e==="$stable",Cl=e=>ye(e)?e.map(lr):[lr(e)],Kg=(e,r,a)=>{if(r._n)return r;const o=gl((...m)=>Cl(r(...m)),a);return o._c=!1,o},Cd=(e,r,a)=>{const o=e._ctx;for(const m in e){if(yd(m))continue;const g=e[m];if(xe(g))r[m]=Kg(m,g,o);else if(g!=null){const S=Cl(g);r[m]=()=>S}}},vd=(e,r)=>{const a=Cl(r);e.slots.default=()=>a},Zg=(e,r)=>{if(e.vnode.shapeFlag&32){const a=r._;a?(e.slots=qe(r),Xi(r,"_",a)):Cd(r,e.slots={})}else e.slots={},r&&vd(e,r);Xi(e.slots,ko,1)},Xg=(e,r,a)=>{const{vnode:o,slots:m}=e;let g=!0,S=Je;if(o.shapeFlag&32){const s=r._;s?a&&s===1?g=!1:(_t(m,r),!a&&s===1&&delete m._):(g=!r.$stable,Cd(r,m)),S=r}else r&&(vd(e,r),S={default:1});if(g)for(const s in m)!yd(s)&&!(s in S)&&delete m[s]};function Od(){return{app:null,config:{isNativeTag:cm,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let Jg=0;function ef(e,r){return function(o,m=null){xe(o)||(o=Object.assign({},o)),m!=null&&!rt(m)&&(m=null);const g=Od(),S=new Set;let s=!1;const c=g.app={_uid:Jg++,_component:o,_props:m,_container:null,_context:g,_instance:null,version:zd,get config(){return g.config},set config(t){},use(t,...n){return S.has(t)||(t&&xe(t.install)?(S.add(t),t.install(c,...n)):xe(t)&&(S.add(t),t(c,...n))),c},mixin(t){return g.mixins.includes(t)||g.mixins.push(t),c},component(t,n){return n?(g.components[t]=n,c):g.components[t]},directive(t,n){return n?(g.directives[t]=n,c):g.directives[t]},mount(t,n,i){if(!s){const l=ot(o,m);return l.appContext=g,n&&r?r(l,t):e(l,t,i),s=!0,c._container=t,t.__vue_app__=c,Po(l.component)||l.component.proxy}},unmount(){s&&(e(null,c._container),delete c._container.__vue_app__)},provide(t,n){return g.provides[t]=n,c}};return c}}function ao(e,r,a,o,m=!1){if(ye(e)){e.forEach((l,_)=>ao(l,r&&(ye(r)?r[_]:r),a,o,m));return}if(Xn(o)&&!m)return;const g=o.shapeFlag&4?Po(o.component)||o.component.proxy:o.el,S=m?null:g,{i:s,r:c}=e,t=r&&r.r,n=s.refs===Je?s.refs={}:s.refs,i=s.setupState;if(t!=null&&t!==c&&(lt(t)?(n[t]=null,je(i,t)&&(i[t]=null)):yt(t)&&(t.value=null)),xe(c))Xr(c,s,12,[S,n]);else{const l=lt(c),_=yt(c);if(l||_){const d=()=>{if(e.f){const u=l?je(i,c)?i[c]:n[c]:c.value;m?ye(u)&&tl(u,g):ye(u)?u.includes(g)||u.push(g):l?(n[c]=[g],je(i,c)&&(i[c]=n[c])):(c.value=[g],e.k&&(n[e.k]=c.value))}else l?(n[c]=S,je(i,c)&&(i[c]=S)):_&&(c.value=S,e.k&&(n[e.k]=S))};S?(d.id=-1,At(d,a)):d()}}}let mn=!1;const Pi=e=>/svg/.test(e.namespaceURI)&&e.tagName!=="foreignObject",Fi=e=>e.nodeType===8;function tf(e){const{mt:r,p:a,o:{patchProp:o,createText:m,nextSibling:g,parentNode:S,remove:s,insert:c,createComment:t}}=e,n=(E,f)=>{if(!f.hasChildNodes()){a(null,E,f),ro(),f._vnode=E;return}mn=!1,i(f.firstChild,E,null,null,null),ro(),f._vnode=E,mn&&console.error("Hydration completed but contains mismatches.")},i=(E,f,h,b,C,O=!1)=>{const T=Fi(E)&&E.data==="[",v=()=>u(E,f,h,b,C,T),{type:R,ref:I,shapeFlag:x,patchFlag:w}=f;let N=E.nodeType;f.el=E,w===-2&&(O=!1,f.dynamicChildren=null);let A=null;switch(R){case aa:N!==3?f.children===""?(c(f.el=m(""),S(E),E),A=E):A=v():(E.data!==f.children&&(mn=!0,E.data=f.children),A=g(E));break;case Ft:N!==8||T?A=v():A=g(E);break;case Jn:if(T&&(E=g(E),N=E.nodeType),N===1||N===3){A=E;const k=!f.children.length;for(let L=0;L{O=O||!!f.dynamicChildren;const{type:T,props:v,patchFlag:R,shapeFlag:I,dirs:x}=f,w=T==="input"&&x||T==="option";if(w||R!==-1){if(x&&Dr(f,null,h,"created"),v)if(w||!O||R&48)for(const A in v)(w&&A.endsWith("value")||hi(A)&&!Wa(A))&&o(E,A,null,v[A],!1,void 0,h);else v.onClick&&o(E,"onClick",null,v.onClick,!1,void 0,h);let N;if((N=v&&v.onVnodeBeforeMount)&&Qt(N,h,f),x&&Dr(f,null,h,"beforeMount"),((N=v&&v.onVnodeMounted)||x)&&nd(()=>{N&&Qt(N,h,f),x&&Dr(f,null,h,"mounted")},b),I&16&&!(v&&(v.innerHTML||v.textContent))){let A=_(E.firstChild,f,E,h,b,C,O);for(;A;){mn=!0;const k=A;A=A.nextSibling,s(k)}}else I&8&&E.textContent!==f.children&&(mn=!0,E.textContent=f.children)}return E.nextSibling},_=(E,f,h,b,C,O,T)=>{T=T||!!f.dynamicChildren;const v=f.children,R=v.length;for(let I=0;I{const{slotScopeIds:T}=f;T&&(C=C?C.concat(T):T);const v=S(E),R=_(g(E),f,v,h,b,C,O);return R&&Fi(R)&&R.data==="]"?g(f.anchor=R):(mn=!0,c(f.anchor=t("]"),v,R),R)},u=(E,f,h,b,C,O)=>{if(mn=!0,f.el=null,O){const R=p(E);for(;;){const I=g(E);if(I&&I!==R)s(I);else break}}const T=g(E),v=S(E);return s(E),a(null,f,v,T,h,b,Pi(v),C),T},p=E=>{let f=0;for(;E;)if(E=g(E),E&&Fi(E)&&(E.data==="["&&f++,E.data==="]")){if(f===0)return g(E);f--}return E};return[n,i]}const At=nd;function Rd(e){return Ad(e)}function Nd(e){return Ad(e,tf)}function Ad(e,r){const a=fm();a.__VUE__=!0;const{insert:o,remove:m,patchProp:g,createElement:S,createText:s,createComment:c,setText:t,setElementText:n,parentNode:i,nextSibling:l,setScopeId:_=Tr,insertStaticContent:d}=e,u=(M,P,q,V=null,$=null,Z=null,ae=!1,re=null,H=!!P.dynamicChildren)=>{if(M===P)return;M&&!hr(M,P)&&(V=Ee(M),de(M,$,Z,!0),M=null),P.patchFlag===-2&&(H=!1,P.dynamicChildren=null);const{type:B,ref:oe,shapeFlag:X}=P;switch(B){case aa:p(M,P,q,V);break;case Ft:E(M,P,q,V);break;case Jn:M==null&&f(P,q,V,ae);break;case It:w(M,P,q,V,$,Z,ae,re,H);break;default:X&1?C(M,P,q,V,$,Z,ae,re,H):X&6?N(M,P,q,V,$,Z,ae,re,H):(X&64||X&128)&&B.process(M,P,q,V,$,Z,ae,re,H,be)}oe!=null&&$&&ao(oe,M&&M.ref,Z,P||M,!P)},p=(M,P,q,V)=>{if(M==null)o(P.el=s(P.children),q,V);else{const $=P.el=M.el;P.children!==M.children&&t($,P.children)}},E=(M,P,q,V)=>{M==null?o(P.el=c(P.children||""),q,V):P.el=M.el},f=(M,P,q,V)=>{[M.el,M.anchor]=d(M.children,P,q,V,M.el,M.anchor)},h=({el:M,anchor:P},q,V)=>{let $;for(;M&&M!==P;)$=l(M),o(M,q,V),M=$;o(P,q,V)},b=({el:M,anchor:P})=>{let q;for(;M&&M!==P;)q=l(M),m(M),M=q;m(P)},C=(M,P,q,V,$,Z,ae,re,H)=>{ae=ae||P.type==="svg",M==null?O(P,q,V,$,Z,ae,re,H):R(M,P,$,Z,ae,re,H)},O=(M,P,q,V,$,Z,ae,re)=>{let H,B;const{type:oe,props:X,shapeFlag:te,transition:ie,dirs:ce}=M;if(H=M.el=S(M.type,Z,X&&X.is,X),te&8?n(H,M.children):te&16&&v(M.children,H,null,V,$,Z&&oe!=="foreignObject",ae,re),ce&&Dr(M,null,V,"created"),T(H,M,M.scopeId,ae,V),X){for(const pe in X)pe!=="value"&&!Wa(pe)&&g(H,pe,null,X[pe],Z,M.children,V,$,fe);"value"in X&&g(H,"value",null,X.value),(B=X.onVnodeBeforeMount)&&Qt(B,V,M)}ce&&Dr(M,null,V,"beforeMount");const me=(!$||$&&!$.pendingBranch)&&ie&&!ie.persisted;me&&ie.beforeEnter(H),o(H,P,q),((B=X&&X.onVnodeMounted)||me||ce)&&At(()=>{B&&Qt(B,V,M),me&&ie.enter(H),ce&&Dr(M,null,V,"mounted")},$)},T=(M,P,q,V,$)=>{if(q&&_(M,q),V)for(let Z=0;Z{for(let B=H;B{const re=P.el=M.el;let{patchFlag:H,dynamicChildren:B,dirs:oe}=P;H|=M.patchFlag&16;const X=M.props||Je,te=P.props||Je;let ie;q&&Gn(q,!1),(ie=te.onVnodeBeforeUpdate)&&Qt(ie,q,P,M),oe&&Dr(P,M,q,"beforeUpdate"),q&&Gn(q,!0);const ce=$&&P.type!=="foreignObject";if(B?I(M.dynamicChildren,B,re,q,V,ce,Z):ae||z(M,P,re,null,q,V,ce,Z,!1),H>0){if(H&16)x(re,P,X,te,q,V,$);else if(H&2&&X.class!==te.class&&g(re,"class",null,te.class,$),H&4&&g(re,"style",X.style,te.style,$),H&8){const me=P.dynamicProps;for(let pe=0;pe{ie&&Qt(ie,q,P,M),oe&&Dr(P,M,q,"updated")},V)},I=(M,P,q,V,$,Z,ae)=>{for(let re=0;re{if(q!==V){if(q!==Je)for(const re in q)!Wa(re)&&!(re in V)&&g(M,re,q[re],null,ae,P.children,$,Z,fe);for(const re in V){if(Wa(re))continue;const H=V[re],B=q[re];H!==B&&re!=="value"&&g(M,re,B,H,ae,P.children,$,Z,fe)}"value"in V&&g(M,"value",q.value,V.value)}},w=(M,P,q,V,$,Z,ae,re,H)=>{const B=P.el=M?M.el:s(""),oe=P.anchor=M?M.anchor:s("");let{patchFlag:X,dynamicChildren:te,slotScopeIds:ie}=P;ie&&(re=re?re.concat(ie):ie),M==null?(o(B,q,V),o(oe,q,V),v(P.children,q,oe,$,Z,ae,re,H)):X>0&&X&64&&te&&M.dynamicChildren?(I(M.dynamicChildren,te,q,$,Z,ae,re),(P.key!=null||$&&P===$.subTree)&&vl(M,P,!0)):z(M,P,q,oe,$,Z,ae,re,H)},N=(M,P,q,V,$,Z,ae,re,H)=>{P.slotScopeIds=re,M==null?P.shapeFlag&512?$.ctx.activate(P,q,V,ae,H):A(P,q,V,$,Z,ae,H):k(M,P,H)},A=(M,P,q,V,$,Z,ae)=>{const re=M.component=kd(M,V,$);if(vi(M)&&(re.ctx.renderer=be),Fd(re),re.asyncDep){if($&&$.registerDep(re,L),!M.el){const H=re.subTree=ot(Ft);E(null,H,P,q)}return}L(re,M,P,q,$,Z,ae)},k=(M,P,q)=>{const V=P.component=M.component;if(Sg(M,P,q))if(V.asyncDep&&!V.asyncResolved){G(V,P,q);return}else V.next=P,cg(V.update),V.update();else P.el=M.el,V.vnode=P},L=(M,P,q,V,$,Z,ae)=>{const re=()=>{if(M.isMounted){let{next:oe,bu:X,u:te,parent:ie,vnode:ce}=M,me=oe,pe;Gn(M,!1),oe?(oe.el=ce.el,G(M,oe,ae)):oe=ce,X&&Sa(X),(pe=oe.props&&oe.props.onVnodeBeforeUpdate)&&Qt(pe,ie,oe,ce),Gn(M,!0);const Ae=Wi(M),Te=M.subTree;M.subTree=Ae,u(Te,Ae,i(Te.el),Ee(Te),M,$,Z),oe.el=Ae.el,me===null&&fl(M,Ae.el),te&&At(te,$),(pe=oe.props&&oe.props.onVnodeUpdated)&&At(()=>Qt(pe,ie,oe,ce),$)}else{let oe;const{el:X,props:te}=P,{bm:ie,m:ce,parent:me}=M,pe=Xn(P);if(Gn(M,!1),ie&&Sa(ie),!pe&&(oe=te&&te.onVnodeBeforeMount)&&Qt(oe,me,P),Gn(M,!0),X&&De){const Ae=()=>{M.subTree=Wi(M),De(X,M.subTree,M,$,null)};pe?P.type.__asyncLoader().then(()=>!M.isUnmounted&&Ae()):Ae()}else{const Ae=M.subTree=Wi(M);u(null,Ae,q,V,M,$,Z),P.el=Ae.el}if(ce&&At(ce,$),!pe&&(oe=te&&te.onVnodeMounted)){const Ae=P;At(()=>Qt(oe,me,Ae),$)}(P.shapeFlag&256||me&&Xn(me.vnode)&&me.vnode.shapeFlag&256)&&M.a&&At(M.a,$),M.isMounted=!0,P=q=V=null}},H=M.effect=new Ti(re,()=>Ro(B),M.scope),B=M.update=()=>H.run();B.id=M.uid,Gn(M,!0),B()},G=(M,P,q)=>{P.component=M;const V=M.vnode.props;M.vnode=P,M.next=null,Qg(M,P.props,V,q),Xg(M,P.children,q),ka(),sc(),Pa()},z=(M,P,q,V,$,Z,ae,re,H=!1)=>{const B=M&&M.children,oe=M?M.shapeFlag:0,X=P.children,{patchFlag:te,shapeFlag:ie}=P;if(te>0){if(te&128){Y(B,X,q,V,$,Z,ae,re,H);return}else if(te&256){j(B,X,q,V,$,Z,ae,re,H);return}}ie&8?(oe&16&&fe(B,$,Z),X!==B&&n(q,X)):oe&16?ie&16?Y(B,X,q,V,$,Z,ae,re,H):fe(B,$,Z,!0):(oe&8&&n(q,""),ie&16&&v(X,q,V,$,Z,ae,re,H))},j=(M,P,q,V,$,Z,ae,re,H)=>{M=M||fa,P=P||fa;const B=M.length,oe=P.length,X=Math.min(B,oe);let te;for(te=0;teoe?fe(M,$,Z,!0,!1,X):v(P,q,V,$,Z,ae,re,H,X)},Y=(M,P,q,V,$,Z,ae,re,H)=>{let B=0;const oe=P.length;let X=M.length-1,te=oe-1;for(;B<=X&&B<=te;){const ie=M[B],ce=P[B]=H?En(P[B]):lr(P[B]);if(hr(ie,ce))u(ie,ce,q,null,$,Z,ae,re,H);else break;B++}for(;B<=X&&B<=te;){const ie=M[X],ce=P[te]=H?En(P[te]):lr(P[te]);if(hr(ie,ce))u(ie,ce,q,null,$,Z,ae,re,H);else break;X--,te--}if(B>X){if(B<=te){const ie=te+1,ce=iete)for(;B<=X;)de(M[B],$,Z,!0),B++;else{const ie=B,ce=B,me=new Map;for(B=ce;B<=te;B++){const Ue=P[B]=H?En(P[B]):lr(P[B]);Ue.key!=null&&me.set(Ue.key,B)}let pe,Ae=0;const Te=te-ce+1;let Pe=!1,Ke=0;const Xe=new Array(Te);for(B=0;B=Te){de(Ue,$,Z,!0);continue}let Qe;if(Ue.key!=null)Qe=me.get(Ue.key);else for(pe=ce;pe<=te;pe++)if(Xe[pe-ce]===0&&hr(Ue,P[pe])){Qe=pe;break}Qe===void 0?de(Ue,$,Z,!0):(Xe[Qe-ce]=B+1,Qe>=Ke?Ke=Qe:Pe=!0,u(Ue,P[Qe],q,null,$,Z,ae,re,H),Ae++)}const ut=Pe?rf(Xe):fa;for(pe=ut.length-1,B=Te-1;B>=0;B--){const Ue=ce+B,Qe=P[Ue],ft=Ue+1{const{el:Z,type:ae,transition:re,children:H,shapeFlag:B}=M;if(B&6){_e(M.component.subTree,P,q,V);return}if(B&128){M.suspense.move(P,q,V);return}if(B&64){ae.move(M,P,q,be);return}if(ae===It){o(Z,P,q);for(let X=0;Xre.enter(Z),$);else{const{leave:X,delayLeave:te,afterLeave:ie}=re,ce=()=>o(Z,P,q),me=()=>{X(Z,()=>{ce(),ie&&ie()})};te?te(Z,ce,me):me()}else o(Z,P,q)},de=(M,P,q,V=!1,$=!1)=>{const{type:Z,props:ae,ref:re,children:H,dynamicChildren:B,shapeFlag:oe,patchFlag:X,dirs:te}=M;if(re!=null&&ao(re,null,q,M,!0),oe&256){P.ctx.deactivate(M);return}const ie=oe&1&&te,ce=!Xn(M);let me;if(ce&&(me=ae&&ae.onVnodeBeforeUnmount)&&Qt(me,P,M),oe&6)ne(M.component,q,V);else{if(oe&128){M.suspense.unmount(q,V);return}ie&&Dr(M,null,P,"beforeUnmount"),oe&64?M.type.remove(M,P,q,$,be,V):B&&(Z!==It||X>0&&X&64)?fe(B,P,q,!1,!0):(Z===It&&X&384||!$&&oe&16)&&fe(H,P,q),V&&W(M)}(ce&&(me=ae&&ae.onVnodeUnmounted)||ie)&&At(()=>{me&&Qt(me,P,M),ie&&Dr(M,null,P,"unmounted")},q)},W=M=>{const{type:P,el:q,anchor:V,transition:$}=M;if(P===It){K(q,V);return}if(P===Jn){b(M);return}const Z=()=>{m(q),$&&!$.persisted&&$.afterLeave&&$.afterLeave()};if(M.shapeFlag&1&&$&&!$.persisted){const{leave:ae,delayLeave:re}=$,H=()=>ae(q,Z);re?re(M.el,Z,H):H()}else Z()},K=(M,P)=>{let q;for(;M!==P;)q=l(M),m(M),M=q;m(P)},ne=(M,P,q)=>{const{bum:V,scope:$,update:Z,subTree:ae,um:re}=M;V&&Sa(V),$.stop(),Z&&(Z.active=!1,de(ae,M,P,q)),re&&At(re,P),At(()=>{M.isUnmounted=!0},P),P&&P.pendingBranch&&!P.isUnmounted&&M.asyncDep&&!M.asyncResolved&&M.suspenseId===P.pendingId&&(P.deps--,P.deps===0&&P.resolve())},fe=(M,P,q,V=!1,$=!1,Z=0)=>{for(let ae=Z;aeM.shapeFlag&6?Ee(M.component.subTree):M.shapeFlag&128?M.suspense.next():l(M.anchor||M.el),ve=(M,P,q)=>{M==null?P._vnode&&de(P._vnode,null,null,!0):u(P._vnode||null,M,P,null,null,null,q),sc(),ro(),P._vnode=M},be={p:u,um:de,m:_e,r:W,mt:A,mc:v,pc:z,pbc:I,n:Ee,o:e};let ke,De;return r&&([ke,De]=r(be)),{render:ve,hydrate:ke,createApp:ef(ve,ke)}}function Gn({effect:e,update:r},a){e.allowRecurse=r.allowRecurse=a}function vl(e,r,a=!1){const o=e.children,m=r.children;if(ye(o)&&ye(m))for(let g=0;g>1,e[a[s]]0&&(r[o]=a[g-1]),a[g]=o)}}for(g=a.length,S=a[g-1];g-- >0;)a[g]=S,S=r[S];return a}const nf=e=>e.__isTeleport,Xa=e=>e&&(e.disabled||e.disabled===""),Sc=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Cs=(e,r)=>{const a=e&&e.to;return lt(a)?r?r(a):null:a},af={__isTeleport:!0,process(e,r,a,o,m,g,S,s,c,t){const{mc:n,pc:i,pbc:l,o:{insert:_,querySelector:d,createText:u,createComment:p}}=t,E=Xa(r.props);let{shapeFlag:f,children:h,dynamicChildren:b}=r;if(e==null){const C=r.el=u(""),O=r.anchor=u("");_(C,a,o),_(O,a,o);const T=r.target=Cs(r.props,d),v=r.targetAnchor=u("");T&&(_(v,T),S=S||Sc(T));const R=(I,x)=>{f&16&&n(h,I,x,m,g,S,s,c)};E?R(a,O):T&&R(T,v)}else{r.el=e.el;const C=r.anchor=e.anchor,O=r.target=e.target,T=r.targetAnchor=e.targetAnchor,v=Xa(e.props),R=v?a:O,I=v?C:T;if(S=S||Sc(O),b?(l(e.dynamicChildren,b,R,m,g,S,s),vl(e,r,!0)):c||i(e,r,R,I,m,g,S,s,!1),E)v||Ui(r,a,C,t,1);else if((r.props&&r.props.to)!==(e.props&&e.props.to)){const x=r.target=Cs(r.props,d);x&&Ui(r,x,null,t,0)}else v&&Ui(r,O,T,t,1)}Id(r)},remove(e,r,a,o,{um:m,o:{remove:g}},S){const{shapeFlag:s,children:c,anchor:t,targetAnchor:n,target:i,props:l}=e;if(i&&g(n),(S||!Xa(l))&&(g(t),s&16))for(let _=0;_0?Kt||fa:null,Dd(),ia>0&&Kt&&Kt.push(e),e}function lf(e,r,a,o,m,g){return wd(Rl(e,r,a,o,m,g,!0))}function Ol(e,r,a,o,m){return wd(ot(e,r,a,o,m,!0))}function Rn(e){return e?e.__v_isVNode===!0:!1}function hr(e,r){return e.type===r.type&&e.key===r.key}function cf(e){}const ko="__vInternal",xd=({key:e})=>e??null,Qi=({ref:e,ref_key:r,ref_for:a})=>e!=null?lt(e)||yt(e)||xe(e)?{i:Dt,r:e,k:r,f:!!a}:e:null;function Rl(e,r=null,a=null,o=0,m=null,g=e===It?0:1,S=!1,s=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:r,key:r&&xd(r),ref:r&&Qi(r),scopeId:Ao,slotScopeIds:null,children:a,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:g,patchFlag:o,dynamicProps:m,dynamicChildren:null,appContext:null,ctx:Dt};return s?(Al(c,a),g&128&&e.normalize(c)):a&&(c.shapeFlag|=lt(a)?8:16),ia>0&&!S&&Kt&&(c.patchFlag>0||g&6)&&c.patchFlag!==32&&Kt.push(c),c}const ot=_f;function _f(e,r=null,a=null,o=0,m=null,g=!1){if((!e||e===Ed)&&(e=Ft),Rn(e)){const s=Fr(e,r,!0);return a&&Al(s,a),ia>0&&!g&&Kt&&(s.shapeFlag&6?Kt[Kt.indexOf(e)]=s:Kt.push(s)),s.patchFlag|=-2,s}if(hf(e)&&(e=e.__vccOpts),r){r=Md(r);let{class:s,style:c}=r;s&&!lt(s)&&(r.class=Si(s)),rt(c)&&(ll(c)&&!ye(c)&&(c=_t({},c)),r.style=Ei(c))}const S=lt(e)?1:rd(e)?128:nf(e)?64:rt(e)?4:xe(e)?2:0;return Rl(e,r,a,o,m,S,g,!0)}function Md(e){return e?ll(e)||ko in e?_t({},e):e:null}function Fr(e,r,a=!1){const{props:o,ref:m,patchFlag:g,children:S}=e,s=r?Ld(o||{},r):o;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:s,key:s&&xd(s),ref:r&&r.ref?a&&m?ye(m)?m.concat(Qi(r)):[m,Qi(r)]:Qi(r):m,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:S,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:r&&e.type!==It?g===-1?16:g|16:g,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Fr(e.ssContent),ssFallback:e.ssFallback&&Fr(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function Nl(e=" ",r=0){return ot(aa,null,e,r)}function df(e,r){const a=ot(Jn,null,e);return a.staticCount=r,a}function uf(e="",r=!1){return r?(Lo(),Ol(Ft,null,e)):ot(Ft,null,e)}function lr(e){return e==null||typeof e=="boolean"?ot(Ft):ye(e)?ot(It,null,e.slice()):typeof e=="object"?En(e):ot(aa,null,String(e))}function En(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Fr(e)}function Al(e,r){let a=0;const{shapeFlag:o}=e;if(r==null)r=null;else if(ye(r))a=16;else if(typeof r=="object")if(o&65){const m=r.default;m&&(m._c&&(m._d=!1),Al(e,m()),m._c&&(m._d=!0));return}else{a=32;const m=r._;!m&&!(ko in r)?r._ctx=Dt:m===3&&Dt&&(Dt.slots._===1?r._=1:(r._=2,e.patchFlag|=1024))}else xe(r)?(r={default:r,_ctx:Dt},a=32):(r=String(r),o&64?(a=16,r=[Nl(r)]):a=8);e.children=r,e.shapeFlag|=a}function Ld(...e){const r={};for(let a=0;act||Dt,Nn=e=>{ct=e,e.scope.on()},Tn=()=>{ct&&ct.scope.off(),ct=null};function Pd(e){return e.vnode.shapeFlag&4}let Na=!1;function Fd(e,r=!1){Na=r;const{props:a,children:o}=e.vnode,m=Pd(e);Wg(e,a,m,r),Zg(e,o);const g=m?gf(e,r):void 0;return Na=!1,g}function gf(e,r){const a=e.type;e.accessCache=Object.create(null),e.proxy=si(new Proxy(e.ctx,hs));const{setup:o}=a;if(o){const m=e.setupContext=o.length>1?Bd(e):null;Nn(e),ka();const g=Xr(o,e,0,[e.props,m]);if(Pa(),Tn(),rl(g)){if(g.then(Tn,Tn),r)return g.then(S=>{Os(e,S,r)}).catch(S=>{sa(S,e,0)});e.asyncDep=g}else Os(e,g,r)}else Ud(e,r)}function Os(e,r,a){xe(r)?e.type.__ssrInlineRender?e.ssrRender=r:e.render=r:rt(r)&&(e.setupState=dl(r)),Ud(e,a)}let io,Rs;function ff(e){io=e,Rs=r=>{r.render._rc&&(r.withProxy=new Proxy(r.ctx,qg))}}const Ef=()=>!io;function Ud(e,r,a){const o=e.type;if(!e.render){if(!r&&io&&!o.render){const m=o.template||yl(e).template;if(m){const{isCustomElement:g,compilerOptions:S}=e.appContext.config,{delimiters:s,compilerOptions:c}=o,t=_t(_t({isCustomElement:g,delimiters:s},S),c);o.render=io(m,t)}}e.render=o.render||Tr,Rs&&Rs(e)}Nn(e),ka(),Hg(e),Pa(),Tn()}function Sf(e){return new Proxy(e.attrs,{get(r,a){return Xt(e,"get","$attrs"),r[a]}})}function Bd(e){const r=o=>{e.exposed=o||{}};let a;return{get attrs(){return a||(a=Sf(e))},slots:e.slots,emit:e.emit,expose:r}}function Po(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(dl(si(e.exposed)),{get(r,a){if(a in r)return r[a];if(a in Za)return Za[a](e)},has(r,a){return a in r||a in Za}}))}function Ns(e,r=!0){return xe(e)?e.displayName||e.name:e.name||r&&e.__name}function hf(e){return xe(e)&&"__vccOpts"in e}const Gd=(e,r)=>ag(e,r,Na);function bf(){return null}function Tf(){return null}function yf(e){}function Cf(e,r){return null}function vf(){return Yd().slots}function Of(){return Yd().attrs}function Yd(){const e=In();return e.setupContext||(e.setupContext=Bd(e))}function Rf(e,r){const a=ye(e)?e.reduce((o,m)=>(o[m]={},o),{}):e;for(const o in r){const m=a[o];m?ye(m)||xe(m)?a[o]={type:m,default:r[o]}:m.default=r[o]:m===null&&(a[o]={default:r[o]})}return a}function Nf(e,r){const a={};for(const o in e)r.includes(o)||Object.defineProperty(a,o,{enumerable:!0,get:()=>e[o]});return a}function Af(e){const r=In();let a=e();return Tn(),rl(a)&&(a=a.catch(o=>{throw Nn(r),o})),[a,()=>Nn(r)]}function yn(e,r,a){const o=arguments.length;return o===2?rt(r)&&!ye(r)?Rn(r)?ot(e,null,[r]):ot(e,r):ot(e,null,r):(o>3?a=Array.prototype.slice.call(arguments,2):o===3&&Rn(a)&&(a=[a]),ot(e,r,a))}const qd=Symbol(""),Hd=()=>Ka(qd);function If(){}function Df(e,r,a,o){const m=a[o];if(m&&Vd(m,e))return m;const g=r();return g.memo=e.slice(),a[o]=g}function Vd(e,r){const a=e.memo;if(a.length!=r.length)return!1;for(let o=0;o0&&Kt&&Kt.push(e),!0}const zd="3.2.47",wf={createComponentInstance:kd,setupComponent:Fd,renderComponentRoot:Wi,setCurrentRenderingInstance:di,isVNode:Rn,normalizeVNode:lr},xf=wf,Mf=null,Lf=null,kf="http://www.w3.org/2000/svg",zn=typeof document<"u"?document:null,hc=zn&&zn.createElement("template"),Pf={insert:(e,r,a)=>{r.insertBefore(e,a||null)},remove:e=>{const r=e.parentNode;r&&r.removeChild(e)},createElement:(e,r,a,o)=>{const m=r?zn.createElementNS(kf,e):zn.createElement(e,a?{is:a}:void 0);return e==="select"&&o&&o.multiple!=null&&m.setAttribute("multiple",o.multiple),m},createText:e=>zn.createTextNode(e),createComment:e=>zn.createComment(e),setText:(e,r)=>{e.nodeValue=r},setElementText:(e,r)=>{e.textContent=r},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>zn.querySelector(e),setScopeId(e,r){e.setAttribute(r,"")},insertStaticContent(e,r,a,o,m,g){const S=a?a.previousSibling:r.lastChild;if(m&&(m===g||m.nextSibling))for(;r.insertBefore(m.cloneNode(!0),a),!(m===g||!(m=m.nextSibling)););else{hc.innerHTML=o?`${e}`:e;const s=hc.content;if(o){const c=s.firstChild;for(;c.firstChild;)s.appendChild(c.firstChild);s.removeChild(c)}r.insertBefore(s,a)}return[S?S.nextSibling:r.firstChild,a?a.previousSibling:r.lastChild]}};function Ff(e,r,a){const o=e._vtc;o&&(r=(r?[r,...o]:[...o]).join(" ")),r==null?e.removeAttribute("class"):a?e.setAttribute("class",r):e.className=r}function Uf(e,r,a){const o=e.style,m=lt(a);if(a&&!m){if(r&&!lt(r))for(const g in r)a[g]==null&&As(o,g,"");for(const g in a)As(o,g,a[g])}else{const g=o.display;m?r!==a&&(o.cssText=a):r&&e.removeAttribute("style"),"_vod"in e&&(o.display=g)}}const bc=/\s*!important$/;function As(e,r,a){if(ye(a))a.forEach(o=>As(e,r,o));else if(a==null&&(a=""),r.startsWith("--"))e.setProperty(r,a);else{const o=Bf(e,r);bc.test(a)?e.setProperty(mr(o),a.replace(bc,""),"important"):e[o]=a}}const Tc=["Webkit","Moz","ms"],jo={};function Bf(e,r){const a=jo[r];if(a)return a;let o=Zt(r);if(o!=="filter"&&o in e)return jo[r]=o;o=bi(o);for(let m=0;mWo||(zf.then(()=>Wo=0),Wo=Date.now());function jf(e,r){const a=o=>{if(!o._vts)o._vts=Date.now();else if(o._vts<=a.attached)return;cr(Wf(o,a.value),r,5,[o])};return a.value=e,a.attached=$f(),a}function Wf(e,r){if(ye(r)){const a=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{a.call(e),e._stopped=!0},r.map(o=>m=>!m._stopped&&o&&o(m))}else return r}const vc=/^on[a-z]/,Qf=(e,r,a,o,m=!1,g,S,s,c)=>{r==="class"?Ff(e,o,m):r==="style"?Uf(e,a,o):hi(r)?el(r)||Hf(e,r,a,o,S):(r[0]==="."?(r=r.slice(1),!0):r[0]==="^"?(r=r.slice(1),!1):Kf(e,r,o,m))?Yf(e,r,o,g,S,s,c):(r==="true-value"?e._trueValue=o:r==="false-value"&&(e._falseValue=o),Gf(e,r,o,m))};function Kf(e,r,a,o){return o?!!(r==="innerHTML"||r==="textContent"||r in e&&vc.test(r)&&xe(a)):r==="spellcheck"||r==="draggable"||r==="translate"||r==="form"||r==="list"&&e.tagName==="INPUT"||r==="type"&&e.tagName==="TEXTAREA"||vc.test(r)&<(a)?!1:r in e}function $d(e,r){const a=Fa(e);class o extends Fo{constructor(g){super(a,g,r)}}return o.def=a,o}const Zf=e=>$d(e,lu),Xf=typeof HTMLElement<"u"?HTMLElement:class{};class Fo extends Xf{constructor(r,a={},o){super(),this._def=r,this._props=a,this._instance=null,this._connected=!1,this._resolved=!1,this._numberProps=null,this.shadowRoot&&o?o(this._createVNode(),this.shadowRoot):(this.attachShadow({mode:"open"}),this._def.__asyncLoader||this._resolveProps(this._def))}connectedCallback(){this._connected=!0,this._instance||(this._resolved?this._update():this._resolveDef())}disconnectedCallback(){this._connected=!1,pl(()=>{this._connected||(ws(null,this.shadowRoot),this._instance=null)})}_resolveDef(){this._resolved=!0;for(let o=0;o{for(const m of o)this._setAttr(m.attributeName)}).observe(this,{attributes:!0});const r=(o,m=!1)=>{const{props:g,styles:S}=o;let s;if(g&&!ye(g))for(const c in g){const t=g[c];(t===Number||t&&t.type===Number)&&(c in this._props&&(this._props[c]=eo(this._props[c])),(s||(s=Object.create(null)))[Zt(c)]=!0)}this._numberProps=s,m&&this._resolveProps(o),this._applyStyles(S),this._update()},a=this._def.__asyncLoader;a?a().then(o=>r(o,!0)):r(this._def)}_resolveProps(r){const{props:a}=r,o=ye(a)?a:Object.keys(a||{});for(const m of Object.keys(this))m[0]!=="_"&&o.includes(m)&&this._setProp(m,this[m],!0,!1);for(const m of o.map(Zt))Object.defineProperty(this,m,{get(){return this._getProp(m)},set(g){this._setProp(m,g)}})}_setAttr(r){let a=this.getAttribute(r);const o=Zt(r);this._numberProps&&this._numberProps[o]&&(a=eo(a)),this._setProp(o,a,!1)}_getProp(r){return this._props[r]}_setProp(r,a,o=!0,m=!0){a!==this._props[r]&&(this._props[r]=a,m&&this._instance&&this._update(),o&&(a===!0?this.setAttribute(mr(r),""):typeof a=="string"||typeof a=="number"?this.setAttribute(mr(r),a+""):a||this.removeAttribute(mr(r))))}_update(){ws(this._createVNode(),this.shadowRoot)}_createVNode(){const r=ot(this._def,_t({},this._props));return this._instance||(r.ce=a=>{this._instance=a,a.isCE=!0;const o=(g,S)=>{this.dispatchEvent(new CustomEvent(g,{detail:S}))};a.emit=(g,...S)=>{o(g,S),mr(g)!==g&&o(mr(g),S)};let m=this;for(;m=m&&(m.parentNode||m.host);)if(m instanceof Fo){a.parent=m._instance,a.provides=m._instance.provides;break}}),r}_applyStyles(r){r&&r.forEach(a=>{const o=document.createElement("style");o.textContent=a,this.shadowRoot.appendChild(o)})}}function Jf(e="$style"){{const r=In();if(!r)return Je;const a=r.type.__cssModules;if(!a)return Je;const o=a[e];return o||Je}}function eE(e){const r=In();if(!r)return;const a=r.ut=(m=e(r.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${r.uid}"]`)).forEach(g=>Ds(g,m))},o=()=>{const m=e(r.proxy);Is(r.subTree,m),a(m)};id(o),Oi(()=>{const m=new MutationObserver(o);m.observe(r.subTree.el.parentNode,{childList:!0}),Mo(()=>m.disconnect())})}function Is(e,r){if(e.shapeFlag&128){const a=e.suspense;e=a.activeBranch,a.pendingBranch&&!a.isHydrating&&a.effects.push(()=>{Is(a.activeBranch,r)})}for(;e.component;)e=e.component.subTree;if(e.shapeFlag&1&&e.el)Ds(e.el,r);else if(e.type===It)e.children.forEach(a=>Is(a,r));else if(e.type===Jn){let{el:a,anchor:o}=e;for(;a&&(Ds(a,r),a!==o);)a=a.nextSibling}}function Ds(e,r){if(e.nodeType===1){const a=e.style;for(const o in r)a.setProperty(`--${o}`,r[o])}}const gn="transition",Ga="animation",Il=(e,{slots:r})=>yn(hl,Wd(e),r);Il.displayName="Transition";const jd={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},tE=Il.props=_t({},hl.props,jd),Yn=(e,r=[])=>{ye(e)?e.forEach(a=>a(...r)):e&&e(...r)},Oc=e=>e?ye(e)?e.some(r=>r.length>1):e.length>1:!1;function Wd(e){const r={};for(const w in e)w in jd||(r[w]=e[w]);if(e.css===!1)return r;const{name:a="v",type:o,duration:m,enterFromClass:g=`${a}-enter-from`,enterActiveClass:S=`${a}-enter-active`,enterToClass:s=`${a}-enter-to`,appearFromClass:c=g,appearActiveClass:t=S,appearToClass:n=s,leaveFromClass:i=`${a}-leave-from`,leaveActiveClass:l=`${a}-leave-active`,leaveToClass:_=`${a}-leave-to`}=e,d=rE(m),u=d&&d[0],p=d&&d[1],{onBeforeEnter:E,onEnter:f,onEnterCancelled:h,onLeave:b,onLeaveCancelled:C,onBeforeAppear:O=E,onAppear:T=f,onAppearCancelled:v=h}=r,R=(w,N,A)=>{fn(w,N?n:s),fn(w,N?t:S),A&&A()},I=(w,N)=>{w._isLeaving=!1,fn(w,i),fn(w,_),fn(w,l),N&&N()},x=w=>(N,A)=>{const k=w?T:f,L=()=>R(N,w,A);Yn(k,[N,L]),Rc(()=>{fn(N,w?c:g),$r(N,w?n:s),Oc(k)||Nc(N,o,u,L)})};return _t(r,{onBeforeEnter(w){Yn(E,[w]),$r(w,g),$r(w,S)},onBeforeAppear(w){Yn(O,[w]),$r(w,c),$r(w,t)},onEnter:x(!1),onAppear:x(!0),onLeave(w,N){w._isLeaving=!0;const A=()=>I(w,N);$r(w,i),Kd(),$r(w,l),Rc(()=>{w._isLeaving&&(fn(w,i),$r(w,_),Oc(b)||Nc(w,o,p,A))}),Yn(b,[w,A])},onEnterCancelled(w){R(w,!1),Yn(h,[w])},onAppearCancelled(w){R(w,!0),Yn(v,[w])},onLeaveCancelled(w){I(w),Yn(C,[w])}})}function rE(e){if(e==null)return null;if(rt(e))return[Qo(e.enter),Qo(e.leave)];{const r=Qo(e);return[r,r]}}function Qo(e){return eo(e)}function $r(e,r){r.split(/\s+/).forEach(a=>a&&e.classList.add(a)),(e._vtc||(e._vtc=new Set)).add(r)}function fn(e,r){r.split(/\s+/).forEach(o=>o&&e.classList.remove(o));const{_vtc:a}=e;a&&(a.delete(r),a.size||(e._vtc=void 0))}function Rc(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let nE=0;function Nc(e,r,a,o){const m=e._endId=++nE,g=()=>{m===e._endId&&o()};if(a)return setTimeout(g,a);const{type:S,timeout:s,propCount:c}=Qd(e,r);if(!S)return o();const t=S+"end";let n=0;const i=()=>{e.removeEventListener(t,l),g()},l=_=>{_.target===e&&++n>=c&&i()};setTimeout(()=>{n(a[d]||"").split(", "),m=o(`${gn}Delay`),g=o(`${gn}Duration`),S=Ac(m,g),s=o(`${Ga}Delay`),c=o(`${Ga}Duration`),t=Ac(s,c);let n=null,i=0,l=0;r===gn?S>0&&(n=gn,i=S,l=g.length):r===Ga?t>0&&(n=Ga,i=t,l=c.length):(i=Math.max(S,t),n=i>0?S>t?gn:Ga:null,l=n?n===gn?g.length:c.length:0);const _=n===gn&&/\b(transform|all)(,|$)/.test(o(`${gn}Property`).toString());return{type:n,timeout:i,propCount:l,hasTransform:_}}function Ac(e,r){for(;e.lengthIc(a)+Ic(e[o])))}function Ic(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function Kd(){return document.body.offsetHeight}const Zd=new WeakMap,Xd=new WeakMap,Jd={name:"TransitionGroup",props:_t({},tE,{tag:String,moveClass:String}),setup(e,{slots:r}){const a=In(),o=Sl();let m,g;return wo(()=>{if(!m.length)return;const S=e.moveClass||`${e.name||"v"}-move`;if(!cE(m[0].el,a.vnode.el,S))return;m.forEach(oE),m.forEach(sE);const s=m.filter(lE);Kd(),s.forEach(c=>{const t=c.el,n=t.style;$r(t,S),n.transform=n.webkitTransform=n.transitionDuration="";const i=t._moveCb=l=>{l&&l.target!==t||(!l||/transform$/.test(l.propertyName))&&(t.removeEventListener("transitionend",i),t._moveCb=null,fn(t,S))};t.addEventListener("transitionend",i)})}),()=>{const S=qe(e),s=Wd(S);let c=S.tag||It;m=g,g=r.default?Io(r.default()):[];for(let t=0;tdelete e.mode;Jd.props;const iE=Jd;function oE(e){const r=e.el;r._moveCb&&r._moveCb(),r._enterCb&&r._enterCb()}function sE(e){Xd.set(e,e.el.getBoundingClientRect())}function lE(e){const r=Zd.get(e),a=Xd.get(e),o=r.left-a.left,m=r.top-a.top;if(o||m){const g=e.el.style;return g.transform=g.webkitTransform=`translate(${o}px,${m}px)`,g.transitionDuration="0s",e}}function cE(e,r,a){const o=e.cloneNode();e._vtc&&e._vtc.forEach(S=>{S.split(/\s+/).forEach(s=>s&&o.classList.remove(s))}),a.split(/\s+/).forEach(S=>S&&o.classList.add(S)),o.style.display="none";const m=r.nodeType===1?r:r.parentNode;m.appendChild(o);const{hasTransform:g}=Qd(o);return m.removeChild(o),g}const An=e=>{const r=e.props["onUpdate:modelValue"]||!1;return ye(r)?a=>Sa(r,a):r};function _E(e){e.target.composing=!0}function Dc(e){const r=e.target;r.composing&&(r.composing=!1,r.dispatchEvent(new Event("input")))}const oo={created(e,{modifiers:{lazy:r,trim:a,number:o}},m){e._assign=An(m);const g=o||m.props&&m.props.type==="number";Qr(e,r?"change":"input",S=>{if(S.target.composing)return;let s=e.value;a&&(s=s.trim()),g&&(s=Ji(s)),e._assign(s)}),a&&Qr(e,"change",()=>{e.value=e.value.trim()}),r||(Qr(e,"compositionstart",_E),Qr(e,"compositionend",Dc),Qr(e,"change",Dc))},mounted(e,{value:r}){e.value=r??""},beforeUpdate(e,{value:r,modifiers:{lazy:a,trim:o,number:m}},g){if(e._assign=An(g),e.composing||document.activeElement===e&&e.type!=="range"&&(a||o&&e.value.trim()===r||(m||e.type==="number")&&Ji(e.value)===r))return;const S=r??"";e.value!==S&&(e.value=S)}},Dl={deep:!0,created(e,r,a){e._assign=An(a),Qr(e,"change",()=>{const o=e._modelValue,m=Aa(e),g=e.checked,S=e._assign;if(ye(o)){const s=ho(o,m),c=s!==-1;if(g&&!c)S(o.concat(m));else if(!g&&c){const t=[...o];t.splice(s,1),S(t)}}else if(oa(o)){const s=new Set(o);g?s.add(m):s.delete(m),S(s)}else S(tu(e,g))})},mounted:wc,beforeUpdate(e,r,a){e._assign=An(a),wc(e,r,a)}};function wc(e,{value:r,oldValue:a},o){e._modelValue=r,ye(r)?e.checked=ho(r,o.props.value)>-1:oa(r)?e.checked=r.has(o.props.value):r!==a&&(e.checked=vn(r,tu(e,!0)))}const wl={created(e,{value:r},a){e.checked=vn(r,a.props.value),e._assign=An(a),Qr(e,"change",()=>{e._assign(Aa(e))})},beforeUpdate(e,{value:r,oldValue:a},o){e._assign=An(o),r!==a&&(e.checked=vn(r,o.props.value))}},eu={deep:!0,created(e,{value:r,modifiers:{number:a}},o){const m=oa(r);Qr(e,"change",()=>{const g=Array.prototype.filter.call(e.options,S=>S.selected).map(S=>a?Ji(Aa(S)):Aa(S));e._assign(e.multiple?m?new Set(g):g:g[0])}),e._assign=An(o)},mounted(e,{value:r}){xc(e,r)},beforeUpdate(e,r,a){e._assign=An(a)},updated(e,{value:r}){xc(e,r)}};function xc(e,r){const a=e.multiple;if(!(a&&!ye(r)&&!oa(r))){for(let o=0,m=e.options.length;o-1:g.selected=r.has(S);else if(vn(Aa(g),r)){e.selectedIndex!==o&&(e.selectedIndex=o);return}}!a&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Aa(e){return"_value"in e?e._value:e.value}function tu(e,r){const a=r?"_trueValue":"_falseValue";return a in e?e[a]:r}const ru={created(e,r,a){Bi(e,r,a,null,"created")},mounted(e,r,a){Bi(e,r,a,null,"mounted")},beforeUpdate(e,r,a,o){Bi(e,r,a,o,"beforeUpdate")},updated(e,r,a,o){Bi(e,r,a,o,"updated")}};function nu(e,r){switch(e){case"SELECT":return eu;case"TEXTAREA":return oo;default:switch(r){case"checkbox":return Dl;case"radio":return wl;default:return oo}}}function Bi(e,r,a,o,m){const S=nu(e.tagName,a.props&&a.props.type)[m];S&&S(e,r,a,o)}function dE(){oo.getSSRProps=({value:e})=>({value:e}),wl.getSSRProps=({value:e},r)=>{if(r.props&&vn(r.props.value,e))return{checked:!0}},Dl.getSSRProps=({value:e},r)=>{if(ye(e)){if(r.props&&ho(e,r.props.value)>-1)return{checked:!0}}else if(oa(e)){if(r.props&&e.has(r.props.value))return{checked:!0}}else if(e)return{checked:!0}},ru.getSSRProps=(e,r)=>{if(typeof r.type!="string")return;const a=nu(r.type.toUpperCase(),r.props&&r.props.type);if(a.getSSRProps)return a.getSSRProps(e,r)}}const uE=["ctrl","shift","alt","meta"],pE={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,r)=>uE.some(a=>e[`${a}Key`]&&!r.includes(a))},mE=(e,r)=>(a,...o)=>{for(let m=0;ma=>{if(!("key"in a))return;const o=mr(a.key);if(r.some(m=>m===o||gE[m]===o))return e(a)},au={beforeMount(e,{value:r},{transition:a}){e._vod=e.style.display==="none"?"":e.style.display,a&&r?a.beforeEnter(e):Ya(e,r)},mounted(e,{value:r},{transition:a}){a&&r&&a.enter(e)},updated(e,{value:r,oldValue:a},{transition:o}){!r!=!a&&(o?r?(o.beforeEnter(e),Ya(e,!0),o.enter(e)):o.leave(e,()=>{Ya(e,!1)}):Ya(e,r))},beforeUnmount(e,{value:r}){Ya(e,r)}};function Ya(e,r){e.style.display=r?e._vod:"none"}function EE(){au.getSSRProps=({value:e})=>{if(!e)return{style:{display:"none"}}}}const iu=_t({patchProp:Qf},Pf);let ei,Mc=!1;function ou(){return ei||(ei=Rd(iu))}function su(){return ei=Mc?ei:Nd(iu),Mc=!0,ei}const ws=(...e)=>{ou().render(...e)},lu=(...e)=>{su().hydrate(...e)},cu=(...e)=>{const r=ou().createApp(...e),{mount:a}=r;return r.mount=o=>{const m=du(o);if(!m)return;const g=r._component;!xe(g)&&!g.render&&!g.template&&(g.template=m.innerHTML),m.innerHTML="";const S=a(m,!1,m instanceof SVGElement);return m instanceof Element&&(m.removeAttribute("v-cloak"),m.setAttribute("data-v-app","")),S},r},_u=(...e)=>{const r=su().createApp(...e),{mount:a}=r;return r.mount=o=>{const m=du(o);if(m)return a(m,!0,m instanceof SVGElement)},r};function du(e){return lt(e)?document.querySelector(e):e}let Lc=!1;const SE=()=>{Lc||(Lc=!0,dE(),EE())},hE=()=>{},bE=Object.freeze(Object.defineProperty({__proto__:null,BaseTransition:hl,Comment:Ft,EffectScope:al,Fragment:It,KeepAlive:wg,ReactiveEffect:Ti,Static:Jn,Suspense:bg,Teleport:sf,Text:aa,Transition:Il,TransitionGroup:iE,VueElement:Fo,assertNumber:og,callWithAsyncErrorHandling:cr,callWithErrorHandling:Xr,camelize:Zt,capitalize:bi,cloneVNode:Fr,compatUtils:Lf,compile:hE,computed:Gd,createApp:cu,createBlock:Ol,createCommentVNode:uf,createElementBlock:lf,createElementVNode:Rl,createHydrationRenderer:Nd,createPropsRestProxy:Nf,createRenderer:Rd,createSSRApp:_u,createSlots:Bg,createStaticVNode:df,createTextVNode:Nl,createVNode:ot,customRef:eg,defineAsyncComponent:Ig,defineComponent:Fa,defineCustomElement:$d,defineEmits:Tf,defineExpose:yf,defineProps:bf,defineSSRCustomElement:Zf,get devtools(){return pa},effect:Tm,effectScope:Em,getCurrentInstance:In,getCurrentScope:x_,getTransitionRawChildren:Io,guardReactiveProps:Md,h:yn,handleError:sa,hydrate:lu,initCustomFormatter:If,initDirectivesForSSR:SE,inject:Ka,isMemoSame:Vd,isProxy:ll,isReactive:Kn,isReadonly:ra,isRef:yt,isRuntimeOnly:Ef,isShallow:oi,isVNode:Rn,markRaw:si,mergeDefaults:Rf,mergeProps:Ld,nextTick:pl,normalizeClass:Si,normalizeProps:am,normalizeStyle:Ei,onActivated:ld,onBeforeMount:dd,onBeforeUnmount:xo,onBeforeUpdate:ud,onDeactivated:cd,onErrorCaptured:fd,onMounted:Oi,onRenderTracked:gd,onRenderTriggered:md,onScopeDispose:Sm,onServerPrefetch:pd,onUnmounted:Mo,onUpdated:wo,openBlock:Lo,popScopeId:pg,provide:ad,proxyRefs:dl,pushScopeId:ug,queuePostFlushCb:ml,reactive:yi,readonly:sl,ref:Zn,registerRuntimeCompiler:ff,render:ws,renderList:Ug,renderSlot:Gg,resolveComponent:kg,resolveDirective:Fg,resolveDynamicComponent:Pg,resolveFilter:Mf,resolveTransitionHooks:Ra,setBlockTracking:vs,setDevtoolsHook:ed,setTransitionHooks:na,shallowReactive:z_,shallowReadonly:Qm,shallowRef:$_,ssrContextKey:qd,ssrUtils:xf,stop:ym,toDisplayString:lm,toHandlerKey:Qa,toHandlers:Yg,toRaw:qe,toRef:Q_,toRefs:tg,transformVNodeArgs:cf,triggerRef:Zm,unref:W_,useAttrs:Of,useCssModule:Jf,useCssVars:eE,useSSRContext:Hd,useSlots:vf,useTransitionState:Sl,vModelCheckbox:Dl,vModelDynamic:ru,vModelRadio:wl,vModelSelect:eu,vModelText:oo,vShow:au,version:zd,warn:ig,watch:Ta,watchEffect:Og,watchPostEffect:id,watchSyncEffect:Rg,withAsyncContext:Af,withCtx:gl,withDefaults:Cf,withDirectives:Mg,withKeys:fE,withMemo:Df,withModifiers:mE,withScopeId:mg},Symbol.toStringTag,{value:"Module"}));var Pr=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function TE(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function uu(e){if(e.__esModule)return e;var r=e.default;if(typeof r=="function"){var a=function o(){if(this instanceof o){var m=[null];m.push.apply(m,arguments);var g=Function.bind.apply(r,m);return new g}return r.apply(this,arguments)};a.prototype=r.prototype}else a={};return Object.defineProperty(a,"__esModule",{value:!0}),Object.keys(e).forEach(function(o){var m=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(a,o,m.get?m:{enumerable:!0,get:function(){return e[o]}})}),a}var yE=function(r){return CE(r)&&!vE(r)};function CE(e){return!!e&&typeof e=="object"}function vE(e){var r=Object.prototype.toString.call(e);return r==="[object RegExp]"||r==="[object Date]"||NE(e)}var OE=typeof Symbol=="function"&&Symbol.for,RE=OE?Symbol.for("react.element"):60103;function NE(e){return e.$$typeof===RE}function AE(e){return Array.isArray(e)?[]:{}}function pi(e,r){return r.clone!==!1&&r.isMergeableObject(e)?Ia(AE(e),e,r):e}function IE(e,r,a){return e.concat(r).map(function(o){return pi(o,a)})}function DE(e,r){if(!r.customMerge)return Ia;var a=r.customMerge(e);return typeof a=="function"?a:Ia}function wE(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(r){return Object.propertyIsEnumerable.call(e,r)}):[]}function kc(e){return Object.keys(e).concat(wE(e))}function pu(e,r){try{return r in e}catch{return!1}}function xE(e,r){return pu(e,r)&&!(Object.hasOwnProperty.call(e,r)&&Object.propertyIsEnumerable.call(e,r))}function ME(e,r,a){var o={};return a.isMergeableObject(e)&&kc(e).forEach(function(m){o[m]=pi(e[m],a)}),kc(r).forEach(function(m){xE(e,m)||(pu(e,m)&&a.isMergeableObject(r[m])?o[m]=DE(m,a)(e[m],r[m],a):o[m]=pi(r[m],a))}),o}function Ia(e,r,a){a=a||{},a.arrayMerge=a.arrayMerge||IE,a.isMergeableObject=a.isMergeableObject||yE,a.cloneUnlessOtherwiseSpecified=pi;var o=Array.isArray(r),m=Array.isArray(e),g=o===m;return g?o?a.arrayMerge(e,r,a):ME(e,r,a):pi(r,a)}Ia.all=function(r,a){if(!Array.isArray(r))throw new Error("first argument should be an array");return r.reduce(function(o,m){return Ia(o,m,a)},{})};var LE=Ia,kE=LE,PE=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var r={},a=Symbol("test"),o=Object(a);if(typeof a=="string"||Object.prototype.toString.call(a)!=="[object Symbol]"||Object.prototype.toString.call(o)!=="[object Symbol]")return!1;var m=42;r[a]=m;for(a in r)return!1;if(typeof Object.keys=="function"&&Object.keys(r).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(r).length!==0)return!1;var g=Object.getOwnPropertySymbols(r);if(g.length!==1||g[0]!==a||!Object.prototype.propertyIsEnumerable.call(r,a))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var S=Object.getOwnPropertyDescriptor(r,a);if(S.value!==m||S.enumerable!==!0)return!1}return!0},Pc=typeof Symbol<"u"&&Symbol,FE=PE,UE=function(){return typeof Pc!="function"||typeof Symbol!="function"||typeof Pc("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:FE()},BE="Function.prototype.bind called on incompatible ",Ko=Array.prototype.slice,GE=Object.prototype.toString,YE="[object Function]",qE=function(r){var a=this;if(typeof a!="function"||GE.call(a)!==YE)throw new TypeError(BE+a);for(var o=Ko.call(arguments,1),m,g=function(){if(this instanceof m){var n=a.apply(this,o.concat(Ko.call(arguments)));return Object(n)===n?n:this}else return a.apply(r,o.concat(Ko.call(arguments)))},S=Math.max(0,a.length-o.length),s=[],c=0;c"u"?Ge:wr(Uint8Array),ta={"%AggregateError%":typeof AggregateError>"u"?Ge:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?Ge:ArrayBuffer,"%ArrayIteratorPrototype%":da?wr([][Symbol.iterator]()):Ge,"%AsyncFromSyncIteratorPrototype%":Ge,"%AsyncFunction%":ma,"%AsyncGenerator%":ma,"%AsyncGeneratorFunction%":ma,"%AsyncIteratorPrototype%":ma,"%Atomics%":typeof Atomics>"u"?Ge:Atomics,"%BigInt%":typeof BigInt>"u"?Ge:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?Ge:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?Ge:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?Ge:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":typeof Float32Array>"u"?Ge:Float32Array,"%Float64Array%":typeof Float64Array>"u"?Ge:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?Ge:FinalizationRegistry,"%Function%":mu,"%GeneratorFunction%":ma,"%Int8Array%":typeof Int8Array>"u"?Ge:Int8Array,"%Int16Array%":typeof Int16Array>"u"?Ge:Int16Array,"%Int32Array%":typeof Int32Array>"u"?Ge:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":da?wr(wr([][Symbol.iterator]())):Ge,"%JSON%":typeof JSON=="object"?JSON:Ge,"%Map%":typeof Map>"u"?Ge:Map,"%MapIteratorPrototype%":typeof Map>"u"||!da?Ge:wr(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?Ge:Promise,"%Proxy%":typeof Proxy>"u"?Ge:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":typeof Reflect>"u"?Ge:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?Ge:Set,"%SetIteratorPrototype%":typeof Set>"u"||!da?Ge:wr(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?Ge:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":da?wr(""[Symbol.iterator]()):Ge,"%Symbol%":da?Symbol:Ge,"%SyntaxError%":Da,"%ThrowTypeError%":$E,"%TypedArray%":jE,"%TypeError%":ya,"%Uint8Array%":typeof Uint8Array>"u"?Ge:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?Ge:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?Ge:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?Ge:Uint32Array,"%URIError%":URIError,"%WeakMap%":typeof WeakMap>"u"?Ge:WeakMap,"%WeakRef%":typeof WeakRef>"u"?Ge:WeakRef,"%WeakSet%":typeof WeakSet>"u"?Ge:WeakSet};try{null.error}catch(e){var WE=wr(wr(e));ta["%Error.prototype%"]=WE}var QE=function e(r){var a;if(r==="%AsyncFunction%")a=Zo("async function () {}");else if(r==="%GeneratorFunction%")a=Zo("function* () {}");else if(r==="%AsyncGeneratorFunction%")a=Zo("async function* () {}");else if(r==="%AsyncGenerator%"){var o=e("%AsyncGeneratorFunction%");o&&(a=o.prototype)}else if(r==="%AsyncIteratorPrototype%"){var m=e("%AsyncGenerator%");m&&(a=wr(m.prototype))}return ta[r]=a,a},Fc={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},Ri=xl,so=zE,KE=Ri.call(Function.call,Array.prototype.concat),ZE=Ri.call(Function.apply,Array.prototype.splice),Uc=Ri.call(Function.call,String.prototype.replace),lo=Ri.call(Function.call,String.prototype.slice),XE=Ri.call(Function.call,RegExp.prototype.exec),JE=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,eS=/\\(\\)?/g,tS=function(r){var a=lo(r,0,1),o=lo(r,-1);if(a==="%"&&o!=="%")throw new Da("invalid intrinsic syntax, expected closing `%`");if(o==="%"&&a!=="%")throw new Da("invalid intrinsic syntax, expected opening `%`");var m=[];return Uc(r,JE,function(g,S,s,c){m[m.length]=s?Uc(c,eS,"$1"):S||g}),m},rS=function(r,a){var o=r,m;if(so(Fc,o)&&(m=Fc[o],o="%"+m[0]+"%"),so(ta,o)){var g=ta[o];if(g===ma&&(g=QE(o)),typeof g>"u"&&!a)throw new ya("intrinsic "+r+" exists, but is not available. Please file an issue!");return{alias:m,name:o,value:g}}throw new Da("intrinsic "+r+" does not exist!")},Ml=function(r,a){if(typeof r!="string"||r.length===0)throw new ya("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof a!="boolean")throw new ya('"allowMissing" argument must be a boolean');if(XE(/^%?[^%]*%?$/,r)===null)throw new Da("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var o=tS(r),m=o.length>0?o[0]:"",g=rS("%"+m+"%",a),S=g.name,s=g.value,c=!1,t=g.alias;t&&(m=t[0],ZE(o,KE([0,1],t)));for(var n=1,i=!0;n=o.length){var u=ea(s,l);i=!!u,i&&"get"in u&&!("originalValue"in u.get)?s=u.get:s=s[l]}else i=so(s,l),s=s[l];i&&!c&&(ta[S]=s)}}return s},xs={},nS={get exports(){return xs},set exports(e){xs=e}};(function(e){var r=xl,a=Ml,o=a("%Function.prototype.apply%"),m=a("%Function.prototype.call%"),g=a("%Reflect.apply%",!0)||r.call(m,o),S=a("%Object.getOwnPropertyDescriptor%",!0),s=a("%Object.defineProperty%",!0),c=a("%Math.max%");if(s)try{s({},"a",{value:1})}catch{s=null}e.exports=function(i){var l=g(r,m,arguments);if(S&&s){var _=S(l,"length");_.configurable&&s(l,"length",{value:1+c(0,i.length-(arguments.length-1))})}return l};var t=function(){return g(r,o,arguments)};s?s(e.exports,"apply",{value:t}):e.exports.apply=t})(nS);var gu=Ml,fu=xs,aS=fu(gu("String.prototype.indexOf")),iS=function(r,a){var o=gu(r,!!a);return typeof o=="function"&&aS(r,".prototype.")>-1?fu(o):o};const oS={},sS=Object.freeze(Object.defineProperty({__proto__:null,default:oS},Symbol.toStringTag,{value:"Module"})),lS=uu(sS);var Ll=typeof Map=="function"&&Map.prototype,Jo=Object.getOwnPropertyDescriptor&&Ll?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,co=Ll&&Jo&&typeof Jo.get=="function"?Jo.get:null,Bc=Ll&&Map.prototype.forEach,kl=typeof Set=="function"&&Set.prototype,es=Object.getOwnPropertyDescriptor&&kl?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,_o=kl&&es&&typeof es.get=="function"?es.get:null,Gc=kl&&Set.prototype.forEach,cS=typeof WeakMap=="function"&&WeakMap.prototype,ti=cS?WeakMap.prototype.has:null,_S=typeof WeakSet=="function"&&WeakSet.prototype,ri=_S?WeakSet.prototype.has:null,dS=typeof WeakRef=="function"&&WeakRef.prototype,Yc=dS?WeakRef.prototype.deref:null,uS=Boolean.prototype.valueOf,pS=Object.prototype.toString,mS=Function.prototype.toString,gS=String.prototype.match,Pl=String.prototype.slice,hn=String.prototype.replace,fS=String.prototype.toUpperCase,qc=String.prototype.toLowerCase,Eu=RegExp.prototype.test,Hc=Array.prototype.concat,xr=Array.prototype.join,ES=Array.prototype.slice,Vc=Math.floor,Ms=typeof BigInt=="function"?BigInt.prototype.valueOf:null,ts=Object.getOwnPropertySymbols,Ls=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,wa=typeof Symbol=="function"&&typeof Symbol.iterator=="object",Ut=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===wa||"symbol")?Symbol.toStringTag:null,Su=Object.prototype.propertyIsEnumerable,zc=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(e){return e.__proto__}:null);function $c(e,r){if(e===1/0||e===-1/0||e!==e||e&&e>-1e3&&e<1e3||Eu.call(/e/,r))return r;var a=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof e=="number"){var o=e<0?-Vc(-e):Vc(e);if(o!==e){var m=String(o),g=Pl.call(r,m.length+1);return hn.call(m,a,"$&_")+"."+hn.call(hn.call(g,/([0-9]{3})/g,"$&_"),/_$/,"")}}return hn.call(r,a,"$&_")}var ks=lS,jc=ks.custom,Wc=bu(jc)?jc:null,SS=function e(r,a,o,m){var g=a||{};if(Sn(g,"quoteStyle")&&g.quoteStyle!=="single"&&g.quoteStyle!=="double")throw new TypeError('option "quoteStyle" must be "single" or "double"');if(Sn(g,"maxStringLength")&&(typeof g.maxStringLength=="number"?g.maxStringLength<0&&g.maxStringLength!==1/0:g.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var S=Sn(g,"customInspect")?g.customInspect:!0;if(typeof S!="boolean"&&S!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(Sn(g,"indent")&&g.indent!==null&&g.indent!==" "&&!(parseInt(g.indent,10)===g.indent&&g.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(Sn(g,"numericSeparator")&&typeof g.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var s=g.numericSeparator;if(typeof r>"u")return"undefined";if(r===null)return"null";if(typeof r=="boolean")return r?"true":"false";if(typeof r=="string")return yu(r,g);if(typeof r=="number"){if(r===0)return 1/0/r>0?"0":"-0";var c=String(r);return s?$c(r,c):c}if(typeof r=="bigint"){var t=String(r)+"n";return s?$c(r,t):t}var n=typeof g.depth>"u"?5:g.depth;if(typeof o>"u"&&(o=0),o>=n&&n>0&&typeof r=="object")return Ps(r)?"[Array]":"[Object]";var i=PS(g,o);if(typeof m>"u")m=[];else if(Tu(m,r)>=0)return"[Circular]";function l(N,A,k){if(A&&(m=ES.call(m),m.push(A)),k){var L={depth:g.depth};return Sn(g,"quoteStyle")&&(L.quoteStyle=g.quoteStyle),e(N,L,o+1,m)}return e(N,g,o+1,m)}if(typeof r=="function"&&!Qc(r)){var _=NS(r),d=Gi(r,l);return"[Function"+(_?": "+_:" (anonymous)")+"]"+(d.length>0?" { "+xr.call(d,", ")+" }":"")}if(bu(r)){var u=wa?hn.call(String(r),/^(Symbol\(.*\))_[^)]*$/,"$1"):Ls.call(r);return typeof r=="object"&&!wa?qa(u):u}if(MS(r)){for(var p="<"+qc.call(String(r.nodeName)),E=r.attributes||[],f=0;f",p}if(Ps(r)){if(r.length===0)return"[]";var h=Gi(r,l);return i&&!kS(h)?"["+Fs(h,i)+"]":"[ "+xr.call(h,", ")+" ]"}if(TS(r)){var b=Gi(r,l);return!("cause"in Error.prototype)&&"cause"in r&&!Su.call(r,"cause")?"{ ["+String(r)+"] "+xr.call(Hc.call("[cause]: "+l(r.cause),b),", ")+" }":b.length===0?"["+String(r)+"]":"{ ["+String(r)+"] "+xr.call(b,", ")+" }"}if(typeof r=="object"&&S){if(Wc&&typeof r[Wc]=="function"&&ks)return ks(r,{depth:n-o});if(S!=="symbol"&&typeof r.inspect=="function")return r.inspect()}if(AS(r)){var C=[];return Bc&&Bc.call(r,function(N,A){C.push(l(A,r,!0)+" => "+l(N,r))}),Kc("Map",co.call(r),C,i)}if(wS(r)){var O=[];return Gc&&Gc.call(r,function(N){O.push(l(N,r))}),Kc("Set",_o.call(r),O,i)}if(IS(r))return rs("WeakMap");if(xS(r))return rs("WeakSet");if(DS(r))return rs("WeakRef");if(CS(r))return qa(l(Number(r)));if(OS(r))return qa(l(Ms.call(r)));if(vS(r))return qa(uS.call(r));if(yS(r))return qa(l(String(r)));if(!bS(r)&&!Qc(r)){var T=Gi(r,l),v=zc?zc(r)===Object.prototype:r instanceof Object||r.constructor===Object,R=r instanceof Object?"":"null prototype",I=!v&&Ut&&Object(r)===r&&Ut in r?Pl.call(Dn(r),8,-1):R?"Object":"",x=v||typeof r.constructor!="function"?"":r.constructor.name?r.constructor.name+" ":"",w=x+(I||R?"["+xr.call(Hc.call([],I||[],R||[]),": ")+"] ":"");return T.length===0?w+"{}":i?w+"{"+Fs(T,i)+"}":w+"{ "+xr.call(T,", ")+" }"}return String(r)};function hu(e,r,a){var o=(a.quoteStyle||r)==="double"?'"':"'";return o+e+o}function hS(e){return hn.call(String(e),/"/g,""")}function Ps(e){return Dn(e)==="[object Array]"&&(!Ut||!(typeof e=="object"&&Ut in e))}function bS(e){return Dn(e)==="[object Date]"&&(!Ut||!(typeof e=="object"&&Ut in e))}function Qc(e){return Dn(e)==="[object RegExp]"&&(!Ut||!(typeof e=="object"&&Ut in e))}function TS(e){return Dn(e)==="[object Error]"&&(!Ut||!(typeof e=="object"&&Ut in e))}function yS(e){return Dn(e)==="[object String]"&&(!Ut||!(typeof e=="object"&&Ut in e))}function CS(e){return Dn(e)==="[object Number]"&&(!Ut||!(typeof e=="object"&&Ut in e))}function vS(e){return Dn(e)==="[object Boolean]"&&(!Ut||!(typeof e=="object"&&Ut in e))}function bu(e){if(wa)return e&&typeof e=="object"&&e instanceof Symbol;if(typeof e=="symbol")return!0;if(!e||typeof e!="object"||!Ls)return!1;try{return Ls.call(e),!0}catch{}return!1}function OS(e){if(!e||typeof e!="object"||!Ms)return!1;try{return Ms.call(e),!0}catch{}return!1}var RS=Object.prototype.hasOwnProperty||function(e){return e in this};function Sn(e,r){return RS.call(e,r)}function Dn(e){return pS.call(e)}function NS(e){if(e.name)return e.name;var r=gS.call(mS.call(e),/^function\s*([\w$]+)/);return r?r[1]:null}function Tu(e,r){if(e.indexOf)return e.indexOf(r);for(var a=0,o=e.length;ar.maxStringLength){var a=e.length-r.maxStringLength,o="... "+a+" more character"+(a>1?"s":"");return yu(Pl.call(e,0,r.maxStringLength),r)+o}var m=hn.call(hn.call(e,/(['\\])/g,"\\$1"),/[\x00-\x1f]/g,LS);return hu(m,"single",r)}function LS(e){var r=e.charCodeAt(0),a={8:"b",9:"t",10:"n",12:"f",13:"r"}[r];return a?"\\"+a:"\\x"+(r<16?"0":"")+fS.call(r.toString(16))}function qa(e){return"Object("+e+")"}function rs(e){return e+" { ? }"}function Kc(e,r,a,o){var m=o?Fs(a,o):xr.call(a,", ");return e+" ("+r+") {"+m+"}"}function kS(e){for(var r=0;r=0)return!1;return!0}function PS(e,r){var a;if(e.indent===" ")a=" ";else if(typeof e.indent=="number"&&e.indent>0)a=xr.call(Array(e.indent+1)," ");else return null;return{base:a,prev:xr.call(Array(r+1),a)}}function Fs(e,r){if(e.length===0)return"";var a=` +`+r.prev+r.base;return a+xr.call(e,","+a)+` +`+r.prev}function Gi(e,r){var a=Ps(e),o=[];if(a){o.length=e.length;for(var m=0;m1;){var a=r.pop(),o=a.obj[a.prop];if($n(o)){for(var m=[],g=0;g=48&&t<=57||t>=65&&t<=90||t>=97&&t<=122||g===ZS.RFC1738&&(t===40||t===41)){s+=S.charAt(c);continue}if(t<128){s=s+Ar[t];continue}if(t<2048){s=s+(Ar[192|t>>6]+Ar[128|t&63]);continue}if(t<55296||t>=57344){s=s+(Ar[224|t>>12]+Ar[128|t>>6&63]+Ar[128|t&63]);continue}c+=1,t=65536+((t&1023)<<10|S.charCodeAt(c)&1023),s+=Ar[240|t>>18]+Ar[128|t>>12&63]+Ar[128|t>>6&63]+Ar[128|t&63]}return s},nh=function(r){for(var a=[{obj:{o:r},prop:"o"}],o=[],m=0;m"u"&&(h=0)}if(typeof c=="function"?E=c(a,E):E instanceof Date?E=i(E):o==="comma"&&Wr(E)&&(E=Ki.maybeMap(E,function(L){return L instanceof Date?i(L):L})),E===null){if(g)return s&&!d?s(a,kt.encoder,u,"key",l):a;E=""}if(dh(E)||Ki.isBuffer(E)){if(s){var O=d?a:s(a,kt.encoder,u,"key",l);return[_(O)+"="+_(s(E,kt.encoder,u,"value",l))]}return[_(a)+"="+_(String(E))]}var T=[];if(typeof E>"u")return T;var v;if(o==="comma"&&Wr(E))d&&s&&(E=Ki.maybeMap(E,s)),v=[{value:E.length>0?E.join(",")||null:void 0}];else if(Wr(c))v=c;else{var R=Object.keys(E);v=t?R.sort(t):R}for(var I=m&&Wr(E)&&E.length===1?a+"[]":a,x=0;x"u"?kt.allowDots:!!r.allowDots,charset:a,charsetSentinel:typeof r.charsetSentinel=="boolean"?r.charsetSentinel:kt.charsetSentinel,delimiter:typeof r.delimiter>"u"?kt.delimiter:r.delimiter,encode:typeof r.encode=="boolean"?r.encode:kt.encode,encoder:typeof r.encoder=="function"?r.encoder:kt.encoder,encodeValuesOnly:typeof r.encodeValuesOnly=="boolean"?r.encodeValuesOnly:kt.encodeValuesOnly,filter:g,format:o,formatter:m,serializeDate:typeof r.serializeDate=="function"?r.serializeDate:kt.serializeDate,skipNulls:typeof r.skipNulls=="boolean"?r.skipNulls:kt.skipNulls,sort:typeof r.sort=="function"?r.sort:null,strictNullHandling:typeof r.strictNullHandling=="boolean"?r.strictNullHandling:kt.strictNullHandling}},mh=function(e,r){var a=e,o=ph(r),m,g;typeof o.filter=="function"?(g=o.filter,a=g("",a)):Wr(o.filter)&&(g=o.filter,m=g);var S=[];if(typeof a!="object"||a===null)return"";var s;r&&r.arrayFormat in Zc?s=r.arrayFormat:r&&"indices"in r?s=r.indices?"indices":"repeat":s="indices";var c=Zc[s];if(r&&"commaRoundTrip"in r&&typeof r.commaRoundTrip!="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");var t=c==="comma"&&r&&r.commaRoundTrip;m||(m=Object.keys(a)),o.sort&&m.sort(o.sort);for(var n=Ou(),i=0;i0?d+_:""},xa=vu,Us=Object.prototype.hasOwnProperty,gh=Array.isArray,Tt={allowDots:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decoder:xa.decode,delimiter:"&",depth:5,ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},fh=function(e){return e.replace(/&#(\d+);/g,function(r,a){return String.fromCharCode(parseInt(a,10))})},Nu=function(e,r){return e&&typeof e=="string"&&r.comma&&e.indexOf(",")>-1?e.split(","):e},Eh="utf8=%26%2310003%3B",Sh="utf8=%E2%9C%93",hh=function(r,a){var o={},m=a.ignoreQueryPrefix?r.replace(/^\?/,""):r,g=a.parameterLimit===1/0?void 0:a.parameterLimit,S=m.split(a.delimiter,g),s=-1,c,t=a.charset;if(a.charsetSentinel)for(c=0;c-1&&(d=gh(d)?[d]:d),Us.call(o,_)?o[_]=xa.combine(o[_],d):o[_]=d}return o},bh=function(e,r,a,o){for(var m=o?r:Nu(r,a),g=e.length-1;g>=0;--g){var S,s=e[g];if(s==="[]"&&a.parseArrays)S=[].concat(m);else{S=a.plainObjects?Object.create(null):{};var c=s.charAt(0)==="["&&s.charAt(s.length-1)==="]"?s.slice(1,-1):s,t=parseInt(c,10);!a.parseArrays&&c===""?S={0:m}:!isNaN(t)&&s!==c&&String(t)===c&&t>=0&&a.parseArrays&&t<=a.arrayLimit?(S=[],S[t]=m):c!=="__proto__"&&(S[c]=m)}m=S}return m},Th=function(r,a,o,m){if(r){var g=o.allowDots?r.replace(/\.([^.[]+)/g,"[$1]"):r,S=/(\[[^[\]]*])/,s=/(\[[^[\]]*])/g,c=o.depth>0&&S.exec(g),t=c?g.slice(0,c.index):g,n=[];if(t){if(!o.plainObjects&&Us.call(Object.prototype,t)&&!o.allowPrototypes)return;n.push(t)}for(var i=0;o.depth>0&&(c=s.exec(g))!==null&&i"u"?Tt.charset:r.charset;return{allowDots:typeof r.allowDots>"u"?Tt.allowDots:!!r.allowDots,allowPrototypes:typeof r.allowPrototypes=="boolean"?r.allowPrototypes:Tt.allowPrototypes,allowSparse:typeof r.allowSparse=="boolean"?r.allowSparse:Tt.allowSparse,arrayLimit:typeof r.arrayLimit=="number"?r.arrayLimit:Tt.arrayLimit,charset:a,charsetSentinel:typeof r.charsetSentinel=="boolean"?r.charsetSentinel:Tt.charsetSentinel,comma:typeof r.comma=="boolean"?r.comma:Tt.comma,decoder:typeof r.decoder=="function"?r.decoder:Tt.decoder,delimiter:typeof r.delimiter=="string"||xa.isRegExp(r.delimiter)?r.delimiter:Tt.delimiter,depth:typeof r.depth=="number"||r.depth===!1?+r.depth:Tt.depth,ignoreQueryPrefix:r.ignoreQueryPrefix===!0,interpretNumericEntities:typeof r.interpretNumericEntities=="boolean"?r.interpretNumericEntities:Tt.interpretNumericEntities,parameterLimit:typeof r.parameterLimit=="number"?r.parameterLimit:Tt.parameterLimit,parseArrays:r.parseArrays!==!1,plainObjects:typeof r.plainObjects=="boolean"?r.plainObjects:Tt.plainObjects,strictNullHandling:typeof r.strictNullHandling=="boolean"?r.strictNullHandling:Tt.strictNullHandling}},Ch=function(e,r){var a=yh(r);if(e===""||e===null||typeof e>"u")return a.plainObjects?Object.create(null):{};for(var o=typeof e=="string"?hh(e,a):e,m=a.plainObjects?Object.create(null):{},g=Object.keys(o),S=0;S
'};a.configure=function(d){var u,p;for(u in d)p=d[u],p!==void 0&&d.hasOwnProperty(u)&&(o[u]=p);return this},a.status=null,a.set=function(d){var u=a.isStarted();d=m(d,o.minimum,1),a.status=d===1?null:d;var p=a.render(!u),E=p.querySelector(o.barSelector),f=o.speed,h=o.easing;return p.offsetWidth,s(function(b){o.positionUsing===""&&(o.positionUsing=a.getPositioningCSS()),c(E,S(d,f,h)),d===1?(c(p,{transition:"none",opacity:1}),p.offsetWidth,setTimeout(function(){c(p,{transition:"all "+f+"ms linear",opacity:0}),setTimeout(function(){a.remove(),b()},f)},f)):setTimeout(b,f)}),this},a.isStarted=function(){return typeof a.status=="number"},a.start=function(){a.status||a.set(0);var d=function(){setTimeout(function(){a.status&&(a.trickle(),d())},o.trickleSpeed)};return o.trickle&&d(),this},a.done=function(d){return!d&&!a.status?this:a.inc(.3+.5*Math.random()).set(1)},a.inc=function(d){var u=a.status;return u?(typeof d!="number"&&(d=(1-u)*m(Math.random()*u,.1,.95)),u=m(u+d,0,.994),a.set(u)):a.start()},a.trickle=function(){return a.inc(Math.random()*o.trickleRate)},function(){var d=0,u=0;a.promise=function(p){return!p||p.state()==="resolved"?this:(u===0&&a.start(),d++,u++,p.always(function(){u--,u===0?(d=0,a.done()):a.set((d-u)/d)}),this)}}(),a.render=function(d){if(a.isRendered())return document.getElementById("nprogress");n(document.documentElement,"nprogress-busy");var u=document.createElement("div");u.id="nprogress",u.innerHTML=o.template;var p=u.querySelector(o.barSelector),E=d?"-100":g(a.status||0),f=document.querySelector(o.parent),h;return c(p,{transition:"all 0 linear",transform:"translate3d("+E+"%,0,0)"}),o.showSpinner||(h=u.querySelector(o.spinnerSelector),h&&_(h)),f!=document.body&&n(f,"nprogress-custom-parent"),f.appendChild(u),u},a.remove=function(){i(document.documentElement,"nprogress-busy"),i(document.querySelector(o.parent),"nprogress-custom-parent");var d=document.getElementById("nprogress");d&&_(d)},a.isRendered=function(){return!!document.getElementById("nprogress")},a.getPositioningCSS=function(){var d=document.body.style,u="WebkitTransform"in d?"Webkit":"MozTransform"in d?"Moz":"msTransform"in d?"ms":"OTransform"in d?"O":"";return u+"Perspective"in d?"translate3d":u+"Transform"in d?"translate":"margin"};function m(d,u,p){return dp?p:d}function g(d){return(-1+d)*100}function S(d,u,p){var E;return o.positionUsing==="translate3d"?E={transform:"translate3d("+g(d)+"%,0,0)"}:o.positionUsing==="translate"?E={transform:"translate("+g(d)+"%,0)"}:E={"margin-left":g(d)+"%"},E.transition="all "+u+"ms "+p,E}var s=function(){var d=[];function u(){var p=d.shift();p&&p(u)}return function(p){d.push(p),d.length==1&&u()}}(),c=function(){var d=["Webkit","O","Moz","ms"],u={};function p(b){return b.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(C,O){return O.toUpperCase()})}function E(b){var C=document.body.style;if(b in C)return b;for(var O=d.length,T=b.charAt(0).toUpperCase()+b.slice(1),v;O--;)if(v=d[O]+T,v in C)return v;return b}function f(b){return b=p(b),u[b]||(u[b]=E(b))}function h(b,C,O){C=f(C),b.style[C]=O}return function(b,C){var O=arguments,T,v;if(O.length==2)for(T in C)v=C[T],v!==void 0&&C.hasOwnProperty(T)&&h(b,T,v);else h(b,O[1],O[2])}}();function t(d,u){var p=typeof d=="string"?d:l(d);return p.indexOf(" "+u+" ")>=0}function n(d,u){var p=l(d),E=p+u;t(p,u)||(d.className=E.substring(1))}function i(d,u){var p=l(d),E;t(d,u)&&(E=p.replace(" "+u+" "," "),d.className=E.substring(1,E.length-1))}function l(d){return(" "+(d.className||"")+" ").replace(/\s+/gi," ")}function _(d){d&&d.parentNode&&d.parentNode.removeChild(d)}return a})})(Nh);const Lr=Bs;function Au(e,r){let a;return function(...o){clearTimeout(a),a=setTimeout(()=>e.apply(this,o),r)}}function rn(e,r){return document.dispatchEvent(new CustomEvent(`inertia:${e}`,r))}var Ah=e=>rn("before",{cancelable:!0,detail:{visit:e}}),Ih=e=>rn("error",{detail:{errors:e}}),Dh=e=>rn("exception",{cancelable:!0,detail:{exception:e}}),e_=e=>rn("finish",{detail:{visit:e}}),wh=e=>rn("invalid",{cancelable:!0,detail:{response:e}}),Ha=e=>rn("navigate",{detail:{page:e}}),xh=e=>rn("progress",{detail:{progress:e}}),Mh=e=>rn("start",{detail:{visit:e}}),Lh=e=>rn("success",{detail:{page:e}});function Gs(e){return e instanceof File||e instanceof Blob||e instanceof FileList&&e.length>0||e instanceof FormData&&Array.from(e.values()).some(r=>Gs(r))||typeof e=="object"&&e!==null&&Object.values(e).some(r=>Gs(r))}function Iu(e,r=new FormData,a=null){e=e||{};for(let o in e)Object.prototype.hasOwnProperty.call(e,o)&&wu(r,Du(a,o),e[o]);return r}function Du(e,r){return e?e+"["+r+"]":r}function wu(e,r,a){if(Array.isArray(a))return Array.from(a.keys()).forEach(o=>wu(e,Du(r,o.toString()),a[o]));if(a instanceof Date)return e.append(r,a.toISOString());if(a instanceof File)return e.append(r,a,a.name);if(a instanceof Blob)return e.append(r,a);if(typeof a=="boolean")return e.append(r,a?"1":"0");if(typeof a=="string")return e.append(r,a);if(typeof a=="number")return e.append(r,`${a}`);if(a==null)return e.append(r,"");Iu(a,e,r)}var kh={modal:null,listener:null,show(e){typeof e=="object"&&(e=`All Inertia requests must receive a valid Inertia response, however a plain JSON response was received.
${JSON.stringify(e)}`);let r=document.createElement("html");r.innerHTML=e,r.querySelectorAll("a").forEach(o=>o.setAttribute("target","_top")),this.modal=document.createElement("div"),this.modal.style.position="fixed",this.modal.style.width="100vw",this.modal.style.height="100vh",this.modal.style.padding="50px",this.modal.style.boxSizing="border-box",this.modal.style.backgroundColor="rgba(0, 0, 0, .6)",this.modal.style.zIndex=2e5,this.modal.addEventListener("click",()=>this.hide());let a=document.createElement("iframe");if(a.style.backgroundColor="white",a.style.borderRadius="5px",a.style.width="100%",a.style.height="100%",this.modal.appendChild(a),document.body.prepend(this.modal),document.body.style.overflow="hidden",!a.contentWindow)throw new Error("iframe not yet ready.");a.contentWindow.document.open(),a.contentWindow.document.write(r.outerHTML),a.contentWindow.document.close(),this.listener=this.hideOnEscape.bind(this),document.addEventListener("keydown",this.listener)},hide(){this.modal.outerHTML="",this.modal=null,document.body.style.overflow="visible",document.removeEventListener("keydown",this.listener)},hideOnEscape(e){e.keyCode===27&&this.hide()}};function ua(e){return new URL(e.toString(),window.location.toString())}function xu(e,r,a,o="brackets"){let m=/^https?:\/\//.test(r.toString()),g=m||r.toString().startsWith("/"),S=!g&&!r.toString().startsWith("#")&&!r.toString().startsWith("?"),s=r.toString().includes("?")||e==="get"&&Object.keys(a).length,c=r.toString().includes("#"),t=new URL(r.toString(),"http://localhost");return e==="get"&&Object.keys(a).length&&(t.search=Jc.stringify(kE(Jc.parse(t.search,{ignoreQueryPrefix:!0}),a),{encodeValuesOnly:!0,arrayFormat:o}),a={}),[[m?`${t.protocol}//${t.host}`:"",g?t.pathname:"",S?t.pathname.substring(1):"",s?t.search:"",c?t.hash:""].join(""),a]}function Va(e){return e=new URL(e.href),e.hash="",e}var t_=typeof window>"u",Ph=class{constructor(){this.visitId=null}init({initialPage:r,resolveComponent:a,swapComponent:o}){this.page=r,this.resolveComponent=a,this.swapComponent=o,this.setNavigationType(),this.clearRememberedStateOnReload(),this.isBackForwardVisit()?this.handleBackForwardVisit(this.page):this.isLocationVisit()?this.handleLocationVisit(this.page):this.handleInitialPageVisit(this.page),this.setupEventListeners()}setNavigationType(){this.navigationType=window.performance&&window.performance.getEntriesByType("navigation").length>0?window.performance.getEntriesByType("navigation")[0].type:"navigate"}clearRememberedStateOnReload(){var r;this.navigationType==="reload"&&((r=window.history.state)!=null&&r.rememberedState)&&delete window.history.state.rememberedState}handleInitialPageVisit(r){this.page.url+=window.location.hash,this.setPage(r,{preserveState:!0}).then(()=>Ha(r))}setupEventListeners(){window.addEventListener("popstate",this.handlePopstateEvent.bind(this)),document.addEventListener("scroll",Au(this.handleScrollEvent.bind(this),100),!0)}scrollRegions(){return document.querySelectorAll("[scroll-region]")}handleScrollEvent(r){typeof r.target.hasAttribute=="function"&&r.target.hasAttribute("scroll-region")&&this.saveScrollPositions()}saveScrollPositions(){this.replaceState({...this.page,scrollRegions:Array.from(this.scrollRegions()).map(r=>({top:r.scrollTop,left:r.scrollLeft}))})}resetScrollPositions(){window.scrollTo(0,0),this.scrollRegions().forEach(r=>{typeof r.scrollTo=="function"?r.scrollTo(0,0):(r.scrollTop=0,r.scrollLeft=0)}),this.saveScrollPositions(),window.location.hash&&setTimeout(()=>{var r;return(r=document.getElementById(window.location.hash.slice(1)))==null?void 0:r.scrollIntoView()})}restoreScrollPositions(){this.page.scrollRegions&&this.scrollRegions().forEach((r,a)=>{let o=this.page.scrollRegions[a];if(o)typeof r.scrollTo=="function"?r.scrollTo(o.left,o.top):(r.scrollTop=o.top,r.scrollLeft=o.left);else return})}isBackForwardVisit(){return window.history.state&&this.navigationType==="back_forward"}handleBackForwardVisit(r){window.history.state.version=r.version,this.setPage(window.history.state,{preserveScroll:!0,preserveState:!0}).then(()=>{this.restoreScrollPositions(),Ha(r)})}locationVisit(r,a){try{let o={preserveScroll:a};window.sessionStorage.setItem("inertiaLocationVisit",JSON.stringify(o)),window.location.href=r.href,Va(window.location).href===Va(r).href&&window.location.reload()}catch{return!1}}isLocationVisit(){try{return window.sessionStorage.getItem("inertiaLocationVisit")!==null}catch{return!1}}handleLocationVisit(r){var o,m;let a=JSON.parse(window.sessionStorage.getItem("inertiaLocationVisit")||"");window.sessionStorage.removeItem("inertiaLocationVisit"),r.url+=window.location.hash,r.rememberedState=((o=window.history.state)==null?void 0:o.rememberedState)??{},r.scrollRegions=((m=window.history.state)==null?void 0:m.scrollRegions)??[],this.setPage(r,{preserveScroll:a.preserveScroll,preserveState:!0}).then(()=>{a.preserveScroll&&this.restoreScrollPositions(),Ha(r)})}isLocationVisitResponse(r){return!!(r&&r.status===409&&r.headers["x-inertia-location"])}isInertiaResponse(r){return!!(r!=null&&r.headers["x-inertia"])}createVisitId(){return this.visitId={},this.visitId}cancelVisit(r,{cancelled:a=!1,interrupted:o=!1}){r&&!r.completed&&!r.cancelled&&!r.interrupted&&(r.cancelToken.abort(),r.onCancel(),r.completed=!1,r.cancelled=a,r.interrupted=o,e_(r),r.onFinish(r))}finishVisit(r){!r.cancelled&&!r.interrupted&&(r.completed=!0,r.cancelled=!1,r.interrupted=!1,e_(r),r.onFinish(r))}resolvePreserveOption(r,a){return typeof r=="function"?r(a):r==="errors"?Object.keys(a.props.errors||{}).length>0:r}cancel(){this.activeVisit&&this.cancelVisit(this.activeVisit,{cancelled:!0})}visit(r,{method:a="get",data:o={},replace:m=!1,preserveScroll:g=!1,preserveState:S=!1,only:s=[],headers:c={},errorBag:t="",forceFormData:n=!1,onCancelToken:i=()=>{},onBefore:l=()=>{},onStart:_=()=>{},onProgress:d=()=>{},onFinish:u=()=>{},onCancel:p=()=>{},onSuccess:E=()=>{},onError:f=()=>{},queryStringArrayFormat:h="brackets"}={}){let b=typeof r=="string"?ua(r):r;if((Gs(o)||n)&&!(o instanceof FormData)&&(o=Iu(o)),!(o instanceof FormData)){let[T,v]=xu(a,b,o,h);b=ua(T),o=v}let C={url:b,method:a,data:o,replace:m,preserveScroll:g,preserveState:S,only:s,headers:c,errorBag:t,forceFormData:n,queryStringArrayFormat:h,cancelled:!1,completed:!1,interrupted:!1};if(l(C)===!1||!Ah(C))return;this.activeVisit&&this.cancelVisit(this.activeVisit,{interrupted:!0}),this.saveScrollPositions();let O=this.createVisitId();this.activeVisit={...C,onCancelToken:i,onBefore:l,onStart:_,onProgress:d,onFinish:u,onCancel:p,onSuccess:E,onError:f,queryStringArrayFormat:h,cancelToken:new AbortController},i({cancel:()=>{this.activeVisit&&this.cancelVisit(this.activeVisit,{cancelled:!0})}}),Mh(C),_(C),ps({method:a,url:Va(b).href,data:a==="get"?{}:o,params:a==="get"?o:{},signal:this.activeVisit.cancelToken.signal,headers:{...c,Accept:"text/html, application/xhtml+xml","X-Requested-With":"XMLHttpRequest","X-Inertia":!0,...s.length?{"X-Inertia-Partial-Component":this.page.component,"X-Inertia-Partial-Data":s.join(",")}:{},...t&&t.length?{"X-Inertia-Error-Bag":t}:{},...this.page.version?{"X-Inertia-Version":this.page.version}:{}},onUploadProgress:T=>{o instanceof FormData&&(T.percentage=T.progress?Math.round(T.progress*100):0,xh(T),d(T))}}).then(T=>{var x;if(!this.isInertiaResponse(T))return Promise.reject({response:T});let v=T.data;s.length&&v.component===this.page.component&&(v.props={...this.page.props,...v.props}),g=this.resolvePreserveOption(g,v),S=this.resolvePreserveOption(S,v),S&&((x=window.history.state)!=null&&x.rememberedState)&&v.component===this.page.component&&(v.rememberedState=window.history.state.rememberedState);let R=b,I=ua(v.url);return R.hash&&!I.hash&&Va(R).href===I.href&&(I.hash=R.hash,v.url=I.href),this.setPage(v,{visitId:O,replace:m,preserveScroll:g,preserveState:S})}).then(()=>{let T=this.page.props.errors||{};if(Object.keys(T).length>0){let v=t?T[t]?T[t]:{}:T;return Ih(v),f(v)}return Lh(this.page),E(this.page)}).catch(T=>{if(this.isInertiaResponse(T.response))return this.setPage(T.response.data,{visitId:O});if(this.isLocationVisitResponse(T.response)){let v=ua(T.response.headers["x-inertia-location"]),R=b;R.hash&&!v.hash&&Va(R).href===v.href&&(v.hash=R.hash),this.locationVisit(v,g===!0)}else if(T.response)wh(T.response)&&kh.show(T.response.data);else return Promise.reject(T)}).then(()=>{this.activeVisit&&this.finishVisit(this.activeVisit)}).catch(T=>{if(!ps.isCancel(T)){let v=Dh(T);if(this.activeVisit&&this.finishVisit(this.activeVisit),v)return Promise.reject(T)}})}setPage(r,{visitId:a=this.createVisitId(),replace:o=!1,preserveScroll:m=!1,preserveState:g=!1}={}){return Promise.resolve(this.resolveComponent(r.component)).then(S=>{a===this.visitId&&(r.scrollRegions=r.scrollRegions||[],r.rememberedState=r.rememberedState||{},o=o||ua(r.url).href===window.location.href,o?this.replaceState(r):this.pushState(r),this.swapComponent({component:S,page:r,preserveState:g}).then(()=>{m||this.resetScrollPositions(),o||Ha(r)}))})}pushState(r){this.page=r,window.history.pushState(r,"",r.url)}replaceState(r){this.page=r,window.history.replaceState(r,"",r.url)}handlePopstateEvent(r){if(r.state!==null){let a=r.state,o=this.createVisitId();Promise.resolve(this.resolveComponent(a.component)).then(m=>{o===this.visitId&&(this.page=a,this.swapComponent({component:m,page:a,preserveState:!1}).then(()=>{this.restoreScrollPositions(),Ha(a)}))})}else{let a=ua(this.page.url);a.hash=window.location.hash,this.replaceState({...this.page,url:a.href}),this.resetScrollPositions()}}get(r,a={},o={}){return this.visit(r,{...o,method:"get",data:a})}reload(r={}){return this.visit(window.location.href,{...r,preserveScroll:!0,preserveState:!0})}replace(r,a={}){return console.warn(`Inertia.replace() has been deprecated and will be removed in a future release. Please use Inertia.${a.method??"get"}() instead.`),this.visit(r,{preserveState:!0,...a,replace:!0})}post(r,a={},o={}){return this.visit(r,{preserveState:!0,...o,method:"post",data:a})}put(r,a={},o={}){return this.visit(r,{preserveState:!0,...o,method:"put",data:a})}patch(r,a={},o={}){return this.visit(r,{preserveState:!0,...o,method:"patch",data:a})}delete(r,a={}){return this.visit(r,{preserveState:!0,...a,method:"delete"})}remember(r,a="default"){var o;t_||this.replaceState({...this.page,rememberedState:{...(o=this.page)==null?void 0:o.rememberedState,[a]:r}})}restore(r="default"){var a,o;if(!t_)return(o=(a=window.history.state)==null?void 0:a.rememberedState)==null?void 0:o[r]}on(r,a){let o=m=>{let g=a(m);m.cancelable&&!m.defaultPrevented&&g===!1&&m.preventDefault()};return document.addEventListener(`inertia:${r}`,o),()=>document.removeEventListener(`inertia:${r}`,o)}},Fh={buildDOMElement(e){let r=document.createElement("template");r.innerHTML=e;let a=r.content.firstChild;if(!e.startsWith("