From 351b93b434663d9705c64d230f99a7da949402cd Mon Sep 17 00:00:00 2001 From: Stuart Laverick Date: Wed, 22 Nov 2023 18:18:57 +0000 Subject: [PATCH 01/14] Added rejection message to update request --- app/Docs/OpenApi.php | 1 + .../DestroyUpdateRequestOperation.php | 12 +- .../UpdateRequestsNestedPath.php | 4 +- .../Core/V1/UpdateRequestController.php | 3 + .../Requests/UpdateRequest/DestroyRequest.php | 7 +- .../Notifications/UpdateRequestRejected.php | 6 + database/diagrams/ERD.mwb | Bin 82485 -> 82750 bytes ...e_requests_add_rejection_message_field.php | 27 ++++ lang/en/emails/organisation.php | 4 +- lang/en/emails/update_request.php | 6 +- routes/api.php | 4 +- tests/Feature/UpdateRequestsTest.php | 141 +++++++++++++++--- 12 files changed, 186 insertions(+), 29 deletions(-) create mode 100644 database/migrations/2023_11_22_121620_update_update_requests_add_rejection_message_field.php diff --git a/app/Docs/OpenApi.php b/app/Docs/OpenApi.php index 5d32d85ab..7cd995bf0 100644 --- a/app/Docs/OpenApi.php +++ b/app/Docs/OpenApi.php @@ -114,6 +114,7 @@ public static function create(string $objectId = null): BaseObject Paths\UpdateRequests\UpdateRequestsIndexPath::create(), Paths\UpdateRequests\UpdateRequestsNestedPath::create(), Paths\UpdateRequests\UpdateRequestsApprovePath::create(), + Paths\UpdateRequests\UpdateRequestsRejectPath::create(), Paths\Users\UsersRootPath::create(), Paths\Users\UsersIndexPath::create(), Paths\Users\UsersNestedPath::create(), diff --git a/app/Docs/Operations/UpdateRequests/DestroyUpdateRequestOperation.php b/app/Docs/Operations/UpdateRequests/DestroyUpdateRequestOperation.php index e665781fc..10a4e1198 100644 --- a/app/Docs/Operations/UpdateRequests/DestroyUpdateRequestOperation.php +++ b/app/Docs/Operations/UpdateRequests/DestroyUpdateRequestOperation.php @@ -3,9 +3,12 @@ namespace App\Docs\Operations\UpdateRequests; use App\Docs\Responses\ResourceDeletedResponse; +use App\Docs\Schemas\UpdateRequest\UpdateRequestRejectSchema; use App\Docs\Tags\UpdateRequestsTag; use GoldSpecDigital\ObjectOrientedOAS\Objects\BaseObject; +use GoldSpecDigital\ObjectOrientedOAS\Objects\MediaType; use GoldSpecDigital\ObjectOrientedOAS\Objects\Operation; +use GoldSpecDigital\ObjectOrientedOAS\Objects\RequestBody; class DestroyUpdateRequestOperation extends Operation { @@ -15,10 +18,17 @@ class DestroyUpdateRequestOperation extends Operation public static function create(string $objectId = null): BaseObject { return parent::create($objectId) - ->action(static::ACTION_DELETE) + ->action(static::ACTION_PUT) ->tags(UpdateRequestsTag::create()) ->summary('Delete a specific update request') ->description('**Permission:** `Super Admin`') + ->requestBody( + RequestBody::create() + ->required() + ->content( + MediaType::json()->schema(UpdateRequestRejectSchema::create()) + ) + ) ->responses( ResourceDeletedResponse::create(null, 'update request') ); diff --git a/app/Docs/Paths/UpdateRequests/UpdateRequestsNestedPath.php b/app/Docs/Paths/UpdateRequests/UpdateRequestsNestedPath.php index 4c341a804..3cf5cba23 100644 --- a/app/Docs/Paths/UpdateRequests/UpdateRequestsNestedPath.php +++ b/app/Docs/Paths/UpdateRequests/UpdateRequestsNestedPath.php @@ -2,7 +2,6 @@ namespace App\Docs\Paths\UpdateRequests; -use App\Docs\Operations\UpdateRequests\DestroyUpdateRequestOperation; use App\Docs\Operations\UpdateRequests\ShowUpdateRequestOperation; use GoldSpecDigital\ObjectOrientedOAS\Objects\BaseObject; use GoldSpecDigital\ObjectOrientedOAS\Objects\Parameter; @@ -26,8 +25,7 @@ public static function create(string $objectId = null): BaseObject ->schema(Schema::string()->format(Schema::FORMAT_UUID)) ) ->operations( - ShowUpdateRequestOperation::create(), - DestroyUpdateRequestOperation::create() + ShowUpdateRequestOperation::create() ); } } diff --git a/app/Http/Controllers/Core/V1/UpdateRequestController.php b/app/Http/Controllers/Core/V1/UpdateRequestController.php index 8930efe1a..60321d8a3 100644 --- a/app/Http/Controllers/Core/V1/UpdateRequestController.php +++ b/app/Http/Controllers/Core/V1/UpdateRequestController.php @@ -84,6 +84,9 @@ public function show(ShowRequest $request, UpdateRequest $updateRequest): Update public function destroy(DestroyRequest $request, UpdateRequest $updateRequest) { return DB::transaction(function () use ($request, $updateRequest) { + $updateRequest->update([ + 'rejection_message' => $request->input('message'), + ]); event(EndpointHit::onDelete($request, "Deleted update request [{$updateRequest->id}]", $updateRequest)); $updateRequest->delete($request->user('api')); diff --git a/app/Http/Requests/UpdateRequest/DestroyRequest.php b/app/Http/Requests/UpdateRequest/DestroyRequest.php index bbc3cfaea..1110618d2 100644 --- a/app/Http/Requests/UpdateRequest/DestroyRequest.php +++ b/app/Http/Requests/UpdateRequest/DestroyRequest.php @@ -24,7 +24,12 @@ public function authorize(): bool public function rules(): array { return [ - // + 'message' => [ + 'required', + 'string', + 'min:1', + 'max:1000', + ], ]; } } diff --git a/app/Listeners/Notifications/UpdateRequestRejected.php b/app/Listeners/Notifications/UpdateRequestRejected.php index a07a54a1e..b0da30482 100644 --- a/app/Listeners/Notifications/UpdateRequestRejected.php +++ b/app/Listeners/Notifications/UpdateRequestRejected.php @@ -8,6 +8,7 @@ use App\Models\Location; use App\Models\Notification; use App\Models\Organisation; +use App\Models\Page; use App\Models\Service; use App\Models\ServiceLocation; use App\Models\UpdateRequest; @@ -59,6 +60,9 @@ protected function notifySubmitterForExisting(UpdateRequest $updateRequest) } elseif ($updateRequest->getUpdateable() instanceof Organisation) { $resourceName = $updateRequest->getUpdateable()->name; $resourceType = 'organisation'; + } elseif ($updateRequest->getUpdateable() instanceof Page) { + $resourceName = $updateRequest->getUpdateable()->title; + $resourceType = 'page'; } $updateRequest->user->sendEmail(new NotifySubmitterEmail($updateRequest->user->email, [ @@ -66,6 +70,7 @@ protected function notifySubmitterForExisting(UpdateRequest $updateRequest) 'RESOURCE_NAME' => $resourceName, 'RESOURCE_TYPE' => $resourceType, 'REQUEST_DATE' => $updateRequest->created_at->format('j/n/Y'), + 'REJECTION_MESSAGE' => $updateRequest->rejection_message, ])); } @@ -83,6 +88,7 @@ protected function notifySubmitterForNew(UpdateRequest $updateRequest) 'ORGANISATION_NAME' => Arr::get($updateRequest->data, 'organisation.name'), 'REQUEST_DATE' => $updateRequest->created_at->format('j/n/Y'), 'TANDC_URL' => config('local.tandc_uri'), + 'REJECTION_MESSAGE' => $updateRequest->rejection_message, ] ) ); diff --git a/database/diagrams/ERD.mwb b/database/diagrams/ERD.mwb index d102b298c10f36f07dc0252a560844f02b4e41d0..1faa59057243b4d4491b6933fae6040ec796c0c8 100644 GIT binary patch delta 78740 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 RgHot8XnY@1_N7o&{}1;mF+czS delta 78603 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

c@F?z_ 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 X`q>y_n>HbfNsIMPChbfX^W*;k#!|o8 diff --git a/database/migrations/2023_11_22_121620_update_update_requests_add_rejection_message_field.php b/database/migrations/2023_11_22_121620_update_update_requests_add_rejection_message_field.php new file mode 100644 index 000000000..91d0db2ce --- /dev/null +++ b/database/migrations/2023_11_22_121620_update_update_requests_add_rejection_message_field.php @@ -0,0 +1,27 @@ +string('rejection_message', 100)->after('data')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('update_requests', function (Blueprint $table) { + $table->dropColumn('rejection_message'); + }); + } +}; diff --git a/lang/en/emails/organisation.php b/lang/en/emails/organisation.php index 22fb9c9c8..f247cb966 100644 --- a/lang/en/emails/organisation.php +++ b/lang/en/emails/organisation.php @@ -67,7 +67,9 @@ Thank you for submitting your request to have :ORGANISATION_NAME listed on :APP_NAME. -Unfortunately, your request to list :ORGANISATION_NAME on :APP_NAME on :REQUEST_DATE has been rejected. This is due to the organisation/service not meeting the terms and conditions of being listed on :APP_NAME. +Unfortunately, your request to list :ORGANISATION_NAME on :APP_NAME on :REQUEST_DATE has been rejected for the following reason(s): + +:REJECTION_MESSAGE You can read more about our terms and conditions: :TANDC_URL diff --git a/lang/en/emails/update_request.php b/lang/en/emails/update_request.php index 4a20eebf1..f060978b6 100644 --- a/lang/en/emails/update_request.php +++ b/lang/en/emails/update_request.php @@ -9,7 +9,7 @@ | | The following language lines are used during update requests | - */ + */ 'received' => [ 'notify_global_admin' => [ 'subject' => 'Update Request Submitted', @@ -60,7 +60,9 @@ 'content' => ' Hi :SUBMITTER_NAME, -Your update request for the :RESOURCE_NAME :(RESOURCE_TYPE) on :REQUEST_DATE has been rejected. +Your update request for the :RESOURCE_NAME :(RESOURCE_TYPE) on :REQUEST_DATE has been rejected for the following reason(s): + +:REJECTION_MESSAGE If you have any questions, please contact us at :CONTACT_EMAIL diff --git a/routes/api.php b/routes/api.php index eaa25b668..0cdacbcca 100644 --- a/routes/api.php +++ b/routes/api.php @@ -254,9 +254,11 @@ function () { // Update Requests. Route::match(['GET', 'POST'], '/update-requests/index', [Core\V1\UpdateRequestController::class, 'index']); Route::apiResource('/update-requests', Core\V1\UpdateRequestController::class) - ->only('index', 'show', 'destroy'); + ->only('index', 'show'); Route::put('/update-requests/{update_request}/approve', [Core\V1\UpdateRequest\ApproveController::class, 'update']) ->name('update-requests.approve'); + Route::put('/update-requests/{update_request}/reject', [Core\V1\UpdateRequestController::class, 'destroy']) + ->name('update-requests.reject'); // Users. Route::match(['GET', 'POST'], '/users/index', [Core\V1\UserController::class, 'index']); diff --git a/tests/Feature/UpdateRequestsTest.php b/tests/Feature/UpdateRequestsTest.php index cdb785e97..bf5aec8b8 100644 --- a/tests/Feature/UpdateRequestsTest.php +++ b/tests/Feature/UpdateRequestsTest.php @@ -2,26 +2,27 @@ namespace Tests\Feature; -use App\Events\EndpointHit; +use Tests\TestCase; +use App\Models\Role; +use App\Models\User; use App\Models\Audit; +use App\Models\Service; use App\Models\Location; use App\Models\Offering; -use App\Models\Organisation; -use App\Models\Role; -use App\Models\Service; -use App\Models\ServiceLocation; -use App\Models\SocialMedia; use App\Models\Taxonomy; -use App\Models\UpdateRequest; -use App\Models\UsefulInfo; -use App\Models\User; use App\Models\UserRole; +use App\Models\UsefulInfo; +use App\Events\EndpointHit; +use App\Models\SocialMedia; use Carbon\CarbonImmutable; +use App\Models\Organisation; +use App\Models\UpdateRequest; use Illuminate\Http\Response; +use Laravel\Passport\Passport; +use App\Models\ServiceLocation; use Illuminate\Support\Facades\Date; use Illuminate\Support\Facades\Event; -use Laravel\Passport\Passport; -use Tests\TestCase; +use Illuminate\Support\Facades\Queue; class UpdateRequestsTest extends TestCase { @@ -485,7 +486,7 @@ public function guest_cannot_delete_one(): void 'data' => ['name' => 'Test Name'], ]); - $response = $this->json('DELETE', "/core/v1/update-requests/{$updateRequest->id}"); + $response = $this->json('PUT', "/core/v1/update-requests/{$updateRequest->id}/reject", ['message' => 'Rejection Message']); $response->assertStatus(Response::HTTP_UNAUTHORIZED); } @@ -505,7 +506,7 @@ public function service_worker_cannot_delete_one(): void 'data' => ['name' => 'Test Name'], ]); - $response = $this->json('DELETE', "/core/v1/update-requests/{$updateRequest->id}"); + $response = $this->json('PUT', "/core/v1/update-requests/{$updateRequest->id}/reject", ['message' => 'Rejection Message']); $response->assertStatus(Response::HTTP_FORBIDDEN); } @@ -525,7 +526,7 @@ public function service_admin_cannot_delete_one(): void 'data' => ['name' => 'Test Name'], ]); - $response = $this->json('DELETE', "/core/v1/update-requests/{$updateRequest->id}"); + $response = $this->json('PUT', "/core/v1/update-requests/{$updateRequest->id}/reject", ['message' => 'Rejection Message']); $response->assertStatus(Response::HTTP_FORBIDDEN); } @@ -545,7 +546,7 @@ public function organisation_admin_cannot_delete_one(): void 'data' => ['name' => 'Test Name'], ]); - $response = $this->json('DELETE', "/core/v1/update-requests/{$updateRequest->id}"); + $response = $this->json('PUT', "/core/v1/update-requests/{$updateRequest->id}/reject", ['message' => 'Rejection Message']); $response->assertStatus(Response::HTTP_FORBIDDEN); } @@ -564,7 +565,7 @@ public function global_admin_cannot_delete_one(): void 'data' => ['name' => 'Test Name'], ]); - $response = $this->json('DELETE', "/core/v1/update-requests/{$updateRequest->id}"); + $response = $this->json('PUT', "/core/v1/update-requests/{$updateRequest->id}/reject", ['message' => 'Rejection Message']); $response->assertStatus(Response::HTTP_FORBIDDEN); } @@ -572,7 +573,30 @@ public function global_admin_cannot_delete_one(): void /** * @test */ - public function super_admin_can_delete_one(): void + public function super_admin_cannot_delete_one_without_a_rejection_message(): void + { + $user = User::factory()->create()->makeSuperAdmin(); + Passport::actingAs($user); + + $serviceLocation = ServiceLocation::factory()->create(); + $updateRequest = $serviceLocation->updateRequests()->create([ + 'user_id' => User::factory()->create()->id, + 'data' => ['name' => 'Test Name'], + ]); + + $response = $this->json('PUT', "/core/v1/update-requests/{$updateRequest->id}/reject"); + + $response->assertStatus(Response::HTTP_UNPROCESSABLE_ENTITY); + $this->assertDatabaseHas((new UpdateRequest())->getTable(), [ + 'id' => $updateRequest->id, + 'actioning_user_id' => null, + ]); + } + + /** + * @test + */ + public function super_admin_can_delete_one_with_a_rejection_message(): void { $user = User::factory()->create()->makeSuperAdmin(); Passport::actingAs($user); @@ -583,7 +607,84 @@ public function super_admin_can_delete_one(): void 'data' => ['name' => 'Test Name'], ]); - $response = $this->json('DELETE', "/core/v1/update-requests/{$updateRequest->id}"); + $response = $this->json('PUT', "/core/v1/update-requests/{$updateRequest->id}/reject", ['message' => 'Rejection Message']); + + $response->assertStatus(Response::HTTP_OK); + $this->assertSoftDeleted((new UpdateRequest())->getTable(), [ + 'id' => $updateRequest->id, + 'actioning_user_id' => $user->id, + ]); + } + + /** + * @test + */ + public function super_admin_can_delete_one_for_an_organisation_signup_form_with_a_rejection_message(): void + { + Queue::fake(); + + $user = User::factory()->create()->makeSuperAdmin(); + Passport::actingAs($user); + + /** @var \App\Models\UpdateRequest $updateRequest */ + $updateRequest = UpdateRequest::create([ + 'updateable_type' => UpdateRequest::NEW_TYPE_ORGANISATION_SIGN_UP_FORM, + 'data' => [ + 'user' => [ + 'first_name' => 'John', + 'last_name' => 'Doe', + 'email' => 'john.doe@example.com', + 'phone' => '07700000000', + 'password' => 'P@55w0rd.', + ], + 'organisation' => [ + 'slug' => 'test-org', + 'name' => 'Test Org', + 'description' => 'Test description', + 'url' => 'http://test-org.example.com', + 'email' => 'info@test-org.example.com', + 'phone' => '07700000000', + ], + 'service' => [ + 'slug' => 'test-service', + 'name' => 'Test Service', + 'type' => Service::TYPE_SERVICE, + 'intro' => 'This is a test intro', + 'description' => 'Lorem ipsum', + 'wait_time' => null, + 'is_free' => true, + 'fees_text' => null, + 'fees_url' => null, + 'testimonial' => null, + 'video_embed' => null, + 'url' => 'https://example.com', + 'contact_name' => 'Foo Bar', + 'contact_phone' => '01130000000', + 'contact_email' => 'foo.bar@example.com', + 'useful_infos' => [ + [ + 'title' => 'Did you know?', + 'description' => 'Lorem ipsum', + 'order' => 1, + ], + ], + 'offerings' => [ + [ + 'offering' => 'Weekly club', + 'order' => 1, + ], + ], + 'social_medias' => [ + [ + 'type' => SocialMedia::TYPE_INSTAGRAM, + 'url' => 'https://www.instagram.com/ayupdigital', + ], + ], + ], + ], + ]); + + $response = $this->json('PUT', "/core/v1/update-requests/{$updateRequest->id}/reject", ['message' => 'Rejection Message']); $response->assertStatus(Response::HTTP_OK); $this->assertSoftDeleted((new UpdateRequest())->getTable(), [ @@ -608,7 +709,7 @@ public function audit_created_when_deleted(): void 'data' => ['name' => 'Test Name'], ]); - $this->json('DELETE', "/core/v1/update-requests/{$updateRequest->id}"); + $this->json('PUT', "/core/v1/update-requests/{$updateRequest->id}/reject", ['message' => 'Rejection Message']); Event::assertDispatched(EndpointHit::class, function (EndpointHit $event) use ($user, $updateRequest) { return ($event->getAction() === Audit::ACTION_DELETE) && @@ -920,7 +1021,7 @@ public function super_admin_can_approve_one_for_new_service(): void $imagePayload = [ 'is_private' => false, 'mime_type' => 'image/png', - 'file' => 'data:image/png;base64,'.self::BASE64_ENCODED_PNG, + 'file' => 'data:image/png;base64,' . self::BASE64_ENCODED_PNG, ]; $response = $this->json('POST', '/core/v1/files', $imagePayload); From 479eed6103af898641908a0a7c986e325f6593c0 Mon Sep 17 00:00:00 2001 From: Stuart Laverick Date: Thu, 23 Nov 2023 16:07:53 +0000 Subject: [PATCH 02/14] Added slug to Organisation Events --- .../UpdateRequestsRejectPath.php | 31 + .../OrganisationEventSchema.php | 1 + .../UpdateOrganisationEventSchema.php | 1 + .../UpdateRequestRejectSchema.php | 21 + .../OrganisationEvent/StoreRequest.php | 2 + .../OrganisationEvent/UpdateRequest.php | 17 + .../Resources/OrganisationEventResource.php | 1 + app/Models/OrganisationEvent.php | 7 + app/Providers/RouteServiceProvider.php | 6 + .../OrganisationEventPersistenceService.php | 15 + .../NewOrganisationEventCreatedByOrgAdmin.php | 14 + database/diagrams/ERD.mwb | Bin 82750 -> 82976 bytes .../factories/OrganisationEventFactory.php | 1 + ...date_organisationevents_add_slug_field.php | 49 ++ tests/Feature/OrganisationEventsTest.php | 567 ++++++++++-------- tests/Feature/PagesTest.php | 43 +- 16 files changed, 476 insertions(+), 300 deletions(-) create mode 100644 app/Docs/Paths/UpdateRequests/UpdateRequestsRejectPath.php create mode 100644 app/Docs/Schemas/UpdateRequest/UpdateRequestRejectSchema.php create mode 100644 database/migrations/2023_11_23_140614_update_organisationevents_add_slug_field.php diff --git a/app/Docs/Paths/UpdateRequests/UpdateRequestsRejectPath.php b/app/Docs/Paths/UpdateRequests/UpdateRequestsRejectPath.php new file mode 100644 index 000000000..95c5de6d2 --- /dev/null +++ b/app/Docs/Paths/UpdateRequests/UpdateRequestsRejectPath.php @@ -0,0 +1,31 @@ +route('/update-requests/{update_request}/reject') + ->parameters( + Parameter::path() + ->name('update_request') + ->description('The ID of the update request') + ->required() + ->schema(Schema::string()->format(Schema::FORMAT_UUID)) + ) + ->operations( + DestroyUpdateRequestOperation::create() + ); + } +} diff --git a/app/Docs/Schemas/OrganisationEvent/OrganisationEventSchema.php b/app/Docs/Schemas/OrganisationEvent/OrganisationEventSchema.php index f4a8efe76..01cdc8035 100644 --- a/app/Docs/Schemas/OrganisationEvent/OrganisationEventSchema.php +++ b/app/Docs/Schemas/OrganisationEvent/OrganisationEventSchema.php @@ -15,6 +15,7 @@ public static function create(string $objectId = null): BaseObject ->properties( Schema::string('id') ->format(Schema::FORMAT_UUID), + Schema::string('slug'), Schema::string('organisation_id') ->format(Schema::FORMAT_UUID), Schema::string('title'), diff --git a/app/Docs/Schemas/OrganisationEvent/UpdateOrganisationEventSchema.php b/app/Docs/Schemas/OrganisationEvent/UpdateOrganisationEventSchema.php index 30663cec1..676b86c6e 100644 --- a/app/Docs/Schemas/OrganisationEvent/UpdateOrganisationEventSchema.php +++ b/app/Docs/Schemas/OrganisationEvent/UpdateOrganisationEventSchema.php @@ -17,6 +17,7 @@ public static function create(string $objectId = null): BaseObject ->required('title', 'intro', 'description', 'start_date', 'end_date', 'start_time', 'end_time', 'is_free', 'is_virtual') ->properties( Schema::string('title'), + Schema::string('slug'), Schema::string('intro'), Schema::string('description'), Schema::string('start_date') diff --git a/app/Docs/Schemas/UpdateRequest/UpdateRequestRejectSchema.php b/app/Docs/Schemas/UpdateRequest/UpdateRequestRejectSchema.php new file mode 100644 index 000000000..54d1c40ea --- /dev/null +++ b/app/Docs/Schemas/UpdateRequest/UpdateRequestRejectSchema.php @@ -0,0 +1,21 @@ +type(static::TYPE_OBJECT) + ->required( + 'message' + ) + ->properties( + Schema::string('message'), + ); + } +} diff --git a/app/Http/Requests/OrganisationEvent/StoreRequest.php b/app/Http/Requests/OrganisationEvent/StoreRequest.php index 749c9640c..2b9f65f3e 100644 --- a/app/Http/Requests/OrganisationEvent/StoreRequest.php +++ b/app/Http/Requests/OrganisationEvent/StoreRequest.php @@ -14,6 +14,7 @@ use App\Rules\MarkdownMaxLength; use App\Rules\MarkdownMinLength; use App\Rules\RootTaxonomyIs; +use App\Rules\Slug; use App\Rules\UkPhoneNumber; use App\Rules\UserHasRole; use Illuminate\Foundation\Http\FormRequest; @@ -51,6 +52,7 @@ function ($attribute, $value, $fail) { }, ], 'title' => ['required', 'string', 'min:1', 'max:255'], + 'slug' => ['string', 'min:1', 'max:255', new Slug()], 'start_date' => ['required', 'date_format:Y-m-d', 'after:today', new DateSanity($this)], 'end_date' => ['required', 'date_format:Y-m-d', new DateSanity($this)], 'start_time' => ['required', 'date_format:H:i:s', new DateSanity($this)], diff --git a/app/Http/Requests/OrganisationEvent/UpdateRequest.php b/app/Http/Requests/OrganisationEvent/UpdateRequest.php index c27327545..517e5c91b 100644 --- a/app/Http/Requests/OrganisationEvent/UpdateRequest.php +++ b/app/Http/Requests/OrganisationEvent/UpdateRequest.php @@ -4,6 +4,7 @@ use App\Http\Requests\HasMissingValues; use App\Models\File; +use App\Models\OrganisationEvent; use App\Models\Role; use App\Models\Taxonomy; use App\Models\UserRole; @@ -15,6 +16,7 @@ use App\Rules\MarkdownMinLength; use App\Rules\NullableIf; use App\Rules\RootTaxonomyIs; +use App\Rules\Slug; use App\Rules\UkPhoneNumber; use App\Rules\UserHasRole; use Illuminate\Foundation\Http\FormRequest; @@ -43,6 +45,21 @@ public function rules(): array { return [ 'title' => ['string', 'min:1', 'max:255'], + 'slug' => [ + 'string', + 'min:1', + 'max:255', + Rule::unique(table(OrganisationEvent::class), 'slug')->ignoreModel($this->organisation_event), + new Slug(), + new UserHasRole( + $this->user('api'), + new UserRole([ + 'user_id' => $this->user('api')->id, + 'role_id' => Role::organisationAdmin()->id, + ]), + $this->organisation_event->slug + ), + ], 'start_date' => ['date_format:Y-m-d', 'after:today', new DateSanity($this)], 'end_date' => ['date_format:Y-m-d', new DateSanity($this)], 'start_time' => ['date_format:H:i:s', new DateSanity($this)], diff --git a/app/Http/Resources/OrganisationEventResource.php b/app/Http/Resources/OrganisationEventResource.php index 2dd7d770d..e8de6298f 100644 --- a/app/Http/Resources/OrganisationEventResource.php +++ b/app/Http/Resources/OrganisationEventResource.php @@ -15,6 +15,7 @@ public function toArray(Request $request): array { return [ 'id' => $this->id, + 'slug' => $this->slug, 'has_image' => $this->hasImage(), 'title' => $this->title, 'intro' => $this->intro, diff --git a/app/Models/OrganisationEvent.php b/app/Models/OrganisationEvent.php index 92e6aa994..f9e67b6cb 100644 --- a/app/Models/OrganisationEvent.php +++ b/app/Models/OrganisationEvent.php @@ -3,6 +3,7 @@ namespace App\Models; use App\Contracts\AppliesUpdateRequests; +use App\Generators\UniqueSlugGenerator; use App\Http\Requests\OrganisationEvent\UpdateRequest as UpdateOrganisationEventRequest; use App\Models\Mutators\OrganisationEventMutators; use App\Models\Relationships\OrganisationEventRelationships; @@ -116,7 +117,12 @@ public function validateUpdateRequest(UpdateRequest $updateRequest): Validator */ public function applyUpdateRequest(UpdateRequest $updateRequest): UpdateRequest { + $slugGenerator = app(UniqueSlugGenerator::class); $data = $updateRequest->data; + $slug = Arr::get($data, 'slug', $this->slug); + if ($slug !== $this->slug) { + $slug = $slugGenerator->generate($slug, 'pages'); + } // Update the Image File entity if new if (Arr::get($data, 'image_file_id', $this->image_file_id) !== $this->image_file_id && !empty($data['image_file_id'])) { @@ -133,6 +139,7 @@ public function applyUpdateRequest(UpdateRequest $updateRequest): UpdateRequest $this->update([ 'organisation_id' => $this->organisation_id, 'title' => Arr::get($data, 'title', $this->title), + 'slug' => $slug, 'intro' => Arr::get($data, 'intro', $this->intro), 'description' => sanitize_markdown( Arr::get($data, 'description', $this->description) diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php index fa581b5d5..3394a8a1c 100644 --- a/app/Providers/RouteServiceProvider.php +++ b/app/Providers/RouteServiceProvider.php @@ -4,6 +4,7 @@ use App\Models\Collection; use App\Models\Organisation; +use App\Models\OrganisationEvent; use App\Models\Page; use App\Models\Service; use App\Models\Taxonomy; @@ -37,6 +38,11 @@ public function boot(): void return Organisation::query()->find($value) ?? Organisation::query()->where('slug', '=', $value)->first() ?? abort(Response::HTTP_NOT_FOUND); }); + // Resolve by ID first, then resort to slug. + Route::bind('organisation_event', function ($value) { + return OrganisationEvent::query()->find($value) ?? OrganisationEvent::query()->where('slug', '=', $value)->first() ?? abort(Response::HTTP_NOT_FOUND); + }); + // Resolve by ID first, then resort to slug. Route::bind('service', function ($value) { return Service::query()->find($value) ?? Service::query()->where('slug', '=', $value)->first() ?? abort(Response::HTTP_NOT_FOUND); diff --git a/app/Services/DataPersistence/OrganisationEventPersistenceService.php b/app/Services/DataPersistence/OrganisationEventPersistenceService.php index d1583a045..80c28faed 100644 --- a/app/Services/DataPersistence/OrganisationEventPersistenceService.php +++ b/app/Services/DataPersistence/OrganisationEventPersistenceService.php @@ -3,6 +3,7 @@ namespace App\Services\DataPersistence; use App\Contracts\DataPersistenceService; +use App\Generators\UniqueSlugGenerator; use App\Models\Model; use App\Models\OrganisationEvent; use App\Models\Taxonomy; @@ -14,6 +15,18 @@ class OrganisationEventPersistenceService implements DataPersistenceService { use ResizesImages; + /** + * Unique Slug Generator. + * + * @var \App\Generators\UniqueSlugGenerator + */ + protected $slugGenerator; + + public function __construct(UniqueSlugGenerator $slugGenerator) + { + $this->slugGenerator = $slugGenerator; + } + /** * Store the model. * @@ -43,6 +56,7 @@ public function processAsNewEntity(FormRequest $request): OrganisationEvent // Create the OrganisationEvent. $organisationEvent = OrganisationEvent::create([ 'title' => $request->title, + 'slug' => $this->slugGenerator->generate($request->input('slug', $request->input('title')), 'organisation_events'), 'start_date' => $request->start_date, 'end_date' => $request->end_date, 'start_time' => $request->start_time, @@ -91,6 +105,7 @@ public function processAsUpdateRequest(FormRequest $request, ?OrganisationEvent return DB::transaction(function () use ($request, $event) { $data = array_filter_missing([ 'title' => $request->missingValue('title'), + 'slug' => $request->missingValue('slug'), 'start_date' => $request->missingValue('start_date'), 'end_date' => $request->missingValue('end_date'), 'start_time' => $request->missingValue('start_time'), diff --git a/app/UpdateRequest/NewOrganisationEventCreatedByOrgAdmin.php b/app/UpdateRequest/NewOrganisationEventCreatedByOrgAdmin.php index d34db3215..588c3b77f 100644 --- a/app/UpdateRequest/NewOrganisationEventCreatedByOrgAdmin.php +++ b/app/UpdateRequest/NewOrganisationEventCreatedByOrgAdmin.php @@ -3,6 +3,7 @@ namespace App\UpdateRequest; use App\Contracts\AppliesUpdateRequests; +use App\Generators\UniqueSlugGenerator; use App\Http\Requests\OrganisationEvent\StoreRequest; use App\Models\File; use App\Models\OrganisationEvent; @@ -15,6 +16,18 @@ class NewOrganisationEventCreatedByOrgAdmin implements AppliesUpdateRequests { + /** + * Unique Slug Generator. + * + * @var \App\Generators\UniqueSlugGenerator + */ + protected $slugGenerator; + + public function __construct(UniqueSlugGenerator $slugGenerator) + { + $this->slugGenerator = $slugGenerator; + } + /** * Check if the update request is valid. */ @@ -46,6 +59,7 @@ public function applyUpdateRequest(UpdateRequest $updateRequest): UpdateRequest $organisationEvent = OrganisationEvent::create([ 'title' => $data->get('title'), + 'slug' => $this->slugGenerator->generate($data->get('slug', $data->get('title')), table(OrganisationEvent::class)), 'start_date' => $data->get('start_date'), 'end_date' => $data->get('end_date'), 'start_time' => $data->get('start_time'), diff --git a/database/diagrams/ERD.mwb b/database/diagrams/ERD.mwb index 1faa59057243b4d4491b6933fae6040ec796c0c8..04150ed0060d67dc1c94c306b34fdba1fe927e2f 100644 GIT binary patch delta 79054 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%0DqW>~Ol%#}TXSCM+Vy8Q4B{G2(|c@} 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 delta 78878 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 ~mvJ?@u=XT!@y%5+k9Z-UIa9w*E=gwM+ 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 z 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 'Organisation Event Title', + 'slug' => 'organisation-event-title', 'start_date' => $date->format('Y-m-d'), 'end_date' => $date->format('Y-m-d'), 'start_time' => $starttime, diff --git a/database/migrations/2023_11_23_140614_update_organisationevents_add_slug_field.php b/database/migrations/2023_11_23_140614_update_organisationevents_add_slug_field.php new file mode 100644 index 000000000..4d195ab07 --- /dev/null +++ b/database/migrations/2023_11_23_140614_update_organisationevents_add_slug_field.php @@ -0,0 +1,49 @@ +string('slug')->after('id'); + }); + + OrganisationEvent::query()->chunk(200, function (Collection $events) { + $events->each(function (OrganisationEvent $event) { + $iteration = 0; + do { + $slug = $iteration === 0 + ? Str::slug($event->title) + : Str::slug($event->title) . '-' . $iteration; + $iteration++; + } while (OrganisationEvent::query()->where('slug', $slug)->exists()); + + $event->update(['slug' => $slug]); + }); + }); + + Schema::table('organisation_events', function (Blueprint $table) { + $table->unique('slug'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('organisation_events', function (Blueprint $table) { + $table->dropUnique(['slug']); + $table->dropColumn('slug'); + }); + } +}; diff --git a/tests/Feature/OrganisationEventsTest.php b/tests/Feature/OrganisationEventsTest.php index 9a2625e4a..224bd997a 100644 --- a/tests/Feature/OrganisationEventsTest.php +++ b/tests/Feature/OrganisationEventsTest.php @@ -2,25 +2,26 @@ namespace Tests\Feature; -use App\Events\EndpointHit; +use DateTime; +use Carbon\Carbon; +use Tests\TestCase; +use App\Models\File; +use App\Models\User; use App\Models\Audit; -use App\Models\Collection; -use App\Models\Location; -use App\Models\Organisation; -use App\Models\OrganisationEvent; -use App\Models\OrganisationEventTaxonomy; use App\Models\Service; +use App\Models\Location; use App\Models\Taxonomy; -use App\Models\UpdateRequest; -use App\Models\User; -use Carbon\Carbon; +use App\Models\Collection; +use App\Events\EndpointHit; use Carbon\CarbonImmutable; -use DateTime; +use App\Models\Organisation; +use App\Models\UpdateRequest; use Illuminate\Http\Response; +use Laravel\Passport\Passport; +use App\Models\OrganisationEvent; use Illuminate\Support\Facades\Event; use Illuminate\Support\Facades\Storage; -use Laravel\Passport\Passport; -use Tests\TestCase; +use App\Models\OrganisationEventTaxonomy; class OrganisationEventsTest extends TestCase { @@ -31,7 +32,7 @@ class OrganisationEventsTest extends TestCase /** * @test */ - public function getAllOrganisationEventsAsGuest200(): void + public function listOrganisationEventsAsGuest200(): void { $organisationEvent = OrganisationEvent::factory()->create(); @@ -41,6 +42,7 @@ public function getAllOrganisationEventsAsGuest200(): void $response->assertJsonCollection([ 'id', 'title', + 'slug', 'start_date', 'end_date', 'start_time', @@ -69,6 +71,7 @@ public function getAllOrganisationEventsAsGuest200(): void $response->assertJsonFragment([ 'id' => $organisationEvent->id, 'title' => $organisationEvent->title, + 'slug' => $organisationEvent->slug, 'start_date' => $organisationEvent->start_date->toDateString(), 'end_date' => $organisationEvent->end_date->toDateString(), 'start_time' => $organisationEvent->start_time, @@ -98,10 +101,16 @@ public function getAllOrganisationEventsAsGuest200(): void /** * @test */ - public function getAllOrganisationEventsFilterByOrganisationAsGuest200(): void + public function listOrganisationEventsFilterByOrganisationAsGuest200(): void { - $organisationEvent1 = OrganisationEvent::factory()->create(); - $organisationEvent2 = OrganisationEvent::factory()->create(); + $organisationEvent1 = OrganisationEvent::factory()->create([ + 'title' => 'Organisation Event 1', + 'slug' => 'organisation-event-1', + ]); + $organisationEvent2 = OrganisationEvent::factory()->create([ + 'title' => 'Organisation Event 2', + 'slug' => 'organisation-event-2', + ]); $response = $this->json('GET', "/core/v1/organisation-events?filter[organisation_id]={$organisationEvent1->organisation_id}"); @@ -113,10 +122,16 @@ public function getAllOrganisationEventsFilterByOrganisationAsGuest200(): void /** * @test */ - public function getAllOrganisationEventsFilterByHomepageAsGuest200(): void + public function listOrganisationEventsFilterByHomepageAsGuest200(): void { - $organisationEvent1 = OrganisationEvent::factory()->homepage()->create(); - $organisationEvent2 = OrganisationEvent::factory()->create(); + $organisationEvent1 = OrganisationEvent::factory()->homepage()->create([ + 'title' => 'Organisation Event 1', + 'slug' => 'organisation-event-1', + ]); + $organisationEvent2 = OrganisationEvent::factory()->create([ + 'title' => 'Organisation Event 2', + 'slug' => 'organisation-event-2', + ]); $response = $this->json('GET', '/core/v1/organisation-events?filter[homepage]=1'); @@ -128,7 +143,7 @@ public function getAllOrganisationEventsFilterByHomepageAsGuest200(): void /** * @test */ - public function getAllOrganisationEventsOnlyPastEventsAsGuest200(): void + public function listOrganisationEventsOnlyPastEventsAsGuest200(): void { $future = $this->faker->dateTimeBetween('+1 week', '+3 weeks')->format('Y-m-d'); $past = $this->faker->dateTimeBetween('-1 week', '-1 day')->format('Y-m-d'); @@ -137,18 +152,24 @@ public function getAllOrganisationEventsOnlyPastEventsAsGuest200(): void $starttime = $this->faker->time('H:i:s', 'now'); $organisationEvent1 = OrganisationEvent::factory()->create([ + 'title' => 'Organisation Event 1', + 'slug' => 'organisation-event-1', 'start_date' => $future, 'end_date' => $future, 'start_time' => $starttime, 'end_time' => $endtime, ]); $organisationEvent2 = OrganisationEvent::factory()->create([ + 'title' => 'Organisation Event 2', + 'slug' => 'organisation-event-2', 'start_date' => $past, 'end_date' => $past, 'start_time' => $starttime, 'end_time' => $endtime, ]); $organisationEvent3 = OrganisationEvent::factory()->create([ + 'title' => 'Organisation Event 3', + 'slug' => 'organisation-event-3', 'start_date' => $today, 'end_date' => $today, 'start_time' => $starttime, @@ -166,7 +187,7 @@ public function getAllOrganisationEventsOnlyPastEventsAsGuest200(): void /** * @test */ - public function getAllOrganisationEventsOnlyPastEventsAsOrganisationAdmin200(): void + public function listOrganisationEventsOnlyPastEventsAsOrganisationAdmin200(): void { $organisation = Organisation::factory()->create(); $user = User::factory()->create()->makeOrganisationAdmin($organisation); @@ -179,18 +200,24 @@ public function getAllOrganisationEventsOnlyPastEventsAsOrganisationAdmin200(): $endtime = $this->faker->time('H:i:s', '+1 hour'); $starttime = $this->faker->time('H:i:s', 'now'); $organisationEvent1 = OrganisationEvent::factory()->create([ + 'title' => 'Organisation Event 1', + 'slug' => 'organisation-event-1', 'start_date' => $future, 'end_date' => $future, 'start_time' => $starttime, 'end_time' => $endtime, ]); $organisationEvent2 = OrganisationEvent::factory()->create([ + 'title' => 'Organisation Event 2', + 'slug' => 'organisation-event-2', 'start_date' => $past, 'end_date' => $past, 'start_time' => $starttime, 'end_time' => $endtime, ]); $organisationEvent3 = OrganisationEvent::factory()->create([ + 'title' => 'Organisation Event 3', + 'slug' => 'organisation-event-3', 'start_date' => $today, 'end_date' => $today, 'start_time' => $starttime, @@ -208,7 +235,7 @@ public function getAllOrganisationEventsOnlyPastEventsAsOrganisationAdmin200(): /** * @test */ - public function getAllOrganisationEventsDateOrderDescendingAsGuest200(): void + public function listOrganisationEventsDateOrderDescendingAsGuest200(): void { $date1 = $this->faker->dateTimeBetween('+2 weeks', '+3 weeks')->format('Y-m-d'); $date2 = $this->faker->dateTimeBetween('+1 week', '+2 weeks')->format('Y-m-d'); @@ -217,18 +244,24 @@ public function getAllOrganisationEventsDateOrderDescendingAsGuest200(): void $starttime = $this->faker->time('H:i:s', 'now'); $organisationEvent1 = OrganisationEvent::factory()->create([ + 'title' => 'Organisation Event 1', + 'slug' => 'organisation-event-1', 'start_date' => $date1, 'end_date' => $date1, 'start_time' => $starttime, 'end_time' => $endtime, ]); $organisationEvent2 = OrganisationEvent::factory()->create([ + 'title' => 'Organisation Event 3', + 'slug' => 'organisation-event-2', 'start_date' => $date2, 'end_date' => $date2, 'start_time' => $starttime, 'end_time' => $endtime, ]); $organisationEvent3 = OrganisationEvent::factory()->create([ + 'title' => 'Organisation Event 3', + 'slug' => 'organisation-event-3', 'start_date' => $date3, 'end_date' => $date3, 'start_time' => $starttime, @@ -252,7 +285,7 @@ public function getAllOrganisationEventsDateOrderDescendingAsGuest200(): void /** * @test */ - public function getAllOrganisationEventsFilterByDatesAsGuest200(): void + public function listOrganisationEventsFilterByDatesAsGuest200(): void { $date1 = $this->faker->dateTimeBetween('+2 days', '+1 weeks'); $date2 = $this->faker->dateTimeBetween('+2 week', '+3 weeks'); @@ -261,18 +294,24 @@ public function getAllOrganisationEventsFilterByDatesAsGuest200(): void $starttime = $this->faker->time('H:i:s', 'now'); $organisationEvent1 = OrganisationEvent::factory()->create([ + 'title' => 'Organisation Event 1', + 'slug' => 'organisation-event-1', 'start_date' => $date1->format('Y-m-d'), 'end_date' => $date1->format('Y-m-d'), 'start_time' => $starttime, 'end_time' => $endtime, ]); $organisationEvent2 = OrganisationEvent::factory()->create([ + 'title' => 'Organisation Event 2', + 'slug' => 'organisation-event-2', 'start_date' => $date2->format('Y-m-d'), 'end_date' => $date2->format('Y-m-d'), 'start_time' => $starttime, 'end_time' => $endtime, ]); $organisationEvent3 = OrganisationEvent::factory()->create([ + 'title' => 'Organisation Event 3', + 'slug' => 'organisation-event-3', 'start_date' => $date3->format('Y-m-d'), 'end_date' => $date3->format('Y-m-d'), 'start_time' => $starttime, @@ -306,9 +345,11 @@ public function getAllOrganisationEventsFilterByDatesAsGuest200(): void /** * @test */ - public function getAllOrganisationEventsFilterByAccessibilityAsGuest200(): void + public function listOrganisationEventsFilterByAccessibilityAsGuest200(): void { $organisationEvent1 = OrganisationEvent::factory()->create([ + 'title' => 'Organisation Event 1', + 'slug' => 'organisation-event-1', 'is_virtual' => false, 'location_id' => function () { return Location::factory()->create([ @@ -318,6 +359,8 @@ public function getAllOrganisationEventsFilterByAccessibilityAsGuest200(): void }, ]); $organisationEvent2 = OrganisationEvent::factory()->create([ + 'title' => 'Organisation Event 2', + 'slug' => 'organisation-event-2', 'is_virtual' => false, 'location_id' => function () { return Location::factory()->create([ @@ -327,6 +370,8 @@ public function getAllOrganisationEventsFilterByAccessibilityAsGuest200(): void }, ]); $organisationEvent3 = OrganisationEvent::factory()->create([ + 'title' => 'Organisation Event 3', + 'slug' => 'organisation-event-3', 'is_virtual' => false, 'location_id' => function () { return Location::factory()->create([ @@ -336,6 +381,8 @@ public function getAllOrganisationEventsFilterByAccessibilityAsGuest200(): void }, ]); $organisationEvent4 = OrganisationEvent::factory()->create([ + 'title' => 'Organisation Event 4', + 'slug' => 'organisation-event-4', 'is_virtual' => false, 'location_id' => function () { return Location::factory()->create([ @@ -388,7 +435,7 @@ public function getAllOrganisationEventsFilterByAccessibilityAsGuest200(): void /** * @test */ - public function getAllOrganisationEventsFilterByCollectionAsGuest200(): void + public function listOrganisationEventsFilterByCollectionAsGuest200(): void { $organisationEventCollection1 = Collection::factory()->typeOrganisationEvent()->create(); $organisationEventCollection2 = Collection::factory()->typeOrganisationEvent()->create(); @@ -398,10 +445,22 @@ public function getAllOrganisationEventsFilterByCollectionAsGuest200(): void $organisationEventCollection1->syncCollectionTaxonomies((new \Illuminate\Database\Eloquent\Collection([$taxonomy1]))); $organisationEventCollection2->syncCollectionTaxonomies((new \Illuminate\Database\Eloquent\Collection([$taxonomy2]))); - $organisationEvent1 = OrganisationEvent::factory()->create(); - $organisationEvent2 = OrganisationEvent::factory()->create(); - $organisationEvent3 = OrganisationEvent::factory()->create(); - $organisationEvent4 = OrganisationEvent::factory()->create(); + $organisationEvent1 = OrganisationEvent::factory()->create([ + 'title' => 'Organisation Event 1', + 'slug' => 'organisation-event-1', + ]); + $organisationEvent2 = OrganisationEvent::factory()->create([ + 'title' => 'Organisation Event 2', + 'slug' => 'organisation-event-2', + ]); + $organisationEvent3 = OrganisationEvent::factory()->create([ + 'title' => 'Organisation Event 3', + 'slug' => 'organisation-event-3', + ]); + $organisationEvent4 = OrganisationEvent::factory()->create([ + 'title' => 'Organisation Event 4', + 'slug' => 'organisation-event-4', + ]); $organisationEvent1->syncTaxonomyRelationships((new \Illuminate\Database\Eloquent\Collection([$taxonomy1]))); $organisationEvent2->syncTaxonomyRelationships((new \Illuminate\Database\Eloquent\Collection([$taxonomy2]))); $organisationEvent3->syncTaxonomyRelationships((new \Illuminate\Database\Eloquent\Collection([$taxonomy3]))); @@ -426,7 +485,7 @@ public function getAllOrganisationEventsFilterByCollectionAsGuest200(): void /** * @test */ - public function getAllOrganisationEventsOnlyRelatedOrganisationsAsOrganisationAdmin200(): void + public function listOrganisationEventsOnlyRelatedOrganisationsAsOrganisationAdmin200(): void { $organisation1 = Organisation::factory()->create(); $organisation2 = Organisation::factory()->create(); @@ -435,9 +494,13 @@ public function getAllOrganisationEventsOnlyRelatedOrganisationsAsOrganisationAd Passport::actingAs($user); $organisationEvent1 = OrganisationEvent::factory()->create([ + 'title' => 'Organisation Event 1', + 'slug' => 'organisation-event-1', 'organisation_id' => $organisation1->id, ]); $organisationEvent2 = OrganisationEvent::factory()->create([ + 'title' => 'Organisation Event 2', + 'slug' => 'organisation-event-2', 'organisation_id' => $organisation2->id, ]); @@ -451,7 +514,7 @@ public function getAllOrganisationEventsOnlyRelatedOrganisationsAsOrganisationAd /** * @test */ - public function getAllOrganisationEventsCreatesAuditAsGuest200(): void + public function listOrganisationEventsCreatesAuditAsGuest200(): void { $this->fakeEvents(); @@ -523,12 +586,12 @@ public function postCreateOrganisationEventAsOrganisationAdmin200(): void $imageResponse = $this->json('POST', '/core/v1/files', [ 'is_private' => false, 'mime_type' => 'image/png', - 'file' => 'data:image/png;base64,'.base64_encode($image), + 'file' => 'data:image/png;base64,' . base64_encode($image), ]); $date = $this->faker->dateTimeBetween('tomorrow', '+6 weeks')->format('Y-m-d'); $payload = [ - 'title' => $this->faker->sentence(3), + 'title' => 'A New Organisation Event', 'start_date' => $date, 'end_date' => $date, 'start_time' => '09:00:00', @@ -563,50 +626,19 @@ public function postCreateOrganisationEventAsOrganisationAdmin200(): void $responseData = json_decode($response->getContent()); //Then an update request should be created for the new event - $this->assertDatabaseHas((new UpdateRequest())->getTable(), [ - 'user_id' => $user->id, - 'updateable_type' => UpdateRequest::NEW_TYPE_ORGANISATION_EVENT, - 'updateable_id' => null, - ]); - - $updateRequest = UpdateRequest::query() - ->where('updateable_type', UpdateRequest::NEW_TYPE_ORGANISATION_EVENT) - ->where('updateable_id', null) - ->firstOrFail(); + $updateRequest = UpdateRequest::findOrFail($response->json('id')); $this->assertEquals($updateRequest->data, $payload); - // Simulate frontend check by making call with UpdateRequest ID. - $updateRequestId = $responseData->id; - - $globalAdminUser = User::factory()->create()->makeSuperAdmin(); - Passport::actingAs($globalAdminUser); - - $updateRequestCheckResponse = $this->get( - route( - 'core.v1.update-requests.show', - ['update_request' => $updateRequestId] - ) - ); - - $updateRequestCheckResponse->assertSuccessful(); - $updateRequestResponseData = json_decode($updateRequestCheckResponse->getContent(), true); - - $this->assertEquals($updateRequestResponseData['data'], $payload); //And the organisation event should not yet be created $this->assertEmpty(OrganisationEvent::all()); - $updateRequestApproveResponse = $this->put( - route( - 'core.v1.update-requests.approve', - ['update_request' => $updateRequestId] - ) - ); - - $updateRequestApproveResponse->assertSuccessful(); + $this->approveUpdateRequest($updateRequest->id); unset($payload['category_taxonomies']); + $payload['slug'] = 'a-new-organisation-event'; + $this->assertDatabaseHas('organisation_events', $payload); } @@ -623,7 +655,7 @@ public function postCreateOrganisationEventAsGlobalAdmin200(): void $date = $this->faker->dateTimeBetween('tomorrow', '+6 weeks')->format('Y-m-d'); $payload = [ - 'title' => $this->faker->sentence(3), + 'title' => 'A New Organisation Event', 'start_date' => $date, 'end_date' => $date, 'start_time' => '09:00:00', @@ -653,24 +685,19 @@ public function postCreateOrganisationEventAsGlobalAdmin200(): void $response->assertStatus(Response::HTTP_OK); //Then an update request should be created for the new event - $this->assertDatabaseHas((new UpdateRequest())->getTable(), [ - 'user_id' => $user->id, - 'updateable_type' => UpdateRequest::NEW_TYPE_ORGANISATION_EVENT, - 'updateable_id' => null, - ]); - - $updateRequest = UpdateRequest::query() - ->where('updateable_type', UpdateRequest::NEW_TYPE_ORGANISATION_EVENT) - ->where('updateable_id', null) - ->where('user_id', $user->id) - ->firstOrFail(); + $updateRequest = UpdateRequest::findOrFail($response->json('id')); $this->assertEquals($updateRequest->data, $payload); + //And the organisation event should not yet be created + $this->assertEmpty(OrganisationEvent::all()); + $this->approveUpdateRequest($updateRequest->id); unset($payload['category_taxonomies']); + $payload['slug'] = 'a-new-organisation-event'; + // The organisation event is created $this->assertDatabaseHas((new OrganisationEvent())->getTable(), $payload); } @@ -688,7 +715,8 @@ public function postCreateOrganisationEventAsSuperAdmin201(): void $date = $this->faker->dateTimeBetween('tomorrow', '+6 weeks')->format('Y-m-d'); $payload = [ - 'title' => $this->faker->sentence(3), + 'title' => + 'A New Organisation Event', 'start_date' => $date, 'end_date' => $date, 'start_time' => '09:00:00', @@ -717,10 +745,12 @@ public function postCreateOrganisationEventAsSuperAdmin201(): void $response->assertStatus(Response::HTTP_CREATED); - $responseData = json_decode($response->getContent())->data; + unset($payload['category_taxonomies']); + + $payload['slug'] = 'a-new-organisation-event'; // The organisation event is created - $this->assertDatabaseHas((new OrganisationEvent())->getTable(), ['id' => $responseData->id]); + $this->assertDatabaseHas((new OrganisationEvent())->getTable(), $payload); // And no update request was created $this->assertEmpty(UpdateRequest::all()); @@ -856,17 +886,7 @@ public function postCreateHomepageOrganisationEventAsGlobalAdmin200(): void $response->assertStatus(Response::HTTP_OK); //Then an update request should be created for the new event - $this->assertDatabaseHas((new UpdateRequest())->getTable(), [ - 'user_id' => $user->id, - 'updateable_type' => UpdateRequest::NEW_TYPE_ORGANISATION_EVENT, - 'updateable_id' => null, - ]); - - $updateRequest = UpdateRequest::query() - ->where('updateable_type', UpdateRequest::NEW_TYPE_ORGANISATION_EVENT) - ->where('updateable_id', null) - ->where('user_id', $user->id) - ->firstOrFail(); + $updateRequest = UpdateRequest::findOrFail($response->json('id')); $this->assertEquals($updateRequest->data, $payload); @@ -1014,17 +1034,7 @@ public function postCreateOrganisationEventWithTaxonomiesAsGlobalAdmin200(): voi $response->assertStatus(Response::HTTP_OK); //Then an update request should be created for the new event - $this->assertDatabaseHas((new UpdateRequest())->getTable(), [ - 'user_id' => $user->id, - 'updateable_type' => UpdateRequest::NEW_TYPE_ORGANISATION_EVENT, - 'updateable_id' => null, - ]); - - $updateRequest = UpdateRequest::query() - ->where('updateable_type', UpdateRequest::NEW_TYPE_ORGANISATION_EVENT) - ->where('updateable_id', null) - ->where('user_id', $user->id) - ->firstOrFail(); + $updateRequest = UpdateRequest::findOrFail($response->json('id')); $this->assertEquals($updateRequest->data, $payload); @@ -1045,7 +1055,7 @@ public function postCreateOrganisationEventWithTaxonomiesAsGlobalAdmin200(): voi 'taxonomy_id' => $taxonomy->parent_id, ]); - $response = $this->getJson('/core/v1/organisation-events/'.$organisationEvent->id); + $response = $this->getJson('/core/v1/organisation-events/' . $organisationEvent->id); $response->assertStatus(Response::HTTP_OK); @@ -1211,7 +1221,7 @@ public function postCreateOrganisationEventWithImageAsGlobalAdmin200(): void $imageResponse = $this->json('POST', '/core/v1/files', [ 'is_private' => false, 'mime_type' => 'image/png', - 'file' => 'data:image/png;base64,'.base64_encode($image), + 'file' => 'data:image/png;base64,' . base64_encode($image), ]); $date = $this->faker->dateTimeBetween('tomorrow', '+6 weeks')->format('Y-m-d'); @@ -1247,17 +1257,7 @@ public function postCreateOrganisationEventWithImageAsGlobalAdmin200(): void $response->assertStatus(Response::HTTP_OK); //Then an update request should be created for the new event - $this->assertDatabaseHas((new UpdateRequest())->getTable(), [ - 'user_id' => $user->id, - 'updateable_type' => UpdateRequest::NEW_TYPE_ORGANISATION_EVENT, - 'updateable_id' => null, - ]); - - $updateRequest = UpdateRequest::query() - ->where('updateable_type', UpdateRequest::NEW_TYPE_ORGANISATION_EVENT) - ->where('updateable_id', null) - ->where('user_id', $user->id) - ->firstOrFail(); + $updateRequest = UpdateRequest::findOrFail($response->json('id')); $this->assertEquals($updateRequest->data, $payload); @@ -1277,7 +1277,7 @@ public function postCreateOrganisationEventWithImageAsGlobalAdmin200(): void /** * @test */ - public function postCreateOrganisationEventWithImageAsOrganisationAdmin201(): void + public function postCreateOrganisationEventWithImageAsOrganisationAdmin200(): void { $organisation = Organisation::factory()->create(); $location = Location::factory()->create(); @@ -1289,7 +1289,7 @@ public function postCreateOrganisationEventWithImageAsOrganisationAdmin201(): vo $imageResponse = $this->json('POST', '/core/v1/files', [ 'is_private' => false, 'mime_type' => 'image/png', - 'file' => 'data:image/png;base64,'.base64_encode($image), + 'file' => 'data:image/png;base64,' . base64_encode($image), ]); $date = $this->faker->dateTimeBetween('tomorrow', '+6 weeks')->format('Y-m-d'); @@ -1329,16 +1329,7 @@ public function postCreateOrganisationEventWithImageAsOrganisationAdmin201(): vo $responseData = json_decode($response->getContent()); //Then an update request should be created for the new event - $this->assertDatabaseHas((new UpdateRequest())->getTable(), [ - 'user_id' => $user->id, - 'updateable_type' => UpdateRequest::NEW_TYPE_ORGANISATION_EVENT, - 'updateable_id' => null, - ]); - - $updateRequest = UpdateRequest::query() - ->where('updateable_type', UpdateRequest::NEW_TYPE_ORGANISATION_EVENT) - ->where('updateable_id', null) - ->firstOrFail(); + $updateRequest = UpdateRequest::findOrFail($response->json('id')); $this->assertEquals($updateRequest->data, $payload); @@ -1382,7 +1373,7 @@ public function postCreateOrganisationEventWithImageAsOrganisationAdmin201(): vo /** * @test */ - public function postCreateOrganisationEventMinimumFieldsAsOrganisationAdmin201(): void + public function postCreateOrganisationEventMinimumFieldsAsOrganisationAdmin200(): void { $organisation = Organisation::factory()->create(); $location = Location::factory()->create(); @@ -1506,7 +1497,7 @@ public function postCreateOrganisationEventRequiredFieldsAsOrganisationAdmin422( /** * @test */ - public function postCreateOrganisationEventIfNotFreeRequiresFeeDataAsOrganisationAdmin201(): void + public function postCreateOrganisationEventIfNotFreeRequiresFeeDataAsOrganisationAdmin200(): void { $organisation = Organisation::factory()->create(); $location = Location::factory()->create(); @@ -1567,7 +1558,7 @@ public function postCreateOrganisationEventIfNotFreeRequiresFeeDataAsOrganisatio /** * @test */ - public function postCreateOrganisationEventWithOrganiserRequiresOrganiserContactAsOrganisationAdmin201(): void + public function postCreateOrganisationEventWithOrganiserRequiresOrganiserContactAsOrganisationAdmin200(): void { $organisation = Organisation::factory()->create(); $location = Location::factory()->create(); @@ -1636,7 +1627,7 @@ public function postCreateOrganisationEventWithOrganiserRequiresOrganiserContact /** * @test */ - public function postCreateOrganisationEventWithBookingDetailsRequiresAllBookingFieldsAsOrganisationAdmin201(): void + public function postCreateOrganisationEventWithBookingDetailsRequiresAllBookingFieldsAsOrganisationAdmin200(): void { $organisation = Organisation::factory()->create(); $location = Location::factory()->create(); @@ -1718,6 +1709,52 @@ public function getSingleOrganisationEventAsGuest200(): void $response->assertJsonFragment([ 'id' => $organisationEvent->id, 'title' => $organisationEvent->title, + 'slug' => $organisationEvent->slug, + 'start_date' => $organisationEvent->start_date->toDateString(), + 'end_date' => $organisationEvent->end_date->toDateString(), + 'start_time' => $organisationEvent->start_time, + 'end_time' => $organisationEvent->end_time, + 'intro' => $organisationEvent->intro, + 'description' => $organisationEvent->description, + 'is_free' => $organisationEvent->is_free, + 'fees_text' => $organisationEvent->fees_text, + 'fees_url' => $organisationEvent->fees_url, + 'organiser_name' => $organisationEvent->organisation_name, + 'organiser_phone' => $organisationEvent->organiser_phone, + 'organiser_email' => $organisationEvent->organiser_email, + 'organiser_url' => $organisationEvent->organiser_url, + 'booking_title' => $organisationEvent->booking_title, + 'booking_summary' => $organisationEvent->booking_summary, + 'booking_url' => $organisationEvent->booking_url, + 'booking_cta' => $organisationEvent->booking_cta, + 'homepage' => $organisationEvent->homepage, + 'is_virtual' => $organisationEvent->is_virtual, + 'google_calendar_link' => $organisationEvent->googleCalendarLink, + 'microsoft_calendar_link' => $organisationEvent->microsoftCalendarLink, + 'apple_calendar_link' => $organisationEvent->appleCalendarLink, + 'location_id' => $organisationEvent->location_id, + 'organisation_id' => $organisationEvent->organisation_id, + 'category_taxonomies' => [], + 'created_at' => $organisationEvent->created_at->format(CarbonImmutable::ISO8601), + 'updated_at' => $organisationEvent->updated_at->format(CarbonImmutable::ISO8601), + ]); + } + + /** + * @test + */ + public function getSingleOrganisationEventBySlugAsGuest200(): void + { + $organisationEvent = OrganisationEvent::factory()->create(); + + $response = $this->json('GET', "/core/v1/organisation-events/{$organisationEvent->slug}"); + + $response->assertStatus(Response::HTTP_OK); + + $response->assertJsonFragment([ + 'id' => $organisationEvent->id, + 'title' => $organisationEvent->title, + 'slug' => $organisationEvent->slug, 'start_date' => $organisationEvent->start_date->toDateString(), 'end_date' => $organisationEvent->end_date->toDateString(), 'start_time' => $organisationEvent->start_time, @@ -1770,14 +1807,55 @@ public function getSingleOrganisationEventAsGuestCreatesAudit200(): void /** * @test */ - public function getSingleOrganisationEventImageAsGuest200(): void + public function getSingleOrganisationEventImagePngAsGuest200(): void { - $organisationEvent = OrganisationEvent::factory()->withImage()->create(); + $image = File::factory()->imagePng()->create(); + $organisationEvent = OrganisationEvent::factory([ + 'image_file_id' => $image->id, + ])->create(); $response = $this->get("/core/v1/organisation-events/{$organisationEvent->id}/image.png"); $response->assertStatus(Response::HTTP_OK); $response->assertHeader('Content-Type', 'image/png'); + + $this->assertEquals(Storage::disk('local')->get('/test-data/image.png'), $response->content()); + } + + /** + * @test + */ + public function getSingleOrganisationEventImageJpgAsGuest200(): void + { + $image = File::factory()->imageJpg()->create(); + $organisationEvent = OrganisationEvent::factory([ + 'image_file_id' => $image->id, + ])->create(); + + $response = $this->get("/core/v1/organisation-events/{$organisationEvent->id}/image.jpg"); + + $response->assertStatus(Response::HTTP_OK); + $response->assertHeader('Content-Type', 'image/jpeg'); + + $this->assertEquals(Storage::disk('local')->get('/test-data/image.jpg'), $response->content()); + } + + /** + * @test + */ + public function getSingleOrganisationEventImageSvgAsGuest200(): void + { + $image = File::factory()->imageSvg()->create(); + $organisationEvent = OrganisationEvent::factory([ + 'image_file_id' => $image->id, + ])->create(); + + $response = $this->get("/core/v1/organisation-events/{$organisationEvent->id}/image.svg"); + + $response->assertStatus(Response::HTTP_OK); + $response->assertHeader('Content-Type', 'image/svg+xml'); + + $this->assertEquals(Storage::disk('local')->get('/test-data/image.svg'), $response->content()); } /** @@ -1820,24 +1898,24 @@ public function getSingleOrganisationEventIcalAsGuest200(): void 'VERSION:2.0', 'PRODID:-//hacksw/handcal//NONSGML v1.0//EN', 'BEGIN:VEVENT', - 'UID:'.$organisationEvent->id, - 'DTSTAMP:'.$now->format('Ymd\\THis\\Z'), - 'ORGANIZER;CN='.$organisationEvent->organiser_name.':MAILTO:'.$organisationEvent->organiser_email, - 'DTSTART:'.$start->format('Ymd\\THis\\Z'), - 'DTEND:'.$end->format('Ymd\\THis\\Z'), - 'SUMMARY:'.$organisationEvent->title, - 'DESCRIPTION:'.$organisationEvent->intro, - 'GEO:'.$organisationEvent->location->lat.';'.$organisationEvent->location->lon, - 'LOCATION:'.str_ireplace(',', '\,', $organisationEvent->location->toAddress()->__toString()), + 'UID:' . $organisationEvent->id, + 'DTSTAMP:' . $now->format('Ymd\\THis\\Z'), + 'ORGANIZER;CN=' . $organisationEvent->organiser_name . ':MAILTO:' . $organisationEvent->organiser_email, + 'DTSTART:' . $start->format('Ymd\\THis\\Z'), + 'DTEND:' . $end->format('Ymd\\THis\\Z'), + 'SUMMARY:' . $organisationEvent->title, + 'DESCRIPTION:' . $organisationEvent->intro, + 'GEO:' . $organisationEvent->location->lat . ';' . $organisationEvent->location->lon, + 'LOCATION:' . str_ireplace(',', '\,', $organisationEvent->location->toAddress()->__toString()), 'END:VEVENT', 'END:VCALENDAR', ]); - $this->assertEquals('https://calendar.google.com/calendar/render?action=TEMPLATE&dates='.urlencode($start->format('Ymd\\THis\\Z').'/'.$end->format('Ymd\\THis\\Z')).'&details='.$urlsafeTitle.'&location='.$urlsafeLocation.'&text='.$urlsafeIntro, $organisationEvent->googleCalendarlink); + $this->assertEquals('https://calendar.google.com/calendar/render?action=TEMPLATE&dates=' . urlencode($start->format('Ymd\\THis\\Z') . '/' . $end->format('Ymd\\THis\\Z')) . '&details=' . $urlsafeTitle . '&location=' . $urlsafeLocation . '&text=' . $urlsafeIntro, $organisationEvent->googleCalendarlink); - $this->assertEquals('https://outlook.office.com/calendar/0/deeplink/compose?path=%2Fcalendar%2Faction%2Fcompose&rru=addevent&startdt='.urlencode($start->format(DateTime::ATOM)).'&enddt='.urlencode($end->format(DateTime::ATOM)).'&subject='.$urlsafeTitle.'&location='.$urlsafeLocation.'&body='.$urlsafeIntro, $organisationEvent->microsoftCalendarLink); + $this->assertEquals('https://outlook.office.com/calendar/0/deeplink/compose?path=%2Fcalendar%2Faction%2Fcompose&rru=addevent&startdt=' . urlencode($start->format(DateTime::ATOM)) . '&enddt=' . urlencode($end->format(DateTime::ATOM)) . '&subject=' . $urlsafeTitle . '&location=' . $urlsafeLocation . '&body=' . $urlsafeIntro, $organisationEvent->microsoftCalendarLink); - $this->assertEquals(secure_url('/core/v1/organisation-events/'.$organisationEvent->id.'/event.ics'), $organisationEvent->appleCalendarLink); + $this->assertEquals(secure_url('/core/v1/organisation-events/' . $organisationEvent->id . '/event.ics'), $organisationEvent->appleCalendarLink); $response = $this->get($organisationEvent->appleCalendarLink); @@ -1944,32 +2022,9 @@ public function putUpdateOrganisationEventAsOrganisationAdmin200(): void $response->assertJsonFragment($payload); - $this->assertDatabaseHas((new UpdateRequest())->getTable(), [ - 'user_id' => $user->id, - 'updateable_type' => UpdateRequest::EXISTING_TYPE_ORGANISATION_EVENT, - 'updateable_id' => $organisationEvent->id, - ]); + $updateRequest = UpdateRequest::findOrFail($response->json('id')); - $data = UpdateRequest::query() - ->where('updateable_type', UpdateRequest::EXISTING_TYPE_ORGANISATION_EVENT) - ->where('updateable_id', $organisationEvent->id) - ->where('user_id', $user->id) - ->firstOrFail()->data; - - $this->assertEquals($data, $payload); - - // Simulate frontend check by making call with UpdateRequest ID. - $updateRequestId = json_decode($response->getContent())->id; - Passport::actingAs(User::factory()->create()->makeSuperAdmin()); - - $updateRequestCheckResponse = $this->get( - route( - 'core.v1.update-requests.show', - ['update_request' => $updateRequestId] - ) - ); - - $updateRequestCheckResponse->assertSuccessful(); + $this->assertEquals($updateRequest->data, $payload); } /** @@ -2016,17 +2071,7 @@ public function putUpdateOrganisationEventAsGlobalAdmin200(): void $response->assertJsonFragment($payload); - $this->assertDatabaseHas((new UpdateRequest())->getTable(), [ - 'user_id' => $user->id, - 'updateable_type' => UpdateRequest::EXISTING_TYPE_ORGANISATION_EVENT, - 'updateable_id' => $organisationEvent->id, - ]); - - $updateRequest = UpdateRequest::query() - ->where('updateable_type', UpdateRequest::EXISTING_TYPE_ORGANISATION_EVENT) - ->where('updateable_id', $organisationEvent->id) - ->where('user_id', $user->id) - ->firstOrFail(); + $updateRequest = UpdateRequest::findOrFail($response->json('id')); $this->assertEquals($updateRequest->data, $payload); @@ -2034,30 +2079,6 @@ public function putUpdateOrganisationEventAsGlobalAdmin200(): void // The organisation event is updated $this->assertDatabaseHas((new OrganisationEvent())->getTable(), array_merge(['id' => $organisationEvent->id], $payload)); - - $data = UpdateRequest::query() - ->where('updateable_type', UpdateRequest::EXISTING_TYPE_ORGANISATION_EVENT) - ->where('updateable_id', $organisationEvent->id) - ->firstOrFail() - ->data; - $this->assertEquals($data, $payload); - - // Simulate frontend check by making call with UpdateRequest ID. - $updateRequestId = json_decode($response->getContent())->id; - Passport::actingAs(User::factory()->create()->makeSuperAdmin()); - - $updateRequestCheckResponse = $this->get( - route( - 'core.v1.update-requests.show', - ['update_request' => $updateRequestId] - ) - ); - - $updateRequestCheckResponse->assertSuccessful(); - $updateRequestResponseData = json_decode($updateRequestCheckResponse->getContent()); - - // Update request should already have been approved. - $this->assertNotNull($updateRequestResponseData->approved_at); } /** @@ -2105,29 +2126,14 @@ public function putUpdateOrganisationEventAutoApprovedAsSuperAdmin200(): void // The organisation event is updated $this->assertDatabaseHas((new OrganisationEvent())->getTable(), array_merge(['id' => $organisationEvent->id], $payload)); - $data = UpdateRequest::query() + $updateRequest = UpdateRequest::query() ->where('updateable_type', UpdateRequest::EXISTING_TYPE_ORGANISATION_EVENT) ->where('updateable_id', $organisationEvent->id) - ->firstOrFail() - ->data; - $this->assertEquals($data, $payload); - - // Simulate frontend check by making call with UpdateRequest ID. - $updateRequestId = json_decode($response->getContent())->id; - Passport::actingAs($user); - - $updateRequestCheckResponse = $this->get( - route( - 'core.v1.update-requests.show', - ['update_request' => $updateRequestId] - ) - ); - - $updateRequestCheckResponse->assertSuccessful(); - $updateRequestResponseData = json_decode($updateRequestCheckResponse->getContent()); + ->firstOrFail(); + $this->assertEquals($updateRequest->data, $payload); // Update request should already have been approved. - $this->assertNotNull($updateRequestResponseData->approved_at); + $this->assertNotNull($updateRequest->approved_at); } /** @@ -2198,7 +2204,7 @@ public function putUpdateOrganisationEventAsGlobalAdminAddImage200(): void $imageResponse = $this->json('POST', '/core/v1/files', [ 'is_private' => false, 'mime_type' => 'image/png', - 'file' => 'data:image/png;base64,'.base64_encode($image), + 'file' => 'data:image/png;base64,' . base64_encode($image), ]); $organisationEvent = OrganisationEvent::factory()->create(); @@ -2211,11 +2217,7 @@ public function putUpdateOrganisationEventAsGlobalAdminAddImage200(): void $response->assertStatus(Response::HTTP_OK); - $updateRequest = UpdateRequest::query() - ->where('updateable_type', UpdateRequest::EXISTING_TYPE_ORGANISATION_EVENT) - ->where('updateable_id', $organisationEvent->id) - ->where('user_id', $user->id) - ->firstOrFail(); + $updateRequest = UpdateRequest::findOrFail($response->json('id')); $this->assertEquals($updateRequest->data, $payload); @@ -2244,11 +2246,7 @@ public function putUpdateOrganisationEventAsGlobalAdminRemoveImage200(): void $response->assertStatus(Response::HTTP_OK); - $updateRequest = UpdateRequest::query() - ->where('updateable_type', UpdateRequest::EXISTING_TYPE_ORGANISATION_EVENT) - ->where('updateable_id', $organisationEvent->id) - ->where('user_id', $user->id) - ->firstOrFail(); + $updateRequest = UpdateRequest::findOrFail($response->json('id')); $this->assertEquals($updateRequest->data, $payload); @@ -2355,10 +2353,63 @@ public function putUpdateOrganisationEventAddToHomepageAsOrganisationAdmin422(): * @test */ public function putUpdateOrganisationEventAddToHomepageAsGlobalAdmin200(): void + { + $user = User::factory()->create()->makeGlobalAdmin(); + + Passport::actingAs($user); + + $organisationEvent = OrganisationEvent::factory()->create([ + 'title' => 'Organisation Event Title', + 'slug' => 'organisation-event-title', + ]); + + $payload = [ + 'title' => 'New Event Title', + ]; + + $response = $this->json('PUT', "/core/v1/organisation-events/{$organisationEvent->id}", $payload); + + $response->assertStatus(Response::HTTP_OK); + + $updateRequest = UpdateRequest::findOrFail($response->json('id')); + $this->assertEquals($updateRequest->data, $payload); + + $this->approveUpdateRequest($updateRequest->id); + + // The organisation event is updated + $this->assertDatabaseHas((new OrganisationEvent())->getTable(), [ + 'title' => 'New Event Title', + 'slug' => 'organisation-event-title', + ]); + + $payload = [ + 'slug' => 'new-event-title', + ]; + + $response = $this->json('PUT', "/core/v1/organisation-events/{$organisationEvent->id}", $payload); + + $response->assertStatus(Response::HTTP_OK); + + $updateRequest = UpdateRequest::findOrFail($response->json('id')); + $this->assertEquals($updateRequest->data, $payload); + + $this->approveUpdateRequest($updateRequest->id); + + // The organisation event is updated + $this->assertDatabaseHas((new OrganisationEvent())->getTable(), [ + 'title' => 'New Event Title', + 'slug' => 'new-event-title', + ]); + } + + /** + * @test + */ + public function putUpdateOrganisationEventUpdateSlugAsOrganisationAdmin200(): void { $organisation = Organisation::factory()->create(); $location = Location::factory()->create(); - $user = User::factory()->create()->makeGlobalAdmin(); + $user = User::factory()->create()->makeOrganisationAdmin($organisation); Passport::actingAs($user); @@ -2386,7 +2437,7 @@ public function putUpdateOrganisationEventAddToHomepageAsGlobalAdmin200(): void 'booking_summary' => $this->faker->sentence(), 'booking_url' => $this->faker->url(), 'booking_cta' => $this->faker->words(2, true), - 'homepage' => true, + 'homepage' => false, 'is_virtual' => false, 'location_id' => $location->id, ]; @@ -2395,10 +2446,7 @@ public function putUpdateOrganisationEventAddToHomepageAsGlobalAdmin200(): void $response->assertStatus(Response::HTTP_OK); - $updateRequest = UpdateRequest::query() - ->where('updateable_type', UpdateRequest::EXISTING_TYPE_ORGANISATION_EVENT) - ->where('updateable_id', $organisationEvent->id) - ->firstOrFail(); + $updateRequest = UpdateRequest::findOrFail($response->json('id')); $this->assertEquals($updateRequest->data, $payload); $this->approveUpdateRequest($updateRequest->id); @@ -2462,17 +2510,8 @@ public function putUpdateOrganisationEventUpdateTaxonomiesAsOrganisationAdmin200 $response->assertStatus(Response::HTTP_OK); $response->assertJsonFragment(['data' => $payload]); $response->assertJsonFragment(['message' => __('updates.pending', ['appname' => config('app.name')])]); - $this->assertDatabaseHas((new UpdateRequest())->getTable(), [ - 'user_id' => $user->id, - 'updateable_type' => UpdateRequest::EXISTING_TYPE_ORGANISATION_EVENT, - 'updateable_id' => $organisationEvent->id, - ]); - - $data = UpdateRequest::query() - ->where('updateable_type', UpdateRequest::EXISTING_TYPE_ORGANISATION_EVENT) - ->where('updateable_id', $organisationEvent->id) - ->firstOrFail()->data; - $this->assertEquals($data, $payload); + $updateRequest = UpdateRequest::findOrFail($response->json('id')); + $this->assertEquals($updateRequest->data, $payload); $this->assertDatabaseHas(table(OrganisationEventTaxonomy::class), [ 'organisation_event_id' => $organisationEvent->id, @@ -2482,6 +2521,13 @@ public function putUpdateOrganisationEventUpdateTaxonomiesAsOrganisationAdmin200 'organisation_event_id' => $organisationEvent->id, 'taxonomy_id' => $taxonomy2->id, ]); + + $this->approveUpdateRequest($updateRequest->id); + + $this->assertDatabaseHas(table(OrganisationEventTaxonomy::class), [ + 'organisation_event_id' => $organisationEvent->id, + 'taxonomy_id' => $taxonomy2->id, + ]); } /** @@ -2541,16 +2587,7 @@ public function putUpdateOrganisationEventUpdateTaxonomiesAsGlobalAdmin200(): vo $response->assertJsonFragment(['data' => $payload]); $response->assertJsonFragment(['message' => __('updates.pending', ['appname' => config('app.name')])]); - $this->assertDatabaseHas((new UpdateRequest())->getTable(), [ - 'user_id' => $user->id, - 'updateable_type' => UpdateRequest::EXISTING_TYPE_ORGANISATION_EVENT, - 'updateable_id' => $organisationEvent->id, - ]); - - $updateRequest = UpdateRequest::query() - ->where('updateable_type', UpdateRequest::EXISTING_TYPE_ORGANISATION_EVENT) - ->where('updateable_id', $organisationEvent->id) - ->firstOrFail(); + $updateRequest = UpdateRequest::findOrFail($response->json('id')); $this->assertEquals($updateRequest->data, $payload); $this->approveUpdateRequest($updateRequest->id); diff --git a/tests/Feature/PagesTest.php b/tests/Feature/PagesTest.php index 226355686..711269b00 100644 --- a/tests/Feature/PagesTest.php +++ b/tests/Feature/PagesTest.php @@ -901,7 +901,6 @@ public function createPageAsContentAdmin200(): void ->where('user_id', $user->id) ->firstOrFail(); - // $data['slug'] = Str::slug($data['title']); $data['page_type'] = Page::PAGE_TYPE_INFORMATION; $this->assertEquals($data, $updateRequest->data); @@ -2578,6 +2577,7 @@ public function getEnabledInformationPageWithLandingPageAncestorAsGuest200(): vo $response->assertStatus(Response::HTTP_OK); $response->assertJsonResource([ 'id', + 'slug', 'title', 'excerpt', 'content', @@ -2738,16 +2738,7 @@ public function getDisabledPageAsContentAdmin200(): void */ public function getEnabledPageImagePNGAsGuest200(): void { - $parentPage = Page::factory()->create(); - - $image = File::factory()->pendingAssignment()->create([ - 'filename' => Str::random() . '.png', - 'mime_type' => 'image/png', - ]); - - $base64Image = 'data:image/png;base64,' . base64_encode(Storage::disk('local')->get('/test-data/image.png')); - - $image->uploadBase64EncodedFile($base64Image); + $image = File::factory()->imagePng()->create(); $page = Page::factory()->create([ 'image_file_id' => $image->id, @@ -2755,7 +2746,7 @@ public function getEnabledPageImagePNGAsGuest200(): void $response = $this->json('GET', '/core/v1/pages/' . $page->id . '/image.png'); $response->assertStatus(Response::HTTP_OK); - $this->assertEquals($base64Image, 'data:image/png;base64,' . base64_encode($response->content())); + $this->assertEquals(Storage::disk('local')->get('/test-data/image.png'), $response->content()); } /** @@ -2763,16 +2754,7 @@ public function getEnabledPageImagePNGAsGuest200(): void */ public function getEnabledPageImageJPGAsGuest200(): void { - $parentPage = Page::factory()->create(); - - $image = File::factory()->pendingAssignment()->create([ - 'filename' => Str::random() . '.jpg', - 'mime_type' => 'image/jepg', - ]); - - $base64Image = 'data:image/jpeg;base64,' . base64_encode(Storage::disk('local')->get('/test-data/image.jpg')); - - $image->uploadBase64EncodedFile($base64Image); + $image = File::factory()->imageJpg()->create(); $page = Page::factory()->create([ 'image_file_id' => $image->id, @@ -2780,24 +2762,15 @@ public function getEnabledPageImageJPGAsGuest200(): void $response = $this->json('GET', '/core/v1/pages/' . $page->id . '/image.jpg'); $response->assertStatus(Response::HTTP_OK); - $this->assertEquals($base64Image, 'data:image/jpeg;base64,' . base64_encode($response->content())); + $this->assertEquals(Storage::disk('local')->get('/test-data/image.jpg'), $response->content()); } /** * @test */ - public function getEnabledPageImageSVGAsGuest200(): void + public function getEnabledPageImageSvgAsGuest200(): void { - $parentPage = Page::factory()->create(); - - $image = File::factory()->pendingAssignment()->create([ - 'filename' => Str::random() . '.svg', - 'mime_type' => 'image/svg+xml', - ]); - - $base64Image = 'data:image/svg+xml;base64,' . base64_encode(Storage::disk('local')->get('/test-data/image.svg')); - - $image->uploadBase64EncodedFile($base64Image); + $image = File::factory()->imageSvg()->create(); $page = Page::factory()->create([ 'image_file_id' => $image->id, @@ -2805,7 +2778,7 @@ public function getEnabledPageImageSVGAsGuest200(): void $response = $this->json('GET', '/core/v1/pages/' . $page->id . '/image.svg'); $response->assertStatus(Response::HTTP_OK); - $this->assertEquals($base64Image, 'data:image/svg+xml;base64,' . base64_encode($response->content())); + $this->assertEquals(Storage::disk('local')->get('/test-data/image.svg'), $response->content()); } /** From c3ab76e174cdc2abd3788d9f61df92eb04cfe140 Mon Sep 17 00:00:00 2001 From: Stuart Laverick Date: Thu, 23 Nov 2023 17:25:26 +0000 Subject: [PATCH 03/14] Prevent slug clashes on OrganisationEvent factory --- database/factories/OrganisationEventFactory.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/database/factories/OrganisationEventFactory.php b/database/factories/OrganisationEventFactory.php index 5cde7a109..24d03b2e6 100644 --- a/database/factories/OrganisationEventFactory.php +++ b/database/factories/OrganisationEventFactory.php @@ -6,6 +6,7 @@ use App\Models\Location; use App\Models\Organisation; use Illuminate\Database\Eloquent\Factories\Factory; +use Illuminate\Support\Str; class OrganisationEventFactory extends Factory { @@ -17,10 +18,11 @@ public function definition(): array $date = $this->faker->dateTimeBetween('+1 week', '+6 weeks'); $endtime = $this->faker->time('H:i:s'); $starttime = $this->faker->time('H:i:s', $endtime); + $title = $this->faker->unique()->words(3, true); return [ - 'title' => 'Organisation Event Title', - 'slug' => 'organisation-event-title', + 'title' => $title, + 'slug' => Str::slug($title), 'start_date' => $date->format('Y-m-d'), 'end_date' => $date->format('Y-m-d'), 'start_time' => $starttime, From 33c7dc2afaee662b4c094cdb938577b9da5af1b3 Mon Sep 17 00:00:00 2001 From: Stuart Laverick Date: Sun, 26 Nov 2023 16:07:52 +0000 Subject: [PATCH 04/14] Fix update request entry for organisation created by global admin --- .env.example | 2 +- app/Models/Scopes/UpdateRequestScopes.php | 7 +------ 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/.env.example b/.env.example index 14876c410..ece6221f4 100644 --- a/.env.example +++ b/.env.example @@ -59,7 +59,7 @@ QUEUE_CONNECTION=sync # The AWS SQS config. # Cloudformation Template Outputs: DefaultQueueUrl up to last forward slash -# e.g. https://sqs.[]AWS Default region].amazonaws.com/[AWS Account ID]/ +# e.g. https://sqs.[AWS Default region].amazonaws.com/[AWS Account ID]/ SQS_PREFIX= # Cloudformation Template Outputs: DefaultQueue after the word 'default' # e.g. -[UUID]-[environment] diff --git a/app/Models/Scopes/UpdateRequestScopes.php b/app/Models/Scopes/UpdateRequestScopes.php index a60e587cf..985536534 100644 --- a/app/Models/Scopes/UpdateRequestScopes.php +++ b/app/Models/Scopes/UpdateRequestScopes.php @@ -138,12 +138,7 @@ public function getEntrySql(): string ), `update_requests`.`data`->>"$.organisation.name") ) WHEN "{$newOrganisationGlobalAdmin}" THEN ( - IF(`update_requests`.`data`->>"$.organisation.id", ( - SELECT `organisations`.`name` - FROM `organisations` - WHERE `update_requests`.`data`->>"$.organisation.id" = `organisations`.`id` - LIMIT 1 - ), `update_requests`.`data`->>"$.organisation.name") + `update_requests`.`data`->>"$.name" ) WHEN "{$organisationEvents}" THEN ( SELECT `organisation_events`.`title` From 4fd7d4c6f3b7cbec98bcc399c0cb5881b61d8b6a Mon Sep 17 00:00:00 2001 From: Stuart Laverick Date: Sun, 26 Nov 2023 18:31:15 +0000 Subject: [PATCH 05/14] Updated UK phone regex and stripped spaces --- .../OrganisationSignUpForm/StoreRequest.php | 20 +++++++++++++++++++ app/Rules/UkPhoneNumber.php | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/app/Http/Requests/OrganisationSignUpForm/StoreRequest.php b/app/Http/Requests/OrganisationSignUpForm/StoreRequest.php index c91f0a41e..7b396bb53 100644 --- a/app/Http/Requests/OrganisationSignUpForm/StoreRequest.php +++ b/app/Http/Requests/OrganisationSignUpForm/StoreRequest.php @@ -16,6 +16,7 @@ use App\Rules\UserEmailNotTaken; use App\Rules\VideoEmbed; use Illuminate\Foundation\Http\FormRequest; +use Illuminate\Support\Str; use Illuminate\Validation\Rule; class StoreRequest extends FormRequest @@ -225,4 +226,23 @@ public function messages(): array 'service.contact_email.email' => "4. Service, Additional Info tab - Please enter an email address users can use to contact your {$type} (eg. name@example.com).", ]; } + + /** + * Prepare the data for validation. + */ + protected function prepareForValidation(): void + { + logger('Before', ['user' => $this->user, 'organisation' => $this->organisation]); + $user = $this->user; + $user['phone'] = Str::remove(' ', $user['phone']); + + $organisation = $this->organisation; + $organisation['phone'] = Str::remove(' ', $organisation['phone']); + + $this->merge([ + 'user' => $user, + 'organisation' => $organisation, + ]); + logger('After', ['user' => $this->user, 'organisation' => $this->organisation]); + } } diff --git a/app/Rules/UkPhoneNumber.php b/app/Rules/UkPhoneNumber.php index 871a43eab..2785b4474 100644 --- a/app/Rules/UkPhoneNumber.php +++ b/app/Rules/UkPhoneNumber.php @@ -32,7 +32,7 @@ public function validate(string $attribute, mixed $value, Closure $fail): void $fail(__('validation.string')); } - if (preg_match('/^0([1-6][0-9]{8,10}|7[0-9]{9})$/', $value) !== 1) { + if (preg_match('/^0([1-6][0-9]{8,10}|7[0-9]{9}|8[0-9]{9})$/', $value) !== 1) { $fail($this->message()); } } From f42cb2b4f344891158c4f49d06a7a9fe88966aa1 Mon Sep 17 00:00:00 2001 From: Stuart Laverick Date: Mon, 27 Nov 2023 09:06:22 +0000 Subject: [PATCH 06/14] Fix failing tests --- app/Http/Requests/OrganisationSignUpForm/StoreRequest.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/Http/Requests/OrganisationSignUpForm/StoreRequest.php b/app/Http/Requests/OrganisationSignUpForm/StoreRequest.php index 7b396bb53..74adbb263 100644 --- a/app/Http/Requests/OrganisationSignUpForm/StoreRequest.php +++ b/app/Http/Requests/OrganisationSignUpForm/StoreRequest.php @@ -232,17 +232,17 @@ public function messages(): array */ protected function prepareForValidation(): void { - logger('Before', ['user' => $this->user, 'organisation' => $this->organisation]); $user = $this->user; $user['phone'] = Str::remove(' ', $user['phone']); $organisation = $this->organisation; - $organisation['phone'] = Str::remove(' ', $organisation['phone']); + if ($organisation['phone'] ?? false) { + $organisation['phone'] = Str::remove(' ', $organisation['phone']); + } $this->merge([ 'user' => $user, 'organisation' => $organisation, ]); - logger('After', ['user' => $this->user, 'organisation' => $this->organisation]); } } From 1f47a5b43414cb73c202881105691408ea43533f Mon Sep 17 00:00:00 2001 From: Stuart Laverick Date: Tue, 28 Nov 2023 21:45:28 +0000 Subject: [PATCH 07/14] Ensure search is updated when update request is processed --- app/Models/OrganisationEvent.php | 3 +++ app/Models/Page.php | 28 ++++++++-------------------- app/Models/Service.php | 3 +++ 3 files changed, 14 insertions(+), 20 deletions(-) diff --git a/app/Models/OrganisationEvent.php b/app/Models/OrganisationEvent.php index f9e67b6cb..558b662c4 100644 --- a/app/Models/OrganisationEvent.php +++ b/app/Models/OrganisationEvent.php @@ -171,6 +171,9 @@ public function applyUpdateRequest(UpdateRequest $updateRequest): UpdateRequest $this->syncTaxonomyRelationships($taxonomies); } + // Update the search index + $this->save(); + // Ensure conditional fields are reset if needed. $this->resetConditionalFields(); diff --git a/app/Models/Page.php b/app/Models/Page.php index d1817eb34..06df965d4 100644 --- a/app/Models/Page.php +++ b/app/Models/Page.php @@ -158,7 +158,7 @@ public function updateStatus($status): self { if ($this->parent && $this->parent->enabled === self::DISABLED) { $this->enabled = self::DISABLED; - } elseif (!is_null($status)) { + } elseif (!is_null($status) && $status !== $this->enabled) { $this->enabled = $status; } @@ -192,7 +192,7 @@ public function updateParent(?string $parentId = null): self */ public function updateOrder(?int $order): self { - if (!is_null($order)) { + if (!is_null($order) && $order !== $this->order) { $siblingAtIndex = $this->siblingAtIndex($order)->first(); $this->beforeOrAfterNode($siblingAtIndex, $siblingAtIndex->getLft() > $this->getLft()); } @@ -284,7 +284,7 @@ public function applyUpdateRequest(UpdateRequest $updateRequest): UpdateRequest $slug = $slugGenerator->generate($slug, 'pages'); } - // Update the organisation event record. + // Update the page record. $this->update([ 'title' => Arr::get($data, 'title', $this->title), 'slug' => $slug, @@ -293,28 +293,16 @@ public function applyUpdateRequest(UpdateRequest $updateRequest): UpdateRequest 'page_type' => Arr::get($data, 'page_type', $this->page_type), ]); - if (Arr::has($data, 'parent_id')) { - $this->updateParent(Arr::get($data, 'parent_id')); - $this->updateStatus(Arr::get($data, 'enabled', $this->enabled)); - } - - if (Arr::has($data, 'enabled')) { - $this->updateStatus(Arr::get($data, 'enabled')); - } - - if (Arr::has($data, 'order')) { - $this->updateOrder(Arr::get($data, 'order')); - } - - if (Arr::has($data, 'image_file_id')) { - $this->updateImage(Arr::get($data, 'image_file_id')); - } + $this->updateParent(Arr::get($data, 'parent_id', $this->parent_id)) + ->updateStatus(Arr::get($data, 'enabled', $this->enabled)) + ->updateOrder(Arr::get($data, 'order', $this->order)) + ->updateImage(Arr::get($data, 'image_file_id', $this->image_file_id)); if (Arr::has($data, 'collections')) { $this->updateCollections(Arr::get($data, 'collections')); } - // Update model so far + // Update the search index $this->save(); return $updateRequest; diff --git a/app/Models/Service.php b/app/Models/Service.php index edac51290..6c0bd4374 100644 --- a/app/Models/Service.php +++ b/app/Models/Service.php @@ -312,6 +312,9 @@ public function applyUpdateRequest(UpdateRequest $updateRequest): UpdateRequest } } + // Update the search index + $this->save(); + // Ensure conditional fields are reset if needed. $this->resetConditionalFields(); From 57c548c916e4de0987c148ae64c7364259d62b61 Mon Sep 17 00:00:00 2001 From: Stuart Laverick Date: Tue, 5 Dec 2023 16:09:51 +0000 Subject: [PATCH 08/14] Improved service search results --- app/Models/Model.php | 8 +- app/Models/OrganisationEvent.php | 8 +- app/Models/Page.php | 6 +- app/Models/Service.php | 8 +- app/Search/ElasticSearch/PageQueryBuilder.php | 14 +- .../ElasticSearch/ServiceQueryBuilder.php | 8 +- database/factories/ServiceFactory.php | 4 +- tests/Feature/PagesTest.php | 1 + tests/Feature/Search/ServiceTest.php | 187 ++++++++---------- tests/TestCase.php | 45 +++-- 10 files changed, 142 insertions(+), 147 deletions(-) diff --git a/app/Models/Model.php b/app/Models/Model.php index dceacc553..72a1a16a3 100644 --- a/app/Models/Model.php +++ b/app/Models/Model.php @@ -81,8 +81,12 @@ public function hasAppend(string $name): bool * * @author */ - public function onlyAlphaNumeric($string) + public function onlyWords($string) { - return preg_replace('/[^\w\d\s]+/i', '', $string); + preg_match_all('/(?:\b([A-Z,a-z]+)\b)/i', $string, $words); + + return implode(' ', array_filter($words[1], function ($word) { + return mb_strlen($word) > 2; + })); } } diff --git a/app/Models/OrganisationEvent.php b/app/Models/OrganisationEvent.php index 558b662c4..8daf8df8d 100644 --- a/app/Models/OrganisationEvent.php +++ b/app/Models/OrganisationEvent.php @@ -60,14 +60,14 @@ public function toSearchableArray(): array { $organisationEvent = [ 'id' => $this->id, - 'title' => $this->onlyAlphaNumeric($this->title), - 'intro' => $this->onlyAlphaNumeric($this->intro), - 'description' => $this->onlyAlphaNumeric($this->description), + 'title' => $this->onlyWords($this->title), + 'intro' => $this->onlyWords($this->intro), + 'description' => $this->onlyWords($this->description), 'start_date' => $this->start_date->setTimeFromTimeString($this->start_time)->toDateTimeLocalString(), 'end_date' => $this->end_date->setTimeFromTimeString($this->end_time)->toDateTimeLocalString(), 'is_free' => $this->is_free, 'is_virtual' => $this->is_virtual, - 'organisation_name' => $this->onlyAlphaNumeric($this->organisation->name), + 'organisation_name' => $this->onlyWords($this->organisation->name), 'taxonomy_categories' => $this->taxonomies()->pluck('name')->toArray(), 'collection_categories' => $this->collections()->pluck('name')->toArray(), 'event_location' => null, diff --git a/app/Models/Page.php b/app/Models/Page.php index 06df965d4..e2776e068 100644 --- a/app/Models/Page.php +++ b/app/Models/Page.php @@ -73,10 +73,10 @@ public function toSearchableArray(): array foreach ($sectionContent['content'] as $i => $contentBlock) { switch ($contentBlock['type']) { case 'copy': - $content[] = $this->onlyAlphaNumeric($contentBlock['value']); + $content[] = $this->onlyWords($contentBlock['value']); break; case 'cta': - $content[] = $this->onlyAlphaNumeric($contentBlock['title'] . ' ' . $contentBlock['description']); + $content[] = $this->onlyWords($contentBlock['title'] . ' ' . $contentBlock['description']); break; default: break; @@ -92,7 +92,7 @@ public function toSearchableArray(): array return [ 'id' => $this->id, 'enabled' => $this->enabled, - 'title' => $this->onlyAlphaNumeric($this->title), + 'title' => $this->onlyWords($this->title), 'content' => $contentSections, 'collection_categories' => $this->collections()->where('type', Collection::TYPE_CATEGORY)->pluck('name')->all(), 'collection_personas' => $this->collections()->where('type', Collection::TYPE_PERSONA)->pluck('name')->all(), diff --git a/app/Models/Service.php b/app/Models/Service.php index 6c0bd4374..7d4ee8995 100644 --- a/app/Models/Service.php +++ b/app/Models/Service.php @@ -111,14 +111,14 @@ public function toSearchableArray(): array return [ 'id' => $this->id, - 'name' => $this->onlyAlphaNumeric($this->name), - 'intro' => $this->onlyAlphaNumeric($this->intro), - 'description' => $this->onlyAlphaNumeric($this->description), + 'name' => $this->onlyWords($this->name), + 'intro' => $this->onlyWords($this->intro), + 'description' => $this->onlyWords($this->description), 'wait_time' => $this->wait_time, 'is_free' => $this->is_free, 'status' => $this->status, 'score' => $this->score, - 'organisation_name' => $this->onlyAlphaNumeric($this->organisation->name), + 'organisation_name' => $this->onlyWords($this->organisation->name), 'taxonomy_categories' => $this->taxonomies()->pluck('name')->toArray(), 'collection_categories' => static::collections($this)->where('type', Collection::TYPE_CATEGORY)->pluck('name')->toArray(), 'collection_personas' => static::collections($this)->where('type', Collection::TYPE_PERSONA)->pluck('name')->toArray(), diff --git a/app/Search/ElasticSearch/PageQueryBuilder.php b/app/Search/ElasticSearch/PageQueryBuilder.php index 3701b68fd..90ef3f59b 100644 --- a/app/Search/ElasticSearch/PageQueryBuilder.php +++ b/app/Search/ElasticSearch/PageQueryBuilder.php @@ -1,6 +1,6 @@ addMatch('title', $query, $this->shouldPath, 3); - // $this->addMatch('content.introduction.title', $query, $this->shouldPath, 2); - // $this->addMatch('content.introduction.content', $query, $this->shouldPath); - // $this->addMatch('content.about.title', $query, $this->shouldPath, 2); - // $this->addMatch('content.about.content', $query, $this->shouldPath); - // $this->addMatch('content.info_pages.title', $query, $this->shouldPath, 2); - // $this->addMatch('content.info_pages.content', $query, $this->shouldPath); - // $this->addMatch('content.collections.title', $query, $this->shouldPath, 2); - // $this->addMatch('content.collections.content', $query, $this->shouldPath); - // $this->addMatch('collection_categories', $query, $this->shouldPath); - // $this->addMatch('collection_personas', $query, $this->shouldPath); - $this->addMatch('title', $query, $this->shouldPath, 2); $this->addMatch('title', $query, $this->shouldPath, 3, 'AUTO', 'AND'); $this->addMatchPhrase('title', $query, $this->shouldPath, 5); diff --git a/app/Search/ElasticSearch/ServiceQueryBuilder.php b/app/Search/ElasticSearch/ServiceQueryBuilder.php index b81e040b9..6a0a3dc3e 100644 --- a/app/Search/ElasticSearch/ServiceQueryBuilder.php +++ b/app/Search/ElasticSearch/ServiceQueryBuilder.php @@ -27,10 +27,10 @@ public function __construct() ], 'functions' => [ [ - 'field_value_factor' => [ - 'field' => 'score', - 'missing' => 1, - 'modifier' => 'ln1p', + 'script_score' => [ + 'script' => [ + 'source' => "((doc['score'].value + 1) * 0.1) + 1", + ], ], ], ], diff --git a/database/factories/ServiceFactory.php b/database/factories/ServiceFactory.php index 7939091ed..b716bb728 100644 --- a/database/factories/ServiceFactory.php +++ b/database/factories/ServiceFactory.php @@ -26,8 +26,8 @@ public function definition(): array 'name' => $name, 'type' => Service::TYPE_SERVICE, 'status' => Service::STATUS_ACTIVE, - 'intro' => 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit.', - 'description' => 'Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium.', + 'intro' => mb_substr($this->faker->paragraph(2), 0, 149), + 'description' => $this->faker->paragraph(5), 'is_free' => true, 'url' => $this->faker->url(), 'contact_name' => $this->faker->name(), diff --git a/tests/Feature/PagesTest.php b/tests/Feature/PagesTest.php index 711269b00..73de2357d 100644 --- a/tests/Feature/PagesTest.php +++ b/tests/Feature/PagesTest.php @@ -1835,6 +1835,7 @@ public function createPageWithImageJPGAsContentAdmin200(): void ->firstOrFail(); $data['page_type'] = Page::PAGE_TYPE_INFORMATION; + $data['excerpt'] = trim($data['excerpt']); $this->assertEquals($data, $updateRequest->data); $this->approveUpdateRequest($updateRequest->id); diff --git a/tests/Feature/Search/ServiceTest.php b/tests/Feature/Search/ServiceTest.php index 181ca0715..a2598b4ec 100644 --- a/tests/Feature/Search/ServiceTest.php +++ b/tests/Feature/Search/ServiceTest.php @@ -2,15 +2,15 @@ namespace Tests\Feature\Search; -use App\Models\Collection; -use App\Models\Organisation; +use Tests\TestCase; use App\Models\Service; -use App\Models\ServiceLocation; use App\Models\Taxonomy; +use App\Models\Collection; +use App\Models\Organisation; +use Tests\UsesElasticsearch; use Illuminate\Http\Response; +use App\Models\ServiceLocation; use Illuminate\Support\Facades\DB; -use Tests\TestCase; -use Tests\UsesElasticsearch; class ServiceTest extends TestCase implements UsesElasticsearch { @@ -103,13 +103,13 @@ public function test_guest_can_search(): void public function test_query_matches_service_name(): void { - $service1 = Service::factory()->create(['name' => 'This is a test']); - $service2 = Service::factory()->create(['name' => 'Should not match']); + $service1 = Service::factory()->create(['name' => 'hunt remind voice']); + $service2 = Service::factory()->create(); sleep(1); $response = $this->json('POST', '/core/v1/search', [ - 'query' => 'This is a test', + 'query' => 'hunt remind voice', ]); $response->assertStatus(Response::HTTP_OK); @@ -120,7 +120,7 @@ public function test_query_matches_service_name(): void // Fuzzy match $response = $this->json('POST', '/core/v1/search', [ - 'query' => 'test those', + 'query' => 'voice hunted', ]); $response->assertStatus(Response::HTTP_OK); @@ -132,13 +132,13 @@ public function test_query_matches_service_name(): void public function test_query_matches_service_description(): void { - $service1 = Service::factory()->create(['description' => 'This is a test']); - $service2 = Service::factory()->create(['description' => 'Should not match']); + $service1 = Service::factory()->create(['description' => $this->textContainingPhrases(['rods game sleeps'], 500)]); + $service2 = Service::factory()->create(); sleep(1); $response = $this->json('POST', '/core/v1/search', [ - 'query' => 'This is a test', + 'query' => 'rods game sleeps', ]); $response->assertStatus(Response::HTTP_OK); @@ -149,7 +149,7 @@ public function test_query_matches_service_description(): void // Fuzzy match $response = $this->json('POST', '/core/v1/search', [ - 'query' => 'test those', + 'query' => 'sleep games', ]); $response->assertStatus(Response::HTTP_OK); @@ -163,8 +163,8 @@ public function test_query_matches_taxonomy_name(): void { $service1 = Service::factory()->create(); $taxonomy = Taxonomy::category()->children()->create([ - 'slug' => 'this-is-a-test', - 'name' => 'This is a test', + 'slug' => 'singer-tonic-brings', + 'name' => 'Singer Tonic Brings', 'order' => 1, 'depth' => 1, ]); @@ -172,8 +172,8 @@ public function test_query_matches_taxonomy_name(): void $service2 = Service::factory()->create(); $taxonomy = Taxonomy::category()->children()->create([ - 'slug' => 'should-not-match', - 'name' => 'Should not match', + 'slug' => 'inches-translated-brief', + 'name' => 'Inches Translated Brief', 'order' => 1, 'depth' => 1, ]); @@ -182,7 +182,7 @@ public function test_query_matches_taxonomy_name(): void sleep(1); $response = $this->json('POST', '/core/v1/search', [ - 'query' => 'This is a test', + 'query' => 'singer tonic brings', ]); $response->assertStatus(Response::HTTP_OK); @@ -191,7 +191,7 @@ public function test_query_matches_taxonomy_name(): void // Fuzzy $response = $this->json('POST', '/core/v1/search', [ - 'query' => 'test these', + 'query' => 'bring a song', ]); $response->assertStatus(Response::HTTP_OK); @@ -203,8 +203,8 @@ public function test_query_matches_partial_taxonomy_name(): void { $service1 = Service::factory()->create(); $taxonomy = Taxonomy::category()->children()->create([ - 'slug' => 'phpunit-taxonomy', - 'name' => 'PHPUnit Taxonomy', + 'slug' => 'blocks-grain-taps', + 'name' => 'Blocks Grain Taps', 'order' => 1, 'depth' => 1, ]); @@ -212,8 +212,8 @@ public function test_query_matches_partial_taxonomy_name(): void $service2 = Service::factory()->create(); $taxonomy = Taxonomy::category()->children()->create([ - 'slug' => 'should-not-match', - 'name' => 'Should not match', + 'slug' => 'cool-extra-reveal', + 'name' => 'Cool Extra Reveal', 'order' => 1, 'depth' => 1, ]); @@ -222,7 +222,7 @@ public function test_query_matches_partial_taxonomy_name(): void sleep(1); $response = $this->json('POST', '/core/v1/search', [ - 'query' => 'PHPUnit', + 'query' => 'grain', ]); $response->assertStatus(Response::HTTP_OK); @@ -231,7 +231,7 @@ public function test_query_matches_partial_taxonomy_name(): void // Fuzzy $response = $this->json('POST', '/core/v1/search', [ - 'query' => 'HPHUnit', + 'query' => 'block', ]); $response->assertStatus(Response::HTTP_OK); @@ -241,15 +241,15 @@ public function test_query_matches_partial_taxonomy_name(): void public function test_query_matches_organisation_name(): void { - $organisation1 = Organisation::factory()->create(['name' => 'This is a test']); - $organisation2 = Organisation::factory()->create(['name' => 'Should not match']); + $organisation1 = Organisation::factory()->create(['name' => 'Riches Resist Envy']); + $organisation2 = Organisation::factory()->create(); $service1 = Service::factory()->create(['organisation_id' => $organisation1->id]); $service2 = Service::factory()->create(['organisation_id' => $organisation2->id]); sleep(1); $response = $this->json('POST', '/core/v1/search', [ - 'query' => 'This is a test', + 'query' => 'riches resist envy', ]); $response->assertStatus(Response::HTTP_OK); @@ -260,7 +260,7 @@ public function test_query_matches_organisation_name(): void // Fuzzy $response = $this->json('POST', '/core/v1/search', [ - 'query' => 'test those', + 'query' => 'envy rich', ]); $response->assertStatus(Response::HTTP_OK); @@ -270,40 +270,33 @@ public function test_query_matches_organisation_name(): void public function test_query_ranks_service_name_equivalent_to_organisation_name(): void { - $organisation = Organisation::factory()->create(['name' => 'This is a test']); + $organisation = Organisation::factory()->create(['name' => 'Hammer Play Swim']); $serviceWithRelevantOrganisationName = Service::factory()->create([ 'name' => 'Relevant Organisation', - 'intro' => 'Service Intro', - 'description' => 'Service description', 'organisation_id' => $organisation->id, ]); $serviceWithRelevantOrganisationName->save(); $serviceWithRelevantServiceName = Service::factory()->create([ - 'name' => 'This is a test', - 'intro' => 'Service Intro', + 'name' => 'Hammer Play Swim', 'description' => 'Service description', ]); $serviceWithRelevantServiceName->save(); $serviceWithRelevantIntro = Service::factory()->create([ 'name' => 'Relevant Intro', - 'intro' => 'This is a test', - 'description' => 'Service description', + 'intro' => 'Hammer Play Swim', ]); $serviceWithRelevantIntro->save(); $serviceWithRelevantDescription = Service::factory()->create([ 'name' => 'Relevant Description', - 'intro' => 'Service Intro', - 'description' => 'This is a test', + 'description' => 'Hammer Play Swim', ]); $serviceWithRelevantDescription->save(); $serviceWithRelevantTaxonomy = Service::factory()->create([ 'name' => 'Relevant Taxonomy', - 'intro' => 'Service Intro', - 'description' => 'Service description', ]); $taxonomy = Taxonomy::category()->children()->create([ - 'slug' => 'this-is-a-test', - 'name' => 'This is a test', + 'slug' => 'hammer-play-swim', + 'name' => 'Hammer Play Swim', 'order' => 1, 'depth' => 1, ]); @@ -313,7 +306,7 @@ public function test_query_ranks_service_name_equivalent_to_organisation_name(): sleep(1); $response = $this->json('POST', '/core/v1/search', [ - 'query' => 'This is a test', + 'query' => 'hammer play swim', ]); $response->assertStatus(Response::HTTP_OK); @@ -326,13 +319,13 @@ public function test_query_ranks_service_name_equivalent_to_organisation_name(): public function test_query_ranks_perfect_match_above_fuzzy_match(): void { - $service1 = Service::factory()->create(['name' => 'This is a test']); - $service2 = Service::factory()->create(['name' => 'These tests']); + $service1 = Service::factory()->create(['name' => 'Could Avoid Plans']); + $service2 = Service::factory()->create(['name' => 'Plan Avoids']); sleep(1); $response = $this->json('POST', '/core/v1/search', [ - 'query' => 'This is a test', + 'query' => 'could avoid plans', ]); $response->assertStatus(Response::HTTP_OK); @@ -353,17 +346,15 @@ public function test_query_ranks_perfect_match_above_fuzzy_match(): void public function test_query_matches_service_intro(): void { $service1 = Service::factory()->create([ - 'intro' => 'This is a service that helps the homeless find temporary housing.', + 'intro' => $this->textContainingPhrases(['glaze mild chats']), ]); - $service2 = Service::factory()->create([ - 'intro' => 'This is a service that helps provide food.', - ]); + $service2 = Service::factory()->create(); sleep(1); $response = $this->json('POST', '/core/v1/search', [ - 'query' => 'housing', + 'query' => 'glaze mild chats', ]); $response->assertStatus(Response::HTTP_OK); @@ -374,7 +365,7 @@ public function test_query_matches_service_intro(): void // Fuzzy $response = $this->json('POST', '/core/v1/search', [ - 'query' => 'housign', + 'query' => 'chat mild', ]); $response->assertStatus(Response::HTTP_OK); @@ -387,13 +378,13 @@ public function test_query_matches_service_intro(): void public function test_query_matches_single_word_from_service_description(): void { $service = Service::factory()->create([ - 'description' => 'This is a service that helps to homeless find temporary housing.', + 'description' => $this->textContainingPhrases(['accent'], 500), ]); sleep(1); $response = $this->json('POST', '/core/v1/search', [ - 'query' => 'homeless', + 'query' => 'accent', ]); $response->assertStatus(Response::HTTP_OK); @@ -403,17 +394,15 @@ public function test_query_matches_single_word_from_service_description(): void public function test_query_matches_multiple_words_from_service_description(): void { $service1 = Service::factory()->create([ - 'description' => 'This is a service that helps to homeless find temporary housing.', + 'description' => $this->textContainingPhrases(['hurls star humans']), ]); - $service2 = Service::factory()->create([ - 'intro' => 'This is a service that helps provide food.', - ]); + $service2 = Service::factory()->create(); sleep(1); $response = $this->json('POST', '/core/v1/search', [ - 'query' => 'temporary housing', + 'query' => 'hurls star humans', ]); $response->assertStatus(Response::HTTP_OK); @@ -422,7 +411,7 @@ public function test_query_matches_multiple_words_from_service_description(): vo // Fuzzy $response = $this->json('POST', '/core/v1/search', [ - 'query' => 'temprary housign', + 'query' => 'human stars', ]); $response->assertStatus(Response::HTTP_OK); @@ -502,7 +491,7 @@ public function test_order_by_location_works(): void public function test_query_and_filter_works(): void { - $service = Service::factory()->create(['name' => 'Ayup Digital']); + $service = Service::factory()->create(['name' => 'Crass Tall Films']); $collection = Collection::create([ 'type' => Collection::TYPE_CATEGORY, 'slug' => 'self-help', @@ -520,7 +509,7 @@ public function test_query_and_filter_works(): void $service->serviceTaxonomies()->create(['taxonomy_id' => $taxonomy->id]); $service->save(); - $differentService = Service::factory()->create(['name' => 'Ayup Digital']); + $differentService = Service::factory()->create(['name' => 'Crass Tall Films']); $differentCollection = Collection::create([ 'type' => Collection::TYPE_PERSONA, 'slug' => 'refugees', @@ -541,7 +530,7 @@ public function test_query_and_filter_works(): void sleep(1); $response = $this->json('POST', '/core/v1/search', [ - 'query' => 'Ayup Digital', + 'query' => 'crass tall films', 'category' => 'self-help', ]); @@ -552,7 +541,7 @@ public function test_query_and_filter_works(): void public function test_query_and_filter_works_when_query_does_not_match(): void { - $service = Service::factory()->create(['name' => 'Ayup Digital']); + $service = Service::factory()->create(['name' => 'Richer Value Term']); $collection = Collection::create([ 'type' => Collection::TYPE_CATEGORY, 'slug' => 'self-help', @@ -570,7 +559,7 @@ public function test_query_and_filter_works_when_query_does_not_match(): void $service->serviceTaxonomies()->create(['taxonomy_id' => $taxonomy->id]); $service->save(); - $differentService = Service::factory()->create(['name' => 'Ayup Digital']); + $differentService = Service::factory()->create(['name' => 'Richer Value Term']); $differentCollection = Collection::create([ 'type' => Collection::TYPE_PERSONA, 'slug' => 'refugees', @@ -591,7 +580,7 @@ public function test_query_and_filter_works_when_query_does_not_match(): void sleep(1); $response = $this->json('POST', '/core/v1/search', [ - 'query' => 'asfkjbadsflksbdafklhasdbflkbs', + 'query' => 'affair uses loud', 'category' => 'self-help', ]); @@ -602,18 +591,18 @@ public function test_query_and_filter_works_when_query_does_not_match(): void public function test_only_active_services_returned(): void { $activeService = Service::factory()->create([ - 'name' => 'Testing Service', + 'name' => 'Sobs Short Hosts', 'status' => Service::STATUS_ACTIVE, ]); $inactiveService = Service::factory()->create([ - 'name' => 'Testing Service', + 'name' => 'Sobs Short Hosts', 'status' => Service::STATUS_INACTIVE, ]); sleep(1); $response = $this->json('POST', '/core/v1/search', [ - 'query' => 'Testing Service', + 'query' => 'Sobs Short Hosts', ]); $response->assertStatus(Response::HTTP_OK); @@ -698,12 +687,12 @@ public function test_order_by_relevance_with_location_return_services_less_than_ DB::table('locations')->where('id', $serviceLocation->location->id)->update(['lat' => 0, 'lon' => 0]); $service1->save(); - $service2 = Service::factory()->create(['name' => 'Test Name']); + $service2 = Service::factory()->create(['name' => 'Copper Pipe Lace']); $serviceLocation2 = ServiceLocation::factory()->create(['service_id' => $service2->id]); DB::table('locations')->where('id', $serviceLocation2->location->id)->update(['lat' => 45.01, 'lon' => 90.01]); $service2->save(); - $organisation3 = Organisation::factory()->create(['name' => 'Test Name']); + $organisation3 = Organisation::factory()->create(['name' => 'Copper Pipe Lace']); $service3 = Service::factory()->create(['organisation_id' => $organisation3->id]); $serviceLocation3 = ServiceLocation::factory()->create(['service_id' => $service3->id]); DB::table('locations')->where('id', $serviceLocation3->location->id)->update(['lat' => 45, 'lon' => 90]); @@ -717,7 +706,7 @@ public function test_order_by_relevance_with_location_return_services_less_than_ sleep(1); $response = $this->json('POST', '/core/v1/search', [ - 'query' => 'Test Name', + 'query' => 'copper pipe lace', 'order' => 'relevance', 'location' => [ 'lat' => 45, @@ -746,20 +735,20 @@ public function test_order_by_relevance_with_location_return_services_less_than_ $service1->save(); // Relevant < 1 mile - $service2 = Service::factory()->create(['intro' => 'This is a test']); + $service2 = Service::factory()->create(['intro' => 'Unable Regard Festivity']); $serviceLocation2 = ServiceLocation::factory()->create(['service_id' => $service2->id]); DB::table('locations')->where('id', $serviceLocation2->location->id)->update(['lat' => 51.46813624630186, 'lon' => -0.38543053111827796]); $service2->save(); // Relevant < 1 mile - $organisation3 = Organisation::factory()->create(['name' => 'This is a test']); + $organisation3 = Organisation::factory()->create(['name' => 'Unable Regard Festivity']); $service3 = Service::factory()->create(['organisation_id' => $organisation3->id]); $serviceLocation3 = ServiceLocation::factory()->create(['service_id' => $service3->id]); DB::table('locations')->where('id', $serviceLocation3->location->id)->update(['lat' => 51.46933926508632, 'lon' => -0.3745729484111921]); $service3->save(); // Relevant > 1 mile - $service4 = Service::factory()->create(['name' => 'This is a test']); + $service4 = Service::factory()->create(['name' => 'Unable Regard Festivity']); $serviceLocation4 = ServiceLocation::factory()->create(['service_id' => $service4->id]); DB::table('locations')->where('id', $serviceLocation4->location->id)->update(['lat' => 51.46741441979822, 'lon' => -0.40152378521657234]); $service4->save(); @@ -767,7 +756,7 @@ public function test_order_by_relevance_with_location_return_services_less_than_ sleep(1); $response = $this->json('POST', '/core/v1/search', [ - 'query' => 'This is a test', + 'query' => 'unable regard festivity', 'order' => 'relevance', 'distance' => 1, 'location' => [ @@ -836,29 +825,29 @@ public function test_searches_are_carried_out_in_specified_collections(): void $collection3->collectionTaxonomies()->create(['taxonomy_id' => $taxonomy3->id]); // Service 1 is in Collection 1 - $service1 = Service::factory()->create(['name' => 'Foo Bar']); + $service1 = Service::factory()->create(['name' => 'Learns Snows Incomes']); $service1->serviceTaxonomies()->create(['taxonomy_id' => $taxonomy1->id]); $service1->save(); // Service 2 is in Collection 2 - $service2 = Service::factory()->create(['name' => 'Foo Bim']); + $service2 = Service::factory()->create(['name' => 'Snaps Snow Focus']); $service2->serviceTaxonomies()->create(['taxonomy_id' => $taxonomy2->id]); $service2->save(); // Service 3 is in Collection 2 - $service3 = Service::factory()->create(['name' => 'Foo Foo']); + $service3 = Service::factory()->create(['name' => 'Former Snow Bond']); $service3->serviceTaxonomies()->create(['taxonomy_id' => $taxonomy2->id]); $service3->save(); // Service 4 is in Collection 3 - $service4 = Service::factory()->create(['name' => 'Foo Baz']); + $service4 = Service::factory()->create(['name' => 'Grades Snow Foster']); $service4->serviceTaxonomies()->create(['taxonomy_id' => $taxonomy3->id]); $service4->save(); sleep(1); $response = $this->json('POST', '/core/v1/search', [ - 'query' => 'Foo', + 'query' => 'Snow', 'category' => implode(',', [$collection2->slug, $collection3->slug]), ]); @@ -987,14 +976,14 @@ public function test_location_searches_and_queries_are_carried_out_in_specified_ $collection3->collectionTaxonomies()->create(['taxonomy_id' => $taxonomy3->id]); // Service 1 is in Collection 1 - $service1 = Service::factory()->create(['name' => 'Service 1 Bar']); + $service1 = Service::factory()->create(['name' => 'Snow Forgot Dare']); $service1->serviceTaxonomies()->create(['taxonomy_id' => $taxonomy1->id]); $serviceLocation1 = ServiceLocation::factory()->create(['service_id' => $service1->id]); DB::table('locations')->where('id', $serviceLocation1->location->id)->update(['lat' => 041.9374814, 'lon' => -8.8643883]); $service1->save(); // Service 2 is in Collection 2 - $service2 = Service::factory()->create(['name' => 'Service 2 Baz']); + $service2 = Service::factory()->create(['name' => 'Grace Vanish Organs']); $service2->serviceTaxonomies()->create(['taxonomy_id' => $taxonomy2->id]); $service2->serviceTaxonomies()->create(['taxonomy_id' => $taxonomy3->id]); $serviceLocation2 = ServiceLocation::factory()->create(['service_id' => $service2->id]); @@ -1002,14 +991,14 @@ public function test_location_searches_and_queries_are_carried_out_in_specified_ $service2->save(); // Service 3 is in Collection 2 - $service3 = Service::factory()->create(['name' => 'Service 3 Foo']); + $service3 = Service::factory()->create(['name' => 'Mouth Score Limp']); $service3->serviceTaxonomies()->create(['taxonomy_id' => $taxonomy2->id]); $serviceLocation3 = ServiceLocation::factory()->create(['service_id' => $service3->id]); DB::table('locations')->where('id', $serviceLocation3->location->id)->update(['lat' => 90, 'lon' => 90]); $service3->save(); // Service 4 is in Collection 3 - $service4 = Service::factory()->create(['name' => 'Service 4 Baz']); + $service4 = Service::factory()->create(['name' => 'Logo Vanish Froth']); $service4->serviceTaxonomies()->create(['taxonomy_id' => $taxonomy3->id]); $serviceLocation4 = ServiceLocation::factory()->create(['service_id' => $service4->id]); DB::table('locations')->where('id', $serviceLocation4->location->id)->update(['lat' => 041.9374814, 'lon' => -8.8643883]); @@ -1018,7 +1007,7 @@ public function test_location_searches_and_queries_are_carried_out_in_specified_ sleep(1); $response = $this->json('POST', '/core/v1/search', [ - 'query' => 'Baz', + 'query' => 'vanish', 'persona' => implode(',', [$collection3->slug]), 'location' => [ 'lat' => 041.9374814, @@ -1128,13 +1117,13 @@ public function test_query_results_filtered_when_eligibity_filter_applied(): voi { $serviceEligibility1 = Taxonomy::where('name', '12 - 15 years')->firstOrFail(); $serviceEligibility2 = Taxonomy::where('name', '16 - 18 years')->firstOrFail(); - $service1 = Service::factory()->create(['name' => 'This is a test']); - $service2 = Service::factory()->create(['intro' => 'This is a test']); - $service3 = Service::factory()->create(['description' => 'This is a test']); + $service1 = Service::factory()->create(['name' => 'Closer Tries Rust']); + $service2 = Service::factory()->create(['intro' => $this->textContainingPhrases(['closer tries rust'])]); + $service3 = Service::factory()->create(['description' => $this->textContainingPhrases(['closer tries rust'], 500)]); $service4 = Service::factory()->create(); $taxonomy = Taxonomy::category()->children()->create([ - 'slug' => 'this-is-a-test', - 'name' => 'This is a test', + 'slug' => 'closer-tries-rust', + 'name' => 'Closer Tries Rust', 'order' => 1, 'depth' => 1, ]); @@ -1159,14 +1148,14 @@ public function test_query_results_filtered_when_eligibity_filter_applied(): voi sleep(1); $response = $this->json('POST', '/core/v1/search', [ - 'query' => 'This is a test', + 'query' => 'closer tries rust', ]); $response->assertStatus(Response::HTTP_OK); $response->assertJsonCount(4, 'data'); $response = $this->json('POST', '/core/v1/search', [ - 'query' => 'This is a test', + 'query' => 'closer tries rust', 'eligibilities' => [ '12 - 15 years'], ]); @@ -1412,9 +1401,7 @@ public function test_services_with_a_higher_score_are_more_relevant(): void $organisation = \App\Models\Organisation::factory()->create(); $serviceParams = [ 'organisation_id' => $organisation->id, - 'name' => 'Testing Service', - 'intro' => 'Service Intro', - 'description' => 'Service description', + 'name' => 'Royal Organs Hike', ]; $service3 = Service::factory()->create(array_merge($serviceParams, ['score' => 3])); $service5 = Service::factory()->create(array_merge($serviceParams, ['score' => 5])); @@ -1423,7 +1410,7 @@ public function test_services_with_a_higher_score_are_more_relevant(): void sleep(1); $response = $this->json('POST', '/core/v1/search', [ - 'query' => 'Testing Service', + 'query' => 'royal organs hike', ]); $response->assertStatus(Response::HTTP_OK); @@ -1439,9 +1426,7 @@ public function test_service_scores_are_secondary_to_distance(): void $organisation = \App\Models\Organisation::factory()->create(); $serviceParams = [ 'organisation_id' => $organisation->id, - 'name' => 'Testing Service', - 'intro' => 'Service Intro', - 'description' => 'Service description', + 'name' => 'Stars Serve Remain', ]; $service5 = Service::factory()->create(array_merge($serviceParams, ['score' => 5])); @@ -1457,7 +1442,7 @@ public function test_service_scores_are_secondary_to_distance(): void sleep(1); $response = $this->json('POST', '/core/v1/search', [ - 'query' => 'Testing Service', + 'query' => 'stars serve remain', 'order' => 'distance', 'location' => [ 'lat' => 45, diff --git a/tests/TestCase.php b/tests/TestCase.php index e4878dee6..d9cfd0358 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -2,24 +2,24 @@ namespace Tests; -use App\Models\Collection; -use App\Models\OrganisationEvent; use App\Models\Page; +use App\Models\User; use App\Models\Service; use App\Models\Taxonomy; -use App\Models\User; -use Illuminate\Database\Eloquent\Model; -use Illuminate\Foundation\Testing\RefreshDatabase; -use Illuminate\Foundation\Testing\TestCase as BaseTestCase; -use Illuminate\Foundation\Testing\WithFaker; -use Illuminate\Http\Response; +use App\Models\Collection; use Illuminate\Support\Arr; +use Illuminate\Http\Response; +use Laravel\Passport\Passport; +use App\Models\OrganisationEvent; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Date; +use Illuminate\Testing\TestResponse; use Illuminate\Support\Facades\Event; +use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\Storage; -use Illuminate\Testing\TestResponse; -use Laravel\Passport\Passport; +use Illuminate\Foundation\Testing\WithFaker; +use Illuminate\Foundation\Testing\RefreshDatabase; +use Illuminate\Foundation\Testing\TestCase as BaseTestCase; abstract class TestCase extends BaseTestCase { @@ -132,7 +132,7 @@ protected function truncateTaxonomies() */ protected function clearLog() { - if (! static::$testLogCleared) { + if (!static::$testLogCleared) { file_put_contents(config('logging.channels.testing.path'), ''); static::$testLogCleared = true; } @@ -143,7 +143,7 @@ protected function clearLog() */ protected function setUpElasticsearch() { - if (! $this instanceof UsesElasticsearch) { + if (!$this instanceof UsesElasticsearch) { Service::disableSearchSyncing(); OrganisationEvent::disableSearchSyncing(); Page::disableSearchSyncing(); @@ -155,7 +155,7 @@ protected function setUpElasticsearch() Page::enableSearchSyncing(); } - if (! static::$elasticsearchInitialised) { + if (!static::$elasticsearchInitialised) { $this->artisan('ck:reindex-elasticsearch'); static::$elasticsearchInitialised = true; } @@ -166,7 +166,7 @@ protected function setUpElasticsearch() */ protected function tearDownElasticsearch() { - if (! $this instanceof UsesElasticsearch) { + if (!$this instanceof UsesElasticsearch) { Service::disableSearchSyncing(); OrganisationEvent::disableSearchSyncing(); Page::disableSearchSyncing(); @@ -236,4 +236,21 @@ public function approveUpdateRequest($updateRequestId) return $response->json(); } + + /** + * Return a lorem ipsum string with the given text inserted randomly into it + * + * @param array $phrases + * @param int $words + * @return str + **/ + public function textContainingPhrases(mixed $phrases, int $wordCount = 200): string + { + $words = explode(' ', $this->faker->text($wordCount)); + foreach ($phrases as $phrase) { + $offset = random_int(0, count($words)); + array_splice($words, $offset, 0, $phrase); + } + return implode(' ', $words); + } } From c8c30ed0b8b2654ec84ece9962e4efaf79a10684 Mon Sep 17 00:00:00 2001 From: Stuart Laverick Date: Fri, 8 Dec 2023 15:09:20 +0000 Subject: [PATCH 09/14] Resolved npm cache permission issue --- docker/node/Dockerfile | 7 +- package-lock.json | 8918 +++++++++++++++++++++------------------- 2 files changed, 4656 insertions(+), 4269 deletions(-) diff --git a/docker/node/Dockerfile b/docker/node/Dockerfile index fdf3833c0..df8f80d64 100644 --- a/docker/node/Dockerfile +++ b/docker/node/Dockerfile @@ -1,5 +1,5 @@ # Set base image. -FROM node:16.13 +FROM node:16.20 # Set maintainer to Ayup Digital. LABEL maintainer="Ayup Digital" @@ -7,5 +7,10 @@ LABEL maintainer="Ayup Digital" # Install git for faster package downloads. RUN apt-get install -y git +RUN mkdir -p /home/node/app/.npm \ +&& chown -R node:node /home/node/app/.npm + +ENV npm_config_cache /home/node/app/.npm + # Set the working directory to the project root. WORKDIR /var/www/html diff --git a/package-lock.json b/package-lock.json index c77131a6f..1a9127d6f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,12 +18,12 @@ } }, "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { @@ -31,47 +31,110 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "dev": true, "dependencies": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/code-frame/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/code-frame/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/code-frame/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/compat-data": { - "version": "7.20.10", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz", - "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", - "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helpers": "^7.20.7", - "@babel/parser": "^7.20.7", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.12", - "@babel/types": "^7.20.7", - "convert-source-map": "^1.7.0", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.5.tgz", + "integrity": "sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.5", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.5", + "@babel/parser": "^7.23.5", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.5", + "@babel/types": "^7.23.5", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -81,133 +144,94 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/core/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/generator": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz", - "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.5.tgz", + "integrity": "sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==", "dev": true, "dependencies": { - "@babel/types": "^7.20.7", + "@babel/types": "^7.23.5", "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", - "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", "dev": true, "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.18.6", - "@babel/types": "^7.18.9" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", - "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", "lru-cache": "^5.1.1", - "semver": "^6.3.0" + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.12.tgz", - "integrity": "sha512-9OunRkbT0JQcednL0UFvbfXpAsUXiGjUk0a7sN8fUXX7Mue79cUSMjHGDRRi/Vz9vYlpIhLV5fMD5dKoMhhsNQ==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.5.tgz", + "integrity": "sha512-QELlRWxSpgdwdJzSJn4WAhKC+hvw/AtHbbrIoncKHkhKKR/luAlKkgBDcri1EzWAo8f8VvYVryEHN4tax/V67A==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-member-expression-to-functions": "^7.20.7", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/helper-split-export-declaration": "^7.18.6" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -216,14 +240,24 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz", - "integrity": "sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.2.1" + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -232,175 +266,138 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", - "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", + "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" + "resolve": "^1.14.2" }, "peerDependencies": { - "@babel/core": "^7.4.0-0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", - "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-function-name": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, "dependencies": { - "@babel/template": "^7.18.10", - "@babel/types": "^7.19.0" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.20.7.tgz", - "integrity": "sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", "dev": true, "dependencies": { - "@babel/types": "^7.20.7" + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", - "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.10", - "@babel/types": "^7.20.7" + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", - "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-wrap-function": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" }, "engines": { "node": ">=6.9.0" @@ -410,128 +407,139 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", - "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.20.7", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dev": true, "dependencies": { - "@babel/types": "^7.20.2" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", - "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", "dev": true, "dependencies": { - "@babel/types": "^7.20.0" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", - "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.19.0", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.7.tgz", - "integrity": "sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.5.tgz", + "integrity": "sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg==", "dev": true, "dependencies": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.5", + "@babel/types": "^7.23.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/highlight/node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -546,210 +554,100 @@ "node": ">=4" } }, - "node_modules/@babel/highlight/node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/@babel/parser": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz", - "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", - "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", - "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-proposal-optional-chaining": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", - "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "color-name": "1.1.3" } }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.20.7.tgz", - "integrity": "sha512-AveGOoi9DAjUYYuUAG//Ig69GlazLnoyzMw68VCDux+c1tsnnH/OkYcpz/5xzMkEFC6UxjR5Gw1c+iY2wOGVeQ==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-static-block instead.", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-dynamic-import instead.", + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=4" } }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", - "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-export-namespace-from instead.", + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + "has-flag": "^3.0.0" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=4" } }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", - "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-json-strings instead.", + "node_modules/@babel/parser": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.5.tgz", + "integrity": "sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" + "bin": { + "parser": "bin/babel-parser.js" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", - "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead.", + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", + "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.", + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", + "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.23.3" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.13.0" } }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.", + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz", + "integrity": "sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, "node_modules/@babel/plugin-proposal-object-rest-spread": { @@ -772,89 +670,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.20.7.tgz", - "integrity": "sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz", - "integrity": "sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead.", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.20.5", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-unicode-property-regex instead.", + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, "engines": { - "node": ">=4" + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" @@ -924,12 +746,27 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", - "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", + "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", + "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -938,6 +775,18 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-json-strings": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", @@ -1052,13 +901,47 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz", - "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", + "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz", + "integrity": "sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" }, "engines": { "node": ">=6.9.0" @@ -1068,14 +951,14 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", - "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", + "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9" + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20" }, "engines": { "node": ">=6.9.0" @@ -1085,12 +968,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", - "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", + "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1100,12 +983,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.11.tgz", - "integrity": "sha512-tA4N427a7fjf1P0/2I4ScsHGc5jcHPbb30xMbaTke2gxDuWpUfXDuX1FEymJwKk4tuGUvGcejAR6HdZVqmmPyw==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", + "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1114,20 +997,53 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.7.tgz", - "integrity": "sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ==", + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", + "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", + "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz", + "integrity": "sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-split-export-declaration": "^7.22.6", "globals": "^11.1.0" }, "engines": { @@ -1138,13 +1054,13 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz", - "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", + "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/template": "^7.20.7" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.15" }, "engines": { "node": ">=6.9.0" @@ -1154,12 +1070,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz", - "integrity": "sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", + "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1169,13 +1085,13 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", - "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", + "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1185,12 +1101,28 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", - "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", + "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", + "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1200,13 +1132,29 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", - "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", + "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", "dev": true, "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", + "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1216,12 +1164,12 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", - "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz", + "integrity": "sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1231,14 +1179,30 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", - "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", + "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", + "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1248,12 +1212,28 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", - "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", + "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", + "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { "node": ">=6.9.0" @@ -1263,12 +1243,12 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", - "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", + "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1278,13 +1258,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", - "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", + "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1294,14 +1274,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.20.11.tgz", - "integrity": "sha512-S8e1f7WQ7cimJQ51JkAaDrEtohVEitXjgCGAS2N8S31Y42E+kWwfSz83LYz57QdBm7q9diARVqanIaH2oVgQnw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-simple-access": "^7.20.2" + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1311,15 +1291,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", - "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", + "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", "dev": true, "dependencies": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-identifier": "^7.19.1" + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { "node": ">=6.9.0" @@ -1329,13 +1309,13 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", - "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", + "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1345,13 +1325,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", - "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.20.5", - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1361,12 +1341,63 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", - "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", + "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", + "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", + "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", + "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.23.3" }, "engines": { "node": ">=6.9.0" @@ -1376,13 +1407,46 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", - "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", + "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", + "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", + "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1392,12 +1456,46 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz", - "integrity": "sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", + "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", + "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", + "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { "node": ">=6.9.0" @@ -1407,12 +1505,12 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", - "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", + "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1422,13 +1520,13 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", - "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", + "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "regenerator-transform": "^0.15.1" + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" }, "engines": { "node": ">=6.9.0" @@ -1438,12 +1536,12 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", - "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", + "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1453,17 +1551,17 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz", - "integrity": "sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.4.tgz", + "integrity": "sha512-ITwqpb6V4btwUG0YJR82o2QvmWrLgDnx/p2A3CTPYGaRgULkDiC0DRA2C4jlRB9uXGUEfaSS/IGHfVW+ohzYDw==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.19.0", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "semver": "^6.3.0" + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -1473,21 +1571,21 @@ } }, "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", - "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", + "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1497,13 +1595,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", - "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", + "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1513,12 +1611,12 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", - "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", + "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1528,12 +1626,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", - "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", + "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1543,12 +1641,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", - "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", + "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1558,12 +1656,28 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", - "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", + "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", + "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1573,13 +1687,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", - "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", + "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1588,39 +1702,44 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/preset-env": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", - "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", + "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.20.1", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.20.1", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.18.6", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.2", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.18.6", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.5.tgz", + "integrity": "sha512-0d/uxVD6tFGWXGDSfyMD1p2otoaKmu6+GD+NfAx0tMaH+dxORnp7T9TaVQ6mKyya7iBtCIVxHjWT7MuzzM9z+A==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.3", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.20.0", + "@babel/plugin-syntax-import-assertions": "^7.23.3", + "@babel/plugin-syntax-import-attributes": "^7.23.3", + "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", @@ -1630,45 +1749,61 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.18.6", - "@babel/plugin-transform-async-to-generator": "^7.18.6", - "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.20.2", - "@babel/plugin-transform-classes": "^7.20.2", - "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.20.2", - "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.9", - "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.18.8", - "@babel/plugin-transform-function-name": "^7.18.9", - "@babel/plugin-transform-literals": "^7.18.9", - "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.19.6", - "@babel/plugin-transform-modules-commonjs": "^7.19.6", - "@babel/plugin-transform-modules-systemjs": "^7.19.6", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.20.1", - "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.18.6", - "@babel/plugin-transform-reserved-words": "^7.18.6", - "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.19.0", - "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.9", - "@babel/plugin-transform-typeof-symbol": "^7.18.9", - "@babel/plugin-transform-unicode-escapes": "^7.18.10", - "@babel/plugin-transform-unicode-regex": "^7.18.6", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.20.2", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "core-js-compat": "^3.25.1", - "semver": "^6.3.0" + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.23.3", + "@babel/plugin-transform-async-generator-functions": "^7.23.4", + "@babel/plugin-transform-async-to-generator": "^7.23.3", + "@babel/plugin-transform-block-scoped-functions": "^7.23.3", + "@babel/plugin-transform-block-scoping": "^7.23.4", + "@babel/plugin-transform-class-properties": "^7.23.3", + "@babel/plugin-transform-class-static-block": "^7.23.4", + "@babel/plugin-transform-classes": "^7.23.5", + "@babel/plugin-transform-computed-properties": "^7.23.3", + "@babel/plugin-transform-destructuring": "^7.23.3", + "@babel/plugin-transform-dotall-regex": "^7.23.3", + "@babel/plugin-transform-duplicate-keys": "^7.23.3", + "@babel/plugin-transform-dynamic-import": "^7.23.4", + "@babel/plugin-transform-exponentiation-operator": "^7.23.3", + "@babel/plugin-transform-export-namespace-from": "^7.23.4", + "@babel/plugin-transform-for-of": "^7.23.3", + "@babel/plugin-transform-function-name": "^7.23.3", + "@babel/plugin-transform-json-strings": "^7.23.4", + "@babel/plugin-transform-literals": "^7.23.3", + "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", + "@babel/plugin-transform-member-expression-literals": "^7.23.3", + "@babel/plugin-transform-modules-amd": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-modules-systemjs": "^7.23.3", + "@babel/plugin-transform-modules-umd": "^7.23.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.23.3", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", + "@babel/plugin-transform-numeric-separator": "^7.23.4", + "@babel/plugin-transform-object-rest-spread": "^7.23.4", + "@babel/plugin-transform-object-super": "^7.23.3", + "@babel/plugin-transform-optional-catch-binding": "^7.23.4", + "@babel/plugin-transform-optional-chaining": "^7.23.4", + "@babel/plugin-transform-parameters": "^7.23.3", + "@babel/plugin-transform-private-methods": "^7.23.3", + "@babel/plugin-transform-private-property-in-object": "^7.23.4", + "@babel/plugin-transform-property-literals": "^7.23.3", + "@babel/plugin-transform-regenerator": "^7.23.3", + "@babel/plugin-transform-reserved-words": "^7.23.3", + "@babel/plugin-transform-shorthand-properties": "^7.23.3", + "@babel/plugin-transform-spread": "^7.23.3", + "@babel/plugin-transform-sticky-regex": "^7.23.3", + "@babel/plugin-transform-template-literals": "^7.23.3", + "@babel/plugin-transform-typeof-symbol": "^7.23.3", + "@babel/plugin-transform-unicode-escapes": "^7.23.3", + "@babel/plugin-transform-unicode-property-regex": "^7.23.3", + "@babel/plugin-transform-unicode-regex": "^7.23.3", + "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -1678,89 +1813,87 @@ } }, "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", "@babel/types": "^7.4.4", "esutils": "^2.0.2" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, "node_modules/@babel/runtime": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.7.tgz", - "integrity": "sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.5.tgz", + "integrity": "sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w==", "dev": true, "dependencies": { - "regenerator-runtime": "^0.13.11" + "regenerator-runtime": "^0.14.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.22.6.tgz", - "integrity": "sha512-M+37LLIRBTEVjktoJjbw4KVhupF0U/3PYUCbBwgAd9k17hoKhRu1n935QiG7Tuxv0LJOMrb2vuKEeYUlv0iyiw==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.23.5.tgz", + "integrity": "sha512-7+ziVclejQTLYhXl+Oi1f6gTGD1XDCeLa4R472TNGQxb08zbEJ0OdNoh5Piz+57Ltmui6xR88BXR4gS3/Toslw==", "dev": true, "dependencies": { "core-js-pure": "^3.30.2", - "regenerator-runtime": "^0.13.11" + "regenerator-runtime": "^0.14.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/runtime/node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "dev": true - }, "node_modules/@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.12.tgz", - "integrity": "sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.5.tgz", + "integrity": "sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.5", + "@babel/types": "^7.23.5", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1768,37 +1901,14 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/traverse/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/@babel/types": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", - "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.5.tgz", + "integrity": "sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "engines": { @@ -1830,23 +1940,33 @@ "node": ">=10.0.0" } }, + "node_modules/@fastify/busboy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz", + "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==", + "dev": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dev": true, "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", "dev": true, "engines": { "node": ">=6.0.0" @@ -1862,43 +1982,29 @@ } }, "node_modules/@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" } }, - "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", "dev": true, "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "node_modules/@leichtgewicht/ip-codec": { @@ -1943,318 +2049,385 @@ } }, "node_modules/@swagger-api/apidom-ast": { - "version": "0.70.0", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-ast/-/apidom-ast-0.70.0.tgz", - "integrity": "sha512-zQ1RUkXjx5NPYv1bmkoXwlQi7oJC7DJqYi0syTQKswJZDbOkHCwz8cDP/YystOEOL+yyIN7i5EQBIHfy5yAMmA==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-ast/-/apidom-ast-0.86.0.tgz", + "integrity": "sha512-Q1c5bciMCIGvOx1uZWh567qql2Ef0pCoZOKfhpQ+vKIevfTO85fRBmixyjxv2zETq2UZ1XwsW8q8k0feu1yBjw==", "dev": true, "dependencies": { "@babel/runtime-corejs3": "^7.20.7", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", - "ramda-adjunct": "^4.0.0", + "@swagger-api/apidom-error": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", + "ramda-adjunct": "^4.1.1", "stampit": "^4.3.2", - "unraw": "^2.0.1" + "unraw": "^3.0.0" } }, "node_modules/@swagger-api/apidom-core": { - "version": "0.70.1", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-core/-/apidom-core-0.70.1.tgz", - "integrity": "sha512-doE6escw5LYVxIp5/lfdeNC8jF39JohKeYQ/YuH5wbo5T06uy8nZ3VxcjPHymmQmLlHdEegUIiirp7dSZFZlIg==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-core/-/apidom-core-0.86.0.tgz", + "integrity": "sha512-HsM6Y5hEDlm8gwO5dSH9QOdtU3H18oVuEZJ/hmC7YCsqrG3EfCD3Y0V1uskuQraaUnyxVGKtgDqUrrWfoWH/sw==", "dev": true, "dependencies": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-ast": "^0.70.0", - "@types/ramda": "~0.29.1", + "@swagger-api/apidom-ast": "^0.86.0", + "@swagger-api/apidom-error": "^0.86.0", + "@types/ramda": "~0.29.6", "minim": "~0.23.8", - "ramda": "~0.29.0", - "ramda-adjunct": "^4.0.0", - "short-unique-id": "^4.4.4", + "ramda": "~0.29.1", + "ramda-adjunct": "^4.1.1", + "short-unique-id": "^5.0.2", "stampit": "^4.3.2" } }, + "node_modules/@swagger-api/apidom-error": { + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-error/-/apidom-error-0.86.0.tgz", + "integrity": "sha512-nUV91SDdiZ0nzk8o/D7ILToAYRpLNHsXKXnse8yMXmgaDYnQ5cBKQnuOcDOH9PG3HfDfE+MDy/aM8WKvKUzxMg==", + "dev": true, + "dependencies": { + "@babel/runtime-corejs3": "^7.20.7" + } + }, "node_modules/@swagger-api/apidom-json-pointer": { - "version": "0.70.1", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-json-pointer/-/apidom-json-pointer-0.70.1.tgz", - "integrity": "sha512-9NyeflCD0Vy8rce3Eag/Xdu2SGF4nr/mnQ6/vb4VbV9pID12z6EbBWvF9p9l0/sRdA6IePj39B3uBLcPl5b4Dg==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-json-pointer/-/apidom-json-pointer-0.86.0.tgz", + "integrity": "sha512-iEY16JZeNWFBxy9YimDwGoJ+LL4dvZndd7KLrtT3SN1q/oSbLPc4mc5PsqVQwV3pplYVorGwlL5sZ5BMRRuxEQ==", "dev": true, "dependencies": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-core": "^0.70.1", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-error": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", "ramda-adjunct": "^4.0.0" } }, "node_modules/@swagger-api/apidom-ns-api-design-systems": { - "version": "0.70.3", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-api-design-systems/-/apidom-ns-api-design-systems-0.70.3.tgz", - "integrity": "sha512-61qffrU0AX/7DxaQ6eFz+gSChlI/6dRU8YaBi4N38ZrwaMkRm/ksy8VWUoMcs2qHrqWh8vBijnpKBXi9JHNGKA==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-api-design-systems/-/apidom-ns-api-design-systems-0.86.0.tgz", + "integrity": "sha512-/oSrDO5YqI4b8a5DbPGV0a5mss3Rdi72vIMlEzElhuX9NkeOI0foEyzhIL/lpjrI0iUmzLk30H0puQU3aspNZA==", "dev": true, "optional": true, "dependencies": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-core": "^0.70.1", - "@swagger-api/apidom-ns-openapi-3-1": "^0.70.3", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", - "ramda-adjunct": "^4.0.0", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-error": "^0.86.0", + "@swagger-api/apidom-ns-openapi-3-1": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", + "ramda-adjunct": "^4.1.1", "stampit": "^4.3.2" } }, "node_modules/@swagger-api/apidom-ns-asyncapi-2": { - "version": "0.70.3", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-asyncapi-2/-/apidom-ns-asyncapi-2-0.70.3.tgz", - "integrity": "sha512-Z2xhws7MfclZ2IzFjsfohpRueTZBde6x0GGtWC3dmgq506IhYpA+cpGYUpGHgwzdwLJOzLdwXnafuuXIoVkvJw==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-asyncapi-2/-/apidom-ns-asyncapi-2-0.86.0.tgz", + "integrity": "sha512-q7ZGjAv1oD8Cs/cJA/jkVgVysrU5T72ItO4LcUiyd6VqfK5f13CjXw5nADPW3ETPwz1uOQ0GO6SEDNlGCsEE3A==", "dev": true, "optional": true, "dependencies": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-core": "^0.70.1", - "@swagger-api/apidom-ns-json-schema-draft-7": "^0.70.3", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", - "ramda-adjunct": "^4.0.0", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-ns-json-schema-draft-7": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", + "ramda-adjunct": "^4.1.1", "stampit": "^4.3.2" } }, "node_modules/@swagger-api/apidom-ns-json-schema-draft-4": { - "version": "0.70.3", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-json-schema-draft-4/-/apidom-ns-json-schema-draft-4-0.70.3.tgz", - "integrity": "sha512-y/WJTQCzm59p8wVPb034AcydzgXNEOVdh+S/OGuHJ+HYUFmVT5NWvBGWC7Ikc9ixXN0v585dzq1QvE2T7H0ZfQ==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-json-schema-draft-4/-/apidom-ns-json-schema-draft-4-0.86.0.tgz", + "integrity": "sha512-NELX5IeCYErvTc/rJTkud8YySsaEYY4g7FwnCze8u6VnypVQLD9GPbpSR7rpm/lugx0phoAfcGvHM+mOqt14yQ==", "dev": true, "dependencies": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-ast": "^0.70.0", - "@swagger-api/apidom-core": "^0.70.1", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", - "ramda-adjunct": "^4.0.0", + "@swagger-api/apidom-ast": "^0.86.0", + "@swagger-api/apidom-core": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", + "ramda-adjunct": "^4.1.1", "stampit": "^4.3.2" } }, "node_modules/@swagger-api/apidom-ns-json-schema-draft-6": { - "version": "0.70.3", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-json-schema-draft-6/-/apidom-ns-json-schema-draft-6-0.70.3.tgz", - "integrity": "sha512-6u6fB9LIM3z+K9miAAWsOT13LOCQc5G0d/lkRSpVSendvgAWpOCEx1BSgiIoURwkcBl2FB46vYyXefolxTOK7w==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-json-schema-draft-6/-/apidom-ns-json-schema-draft-6-0.86.0.tgz", + "integrity": "sha512-ZYfgawZHDtsztiKIFxpTX78ajZWkyNp9+psXv7l91r0TFiuRVJRERmfvtpHE9m0sGHkJEfRcxL3RlZceQ9fohw==", "dev": true, "optional": true, "dependencies": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-core": "^0.70.1", - "@swagger-api/apidom-ns-json-schema-draft-4": "^0.70.3", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", - "ramda-adjunct": "^4.0.0", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-error": "^0.86.0", + "@swagger-api/apidom-ns-json-schema-draft-4": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", + "ramda-adjunct": "^4.1.1", "stampit": "^4.3.2" } }, "node_modules/@swagger-api/apidom-ns-json-schema-draft-7": { - "version": "0.70.3", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-json-schema-draft-7/-/apidom-ns-json-schema-draft-7-0.70.3.tgz", - "integrity": "sha512-fVTxhfuHieXyEL4BwoQidXNGAkXjO9N8QekfUpdYDKLxs7Sq80itPZxlq/fbagomS+Q1n5LYfB5h2n5lLOGJDQ==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-json-schema-draft-7/-/apidom-ns-json-schema-draft-7-0.86.0.tgz", + "integrity": "sha512-EcPCeS/mcgZnZJvHNrqQrdQ1V4miBx55xEcmUpfDebacexlLV9A/OpeL8ttIVJRmuhv4ATiq2/eOKaN7wETB4w==", + "dev": true, + "optional": true, + "dependencies": { + "@babel/runtime-corejs3": "^7.20.7", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-error": "^0.86.0", + "@swagger-api/apidom-ns-json-schema-draft-6": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", + "ramda-adjunct": "^4.1.1", + "stampit": "^4.3.2" + } + }, + "node_modules/@swagger-api/apidom-ns-openapi-2": { + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-openapi-2/-/apidom-ns-openapi-2-0.86.0.tgz", + "integrity": "sha512-IkORhlU8E5VoIYYJ2O+Oe/9JLcI/MLGl6yAsaReK1TZxyK/7tLghbIu6sBfJCAr7Jt1WY6lwWtvJg0ptTZ2zTw==", "dev": true, "optional": true, "dependencies": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-core": "^0.70.1", - "@swagger-api/apidom-ns-json-schema-draft-6": "^0.70.3", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", - "ramda-adjunct": "^4.0.0", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-error": "^0.86.0", + "@swagger-api/apidom-ns-json-schema-draft-4": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", + "ramda-adjunct": "^4.1.1", "stampit": "^4.3.2" } }, "node_modules/@swagger-api/apidom-ns-openapi-3-0": { - "version": "0.70.3", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-openapi-3-0/-/apidom-ns-openapi-3-0-0.70.3.tgz", - "integrity": "sha512-ci5GNSf1cA/Xc2/1Kjlo2u78McevOYsH6+weEPW4JlHa3hMJyi6dlw16yHBRl7lzdxiO0D64+r0JVX0bOBhqyw==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-openapi-3-0/-/apidom-ns-openapi-3-0-0.86.0.tgz", + "integrity": "sha512-u489LR/E+5q1Hh3fzex4j6wpCBQwmcNy52dF3YSQbz5PTUOIfU4QGR6fh4/3sgublS7eQ84Z6G77Mg/vzZjeCQ==", "dev": true, "dependencies": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-core": "^0.70.1", - "@swagger-api/apidom-ns-json-schema-draft-4": "^0.70.3", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", - "ramda-adjunct": "^4.0.0", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-error": "^0.86.0", + "@swagger-api/apidom-ns-json-schema-draft-4": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", + "ramda-adjunct": "^4.1.1", "stampit": "^4.3.2" } }, "node_modules/@swagger-api/apidom-ns-openapi-3-1": { - "version": "0.70.3", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-openapi-3-1/-/apidom-ns-openapi-3-1-0.70.3.tgz", - "integrity": "sha512-/AwVei3FJeC4wAnmNMywyK8zjKiP8CzuuA58G9xqWk2asOH2qjppYjaFAE6BeJ7of7juR5+BvdQg1wXYz8sutA==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-openapi-3-1/-/apidom-ns-openapi-3-1-0.86.0.tgz", + "integrity": "sha512-oYXd0qHxisPh5/SNHWtlAl/g1GtDl+OPrZUp4y6tTHHLc1M4HQ/q0iTcHHdvg+t+m3l7z9wwN8KtvKtwD6EnTw==", "dev": true, "dependencies": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-ast": "^0.70.0", - "@swagger-api/apidom-core": "^0.70.1", - "@swagger-api/apidom-ns-openapi-3-0": "^0.70.3", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", - "ramda-adjunct": "^4.0.0", + "@swagger-api/apidom-ast": "^0.86.0", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-ns-openapi-3-0": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", + "ramda-adjunct": "^4.1.1", "stampit": "^4.3.2" } }, "node_modules/@swagger-api/apidom-parser-adapter-api-design-systems-json": { - "version": "0.70.4", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-api-design-systems-json/-/apidom-parser-adapter-api-design-systems-json-0.70.4.tgz", - "integrity": "sha512-xo7mr8/UgVpqe1AMUbNPRnXM3CDgvIXktz7y1abAbRjJ/qhBWsRHBeqf8KQBJjKfJc58i+yMnDXC8hapZplHeA==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-api-design-systems-json/-/apidom-parser-adapter-api-design-systems-json-0.86.0.tgz", + "integrity": "sha512-6+dhrsqAm56Vr6rhmheOPQZxQd1Zw9HXD9+JC83sMJUOstH0q73ApdKbwU8ksGYPxIeANUdjQ3oIz0Nj2tBMvw==", "dev": true, "optional": true, "dependencies": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-core": "^0.70.1", - "@swagger-api/apidom-ns-api-design-systems": "^0.70.3", - "@swagger-api/apidom-parser-adapter-json": "^0.70.4", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-ns-api-design-systems": "^0.86.0", + "@swagger-api/apidom-parser-adapter-json": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", "ramda-adjunct": "^4.0.0" } }, "node_modules/@swagger-api/apidom-parser-adapter-api-design-systems-yaml": { - "version": "0.70.3", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-api-design-systems-yaml/-/apidom-parser-adapter-api-design-systems-yaml-0.70.3.tgz", - "integrity": "sha512-DJJjwv3KuL5hnMfQgpD7S2tbwxalyTsjkaFF6uxcIMJRr9hdKKNDkvJkel/r56FE2pp9WCBhP6Wm1JK6PGI3Pg==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-api-design-systems-yaml/-/apidom-parser-adapter-api-design-systems-yaml-0.86.0.tgz", + "integrity": "sha512-mQTKwIorT1VSa75nsclSUCp5EaovWkuaewZfrOGDUWFhY+++vcnScBdcJv7TBtO2ttTge4UOSu9qgpoSrztXZg==", "dev": true, "optional": true, "dependencies": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-core": "^0.70.1", - "@swagger-api/apidom-ns-api-design-systems": "^0.70.3", - "@swagger-api/apidom-parser-adapter-yaml-1-2": "^0.70.3", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-ns-api-design-systems": "^0.86.0", + "@swagger-api/apidom-parser-adapter-yaml-1-2": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", "ramda-adjunct": "^4.0.0" } }, "node_modules/@swagger-api/apidom-parser-adapter-asyncapi-json-2": { - "version": "0.70.4", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-asyncapi-json-2/-/apidom-parser-adapter-asyncapi-json-2-0.70.4.tgz", - "integrity": "sha512-eaqQ/93xxVFM+138AL2z5jODyXJlpf5RNRXrE/HaG3PWLB+a7CN9eCy+czP1E6VgC0Wia1kuYf/Bx9aIgNQ6sQ==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-asyncapi-json-2/-/apidom-parser-adapter-asyncapi-json-2-0.86.0.tgz", + "integrity": "sha512-jNtvUJoiI++P3FAQf7X03se+Qx0sUhA5bBSINGMuhjPcSyOAWj9oiPjpB9SYltaqvEb9ek7iPObrt/dx9zj6Ag==", "dev": true, "optional": true, "dependencies": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-core": "^0.70.1", - "@swagger-api/apidom-ns-asyncapi-2": "^0.70.3", - "@swagger-api/apidom-parser-adapter-json": "^0.70.4", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-ns-asyncapi-2": "^0.86.0", + "@swagger-api/apidom-parser-adapter-json": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", "ramda-adjunct": "^4.0.0" } }, "node_modules/@swagger-api/apidom-parser-adapter-asyncapi-yaml-2": { - "version": "0.70.3", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-asyncapi-yaml-2/-/apidom-parser-adapter-asyncapi-yaml-2-0.70.3.tgz", - "integrity": "sha512-UQxxPoxWcgp9laW8kOdzd7991/wgYJ2b7lb3XBhmVydRbPM1AD5L3G/zM5ItVBQZIZ398kDX/mfGTKAJr5pJrA==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-asyncapi-yaml-2/-/apidom-parser-adapter-asyncapi-yaml-2-0.86.0.tgz", + "integrity": "sha512-A0GTtD6gYPEA3tQQ1A6yw+SceKdDEea3slISVx5bpeDREk8wAl/886EGJICcgFrPO57dUD3HoLqmPn/uUl26mA==", "dev": true, "optional": true, "dependencies": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-core": "^0.70.1", - "@swagger-api/apidom-ns-asyncapi-2": "^0.70.3", - "@swagger-api/apidom-parser-adapter-yaml-1-2": "^0.70.3", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-ns-asyncapi-2": "^0.86.0", + "@swagger-api/apidom-parser-adapter-yaml-1-2": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", "ramda-adjunct": "^4.0.0" } }, "node_modules/@swagger-api/apidom-parser-adapter-json": { - "version": "0.70.4", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-json/-/apidom-parser-adapter-json-0.70.4.tgz", - "integrity": "sha512-Clr4VHocpdDi/bQ4ZSuhN3Ak3g8oLjKtCqjQO34YDrFrKPD2twznALBdVjIHa9D+g5YJYkAQ+5wOrK5uvo/5lQ==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-json/-/apidom-parser-adapter-json-0.86.0.tgz", + "integrity": "sha512-bh5fndjX7JwgkZ0z3tEDknCEFysAs2oSoYiHN8iSLl/MKXBE001tJeJrOdnP9BnrPQSyXAbdT1c1dG3oTnxUgw==", "dev": true, "optional": true, "dependencies": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-ast": "^0.70.0", - "@swagger-api/apidom-core": "^0.70.1", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", - "ramda-adjunct": "^4.0.0", + "@swagger-api/apidom-ast": "^0.86.0", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-error": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", + "ramda-adjunct": "^4.1.1", "stampit": "^4.3.2", "tree-sitter": "=0.20.4", - "tree-sitter-json": "=0.20.0", + "tree-sitter-json": "=0.20.1", "web-tree-sitter": "=0.20.3" } }, + "node_modules/@swagger-api/apidom-parser-adapter-openapi-json-2": { + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-openapi-json-2/-/apidom-parser-adapter-openapi-json-2-0.86.0.tgz", + "integrity": "sha512-BULmOvcLnf4QpZ2QFOCrpZnNKLf8sZfzpDPXJm6QwyoZQqAMmeHmEzAY9dE9RrCwNx9lVjumAEoyNf7Hy4qrWw==", + "dev": true, + "optional": true, + "dependencies": { + "@babel/runtime-corejs3": "^7.20.7", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-ns-openapi-2": "^0.86.0", + "@swagger-api/apidom-parser-adapter-json": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", + "ramda-adjunct": "^4.0.0" + } + }, "node_modules/@swagger-api/apidom-parser-adapter-openapi-json-3-0": { - "version": "0.70.4", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-openapi-json-3-0/-/apidom-parser-adapter-openapi-json-3-0-0.70.4.tgz", - "integrity": "sha512-VfSR/TkB7rN5qAm6nGBrJzGuwhvFH03wojPVtjQEUUlDfmiFK0Snhdzq/65qK8WxSYidIBVgWHEreYif28AhBQ==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-openapi-json-3-0/-/apidom-parser-adapter-openapi-json-3-0-0.86.0.tgz", + "integrity": "sha512-zo/fNkWe9A2AL+cqzt+Z3OiTE5oLEWpLY+Y0tuLWh8YME0ZY7BmR2HYNdWquIhOy5b279QeD19Kv15aY24obxA==", "dev": true, "optional": true, "dependencies": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-core": "^0.70.1", - "@swagger-api/apidom-ns-openapi-3-0": "^0.70.3", - "@swagger-api/apidom-parser-adapter-json": "^0.70.4", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-ns-openapi-3-0": "^0.86.0", + "@swagger-api/apidom-parser-adapter-json": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", "ramda-adjunct": "^4.0.0" } }, "node_modules/@swagger-api/apidom-parser-adapter-openapi-json-3-1": { - "version": "0.70.4", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-openapi-json-3-1/-/apidom-parser-adapter-openapi-json-3-1-0.70.4.tgz", - "integrity": "sha512-XB5owOAI7YtRi7lD1R5vI3zFn7EbjKn/FkSMjC0m4CfienX9f9EkromSWE5i5dQGpCfkpHp/iOJ00xODly1nUQ==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-openapi-json-3-1/-/apidom-parser-adapter-openapi-json-3-1-0.86.0.tgz", + "integrity": "sha512-NkFrAyr27Ubwkacv2YolxSN/NciKqJyIEXtAg4SfP/ejTy1Gl+PcT5pZSjQ3doRx1BPp3CF+a2Hsi5HJI6wEzA==", + "dev": true, + "optional": true, + "dependencies": { + "@babel/runtime-corejs3": "^7.20.7", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-ns-openapi-3-1": "^0.86.0", + "@swagger-api/apidom-parser-adapter-json": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", + "ramda-adjunct": "^4.0.0" + } + }, + "node_modules/@swagger-api/apidom-parser-adapter-openapi-yaml-2": { + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-openapi-yaml-2/-/apidom-parser-adapter-openapi-yaml-2-0.86.0.tgz", + "integrity": "sha512-flAGqElCSrVN9XXdA00NWmctOPuqzc+8r15omRvVFZ+Qfzca+FWpyFvzUFr92TKX87XUBALvnu7VA5+g1PftGg==", "dev": true, "optional": true, "dependencies": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-core": "^0.70.1", - "@swagger-api/apidom-ns-openapi-3-1": "^0.70.3", - "@swagger-api/apidom-parser-adapter-json": "^0.70.4", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-ns-openapi-2": "^0.86.0", + "@swagger-api/apidom-parser-adapter-yaml-1-2": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", "ramda-adjunct": "^4.0.0" } }, "node_modules/@swagger-api/apidom-parser-adapter-openapi-yaml-3-0": { - "version": "0.70.3", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-openapi-yaml-3-0/-/apidom-parser-adapter-openapi-yaml-3-0-0.70.3.tgz", - "integrity": "sha512-4vkN+jy4HKYQJc0M7sVD4pqT5n2a7nIwswtHujdMVR2YXXY8RTzBg4DO28qVUoAWUsE0C8Tp+hopDPeCtpYduA==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-openapi-yaml-3-0/-/apidom-parser-adapter-openapi-yaml-3-0-0.86.0.tgz", + "integrity": "sha512-TT93vbdj6GWhNHU4cTih/93kWJ5l6ZeEyaEQWyd+MhDxgoy6/rCOeblwyMQCgaXL6AmG5qSKTu48Y+GTCqURng==", "dev": true, "optional": true, "dependencies": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-core": "^0.70.1", - "@swagger-api/apidom-ns-openapi-3-0": "^0.70.3", - "@swagger-api/apidom-parser-adapter-yaml-1-2": "^0.70.3", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-ns-openapi-3-0": "^0.86.0", + "@swagger-api/apidom-parser-adapter-yaml-1-2": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", "ramda-adjunct": "^4.0.0" } }, "node_modules/@swagger-api/apidom-parser-adapter-openapi-yaml-3-1": { - "version": "0.70.3", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-openapi-yaml-3-1/-/apidom-parser-adapter-openapi-yaml-3-1-0.70.3.tgz", - "integrity": "sha512-4xoyOYrG3YBdr/mjNLzDAIdOxFSYR0gh3lRx3/IVkwmhp0rSVrGdD2hFtgoVrj2MiKR60SUbzcnCXJ4MLVmUbQ==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-openapi-yaml-3-1/-/apidom-parser-adapter-openapi-yaml-3-1-0.86.0.tgz", + "integrity": "sha512-BPNzUdbQbd29YrotIhg/pPZkVXZ8PZOEy9Wy/Aornv9gFZwhzzWE9uOo/HGBDXJqqq5Va1RJkxuYXjIX7BVKBw==", "dev": true, "optional": true, "dependencies": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-core": "^0.70.1", - "@swagger-api/apidom-ns-openapi-3-1": "^0.70.3", - "@swagger-api/apidom-parser-adapter-yaml-1-2": "^0.70.3", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-ns-openapi-3-1": "^0.86.0", + "@swagger-api/apidom-parser-adapter-yaml-1-2": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", "ramda-adjunct": "^4.0.0" } }, "node_modules/@swagger-api/apidom-parser-adapter-yaml-1-2": { - "version": "0.70.3", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-yaml-1-2/-/apidom-parser-adapter-yaml-1-2-0.70.3.tgz", - "integrity": "sha512-e+lGfUfduduIT+nyJtxDFXLqoulvz2sWB9vt+4gmq/SMc0uvFBEcffAeBUOPw4J3d4pMux2eRRzA29YF7/lXng==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-yaml-1-2/-/apidom-parser-adapter-yaml-1-2-0.86.0.tgz", + "integrity": "sha512-wtvEJFk4uxQbDQH23mjVIeOJJ6IEpiorBNfW/6foPfJbUU7zDE/a0VTEo/wKPxumLe9eLNHuTZSSOvy2y0BmTw==", "dev": true, "optional": true, "dependencies": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-ast": "^0.70.0", - "@swagger-api/apidom-core": "^0.70.1", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", - "ramda-adjunct": "^4.0.0", + "@swagger-api/apidom-ast": "^0.86.0", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-error": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", + "ramda-adjunct": "^4.1.1", "stampit": "^4.3.2", "tree-sitter": "=0.20.4", "tree-sitter-yaml": "=0.5.0", @@ -2262,42 +2435,46 @@ } }, "node_modules/@swagger-api/apidom-reference": { - "version": "0.70.4", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-reference/-/apidom-reference-0.70.4.tgz", - "integrity": "sha512-+jrDtbJc7zVqHumyDu1rGXZD3BwrD8qu+FaC7+9iZThU2GAEOs4VvTcCkPQLfVtpIrv1fPvNkzean27MJZxpkw==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-reference/-/apidom-reference-0.86.0.tgz", + "integrity": "sha512-YjlocO/JkuK1SwGs8ke7AAHecR5w2GyKjWRAGZ06+2ZO8cqV3/0uuuL+laRbYchrFWERqJCUEQre0qJ3BPY7xA==", "dev": true, "dependencies": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-core": "^0.70.1", - "@types/ramda": "~0.29.1", + "@swagger-api/apidom-core": "^0.86.0", + "@types/ramda": "~0.29.6", "axios": "^1.4.0", "minimatch": "^7.4.3", "process": "^0.11.10", - "ramda": "~0.29.0", - "ramda-adjunct": "^4.0.0", + "ramda": "~0.29.1", + "ramda-adjunct": "^4.1.1", "stampit": "^4.3.2" }, "optionalDependencies": { - "@swagger-api/apidom-json-pointer": "^0.70.1", - "@swagger-api/apidom-ns-asyncapi-2": "^0.70.3", - "@swagger-api/apidom-ns-openapi-3-0": "^0.70.3", - "@swagger-api/apidom-ns-openapi-3-1": "^0.70.3", - "@swagger-api/apidom-parser-adapter-api-design-systems-json": "^0.70.4", - "@swagger-api/apidom-parser-adapter-api-design-systems-yaml": "^0.70.3", - "@swagger-api/apidom-parser-adapter-asyncapi-json-2": "^0.70.4", - "@swagger-api/apidom-parser-adapter-asyncapi-yaml-2": "^0.70.3", - "@swagger-api/apidom-parser-adapter-json": "^0.70.4", - "@swagger-api/apidom-parser-adapter-openapi-json-3-0": "^0.70.4", - "@swagger-api/apidom-parser-adapter-openapi-json-3-1": "^0.70.4", - "@swagger-api/apidom-parser-adapter-openapi-yaml-3-0": "^0.70.3", - "@swagger-api/apidom-parser-adapter-openapi-yaml-3-1": "^0.70.3", - "@swagger-api/apidom-parser-adapter-yaml-1-2": "^0.70.3" + "@swagger-api/apidom-error": "^0.86.0", + "@swagger-api/apidom-json-pointer": "^0.86.0", + "@swagger-api/apidom-ns-asyncapi-2": "^0.86.0", + "@swagger-api/apidom-ns-openapi-2": "^0.86.0", + "@swagger-api/apidom-ns-openapi-3-0": "^0.86.0", + "@swagger-api/apidom-ns-openapi-3-1": "^0.86.0", + "@swagger-api/apidom-parser-adapter-api-design-systems-json": "^0.86.0", + "@swagger-api/apidom-parser-adapter-api-design-systems-yaml": "^0.86.0", + "@swagger-api/apidom-parser-adapter-asyncapi-json-2": "^0.86.0", + "@swagger-api/apidom-parser-adapter-asyncapi-yaml-2": "^0.86.0", + "@swagger-api/apidom-parser-adapter-json": "^0.86.0", + "@swagger-api/apidom-parser-adapter-openapi-json-2": "^0.86.0", + "@swagger-api/apidom-parser-adapter-openapi-json-3-0": "^0.86.0", + "@swagger-api/apidom-parser-adapter-openapi-json-3-1": "^0.86.0", + "@swagger-api/apidom-parser-adapter-openapi-yaml-2": "^0.86.0", + "@swagger-api/apidom-parser-adapter-openapi-yaml-3-0": "^0.86.0", + "@swagger-api/apidom-parser-adapter-openapi-yaml-3-1": "^0.86.0", + "@swagger-api/apidom-parser-adapter-yaml-1-2": "^0.86.0" } }, "node_modules/@swagger-api/apidom-reference/node_modules/axios": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", - "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", + "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", "dev": true, "dependencies": { "follow-redirects": "^1.15.0", @@ -2314,26 +2491,6 @@ "balanced-match": "^1.0.0" } }, - "node_modules/@swagger-api/apidom-reference/node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, "node_modules/@swagger-api/apidom-reference/node_modules/minimatch": { "version": "7.4.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", @@ -2359,31 +2516,31 @@ } }, "node_modules/@types/babel__core": { - "version": "7.1.20", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.20.tgz", - "integrity": "sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" } }, "node_modules/@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.7.tgz", + "integrity": "sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==", "dev": true, "dependencies": { "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, "dependencies": { "@babel/parser": "^7.1.0", @@ -2391,18 +2548,18 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", - "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz", + "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==", "dev": true, "dependencies": { - "@babel/types": "^7.3.0" + "@babel/types": "^7.20.7" } }, "node_modules/@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", "dev": true, "dependencies": { "@types/connect": "*", @@ -2410,18 +2567,18 @@ } }, "node_modules/@types/bonjour": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", - "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/clean-css": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/@types/clean-css/-/clean-css-4.2.6.tgz", - "integrity": "sha512-Ze1tf+LnGPmG6hBFMi0B4TEB0mhF7EiMM5oyjLDNPE9hxrPU0W+5+bHvO+eFPA+bt0iC1zkQMoU/iGdRVjcRbw==", + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/@types/clean-css/-/clean-css-4.2.11.tgz", + "integrity": "sha512-Y8n81lQVTAfP2TOdtJJEsCoYl1AnOkqDqMvXb9/7pfgZZ7r8YrEyurrAvAoAjHOGXKRybay+5CsExqIH6liccw==", "dev": true, "dependencies": { "@types/node": "*", @@ -2429,18 +2586,18 @@ } }, "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/connect-history-api-fallback": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", - "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", "dev": true, "dependencies": { "@types/express-serve-static-core": "*", @@ -2448,9 +2605,9 @@ } }, "node_modules/@types/eslint": { - "version": "8.4.10", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", - "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", + "version": "8.44.8", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.8.tgz", + "integrity": "sha512-4K8GavROwhrYl2QXDXm0Rv9epkA8GBFu0EI+XrrnnuCl7u8CWBRusX7fXJfanhZTDWSAL24gDI/UqXyUM0Injw==", "dev": true, "dependencies": { "@types/estree": "*", @@ -2458,9 +2615,9 @@ } }, "node_modules/@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", "dev": true, "dependencies": { "@types/eslint": "*", @@ -2468,32 +2625,33 @@ } }, "node_modules/@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", "dev": true }, "node_modules/@types/express": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.15.tgz", - "integrity": "sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", "dev": true, "dependencies": { "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.31", + "@types/express-serve-static-core": "^4.17.33", "@types/qs": "*", "@types/serve-static": "*" } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.32", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.32.tgz", - "integrity": "sha512-aI5h/VOkxOF2Z1saPy0Zsxs5avets/iaiAJYznQFm5By/pamU31xWKL//epiF4OfUA2qTOc9PV6tCUjhO8wlZA==", + "version": "4.17.41", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz", + "integrity": "sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==", "dev": true, "dependencies": { "@types/node": "*", "@types/qs": "*", - "@types/range-parser": "*" + "@types/range-parser": "*", + "@types/send": "*" } }, "node_modules/@types/glob": { @@ -2507,64 +2665,70 @@ } }, "node_modules/@types/hast": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.5.tgz", - "integrity": "sha512-SvQi0L/lNpThgPoleH53cdjB3y9zpLlVjRbqB3rH8hx1jiRSBGAhyjV3H+URFjNVRqt2EdYNrbZE5IsGlNfpRg==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.8.tgz", + "integrity": "sha512-aMIqAlFd2wTIDZuvLbhUT+TGvMxrNC8ECUIVtH6xxy0sQLs3iu6NO8Kp/VT5je7i5ufnebXzdV1dNDMnvaH6IQ==", "dev": true, "dependencies": { "@types/unist": "^2" } }, "node_modules/@types/hoist-non-react-statics": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", - "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz", + "integrity": "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==", "dev": true, "dependencies": { "@types/react": "*", "hoist-non-react-statics": "^3.3.0" } }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "dev": true + }, "node_modules/@types/http-proxy": { - "version": "1.17.9", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", - "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", + "version": "1.17.14", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", + "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/imagemin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@types/imagemin/-/imagemin-8.0.0.tgz", - "integrity": "sha512-B9X2CUeDv/uUeY9CqkzSTfmsLkeJP6PkmXlh4lODBbf9SwpmNuLS30WzUOi863dgsjY3zt3gY5q2F+UdifRi1A==", + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/@types/imagemin/-/imagemin-8.0.5.tgz", + "integrity": "sha512-tah3dm+5sG+fEDAz6CrQ5evuEaPX9K6DF3E5a01MPOKhA2oGBoC+oA5EJzSugB905sN4DE19EDzldT2Cld2g6Q==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/imagemin-gifsicle": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@types/imagemin-gifsicle/-/imagemin-gifsicle-7.0.1.tgz", - "integrity": "sha512-kUz6sUh0P95JOS0RGEaaemWUrASuw+dLsWIveK2UZJx74id/B9epgblMkCk/r5MjUWbZ83wFvacG5Rb/f97gyA==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/@types/imagemin-gifsicle/-/imagemin-gifsicle-7.0.4.tgz", + "integrity": "sha512-ZghMBd/Jgqg5utTJNPmvf6DkuHzMhscJ8vgf/7MUGCpO+G+cLrhYltL+5d+h3A1B4W73S2SrmJZ1jS5LACpX+A==", "dev": true, "dependencies": { "@types/imagemin": "*" } }, "node_modules/@types/imagemin-mozjpeg": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@types/imagemin-mozjpeg/-/imagemin-mozjpeg-8.0.1.tgz", - "integrity": "sha512-kMQWEoKxxhlnH4POI3qfW9DjXlQfi80ux3l2b3j5R3eudSCoUIzKQLkfMjNJ6eMYnMWBcB+rfQOWqIzdIwFGKw==", + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/@types/imagemin-mozjpeg/-/imagemin-mozjpeg-8.0.4.tgz", + "integrity": "sha512-ZCAxV8SYJB8ehwHpnbRpHjg5Wc4HcyuAMiDhXbkgC7gujDoOTyHO3dhDkUtZ1oK1DLBRZapqG9etdLVhUml7yQ==", "dev": true, "dependencies": { "@types/imagemin": "*" } }, "node_modules/@types/imagemin-optipng": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/@types/imagemin-optipng/-/imagemin-optipng-5.2.1.tgz", - "integrity": "sha512-XCM/3q+HUL7v4zOqMI+dJ5dTxT+MUukY9KU49DSnYb/4yWtSMHJyADP+WHSMVzTR63J2ZvfUOzSilzBNEQW78g==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/@types/imagemin-optipng/-/imagemin-optipng-5.2.4.tgz", + "integrity": "sha512-mvKnDMC8eCYZetAQudjs1DbgpR84WhsTx1wgvdiXnpuUEti3oJ+MaMYBRWPY0JlQ4+y4TXKOfa7+LOuT8daegQ==", "dev": true, "dependencies": { "@types/imagemin": "*" @@ -2581,15 +2745,15 @@ } }, "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true }, "node_modules/@types/mime": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", - "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", "dev": true }, "node_modules/@types/minimatch": { @@ -2599,48 +2763,60 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.11.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", - "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==", - "dev": true + "version": "20.10.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.3.tgz", + "integrity": "sha512-XJavIpZqiXID5Yxnxv3RUDKTN5b81ddNC3ecsA0SoFXz/QU8OGBwZGMomiq0zw+uuqbL/krztv/DINAQ/EV4gg==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/node-forge": { + "version": "1.3.10", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.10.tgz", + "integrity": "sha512-y6PJDYN4xYBxwd22l+OVH35N+1fCYWiuC3aiP2SlXVE6Lo7SS+rSx9r89hLxrP4pn6n1lBGhHJ12pj3F3Mpttw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } }, "node_modules/@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", "dev": true }, "node_modules/@types/prop-types": { - "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", + "version": "15.7.11", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", + "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==", "dev": true }, "node_modules/@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "version": "6.9.10", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.10.tgz", + "integrity": "sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==", "dev": true }, "node_modules/@types/ramda": { - "version": "0.29.3", - "resolved": "https://registry.npmjs.org/@types/ramda/-/ramda-0.29.3.tgz", - "integrity": "sha512-Yh/RHkjN0ru6LVhSQtTkCRo6HXkfL9trot/2elzM/yXLJmbLm2v6kJc8yftTnwv1zvUob6TEtqI2cYjdqG3U0Q==", + "version": "0.29.9", + "resolved": "https://registry.npmjs.org/@types/ramda/-/ramda-0.29.9.tgz", + "integrity": "sha512-X3yEG6tQCWBcUAql+RPC/O1Hm9BSU+MXu2wJnCETuAgUlrEDwTA1kIOdEEE4YXDtf0zfQLHa9CCE7WYp9kqPIQ==", "dev": true, "dependencies": { - "types-ramda": "^0.29.4" + "types-ramda": "^0.29.6" } }, "node_modules/@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", "dev": true }, "node_modules/@types/react": { - "version": "18.2.14", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.14.tgz", - "integrity": "sha512-A0zjq+QN/O0Kpe30hA1GidzyFjatVvrpIvWLxD+xv67Vt91TWWgco9IvrJBkeyHm1trGaFS/FSGqPlhyeZRm0g==", + "version": "18.2.42", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.42.tgz", + "integrity": "sha512-c1zEr96MjakLYus/wPnuWDo1/zErfdU9rNsIGmE+NV71nx88FG9Ttgo5dqorXTu/LImX2f63WBP986gJkMPNbA==", "dev": true, "dependencies": { "@types/prop-types": "*", @@ -2655,34 +2831,45 @@ "dev": true }, "node_modules/@types/scheduler": { - "version": "0.16.3", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", - "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==", + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==", "dev": true }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dev": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, "node_modules/@types/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", "dev": true, "dependencies": { "@types/express": "*" } }, "node_modules/@types/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", + "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", "dev": true, "dependencies": { + "@types/http-errors": "*", "@types/mime": "*", "@types/node": "*" } }, "node_modules/@types/sockjs": { - "version": "0.3.33", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", - "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", "dev": true, "dependencies": { "@types/node": "*" @@ -2695,9 +2882,9 @@ "dev": true }, "node_modules/@types/unist": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.7.tgz", - "integrity": "sha512-cputDpIbFgLUaGQn6Vqg3/YsJwxUwHLO13v3i5ouxT4lat0khip9AEWxtERujXV9wxIB1EyF97BSJFt6vpdI8g==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==", "dev": true }, "node_modules/@types/use-sync-external-store": { @@ -2707,18 +2894,18 @@ "dev": true }, "node_modules/@types/ws": { - "version": "8.5.4", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", - "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", + "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@vue/compiler-sfc": { - "version": "2.7.14", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.14.tgz", - "integrity": "sha512-aNmNHyLPsw+sVvlQFQ2/8sjNuLtK54TC6cuKnVzAY93ks4ZBrvwQSnkkIh7bsbNhum5hJBS00wSDipQ937f5DA==", + "version": "2.7.15", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.15.tgz", + "integrity": "sha512-FCvIEevPmgCgqFBH7wD+3B97y7u7oj/Wr69zADBf403Tui377bThTjBvekaZvlRr4IwUAu3M6hYZeULZFJbdYg==", "dev": true, "dependencies": { "@babel/parser": "^7.18.4", @@ -2727,148 +2914,148 @@ } }, "node_modules/@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", "dev": true, "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", "dev": true }, "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", "dev": true }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", "dev": true }, "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", "dev": true, "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", "dev": true }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", "dev": true, "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", "dev": true, "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", "dev": true }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/ast": "1.11.6", "@xtuc/long": "4.2.2" } }, @@ -2939,22 +3126,10 @@ "node": ">= 0.6" } }, - "node_modules/accepts/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/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/acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -2964,9 +3139,9 @@ } }, "node_modules/acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", "dev": true, "peerDependencies": { "acorn": "^8" @@ -3071,15 +3246,18 @@ } }, "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/anymatch": { @@ -3135,28 +3313,28 @@ "dev": true }, "node_modules/assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.1.tgz", + "integrity": "sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==", "dev": true, "dependencies": { - "object-assign": "^4.1.1", - "util": "0.10.3" + "object.assign": "^4.1.4", + "util": "^0.10.4" } }, "node_modules/assert/node_modules/inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", "dev": true }, "node_modules/assert/node_modules/util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ==", + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", "dev": true, "dependencies": { - "inherits": "2.0.1" + "inherits": "2.0.3" } }, "node_modules/asynckit": { @@ -3184,9 +3362,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.13", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", - "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", + "version": "10.4.16", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", + "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", "dev": true, "funding": [ { @@ -3196,12 +3374,16 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "browserslist": "^4.21.4", - "caniuse-lite": "^1.0.30001426", - "fraction.js": "^4.2.0", + "browserslist": "^4.21.10", + "caniuse-lite": "^1.0.30001538", + "fraction.js": "^4.3.6", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.2.0" @@ -3225,26 +3407,6 @@ "follow-redirects": "^1.14.7" } }, - "node_modules/axios/node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, "node_modules/babel-loader": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", @@ -3265,51 +3427,51 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", - "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", + "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.3", - "semver": "^6.1.1" + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.3", + "semver": "^6.3.1" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", - "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz", + "integrity": "sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3", - "core-js-compat": "^3.25.1" + "@babel/helper-define-polyfill-provider": "^0.4.3", + "core-js-compat": "^3.33.1" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", - "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", + "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3" + "@babel/helper-define-polyfill-provider": "^0.4.3" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/balanced-match": { @@ -3399,27 +3561,6 @@ "ieee754": "^1.1.13" } }, - "node_modules/bl/node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "optional": true - }, "node_modules/bl/node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", @@ -3483,17 +3624,11 @@ "ms": "2.0.0" } }, - "node_modules/body-parser/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true }, "node_modules/body-parser/node_modules/qs": { "version": "6.11.0", @@ -3511,9 +3646,9 @@ } }, "node_modules/bonjour-service": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.14.tgz", - "integrity": "sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", + "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", "dev": true, "dependencies": { "array-flatten": "^2.1.2", @@ -3604,26 +3739,29 @@ } }, "node_modules/browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.2.tgz", + "integrity": "sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==", "dev": true, "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", + "bn.js": "^5.2.1", + "browserify-rsa": "^4.1.0", "create-hash": "^1.2.0", "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", + "elliptic": "^6.5.4", "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" + "parse-asn1": "^5.1.6", + "readable-stream": "^3.6.2", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 4" } }, "node_modules/browserify-sign/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { "inherits": "^2.0.3", @@ -3644,9 +3782,9 @@ } }, "node_modules/browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", "dev": true, "funding": [ { @@ -3656,13 +3794,17 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" @@ -3710,13 +3852,14 @@ } }, "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3754,9 +3897,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001442", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001442.tgz", - "integrity": "sha512-239m03Pqy0hwxYPYR5JwOIxRJfLTWtle9FV8zosfV5pHg+/51uD4nxcUlM8+mWWGfwKtt8lJNHnD3cWw9VZ6ow==", + "version": "1.0.30001566", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001566.tgz", + "integrity": "sha512-ggIhCsTxmITBAMmK8yZjEhCO5/47jKXPu6Dha/wuCS4JePVL+3uiDEBuhu2aIoT+bqTOR8L76Ip1ARL9xYsEJA==", "dev": true, "funding": [ { @@ -3766,6 +3909,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ] }, @@ -3785,60 +3932,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/chalk/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/chalk/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/chalk/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/chalk/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/character-entities": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", @@ -3944,9 +4037,9 @@ "dev": true }, "node_modules/clean-css": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.1.tgz", - "integrity": "sha512-lCr8OHhiWCTw4v8POJovCoh4T7I9U11yVsPjMWWnnMmp9ZowCxyad1Pathle/9HjaDp+fdQKjO9fQydE6RHTZg==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", "dev": true, "dependencies": { "source-map": "~0.6.0" @@ -3998,25 +4091,40 @@ "node": ">=6" } }, + "node_modules/clone-deep/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/collect.js": { - "version": "4.34.3", - "resolved": "https://registry.npmjs.org/collect.js/-/collect.js-4.34.3.tgz", - "integrity": "sha512-aFr67xDazPwthsGm729mnClgNuh15JEagU6McKBKqxuHOkWL7vMFzGbhsXDdPZ+H6ia5QKIMGYuGOMENBHnVpg==", + "version": "4.36.1", + "resolved": "https://registry.npmjs.org/collect.js/-/collect.js-4.36.1.tgz", + "integrity": "sha512-jd97xWPKgHn6uvK31V6zcyPd40lUJd7gpYxbN2VOVxGWO4tyvS9Li4EpsFjXepGTo2tYcOTC4a8YsbQXMJ4XUw==", "dev": true }, "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "color-name": "1.1.3" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/colord": { @@ -4026,9 +4134,9 @@ "dev": true }, "node_modules/colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", "dev": true }, "node_modules/combined-stream": { @@ -4107,6 +4215,12 @@ "ms": "2.0.0" } }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, "node_modules/compression/node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -4180,18 +4294,18 @@ } }, "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, "node_modules/cookie": { @@ -4219,12 +4333,12 @@ } }, "node_modules/core-js-compat": { - "version": "3.27.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.27.1.tgz", - "integrity": "sha512-Dg91JFeCDA17FKnneN7oCMz4BkQ4TcffkgHP4OWwp9yx3pi7ubqMDXXSacfNak1PQqjc95skyt+YBLHQJnkJwA==", + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.34.0.tgz", + "integrity": "sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA==", "dev": true, "dependencies": { - "browserslist": "^4.21.4" + "browserslist": "^4.22.2" }, "funding": { "type": "opencollective", @@ -4232,9 +4346,9 @@ } }, "node_modules/core-js-pure": { - "version": "3.31.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.31.1.tgz", - "integrity": "sha512-w+C62kvWti0EPs4KPMCMVv9DriHSXfQOCQ94bGGBiEW5rrbtt/Rz8n5Krhfw9cpFyzXBjf3DB3QnPdEzGDY4Fw==", + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.34.0.tgz", + "integrity": "sha512-pmhivkYXkymswFfbXsANmBAewXx86UBfmagP+w0wkK06kLsLlTK5oQmsURPivzMkIBQiYq2cjamcZExIwlFQIg==", "dev": true, "hasInstallScript": true, "funding": { @@ -4307,27 +4421,29 @@ "sha.js": "^2.4.8" } }, - "node_modules/cross-fetch": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", - "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", - "dev": true, - "dependencies": { - "node-fetch": "^2.6.12" - } - }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" }, "engines": { - "node": ">= 8" + "node": ">=4.8" + } + }, + "node_modules/cross-spawn/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" } }, "node_modules/crypt": { @@ -4362,9 +4478,9 @@ } }, "node_modules/css-declaration-sorter": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz", - "integrity": "sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", + "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", "dev": true, "engines": { "node": "^10 || ^12 || >=14" @@ -4402,9 +4518,9 @@ } }, "node_modules/css-loader/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", @@ -4435,6 +4551,21 @@ "url": "https://github.com/sponsors/fb55" } }, + "node_modules/css-select/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, "node_modules/css-tree": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", @@ -4479,12 +4610,12 @@ } }, "node_modules/cssnano": { - "version": "5.1.14", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.14.tgz", - "integrity": "sha512-Oou7ihiTocbKqi0J1bB+TRJIQX5RMR3JghA8hcWSw9mjBLQ5Y3RWqEDoYG3sRNlAbCIXpqMoZGbq5KDR3vdzgw==", + "version": "5.1.15", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", + "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", "dev": true, "dependencies": { - "cssnano-preset-default": "^5.2.13", + "cssnano-preset-default": "^5.2.14", "lilconfig": "^2.0.3", "yaml": "^1.10.2" }, @@ -4500,22 +4631,22 @@ } }, "node_modules/cssnano-preset-default": { - "version": "5.2.13", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.13.tgz", - "integrity": "sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ==", + "version": "5.2.14", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", + "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", "dev": true, "dependencies": { "css-declaration-sorter": "^6.3.1", "cssnano-utils": "^3.1.0", "postcss-calc": "^8.2.3", - "postcss-colormin": "^5.3.0", + "postcss-colormin": "^5.3.1", "postcss-convert-values": "^5.1.3", "postcss-discard-comments": "^5.1.2", "postcss-discard-duplicates": "^5.1.0", "postcss-discard-empty": "^5.1.1", "postcss-discard-overridden": "^5.1.0", "postcss-merge-longhand": "^5.1.7", - "postcss-merge-rules": "^5.1.3", + "postcss-merge-rules": "^5.1.4", "postcss-minify-font-values": "^5.1.0", "postcss-minify-gradients": "^5.1.1", "postcss-minify-params": "^5.1.4", @@ -4530,7 +4661,7 @@ "postcss-normalize-url": "^5.1.0", "postcss-normalize-whitespace": "^5.1.1", "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.1", + "postcss-reduce-initial": "^5.1.2", "postcss-reduce-transforms": "^5.1.0", "postcss-svgo": "^5.1.0", "postcss-unique-selectors": "^5.1.1" @@ -4573,12 +4704,20 @@ "dev": true }, "node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { - "ms": "2.0.0" + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, "node_modules/decompress-response": { @@ -4627,6 +4766,20 @@ "node": ">= 10" } }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", @@ -4636,6 +4789,23 @@ "node": ">=8" } }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -4655,9 +4825,9 @@ } }, "node_modules/des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", "dev": true, "dependencies": { "inherits": "^2.0.1", @@ -4675,9 +4845,9 @@ } }, "node_modules/detect-libc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", - "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", "dev": true, "optional": true, "engines": { @@ -4726,9 +4896,9 @@ "dev": true }, "node_modules/dns-packet": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", - "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", "dev": true, "dependencies": { "@leichtgewicht/ip-codec": "^2.0.1" @@ -4751,6 +4921,21 @@ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, + "node_modules/dom-serializer/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, "node_modules/domain-browser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", @@ -4774,12 +4959,12 @@ ] }, "node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", + "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==", "dev": true, "dependencies": { - "domelementtype": "^2.2.0" + "domelementtype": "^2.0.1" }, "engines": { "node": ">= 4" @@ -4808,6 +4993,21 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, + "node_modules/domutils/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, "node_modules/dot-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", @@ -4849,9 +5049,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "version": "1.4.605", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.605.tgz", + "integrity": "sha512-V52j+P5z6cdRqTjPR/bYNxx7ETCHIkm5VIGuyCy3CMrfSnbEpIlLnk5oHmZo7gYvDfh2TfHeanB6rawyQ23ktg==", "dev": true }, "node_modules/elliptic": { @@ -4910,9 +5110,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", - "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", @@ -4932,9 +5132,9 @@ } }, "node_modules/envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz", + "integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==", "dev": true, "bin": { "envinfo": "dist/cli.js" @@ -4953,9 +5153,9 @@ } }, "node_modules/es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", + "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", "dev": true }, "node_modules/escalade": { @@ -5063,44 +5263,91 @@ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "dev": true, - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/execa/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" } }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "node_modules/execa/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" + "shebang-regex": "^3.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "node": ">=8" } }, - "node_modules/execa/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "node_modules/execa/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "engines": { "node": ">=8" + } + }, + "node_modules/execa/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" } }, "node_modules/expand-template": { @@ -5161,15 +5408,6 @@ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "dev": true }, - "node_modules/express/node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/express/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -5179,6 +5417,12 @@ "ms": "2.0.0" } }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, "node_modules/express/node_modules/qs": { "version": "6.11.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", @@ -5201,9 +5445,9 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -5292,9 +5536,9 @@ } }, "node_modules/file-loader/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", @@ -5357,6 +5601,12 @@ "ms": "2.0.0" } }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, "node_modules/find-cache-dir": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", @@ -5396,16 +5646,33 @@ "micromatch": "^4.0.2" } }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, "node_modules/follow-redirects": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.1.tgz", - "integrity": "sha512-v9GI1hpaqq1ZZR6pBD1+kI7O24PhDvNGNodjS3MdcEqyrahCp8zbtpv+2B/krUnSmUH80lbAS7MrdeK5IylgKg==", + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", "dev": true, - "dependencies": { - "debug": "^3.1.0" - }, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], "engines": { "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } } }, "node_modules/form-data": { @@ -5422,12 +5689,6 @@ "node": ">= 6" } }, - "node_modules/form-data-encoder": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.9.0.tgz", - "integrity": "sha512-rahaRMkN8P8d/tgK/BLPX+WBVM27NbvdXBxqQujBtkDAIFspaRqN7Od7lfdGQA6KAD+f82fYCLBq1ipvcu8qLw==", - "dev": true - }, "node_modules/format": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", @@ -5437,19 +5698,6 @@ "node": ">=0.4.x" } }, - "node_modules/formdata-node": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-4.4.1.tgz", - "integrity": "sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==", - "dev": true, - "dependencies": { - "node-domexception": "1.0.0", - "web-streams-polyfill": "4.0.0-beta.3" - }, - "engines": { - "node": ">= 12.20" - } - }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -5460,16 +5708,16 @@ } }, "node_modules/fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", "dev": true, "engines": { "node": "*" }, "funding": { "type": "patreon", - "url": "https://www.patreon.com/infusion" + "url": "https://github.com/sponsors/rawify" } }, "node_modules/fresh": { @@ -5503,9 +5751,9 @@ } }, "node_modules/fs-monkey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", - "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz", + "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==", "dev": true }, "node_modules/fs.realpath": { @@ -5515,9 +5763,9 @@ "dev": true }, "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, "optional": true, @@ -5529,10 +5777,13 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/gensync": { "version": "1.0.0-beta.2", @@ -5553,14 +5804,15 @@ } }, "node_modules/get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5651,6 +5903,18 @@ "node": ">=8" } }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/govuk-frontend": { "version": "2.13.0", "resolved": "https://registry.npmjs.org/govuk-frontend/-/govuk-frontend-2.13.0.tgz", @@ -5661,9 +5925,9 @@ } }, "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, "node_modules/growly": { @@ -5678,25 +5942,37 @@ "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "dev": true }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", "dev": true, "dependencies": { - "function-bind": "^1.1.1" + "get-intrinsic": "^1.2.2" }, - "engines": { - "node": ">= 0.4.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", "dev": true, "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-symbols": { @@ -5726,9 +6002,9 @@ } }, "node_modules/hash-base/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { "inherits": "^2.0.3", @@ -5755,6 +6031,18 @@ "minimalistic-assert": "^1.0.1" } }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/hast-util-parse-selector": { "version": "2.2.5", "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", @@ -5833,10 +6121,20 @@ } }, "node_modules/html-entities": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", - "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", - "dev": true + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", + "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ] }, "node_modules/html-loader": { "version": "1.3.2", @@ -5861,9 +6159,9 @@ } }, "node_modules/html-loader/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", @@ -5955,21 +6253,6 @@ "entities": "^2.0.0" } }, - "node_modules/htmlparser2/node_modules/domhandler": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", - "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==", - "dev": true, - "dependencies": { - "domelementtype": "^2.0.1" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, "node_modules/http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", @@ -6051,6 +6334,18 @@ "node": ">=10.17.0" } }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/icss-utils": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", @@ -6064,15 +6359,29 @@ } }, "node_modules/ieee754": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", - "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==", - "dev": true + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", "dev": true, "engines": { "node": ">= 4" @@ -6138,9 +6447,9 @@ } }, "node_modules/immutable": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.1.tgz", - "integrity": "sha512-lj9cnmB/kVS0QHsJnYKD1uo3o39nrbKxszjnqS9Fr6NB7bZzW45U6WSGBPKXDL/CvDKqDNPA4r3DoDQ8GTxo2A==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz", + "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==", "dev": true }, "node_modules/import-fresh": { @@ -6220,9 +6529,9 @@ } }, "node_modules/ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", + "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", "dev": true, "engines": { "node": ">= 10" @@ -6289,12 +6598,12 @@ } }, "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6387,17 +6696,26 @@ } }, "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, "engines": { "node": ">=0.10.0" } }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", @@ -6445,15 +6763,6 @@ "node": ">= 10.13.0" } }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -6569,9 +6878,9 @@ } }, "node_modules/klona": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", - "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", "dev": true, "engines": { "node": ">= 8" @@ -6652,16 +6961,20 @@ "webpack-cli": "^4.9.1" } }, - "node_modules/laravel-mix/node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "node_modules/launch-editor": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz", + "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.8.1" + } }, "node_modules/lilconfig": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", - "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", "dev": true, "engines": { "node": ">=10" @@ -6717,7 +7030,7 @@ "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true }, "node_modules/lodash.memoize": { @@ -6792,9 +7105,9 @@ } }, "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -6838,12 +7151,12 @@ } }, "node_modules/memfs": { - "version": "3.4.12", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.12.tgz", - "integrity": "sha512-BcjuQn6vfqP+k100e0E9m61Hyqa//Brp+I3f0OBmN0ATHlFA8vx3Lt8z57R3u2bPqe3WGDBC+nF72fTH7isyEw==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", "dev": true, "dependencies": { - "fs-monkey": "^1.0.3" + "fs-monkey": "^1.0.4" }, "engines": { "node": ">= 4.0.0" @@ -6933,26 +7246,17 @@ } }, "node_modules/mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, "dependencies": { - "mime-db": "~1.33.0" + "mime-db": "1.52.0" }, "engines": { "node": ">= 0.6" } }, - "node_modules/mime-types/node_modules/mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", @@ -6997,9 +7301,9 @@ } }, "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", @@ -7051,9 +7355,9 @@ } }, "node_modules/minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7067,9 +7371,9 @@ "optional": true }, "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "node_modules/multicast-dns": { @@ -7086,16 +7390,16 @@ } }, "node_modules/nan": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", - "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", + "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==", "dev": true, "optional": true }, "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "dev": true, "funding": [ { @@ -7149,9 +7453,9 @@ } }, "node_modules/node-abi": { - "version": "3.45.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.45.0.tgz", - "integrity": "sha512-iwXuFrMAcFVi/ZoZiqq8BzAdsLw9kxDfTC0HMyjXfSL/6CSDAGD5UmR7azrAgWV1zKYq7dUUMj4owusBWKLsiQ==", + "version": "3.52.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.52.0.tgz", + "integrity": "sha512-JJ98b02z16ILv7859irtXn4oUaFWADtvkzy2c0IAatNVX2Mc9Yoh8z6hZInn3QwvMEYhHuQloYi+TTQy67SIdQ==", "dev": true, "optional": true, "dependencies": { @@ -7161,6 +7465,12 @@ "node": ">=10" } }, + "node_modules/node-abort-controller": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", + "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==", + "dev": true + }, "node_modules/node-domexception": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", @@ -7180,24 +7490,21 @@ "node": ">=10.5.0" } }, - "node_modules/node-fetch": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", - "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", + "node_modules/node-fetch-commonjs": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch-commonjs/-/node-fetch-commonjs-3.3.2.tgz", + "integrity": "sha512-VBlAiynj3VMLrotgwOS3OyECFxas5y7ltLcK4t41lMUZeaK15Ym4QRkqN0EQKAFL42q9i21EPKjzLUPfltR72A==", "dev": true, "dependencies": { - "whatwg-url": "^5.0.0" + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" }, "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" } }, "node_modules/node-forge": { @@ -7240,12 +7547,6 @@ "vm-browserify": "^1.0.1" } }, - "node_modules/node-libs-browser/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true - }, "node_modules/node-notifier": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-9.0.1.tgz", @@ -7260,10 +7561,25 @@ "which": "^2.0.2" } }, + "node_modules/node-notifier/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/node-releases": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", - "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, "node_modules/normalize-path": { @@ -7308,6 +7624,15 @@ "node": ">=8" } }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", @@ -7323,21 +7648,48 @@ "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/obuf": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", @@ -7390,17 +7742,16 @@ } }, "node_modules/open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", "dev": true, "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" }, "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -7607,22 +7958,6 @@ "npm": ">5" } }, - "node_modules/patch-package/node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, "node_modules/patch-package/node_modules/fs-extra": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", @@ -7638,43 +7973,6 @@ "node": ">=10" } }, - "node_modules/patch-package/node_modules/open": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/patch-package/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/patch-package/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, "node_modules/patch-package/node_modules/semver": { "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", @@ -7684,27 +7982,6 @@ "semver": "bin/semver" } }, - "node_modules/patch-package/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dev": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/patch-package/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/patch-package/node_modules/slash": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", @@ -7714,18 +7991,6 @@ "node": ">=6" } }, - "node_modules/patch-package/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, "node_modules/path-browserify": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", @@ -7751,12 +8016,12 @@ } }, "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", "dev": true, "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/path-parse": { @@ -7827,9 +8092,9 @@ } }, "node_modules/postcss": { - "version": "8.4.25", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.25.tgz", - "integrity": "sha512-7taJ/8t2av0Z+sQEvNzCkpDynl0tX3uJMCODi6nT3PfASC7dYCWV9aQ+uiCf+KBD4SEFcu+GvJdGdwzQ6OSjCw==", + "version": "8.4.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", + "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", "dev": true, "funding": [ { @@ -7846,7 +8111,7 @@ } ], "dependencies": { - "nanoid": "^3.3.6", + "nanoid": "^3.3.7", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -7868,12 +8133,12 @@ } }, "node_modules/postcss-colormin": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", - "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", + "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", "dev": true, "dependencies": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", "colord": "^2.9.1", "postcss-value-parser": "^4.2.0" @@ -8017,9 +8282,9 @@ } }, "node_modules/postcss-merge-rules": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.3.tgz", - "integrity": "sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", + "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", "dev": true, "dependencies": { "browserslist": "^4.21.4", @@ -8111,9 +8376,9 @@ } }, "node_modules/postcss-modules-local-by-default": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", - "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz", + "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==", "dev": true, "dependencies": { "icss-utils": "^5.0.0", @@ -8308,9 +8573,9 @@ } }, "node_modules/postcss-reduce-initial": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.1.tgz", - "integrity": "sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", + "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", "dev": true, "dependencies": { "browserslist": "^4.21.4", @@ -8339,9 +8604,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", - "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -8532,13 +8797,10 @@ } }, "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true }, "node_modules/qs": { "version": "6.11.2", @@ -8555,16 +8817,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, "node_modules/querystring-es3": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", @@ -8601,9 +8853,9 @@ ] }, "node_modules/ramda": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.29.0.tgz", - "integrity": "sha512-BBea6L67bYLtdbOqfp8f58fPMqEwx0doL+pAi8TZyp2YWz8R9G8z9x75CZI8W+ftqhFHCpEX2cRnUUXK130iKA==", + "version": "0.29.1", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.29.1.tgz", + "integrity": "sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA==", "dev": true, "funding": { "type": "opencollective", @@ -8611,9 +8863,9 @@ } }, "node_modules/ramda-adjunct": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/ramda-adjunct/-/ramda-adjunct-4.0.0.tgz", - "integrity": "sha512-W/NiJAlZdwZ/iUkWEQQgRdH5Szqqet1WoVH9cdqDVjFbVaZHuJfJRvsxqHhvq6tZse+yVbFatLDLdVa30wBlGQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ramda-adjunct/-/ramda-adjunct-4.1.1.tgz", + "integrity": "sha512-BnCGsZybQZMDGram9y7RiryoRHS5uwx8YeGuUeDKuZuvK38XO6JJfmK85BwRWAKFA6pZ5nZBO/HBFtExVaf31w==", "dev": true, "engines": { "node": ">=0.10.3" @@ -8691,18 +8943,6 @@ "node": ">= 0.8" } }, - "node_modules/raw-body/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -8811,9 +9051,9 @@ "dev": true }, "node_modules/react-redux": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.1.1.tgz", - "integrity": "sha512-5W0QaKtEhj+3bC0Nj0NkqkhIv8gLADH/2kYFMTHxCVqQILiWzLv6MaLuV5wJU3BQEdHKzTfcvPN0WMS6SC1oyA==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.1.3.tgz", + "integrity": "sha512-n0ZrutD7DaX/j9VscF+uTALI3oUPa/pO4Z3soOBIjuRn/FzVu6aehhysxZCLi6y7duMf52WNZGMl7CtuK5EnRw==", "dev": true, "dependencies": { "@babel/runtime": "^7.12.1", @@ -8872,9 +9112,9 @@ } }, "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "dependencies": { "core-util-is": "~1.0.0", @@ -8974,9 +9214,9 @@ "dev": true }, "node_modules/regenerate-unicode-properties": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", - "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", "dev": true, "dependencies": { "regenerate": "^1.4.2" @@ -8986,15 +9226,15 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", "dev": true }, "node_modules/regenerator-transform": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", - "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, "dependencies": { "@babel/runtime": "^7.8.4" @@ -9007,14 +9247,14 @@ "dev": true }, "node_modules/regexpu-core": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.2.tgz", - "integrity": "sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", "dev": true, "dependencies": { + "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", "regenerate-unicode-properties": "^10.1.0", - "regjsgen": "^0.7.1", "regjsparser": "^0.9.1", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.1.0" @@ -9023,12 +9263,6 @@ "node": ">=4" } }, - "node_modules/regjsgen": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", - "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==", - "dev": true - }, "node_modules/regjsparser": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", @@ -9123,7 +9357,7 @@ "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "dev": true }, "node_modules/reselect": { @@ -9133,12 +9367,12 @@ "dev": true }, "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "dependencies": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -9195,6 +9429,12 @@ "node": ">=12" } }, + "node_modules/resolve-url-loader/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, "node_modules/ret": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/ret/-/ret-0.2.2.tgz", @@ -9224,18 +9464,15 @@ } }, "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" } }, "node_modules/ripemd160": { @@ -9298,9 +9535,9 @@ "dev": true }, "node_modules/sass": { - "version": "1.63.6", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.63.6.tgz", - "integrity": "sha512-MJuxGMHzaOW7ipp+1KdELtqKbfAWbH7OLIdoSMnVe3EXPMTmxTmlaZDCTsgIpPCs3w99lLo9/zDKkOrJuT5byw==", + "version": "1.69.5", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.5.tgz", + "integrity": "sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -9387,11 +9624,12 @@ "dev": true }, "node_modules/selfsigned": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", - "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", "dev": true, "dependencies": { + "@types/node-forge": "^1.3.0", "node-forge": "^1" }, "engines": { @@ -9399,9 +9637,9 @@ } }, "node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -9492,9 +9730,9 @@ } }, "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", "dev": true, "dependencies": { "randombytes": "^2.1.0" @@ -9557,6 +9795,12 @@ "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", "dev": true }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, "node_modules/serve-index/node_modules/setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", @@ -9587,10 +9831,25 @@ "node": ">= 0.8.0" } }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", "dev": true }, "node_modules/setprototypeof": { @@ -9623,26 +9882,35 @@ "engines": { "node": ">=8" } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", "dev": true, "dependencies": { - "shebang-regex": "^3.0.0" + "shebang-regex": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", "dev": true, "engines": { - "node": ">=8" + "node": ">=0.10.0" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/shellwords": { @@ -9652,9 +9920,9 @@ "dev": true }, "node_modules/short-unique-id": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/short-unique-id/-/short-unique-id-4.4.4.tgz", - "integrity": "sha512-oLF1NCmtbiTWl2SqdXZQbo5KM1b7axdp0RgQLq8qCBBLoq+o3A5wmLrNM6bZIh54/a8BJ3l69kTXuxwZ+XCYuw==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/short-unique-id/-/short-unique-id-5.0.3.tgz", + "integrity": "sha512-yhniEILouC0s4lpH0h7rJsfylZdca10W9mDJRAFh3EpcSUanCHGb0R7kcFOIUCZYSAPo0PUD5ZxWQdW0T4xaug==", "dev": true, "bin": { "short-unique-id": "bin/short-unique-id", @@ -9822,33 +10090,10 @@ "wbuf": "^1.7.3" } }, - "node_modules/spdy-transport/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/spdy-transport/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/spdy-transport/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { "inherits": "^2.0.3", @@ -9859,29 +10104,6 @@ "node": ">= 6" } }, - "node_modules/spdy/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/spdy/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -9911,9 +10133,9 @@ } }, "node_modules/std-env": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.3.1.tgz", - "integrity": "sha512-3H20QlwQsSm2OvAxWIYhs+j01MzzqwMwGiiO1NQaJYZgJZFPuAbf95/DiKRBSTYIJ2FeGUc+B/6mPGcWP9dO3Q==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.6.0.tgz", + "integrity": "sha512-aFZ19IgVmhdB2uX599ve2kE6BIE3YMnQ6Gp6BURhW/oIzpXGKr878TQfAQZn1+i0Flcc/UKUy1gOlcfaUBCryg==", "dev": true }, "node_modules/stream-browserify": { @@ -10014,9 +10236,9 @@ } }, "node_modules/style-loader/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", @@ -10048,15 +10270,15 @@ } }, "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/supports-preserve-symlinks-flag": { @@ -10093,37 +10315,27 @@ } }, "node_modules/swagger-client": { - "version": "3.19.10", - "resolved": "https://registry.npmjs.org/swagger-client/-/swagger-client-3.19.10.tgz", - "integrity": "sha512-r+uGryGdxYQf7Aa9WzK226RigDaWAutDqP903O1QFA47jnJZ5RCkaV3X8nadXkNoZRlsZv8sEKOB8UoDY99BBA==", + "version": "3.24.5", + "resolved": "https://registry.npmjs.org/swagger-client/-/swagger-client-3.24.5.tgz", + "integrity": "sha512-qb4Rr9LpWs7o2AO4KdiIK+dz0GbrRLyD+UyN24h6AcNcDUnwfkb6LgFE4e6bXwVXWJzMp27w1QvSQ4hQNMPnoQ==", "dev": true, "dependencies": { - "@babel/runtime-corejs3": "^7.20.13", - "@swagger-api/apidom-core": ">=0.70.1 <1.0.0", - "@swagger-api/apidom-json-pointer": ">=0.70.1 <1.0.0", - "@swagger-api/apidom-ns-openapi-3-1": ">=0.70.2 <1.0.0", - "@swagger-api/apidom-reference": ">=0.70.2 <1.0.0", + "@babel/runtime-corejs3": "^7.22.15", + "@swagger-api/apidom-core": ">=0.83.0 <1.0.0", + "@swagger-api/apidom-error": ">=0.83.0 <1.0.0", + "@swagger-api/apidom-json-pointer": ">=0.83.0 <1.0.0", + "@swagger-api/apidom-ns-openapi-3-1": ">=0.83.0 <1.0.0", + "@swagger-api/apidom-reference": ">=0.83.0 <1.0.0", "cookie": "~0.5.0", - "cross-fetch": "^3.1.5", "deepmerge": "~4.3.0", "fast-json-patch": "^3.0.0-1", - "form-data-encoder": "^1.4.3", - "formdata-node": "^4.0.0", "is-plain-object": "^5.0.0", "js-yaml": "^4.1.0", - "lodash": "^4.17.21", + "node-abort-controller": "^3.1.1", + "node-fetch-commonjs": "^3.3.1", "qs": "^6.10.2", "traverse": "~0.6.6", - "url": "~0.11.0" - } - }, - "node_modules/swagger-client/node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "undici": "^5.24.0" } }, "node_modules/swagger-ui": { @@ -10171,26 +10383,6 @@ "zenscroll": "^4.0.2" } }, - "node_modules/swagger-ui/node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/swagger-ui/node_modules/immutable": { "version": "3.8.2", "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", @@ -10255,13 +10447,13 @@ } }, "node_modules/terser": { - "version": "5.16.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", - "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.25.0.tgz", + "integrity": "sha512-we0I9SIsfvNUMP77zC9HG+MylwYYsGFSBG8qm+13oud2Yh+O104y614FRbyjpxys16jZwot72Fpi827YvGzuqg==", "dev": true, "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, @@ -10273,16 +10465,16 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", - "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", + "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.14", + "@jridgewell/trace-mapping": "^0.3.17", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "terser": "^5.14.1" + "serialize-javascript": "^6.0.1", + "terser": "^5.16.8" }, "engines": { "node": ">= 10.13.0" @@ -10307,9 +10499,9 @@ } }, "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", @@ -10402,12 +10594,6 @@ "node": ">=0.6" } }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, "node_modules/traverse": { "version": "0.6.7", "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.7.tgz", @@ -10430,14 +10616,14 @@ } }, "node_modules/tree-sitter-json": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/tree-sitter-json/-/tree-sitter-json-0.20.0.tgz", - "integrity": "sha512-PteOLH+Tx6Bz4ZA/d40/DbkiSXXRM/gKahhHI8hQ1lWNfFvdknnz9k3Mz84ol5srRyLboJ8wp8GSkhZ6ht9EGQ==", + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/tree-sitter-json/-/tree-sitter-json-0.20.1.tgz", + "integrity": "sha512-482hf7J+aBwhksSw8yWaqI8nyP1DrSwnS4IMBShsnkFWD3SE8oalHnsEik59fEVi3orcTCUtMzSjZx+0Tpa6Vw==", "dev": true, "hasInstallScript": true, "optional": true, "dependencies": { - "nan": "^2.14.1" + "nan": "^2.18.0" } }, "node_modules/tree-sitter-yaml": { @@ -10458,9 +10644,9 @@ "dev": true }, "node_modules/tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, "node_modules/tty-browserify": { @@ -10507,27 +10693,33 @@ "node": ">= 0.6" } }, - "node_modules/type-is/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "node_modules/types-ramda": { + "version": "0.29.6", + "resolved": "https://registry.npmjs.org/types-ramda/-/types-ramda-0.29.6.tgz", + "integrity": "sha512-VJoOk1uYNh9ZguGd3eZvqkdhD4hTGtnjRBUx5Zc0U9ftmnCgiWcSj/lsahzKunbiwRje1MxxNkEy1UdcXRCpYw==", "dev": true, "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" + "ts-toolbelt": "^9.6.0" } }, - "node_modules/types-ramda": { - "version": "0.29.4", - "resolved": "https://registry.npmjs.org/types-ramda/-/types-ramda-0.29.4.tgz", - "integrity": "sha512-XO/820iRsCDwqLjE8XE+b57cVGPyk1h+U9lBGpDWvbEky+NQChvHVwaKM05WnW1c5z3EVQh8NhXFmh2E/1YazQ==", + "node_modules/undici": { + "version": "5.28.2", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.2.tgz", + "integrity": "sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==", "dev": true, "dependencies": { - "ts-toolbelt": "^9.6.0" + "@fastify/busboy": "^2.0.0" + }, + "engines": { + "node": ">=14.0" } }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -10569,9 +10761,9 @@ } }, "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, "engines": { "node": ">= 10.0.0" @@ -10587,15 +10779,15 @@ } }, "node_modules/unraw": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unraw/-/unraw-2.0.1.tgz", - "integrity": "sha512-tdOvLfRzHolwYcHS6HIX860MkK9LQ4+oLuNwFYL7bpgTEO64PZrcQxkisgwJYCfF8sKiWLwwu1c83DvMkbefIQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unraw/-/unraw-3.0.0.tgz", + "integrity": "sha512-08/DA66UF65OlpUDIQtbJyrqTR0jTAlJ+jsnkQ4jxR7+K5g5YG1APZKQSMCE1vqqmD+2pv6+IdEjmopFatacvg==", "dev": true }, "node_modules/update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, "funding": [ { @@ -10605,6 +10797,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { @@ -10612,7 +10808,7 @@ "picocolors": "^1.0.0" }, "bin": { - "browserslist-lint": "cli.js" + "update-browserslist-db": "cli.js" }, "peerDependencies": { "browserslist": ">= 4.21.0" @@ -10627,14 +10823,23 @@ "punycode": "^2.1.0" } }, + "node_modules/uri-js/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", + "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", "dev": true, "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" + "punycode": "^1.4.1", + "qs": "^6.11.2" } }, "node_modules/url-parse": { @@ -10647,12 +10852,6 @@ "requires-port": "^1.0.0" } }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - }, "node_modules/use-sync-external-store": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", @@ -10717,12 +10916,12 @@ "dev": true }, "node_modules/vue": { - "version": "2.7.14", - "resolved": "https://registry.npmjs.org/vue/-/vue-2.7.14.tgz", - "integrity": "sha512-b2qkFyOM0kwqWFuQmgd4o+uHGU7T+2z3T+WQp8UBjADfEv2n4FEMffzBmCKNP0IGzOEEfYjvtcC62xaSKeQDrQ==", + "version": "2.7.15", + "resolved": "https://registry.npmjs.org/vue/-/vue-2.7.15.tgz", + "integrity": "sha512-a29fsXd2G0KMRqIFTpRgpSbWaNBK3lpCTOLuGLEDnlHWdjB8fwl6zyYZ8xCrqkJdatwZb4mGHiEfJjnw0Q6AwQ==", "dev": true, "dependencies": { - "@vue/compiler-sfc": "2.7.14", + "@vue/compiler-sfc": "2.7.15", "csstype": "^3.1.0" } }, @@ -10785,12 +10984,12 @@ } }, "node_modules/web-streams-polyfill": { - "version": "4.0.0-beta.3", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz", - "integrity": "sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", + "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", "dev": true, "engines": { - "node": ">= 14" + "node": ">= 8" } }, "node_modules/web-tree-sitter": { @@ -10800,29 +10999,23 @@ "dev": true, "optional": true }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, "node_modules/webpack": { - "version": "5.75.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz", - "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==", + "version": "5.89.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", + "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", "acorn": "^8.7.1", - "acorn-import-assertions": "^1.7.6", + "acorn-import-assertions": "^1.9.0", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", - "es-module-lexer": "^0.9.0", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", @@ -10831,9 +11024,9 @@ "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", + "schema-utils": "^3.2.0", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", + "terser-webpack-plugin": "^5.3.7", "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, @@ -10900,6 +11093,65 @@ } } }, + "node_modules/webpack-cli/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/webpack-cli/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-cli/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-cli/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-cli/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/webpack-dev-middleware": { "version": "5.3.3", "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", @@ -10957,28 +11209,16 @@ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, - "node_modules/webpack-dev-middleware/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/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/webpack-dev-middleware/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", + "ajv": "^8.9.0", "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" + "ajv-keywords": "^5.1.0" }, "engines": { "node": ">= 12.13.0" @@ -10989,9 +11229,9 @@ } }, "node_modules/webpack-dev-server": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz", - "integrity": "sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==", + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", + "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", "dev": true, "dependencies": { "@types/bonjour": "^3.5.9", @@ -11000,7 +11240,7 @@ "@types/serve-index": "^1.9.1", "@types/serve-static": "^1.13.10", "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.1", + "@types/ws": "^8.5.5", "ansi-html-community": "^0.0.8", "bonjour-service": "^1.0.11", "chokidar": "^3.5.3", @@ -11013,6 +11253,7 @@ "html-entities": "^2.3.2", "http-proxy-middleware": "^2.0.3", "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", "open": "^8.0.9", "p-retry": "^4.5.0", "rimraf": "^3.0.2", @@ -11022,7 +11263,7 @@ "sockjs": "^0.3.24", "spdy": "^4.0.2", "webpack-dev-middleware": "^5.3.1", - "ws": "^8.4.2" + "ws": "^8.13.0" }, "bin": { "webpack-dev-server": "bin/webpack-dev-server.js" @@ -11038,6 +11279,9 @@ "webpack": "^4.37.0 || ^5.0.0" }, "peerDependenciesMeta": { + "webpack": { + "optional": true + }, "webpack-cli": { "optional": true } @@ -11067,26 +11311,58 @@ "dependencies": { "fast-deep-equal": "^3.1.3" }, - "peerDependencies": { - "ajv": "^8.8.2" + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/webpack-dev-server/node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webpack-dev-server/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, "node_modules/webpack-dev-server/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", + "ajv": "^8.9.0", "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" + "ajv-keywords": "^5.1.0" }, "engines": { "node": ">= 12.13.0" @@ -11097,12 +11373,13 @@ } }, "node_modules/webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", "dev": true, "dependencies": { "clone-deep": "^4.0.1", + "flat": "^5.0.2", "wildcard": "^2.0.0" }, "engines": { @@ -11137,22 +11414,10 @@ "source-map": "~0.6.1" } }, - "node_modules/webpack/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/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/webpack/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", @@ -11217,35 +11482,22 @@ "node": ">=0.8.0" } }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "dependencies": { "isexe": "^2.0.0" }, "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" + "which": "bin/which" } }, "node_modules/wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", "dev": true }, "node_modules/wrap-ansi": { @@ -11265,39 +11517,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -11305,16 +11524,16 @@ "dev": true }, "node_modules/ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "version": "8.14.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", + "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", "dev": true, "engines": { "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { "bufferutil": { @@ -11374,9 +11593,9 @@ } }, "node_modules/yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "dependencies": { "cliui": "^8.0.1", @@ -11409,527 +11628,479 @@ }, "dependencies": { "@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, "requires": { - "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" } }, "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "dev": true, "requires": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "@babel/compat-data": { - "version": "7.20.10", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz", - "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", "dev": true }, "@babel/core": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", - "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helpers": "^7.20.7", - "@babel/parser": "^7.20.7", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.12", - "@babel/types": "^7.20.7", - "convert-source-map": "^1.7.0", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.5.tgz", + "integrity": "sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.5", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.5", + "@babel/parser": "^7.23.5", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.5", + "@babel/types": "^7.23.5", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" + "json5": "^2.2.3", + "semver": "^6.3.1" }, "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true } } }, "@babel/generator": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz", - "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.5.tgz", + "integrity": "sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==", "dev": true, "requires": { - "@babel/types": "^7.20.7", + "@babel/types": "^7.23.5", "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } } }, "@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dev": true, "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", - "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", "dev": true, "requires": { - "@babel/helper-explode-assignable-expression": "^7.18.6", - "@babel/types": "^7.18.9" + "@babel/types": "^7.22.15" } }, "@babel/helper-compilation-targets": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", - "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", "dev": true, "requires": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", "lru-cache": "^5.1.1", - "semver": "^6.3.0" + "semver": "^6.3.1" }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true } } }, "@babel/helper-create-class-features-plugin": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.12.tgz", - "integrity": "sha512-9OunRkbT0JQcednL0UFvbfXpAsUXiGjUk0a7sN8fUXX7Mue79cUSMjHGDRRi/Vz9vYlpIhLV5fMD5dKoMhhsNQ==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.5.tgz", + "integrity": "sha512-QELlRWxSpgdwdJzSJn4WAhKC+hvw/AtHbbrIoncKHkhKKR/luAlKkgBDcri1EzWAo8f8VvYVryEHN4tax/V67A==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-member-expression-to-functions": "^7.20.7", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/helper-split-export-declaration": "^7.18.6" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz", - "integrity": "sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.2.1" + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } } }, "@babel/helper-define-polyfill-provider": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", - "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", + "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", "dev": true, "requires": { - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "resolve": "^1.14.2" } }, "@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true }, - "@babel/helper-explode-assignable-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", - "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, "@babel/helper-function-name": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, "requires": { - "@babel/template": "^7.18.10", - "@babel/types": "^7.19.0" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" } }, "@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.20.7.tgz", - "integrity": "sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", "dev": true, "requires": { - "@babel/types": "^7.20.7" + "@babel/types": "^7.23.0" } }, "@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", "dev": true, "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.15" } }, "@babel/helper-module-transforms": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", - "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.10", - "@babel/types": "^7.20.7" + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" } }, "@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", "dev": true, "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" } }, "@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", "dev": true }, "@babel/helper-remap-async-to-generator": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", - "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-wrap-function": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" } }, "@babel/helper-replace-supers": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", - "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.20.7", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" } }, "@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dev": true, "requires": { - "@babel/types": "^7.20.2" + "@babel/types": "^7.22.5" } }, "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", - "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", "dev": true, "requires": { - "@babel/types": "^7.20.0" + "@babel/types": "^7.22.5" } }, "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" } }, "@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", "dev": true }, "@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true }, "@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true - }, - "@babel/helper-wrap-function": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", - "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.19.0", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" - } - }, - "@babel/helpers": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.7.tgz", - "integrity": "sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==", - "dev": true, - "requires": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.7", - "@babel/types": "^7.20.7" - } - }, - "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - } - } - }, - "@babel/parser": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz", - "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", "dev": true }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", - "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", - "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-proposal-optional-chaining": "^7.20.7" - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", - "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.20.7.tgz", - "integrity": "sha512-AveGOoi9DAjUYYuUAG//Ig69GlazLnoyzMw68VCDux+c1tsnnH/OkYcpz/5xzMkEFC6UxjR5Gw1c+iY2wOGVeQ==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "@babel/helper-wrap-function": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" } }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", - "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "@babel/helpers": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.5.tgz", + "integrity": "sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.5", + "@babel/types": "^7.23.5" } }, - "@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", - "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", - "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", + "@babel/parser": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.5.tgz", + "integrity": "sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==", + "dev": true + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", + "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", + "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.23.3" } }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz", + "integrity": "sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-proposal-object-rest-spread": { @@ -11945,58 +12116,12 @@ "@babel/plugin-transform-parameters": "^7.20.7" } }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.20.7.tgz", - "integrity": "sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, "@babel/plugin-proposal-private-property-in-object": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz", - "integrity": "sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.20.5", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } + "requires": {} }, "@babel/plugin-syntax-async-generators": { "version": "7.8.4", @@ -12044,12 +12169,30 @@ } }, "@babel/plugin-syntax-import-assertions": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", - "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", + "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-syntax-import-attributes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", + "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-json-strings": { @@ -12133,376 +12276,544 @@ "@babel/helper-plugin-utils": "^7.14.5" } }, + "@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, "@babel/plugin-transform-arrow-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz", - "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", + "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-async-generator-functions": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz", + "integrity": "sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", - "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", + "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9" + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20" } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", - "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", + "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.11.tgz", - "integrity": "sha512-tA4N427a7fjf1P0/2I4ScsHGc5jcHPbb30xMbaTke2gxDuWpUfXDuX1FEymJwKk4tuGUvGcejAR6HdZVqmmPyw==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", + "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/plugin-transform-classes": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.7.tgz", - "integrity": "sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ==", + "@babel/plugin-transform-class-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", + "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-class-static-block": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", + "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz", + "integrity": "sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-split-export-declaration": "^7.22.6", "globals": "^11.1.0" } }, "@babel/plugin-transform-computed-properties": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz", - "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", + "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/template": "^7.20.7" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.15" } }, "@babel/plugin-transform-destructuring": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz", - "integrity": "sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", + "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", - "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", + "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", - "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", + "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-dynamic-import": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", + "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", - "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", + "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", "dev": true, "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-export-namespace-from": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", + "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, "@babel/plugin-transform-for-of": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", - "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz", + "integrity": "sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", - "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", + "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", "dev": true, "requires": { - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-json-strings": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", + "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" } }, "@babel/plugin-transform-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", - "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", + "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-logical-assignment-operators": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", + "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", - "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", + "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", - "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", + "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.20.11.tgz", - "integrity": "sha512-S8e1f7WQ7cimJQ51JkAaDrEtohVEitXjgCGAS2N8S31Y42E+kWwfSz83LYz57QdBm7q9diARVqanIaH2oVgQnw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-simple-access": "^7.20.2" + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", - "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", + "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-identifier": "^7.19.1" + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", - "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", + "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", - "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.20.5", - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-new-target": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", - "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", + "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", + "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-transform-numeric-separator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", + "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-transform-object-rest-spread": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", + "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.23.3" } }, "@babel/plugin-transform-object-super": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", - "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", + "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20" + } + }, + "@babel/plugin-transform-optional-catch-binding": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", + "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-transform-optional-chaining": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", + "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, "@babel/plugin-transform-parameters": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz", - "integrity": "sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", + "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-private-methods": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", + "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-private-property-in-object": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", + "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" } }, "@babel/plugin-transform-property-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", - "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", + "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-regenerator": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", - "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", + "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "regenerator-transform": "^0.15.1" + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", - "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", + "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-runtime": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz", - "integrity": "sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.4.tgz", + "integrity": "sha512-ITwqpb6V4btwUG0YJR82o2QvmWrLgDnx/p2A3CTPYGaRgULkDiC0DRA2C4jlRB9uXGUEfaSS/IGHfVW+ohzYDw==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.19.0", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "semver": "^6.3.0" + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", + "semver": "^6.3.1" }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true } } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", - "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", + "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", - "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", + "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", - "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", + "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-template-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", - "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", + "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", - "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", + "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-unicode-escapes": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", - "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", + "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-unicode-property-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", + "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", - "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", + "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/preset-env": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", - "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", + "@babel/plugin-transform-unicode-sets-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", + "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", "dev": true, "requires": { - "@babel/compat-data": "^7.20.1", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.20.1", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.18.6", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.2", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.18.6", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/preset-env": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.5.tgz", + "integrity": "sha512-0d/uxVD6tFGWXGDSfyMD1p2otoaKmu6+GD+NfAx0tMaH+dxORnp7T9TaVQ6mKyya7iBtCIVxHjWT7MuzzM9z+A==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.3", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.20.0", + "@babel/plugin-syntax-import-assertions": "^7.23.3", + "@babel/plugin-syntax-import-attributes": "^7.23.3", + "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", @@ -12512,149 +12823,144 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.18.6", - "@babel/plugin-transform-async-to-generator": "^7.18.6", - "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.20.2", - "@babel/plugin-transform-classes": "^7.20.2", - "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.20.2", - "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.9", - "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.18.8", - "@babel/plugin-transform-function-name": "^7.18.9", - "@babel/plugin-transform-literals": "^7.18.9", - "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.19.6", - "@babel/plugin-transform-modules-commonjs": "^7.19.6", - "@babel/plugin-transform-modules-systemjs": "^7.19.6", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.20.1", - "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.18.6", - "@babel/plugin-transform-reserved-words": "^7.18.6", - "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.19.0", - "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.9", - "@babel/plugin-transform-typeof-symbol": "^7.18.9", - "@babel/plugin-transform-unicode-escapes": "^7.18.10", - "@babel/plugin-transform-unicode-regex": "^7.18.6", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.20.2", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "core-js-compat": "^3.25.1", - "semver": "^6.3.0" + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.23.3", + "@babel/plugin-transform-async-generator-functions": "^7.23.4", + "@babel/plugin-transform-async-to-generator": "^7.23.3", + "@babel/plugin-transform-block-scoped-functions": "^7.23.3", + "@babel/plugin-transform-block-scoping": "^7.23.4", + "@babel/plugin-transform-class-properties": "^7.23.3", + "@babel/plugin-transform-class-static-block": "^7.23.4", + "@babel/plugin-transform-classes": "^7.23.5", + "@babel/plugin-transform-computed-properties": "^7.23.3", + "@babel/plugin-transform-destructuring": "^7.23.3", + "@babel/plugin-transform-dotall-regex": "^7.23.3", + "@babel/plugin-transform-duplicate-keys": "^7.23.3", + "@babel/plugin-transform-dynamic-import": "^7.23.4", + "@babel/plugin-transform-exponentiation-operator": "^7.23.3", + "@babel/plugin-transform-export-namespace-from": "^7.23.4", + "@babel/plugin-transform-for-of": "^7.23.3", + "@babel/plugin-transform-function-name": "^7.23.3", + "@babel/plugin-transform-json-strings": "^7.23.4", + "@babel/plugin-transform-literals": "^7.23.3", + "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", + "@babel/plugin-transform-member-expression-literals": "^7.23.3", + "@babel/plugin-transform-modules-amd": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-modules-systemjs": "^7.23.3", + "@babel/plugin-transform-modules-umd": "^7.23.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.23.3", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", + "@babel/plugin-transform-numeric-separator": "^7.23.4", + "@babel/plugin-transform-object-rest-spread": "^7.23.4", + "@babel/plugin-transform-object-super": "^7.23.3", + "@babel/plugin-transform-optional-catch-binding": "^7.23.4", + "@babel/plugin-transform-optional-chaining": "^7.23.4", + "@babel/plugin-transform-parameters": "^7.23.3", + "@babel/plugin-transform-private-methods": "^7.23.3", + "@babel/plugin-transform-private-property-in-object": "^7.23.4", + "@babel/plugin-transform-property-literals": "^7.23.3", + "@babel/plugin-transform-regenerator": "^7.23.3", + "@babel/plugin-transform-reserved-words": "^7.23.3", + "@babel/plugin-transform-shorthand-properties": "^7.23.3", + "@babel/plugin-transform-spread": "^7.23.3", + "@babel/plugin-transform-sticky-regex": "^7.23.3", + "@babel/plugin-transform-template-literals": "^7.23.3", + "@babel/plugin-transform-typeof-symbol": "^7.23.3", + "@babel/plugin-transform-unicode-escapes": "^7.23.3", + "@babel/plugin-transform-unicode-property-regex": "^7.23.3", + "@babel/plugin-transform-unicode-regex": "^7.23.3", + "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true } } }, "@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", "@babel/types": "^7.4.4", "esutils": "^2.0.2" } }, + "@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, "@babel/runtime": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.7.tgz", - "integrity": "sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.5.tgz", + "integrity": "sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w==", "dev": true, "requires": { - "regenerator-runtime": "^0.13.11" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "dev": true - } + "regenerator-runtime": "^0.14.0" } }, "@babel/runtime-corejs3": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.22.6.tgz", - "integrity": "sha512-M+37LLIRBTEVjktoJjbw4KVhupF0U/3PYUCbBwgAd9k17hoKhRu1n935QiG7Tuxv0LJOMrb2vuKEeYUlv0iyiw==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.23.5.tgz", + "integrity": "sha512-7+ziVclejQTLYhXl+Oi1f6gTGD1XDCeLa4R472TNGQxb08zbEJ0OdNoh5Piz+57Ltmui6xR88BXR4gS3/Toslw==", "dev": true, "requires": { "core-js-pure": "^3.30.2", - "regenerator-runtime": "^0.13.11" - } - }, - "@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" + "regenerator-runtime": "^0.14.0" } }, - "@babel/traverse": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.12.tgz", - "integrity": "sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } + "@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + } + }, + "@babel/traverse": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.5.tgz", + "integrity": "sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.5", + "@babel/types": "^7.23.5", + "debug": "^4.1.0", + "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", - "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.5.tgz", + "integrity": "sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==", "dev": true, "requires": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" } }, @@ -12677,20 +12983,27 @@ "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", "dev": true }, + "@fastify/busboy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz", + "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==", + "dev": true + }, "@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dev": true, "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" } }, "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", "dev": true }, "@jridgewell/set-array": { @@ -12700,42 +13013,29 @@ "dev": true }, "@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", "dev": true, "requires": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } } }, "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", "dev": true }, "@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", "dev": true, "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "@leichtgewicht/ip-codec": { @@ -12771,318 +13071,385 @@ } }, "@swagger-api/apidom-ast": { - "version": "0.70.0", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-ast/-/apidom-ast-0.70.0.tgz", - "integrity": "sha512-zQ1RUkXjx5NPYv1bmkoXwlQi7oJC7DJqYi0syTQKswJZDbOkHCwz8cDP/YystOEOL+yyIN7i5EQBIHfy5yAMmA==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-ast/-/apidom-ast-0.86.0.tgz", + "integrity": "sha512-Q1c5bciMCIGvOx1uZWh567qql2Ef0pCoZOKfhpQ+vKIevfTO85fRBmixyjxv2zETq2UZ1XwsW8q8k0feu1yBjw==", "dev": true, "requires": { "@babel/runtime-corejs3": "^7.20.7", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", - "ramda-adjunct": "^4.0.0", + "@swagger-api/apidom-error": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", + "ramda-adjunct": "^4.1.1", "stampit": "^4.3.2", - "unraw": "^2.0.1" + "unraw": "^3.0.0" } }, "@swagger-api/apidom-core": { - "version": "0.70.1", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-core/-/apidom-core-0.70.1.tgz", - "integrity": "sha512-doE6escw5LYVxIp5/lfdeNC8jF39JohKeYQ/YuH5wbo5T06uy8nZ3VxcjPHymmQmLlHdEegUIiirp7dSZFZlIg==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-core/-/apidom-core-0.86.0.tgz", + "integrity": "sha512-HsM6Y5hEDlm8gwO5dSH9QOdtU3H18oVuEZJ/hmC7YCsqrG3EfCD3Y0V1uskuQraaUnyxVGKtgDqUrrWfoWH/sw==", "dev": true, "requires": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-ast": "^0.70.0", - "@types/ramda": "~0.29.1", + "@swagger-api/apidom-ast": "^0.86.0", + "@swagger-api/apidom-error": "^0.86.0", + "@types/ramda": "~0.29.6", "minim": "~0.23.8", - "ramda": "~0.29.0", - "ramda-adjunct": "^4.0.0", - "short-unique-id": "^4.4.4", + "ramda": "~0.29.1", + "ramda-adjunct": "^4.1.1", + "short-unique-id": "^5.0.2", "stampit": "^4.3.2" } }, + "@swagger-api/apidom-error": { + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-error/-/apidom-error-0.86.0.tgz", + "integrity": "sha512-nUV91SDdiZ0nzk8o/D7ILToAYRpLNHsXKXnse8yMXmgaDYnQ5cBKQnuOcDOH9PG3HfDfE+MDy/aM8WKvKUzxMg==", + "dev": true, + "requires": { + "@babel/runtime-corejs3": "^7.20.7" + } + }, "@swagger-api/apidom-json-pointer": { - "version": "0.70.1", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-json-pointer/-/apidom-json-pointer-0.70.1.tgz", - "integrity": "sha512-9NyeflCD0Vy8rce3Eag/Xdu2SGF4nr/mnQ6/vb4VbV9pID12z6EbBWvF9p9l0/sRdA6IePj39B3uBLcPl5b4Dg==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-json-pointer/-/apidom-json-pointer-0.86.0.tgz", + "integrity": "sha512-iEY16JZeNWFBxy9YimDwGoJ+LL4dvZndd7KLrtT3SN1q/oSbLPc4mc5PsqVQwV3pplYVorGwlL5sZ5BMRRuxEQ==", "dev": true, "requires": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-core": "^0.70.1", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-error": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", "ramda-adjunct": "^4.0.0" } }, "@swagger-api/apidom-ns-api-design-systems": { - "version": "0.70.3", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-api-design-systems/-/apidom-ns-api-design-systems-0.70.3.tgz", - "integrity": "sha512-61qffrU0AX/7DxaQ6eFz+gSChlI/6dRU8YaBi4N38ZrwaMkRm/ksy8VWUoMcs2qHrqWh8vBijnpKBXi9JHNGKA==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-api-design-systems/-/apidom-ns-api-design-systems-0.86.0.tgz", + "integrity": "sha512-/oSrDO5YqI4b8a5DbPGV0a5mss3Rdi72vIMlEzElhuX9NkeOI0foEyzhIL/lpjrI0iUmzLk30H0puQU3aspNZA==", "dev": true, "optional": true, "requires": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-core": "^0.70.1", - "@swagger-api/apidom-ns-openapi-3-1": "^0.70.3", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", - "ramda-adjunct": "^4.0.0", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-error": "^0.86.0", + "@swagger-api/apidom-ns-openapi-3-1": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", + "ramda-adjunct": "^4.1.1", "stampit": "^4.3.2" } }, "@swagger-api/apidom-ns-asyncapi-2": { - "version": "0.70.3", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-asyncapi-2/-/apidom-ns-asyncapi-2-0.70.3.tgz", - "integrity": "sha512-Z2xhws7MfclZ2IzFjsfohpRueTZBde6x0GGtWC3dmgq506IhYpA+cpGYUpGHgwzdwLJOzLdwXnafuuXIoVkvJw==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-asyncapi-2/-/apidom-ns-asyncapi-2-0.86.0.tgz", + "integrity": "sha512-q7ZGjAv1oD8Cs/cJA/jkVgVysrU5T72ItO4LcUiyd6VqfK5f13CjXw5nADPW3ETPwz1uOQ0GO6SEDNlGCsEE3A==", "dev": true, "optional": true, "requires": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-core": "^0.70.1", - "@swagger-api/apidom-ns-json-schema-draft-7": "^0.70.3", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", - "ramda-adjunct": "^4.0.0", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-ns-json-schema-draft-7": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", + "ramda-adjunct": "^4.1.1", "stampit": "^4.3.2" } }, "@swagger-api/apidom-ns-json-schema-draft-4": { - "version": "0.70.3", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-json-schema-draft-4/-/apidom-ns-json-schema-draft-4-0.70.3.tgz", - "integrity": "sha512-y/WJTQCzm59p8wVPb034AcydzgXNEOVdh+S/OGuHJ+HYUFmVT5NWvBGWC7Ikc9ixXN0v585dzq1QvE2T7H0ZfQ==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-json-schema-draft-4/-/apidom-ns-json-schema-draft-4-0.86.0.tgz", + "integrity": "sha512-NELX5IeCYErvTc/rJTkud8YySsaEYY4g7FwnCze8u6VnypVQLD9GPbpSR7rpm/lugx0phoAfcGvHM+mOqt14yQ==", "dev": true, "requires": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-ast": "^0.70.0", - "@swagger-api/apidom-core": "^0.70.1", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", - "ramda-adjunct": "^4.0.0", + "@swagger-api/apidom-ast": "^0.86.0", + "@swagger-api/apidom-core": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", + "ramda-adjunct": "^4.1.1", "stampit": "^4.3.2" } }, "@swagger-api/apidom-ns-json-schema-draft-6": { - "version": "0.70.3", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-json-schema-draft-6/-/apidom-ns-json-schema-draft-6-0.70.3.tgz", - "integrity": "sha512-6u6fB9LIM3z+K9miAAWsOT13LOCQc5G0d/lkRSpVSendvgAWpOCEx1BSgiIoURwkcBl2FB46vYyXefolxTOK7w==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-json-schema-draft-6/-/apidom-ns-json-schema-draft-6-0.86.0.tgz", + "integrity": "sha512-ZYfgawZHDtsztiKIFxpTX78ajZWkyNp9+psXv7l91r0TFiuRVJRERmfvtpHE9m0sGHkJEfRcxL3RlZceQ9fohw==", "dev": true, "optional": true, "requires": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-core": "^0.70.1", - "@swagger-api/apidom-ns-json-schema-draft-4": "^0.70.3", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", - "ramda-adjunct": "^4.0.0", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-error": "^0.86.0", + "@swagger-api/apidom-ns-json-schema-draft-4": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", + "ramda-adjunct": "^4.1.1", "stampit": "^4.3.2" } }, "@swagger-api/apidom-ns-json-schema-draft-7": { - "version": "0.70.3", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-json-schema-draft-7/-/apidom-ns-json-schema-draft-7-0.70.3.tgz", - "integrity": "sha512-fVTxhfuHieXyEL4BwoQidXNGAkXjO9N8QekfUpdYDKLxs7Sq80itPZxlq/fbagomS+Q1n5LYfB5h2n5lLOGJDQ==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-json-schema-draft-7/-/apidom-ns-json-schema-draft-7-0.86.0.tgz", + "integrity": "sha512-EcPCeS/mcgZnZJvHNrqQrdQ1V4miBx55xEcmUpfDebacexlLV9A/OpeL8ttIVJRmuhv4ATiq2/eOKaN7wETB4w==", + "dev": true, + "optional": true, + "requires": { + "@babel/runtime-corejs3": "^7.20.7", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-error": "^0.86.0", + "@swagger-api/apidom-ns-json-schema-draft-6": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", + "ramda-adjunct": "^4.1.1", + "stampit": "^4.3.2" + } + }, + "@swagger-api/apidom-ns-openapi-2": { + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-openapi-2/-/apidom-ns-openapi-2-0.86.0.tgz", + "integrity": "sha512-IkORhlU8E5VoIYYJ2O+Oe/9JLcI/MLGl6yAsaReK1TZxyK/7tLghbIu6sBfJCAr7Jt1WY6lwWtvJg0ptTZ2zTw==", "dev": true, "optional": true, "requires": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-core": "^0.70.1", - "@swagger-api/apidom-ns-json-schema-draft-6": "^0.70.3", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", - "ramda-adjunct": "^4.0.0", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-error": "^0.86.0", + "@swagger-api/apidom-ns-json-schema-draft-4": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", + "ramda-adjunct": "^4.1.1", "stampit": "^4.3.2" } }, "@swagger-api/apidom-ns-openapi-3-0": { - "version": "0.70.3", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-openapi-3-0/-/apidom-ns-openapi-3-0-0.70.3.tgz", - "integrity": "sha512-ci5GNSf1cA/Xc2/1Kjlo2u78McevOYsH6+weEPW4JlHa3hMJyi6dlw16yHBRl7lzdxiO0D64+r0JVX0bOBhqyw==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-openapi-3-0/-/apidom-ns-openapi-3-0-0.86.0.tgz", + "integrity": "sha512-u489LR/E+5q1Hh3fzex4j6wpCBQwmcNy52dF3YSQbz5PTUOIfU4QGR6fh4/3sgublS7eQ84Z6G77Mg/vzZjeCQ==", "dev": true, "requires": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-core": "^0.70.1", - "@swagger-api/apidom-ns-json-schema-draft-4": "^0.70.3", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", - "ramda-adjunct": "^4.0.0", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-error": "^0.86.0", + "@swagger-api/apidom-ns-json-schema-draft-4": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", + "ramda-adjunct": "^4.1.1", "stampit": "^4.3.2" } }, "@swagger-api/apidom-ns-openapi-3-1": { - "version": "0.70.3", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-openapi-3-1/-/apidom-ns-openapi-3-1-0.70.3.tgz", - "integrity": "sha512-/AwVei3FJeC4wAnmNMywyK8zjKiP8CzuuA58G9xqWk2asOH2qjppYjaFAE6BeJ7of7juR5+BvdQg1wXYz8sutA==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-openapi-3-1/-/apidom-ns-openapi-3-1-0.86.0.tgz", + "integrity": "sha512-oYXd0qHxisPh5/SNHWtlAl/g1GtDl+OPrZUp4y6tTHHLc1M4HQ/q0iTcHHdvg+t+m3l7z9wwN8KtvKtwD6EnTw==", "dev": true, "requires": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-ast": "^0.70.0", - "@swagger-api/apidom-core": "^0.70.1", - "@swagger-api/apidom-ns-openapi-3-0": "^0.70.3", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", - "ramda-adjunct": "^4.0.0", + "@swagger-api/apidom-ast": "^0.86.0", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-ns-openapi-3-0": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", + "ramda-adjunct": "^4.1.1", "stampit": "^4.3.2" } }, "@swagger-api/apidom-parser-adapter-api-design-systems-json": { - "version": "0.70.4", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-api-design-systems-json/-/apidom-parser-adapter-api-design-systems-json-0.70.4.tgz", - "integrity": "sha512-xo7mr8/UgVpqe1AMUbNPRnXM3CDgvIXktz7y1abAbRjJ/qhBWsRHBeqf8KQBJjKfJc58i+yMnDXC8hapZplHeA==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-api-design-systems-json/-/apidom-parser-adapter-api-design-systems-json-0.86.0.tgz", + "integrity": "sha512-6+dhrsqAm56Vr6rhmheOPQZxQd1Zw9HXD9+JC83sMJUOstH0q73ApdKbwU8ksGYPxIeANUdjQ3oIz0Nj2tBMvw==", "dev": true, "optional": true, "requires": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-core": "^0.70.1", - "@swagger-api/apidom-ns-api-design-systems": "^0.70.3", - "@swagger-api/apidom-parser-adapter-json": "^0.70.4", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-ns-api-design-systems": "^0.86.0", + "@swagger-api/apidom-parser-adapter-json": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", "ramda-adjunct": "^4.0.0" } }, "@swagger-api/apidom-parser-adapter-api-design-systems-yaml": { - "version": "0.70.3", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-api-design-systems-yaml/-/apidom-parser-adapter-api-design-systems-yaml-0.70.3.tgz", - "integrity": "sha512-DJJjwv3KuL5hnMfQgpD7S2tbwxalyTsjkaFF6uxcIMJRr9hdKKNDkvJkel/r56FE2pp9WCBhP6Wm1JK6PGI3Pg==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-api-design-systems-yaml/-/apidom-parser-adapter-api-design-systems-yaml-0.86.0.tgz", + "integrity": "sha512-mQTKwIorT1VSa75nsclSUCp5EaovWkuaewZfrOGDUWFhY+++vcnScBdcJv7TBtO2ttTge4UOSu9qgpoSrztXZg==", "dev": true, "optional": true, "requires": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-core": "^0.70.1", - "@swagger-api/apidom-ns-api-design-systems": "^0.70.3", - "@swagger-api/apidom-parser-adapter-yaml-1-2": "^0.70.3", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-ns-api-design-systems": "^0.86.0", + "@swagger-api/apidom-parser-adapter-yaml-1-2": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", "ramda-adjunct": "^4.0.0" } }, "@swagger-api/apidom-parser-adapter-asyncapi-json-2": { - "version": "0.70.4", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-asyncapi-json-2/-/apidom-parser-adapter-asyncapi-json-2-0.70.4.tgz", - "integrity": "sha512-eaqQ/93xxVFM+138AL2z5jODyXJlpf5RNRXrE/HaG3PWLB+a7CN9eCy+czP1E6VgC0Wia1kuYf/Bx9aIgNQ6sQ==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-asyncapi-json-2/-/apidom-parser-adapter-asyncapi-json-2-0.86.0.tgz", + "integrity": "sha512-jNtvUJoiI++P3FAQf7X03se+Qx0sUhA5bBSINGMuhjPcSyOAWj9oiPjpB9SYltaqvEb9ek7iPObrt/dx9zj6Ag==", "dev": true, "optional": true, "requires": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-core": "^0.70.1", - "@swagger-api/apidom-ns-asyncapi-2": "^0.70.3", - "@swagger-api/apidom-parser-adapter-json": "^0.70.4", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-ns-asyncapi-2": "^0.86.0", + "@swagger-api/apidom-parser-adapter-json": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", "ramda-adjunct": "^4.0.0" } }, "@swagger-api/apidom-parser-adapter-asyncapi-yaml-2": { - "version": "0.70.3", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-asyncapi-yaml-2/-/apidom-parser-adapter-asyncapi-yaml-2-0.70.3.tgz", - "integrity": "sha512-UQxxPoxWcgp9laW8kOdzd7991/wgYJ2b7lb3XBhmVydRbPM1AD5L3G/zM5ItVBQZIZ398kDX/mfGTKAJr5pJrA==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-asyncapi-yaml-2/-/apidom-parser-adapter-asyncapi-yaml-2-0.86.0.tgz", + "integrity": "sha512-A0GTtD6gYPEA3tQQ1A6yw+SceKdDEea3slISVx5bpeDREk8wAl/886EGJICcgFrPO57dUD3HoLqmPn/uUl26mA==", "dev": true, "optional": true, "requires": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-core": "^0.70.1", - "@swagger-api/apidom-ns-asyncapi-2": "^0.70.3", - "@swagger-api/apidom-parser-adapter-yaml-1-2": "^0.70.3", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-ns-asyncapi-2": "^0.86.0", + "@swagger-api/apidom-parser-adapter-yaml-1-2": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", "ramda-adjunct": "^4.0.0" } }, "@swagger-api/apidom-parser-adapter-json": { - "version": "0.70.4", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-json/-/apidom-parser-adapter-json-0.70.4.tgz", - "integrity": "sha512-Clr4VHocpdDi/bQ4ZSuhN3Ak3g8oLjKtCqjQO34YDrFrKPD2twznALBdVjIHa9D+g5YJYkAQ+5wOrK5uvo/5lQ==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-json/-/apidom-parser-adapter-json-0.86.0.tgz", + "integrity": "sha512-bh5fndjX7JwgkZ0z3tEDknCEFysAs2oSoYiHN8iSLl/MKXBE001tJeJrOdnP9BnrPQSyXAbdT1c1dG3oTnxUgw==", "dev": true, "optional": true, "requires": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-ast": "^0.70.0", - "@swagger-api/apidom-core": "^0.70.1", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", - "ramda-adjunct": "^4.0.0", + "@swagger-api/apidom-ast": "^0.86.0", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-error": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", + "ramda-adjunct": "^4.1.1", "stampit": "^4.3.2", "tree-sitter": "=0.20.4", - "tree-sitter-json": "=0.20.0", + "tree-sitter-json": "=0.20.1", "web-tree-sitter": "=0.20.3" } }, + "@swagger-api/apidom-parser-adapter-openapi-json-2": { + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-openapi-json-2/-/apidom-parser-adapter-openapi-json-2-0.86.0.tgz", + "integrity": "sha512-BULmOvcLnf4QpZ2QFOCrpZnNKLf8sZfzpDPXJm6QwyoZQqAMmeHmEzAY9dE9RrCwNx9lVjumAEoyNf7Hy4qrWw==", + "dev": true, + "optional": true, + "requires": { + "@babel/runtime-corejs3": "^7.20.7", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-ns-openapi-2": "^0.86.0", + "@swagger-api/apidom-parser-adapter-json": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", + "ramda-adjunct": "^4.0.0" + } + }, "@swagger-api/apidom-parser-adapter-openapi-json-3-0": { - "version": "0.70.4", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-openapi-json-3-0/-/apidom-parser-adapter-openapi-json-3-0-0.70.4.tgz", - "integrity": "sha512-VfSR/TkB7rN5qAm6nGBrJzGuwhvFH03wojPVtjQEUUlDfmiFK0Snhdzq/65qK8WxSYidIBVgWHEreYif28AhBQ==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-openapi-json-3-0/-/apidom-parser-adapter-openapi-json-3-0-0.86.0.tgz", + "integrity": "sha512-zo/fNkWe9A2AL+cqzt+Z3OiTE5oLEWpLY+Y0tuLWh8YME0ZY7BmR2HYNdWquIhOy5b279QeD19Kv15aY24obxA==", "dev": true, "optional": true, "requires": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-core": "^0.70.1", - "@swagger-api/apidom-ns-openapi-3-0": "^0.70.3", - "@swagger-api/apidom-parser-adapter-json": "^0.70.4", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-ns-openapi-3-0": "^0.86.0", + "@swagger-api/apidom-parser-adapter-json": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", "ramda-adjunct": "^4.0.0" } }, "@swagger-api/apidom-parser-adapter-openapi-json-3-1": { - "version": "0.70.4", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-openapi-json-3-1/-/apidom-parser-adapter-openapi-json-3-1-0.70.4.tgz", - "integrity": "sha512-XB5owOAI7YtRi7lD1R5vI3zFn7EbjKn/FkSMjC0m4CfienX9f9EkromSWE5i5dQGpCfkpHp/iOJ00xODly1nUQ==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-openapi-json-3-1/-/apidom-parser-adapter-openapi-json-3-1-0.86.0.tgz", + "integrity": "sha512-NkFrAyr27Ubwkacv2YolxSN/NciKqJyIEXtAg4SfP/ejTy1Gl+PcT5pZSjQ3doRx1BPp3CF+a2Hsi5HJI6wEzA==", + "dev": true, + "optional": true, + "requires": { + "@babel/runtime-corejs3": "^7.20.7", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-ns-openapi-3-1": "^0.86.0", + "@swagger-api/apidom-parser-adapter-json": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", + "ramda-adjunct": "^4.0.0" + } + }, + "@swagger-api/apidom-parser-adapter-openapi-yaml-2": { + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-openapi-yaml-2/-/apidom-parser-adapter-openapi-yaml-2-0.86.0.tgz", + "integrity": "sha512-flAGqElCSrVN9XXdA00NWmctOPuqzc+8r15omRvVFZ+Qfzca+FWpyFvzUFr92TKX87XUBALvnu7VA5+g1PftGg==", "dev": true, "optional": true, "requires": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-core": "^0.70.1", - "@swagger-api/apidom-ns-openapi-3-1": "^0.70.3", - "@swagger-api/apidom-parser-adapter-json": "^0.70.4", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-ns-openapi-2": "^0.86.0", + "@swagger-api/apidom-parser-adapter-yaml-1-2": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", "ramda-adjunct": "^4.0.0" } }, "@swagger-api/apidom-parser-adapter-openapi-yaml-3-0": { - "version": "0.70.3", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-openapi-yaml-3-0/-/apidom-parser-adapter-openapi-yaml-3-0-0.70.3.tgz", - "integrity": "sha512-4vkN+jy4HKYQJc0M7sVD4pqT5n2a7nIwswtHujdMVR2YXXY8RTzBg4DO28qVUoAWUsE0C8Tp+hopDPeCtpYduA==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-openapi-yaml-3-0/-/apidom-parser-adapter-openapi-yaml-3-0-0.86.0.tgz", + "integrity": "sha512-TT93vbdj6GWhNHU4cTih/93kWJ5l6ZeEyaEQWyd+MhDxgoy6/rCOeblwyMQCgaXL6AmG5qSKTu48Y+GTCqURng==", "dev": true, "optional": true, "requires": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-core": "^0.70.1", - "@swagger-api/apidom-ns-openapi-3-0": "^0.70.3", - "@swagger-api/apidom-parser-adapter-yaml-1-2": "^0.70.3", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-ns-openapi-3-0": "^0.86.0", + "@swagger-api/apidom-parser-adapter-yaml-1-2": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", "ramda-adjunct": "^4.0.0" } }, "@swagger-api/apidom-parser-adapter-openapi-yaml-3-1": { - "version": "0.70.3", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-openapi-yaml-3-1/-/apidom-parser-adapter-openapi-yaml-3-1-0.70.3.tgz", - "integrity": "sha512-4xoyOYrG3YBdr/mjNLzDAIdOxFSYR0gh3lRx3/IVkwmhp0rSVrGdD2hFtgoVrj2MiKR60SUbzcnCXJ4MLVmUbQ==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-openapi-yaml-3-1/-/apidom-parser-adapter-openapi-yaml-3-1-0.86.0.tgz", + "integrity": "sha512-BPNzUdbQbd29YrotIhg/pPZkVXZ8PZOEy9Wy/Aornv9gFZwhzzWE9uOo/HGBDXJqqq5Va1RJkxuYXjIX7BVKBw==", "dev": true, "optional": true, "requires": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-core": "^0.70.1", - "@swagger-api/apidom-ns-openapi-3-1": "^0.70.3", - "@swagger-api/apidom-parser-adapter-yaml-1-2": "^0.70.3", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-ns-openapi-3-1": "^0.86.0", + "@swagger-api/apidom-parser-adapter-yaml-1-2": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", "ramda-adjunct": "^4.0.0" } }, "@swagger-api/apidom-parser-adapter-yaml-1-2": { - "version": "0.70.3", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-yaml-1-2/-/apidom-parser-adapter-yaml-1-2-0.70.3.tgz", - "integrity": "sha512-e+lGfUfduduIT+nyJtxDFXLqoulvz2sWB9vt+4gmq/SMc0uvFBEcffAeBUOPw4J3d4pMux2eRRzA29YF7/lXng==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-yaml-1-2/-/apidom-parser-adapter-yaml-1-2-0.86.0.tgz", + "integrity": "sha512-wtvEJFk4uxQbDQH23mjVIeOJJ6IEpiorBNfW/6foPfJbUU7zDE/a0VTEo/wKPxumLe9eLNHuTZSSOvy2y0BmTw==", "dev": true, "optional": true, "requires": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-ast": "^0.70.0", - "@swagger-api/apidom-core": "^0.70.1", - "@types/ramda": "~0.29.1", - "ramda": "~0.29.0", - "ramda-adjunct": "^4.0.0", + "@swagger-api/apidom-ast": "^0.86.0", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-error": "^0.86.0", + "@types/ramda": "~0.29.6", + "ramda": "~0.29.1", + "ramda-adjunct": "^4.1.1", "stampit": "^4.3.2", "tree-sitter": "=0.20.4", "tree-sitter-yaml": "=0.5.0", @@ -13090,40 +13457,44 @@ } }, "@swagger-api/apidom-reference": { - "version": "0.70.4", - "resolved": "https://registry.npmjs.org/@swagger-api/apidom-reference/-/apidom-reference-0.70.4.tgz", - "integrity": "sha512-+jrDtbJc7zVqHumyDu1rGXZD3BwrD8qu+FaC7+9iZThU2GAEOs4VvTcCkPQLfVtpIrv1fPvNkzean27MJZxpkw==", + "version": "0.86.0", + "resolved": "https://registry.npmjs.org/@swagger-api/apidom-reference/-/apidom-reference-0.86.0.tgz", + "integrity": "sha512-YjlocO/JkuK1SwGs8ke7AAHecR5w2GyKjWRAGZ06+2ZO8cqV3/0uuuL+laRbYchrFWERqJCUEQre0qJ3BPY7xA==", "dev": true, "requires": { "@babel/runtime-corejs3": "^7.20.7", - "@swagger-api/apidom-core": "^0.70.1", - "@swagger-api/apidom-json-pointer": "^0.70.1", - "@swagger-api/apidom-ns-asyncapi-2": "^0.70.3", - "@swagger-api/apidom-ns-openapi-3-0": "^0.70.3", - "@swagger-api/apidom-ns-openapi-3-1": "^0.70.3", - "@swagger-api/apidom-parser-adapter-api-design-systems-json": "^0.70.4", - "@swagger-api/apidom-parser-adapter-api-design-systems-yaml": "^0.70.3", - "@swagger-api/apidom-parser-adapter-asyncapi-json-2": "^0.70.4", - "@swagger-api/apidom-parser-adapter-asyncapi-yaml-2": "^0.70.3", - "@swagger-api/apidom-parser-adapter-json": "^0.70.4", - "@swagger-api/apidom-parser-adapter-openapi-json-3-0": "^0.70.4", - "@swagger-api/apidom-parser-adapter-openapi-json-3-1": "^0.70.4", - "@swagger-api/apidom-parser-adapter-openapi-yaml-3-0": "^0.70.3", - "@swagger-api/apidom-parser-adapter-openapi-yaml-3-1": "^0.70.3", - "@swagger-api/apidom-parser-adapter-yaml-1-2": "^0.70.3", - "@types/ramda": "~0.29.1", + "@swagger-api/apidom-core": "^0.86.0", + "@swagger-api/apidom-error": "^0.86.0", + "@swagger-api/apidom-json-pointer": "^0.86.0", + "@swagger-api/apidom-ns-asyncapi-2": "^0.86.0", + "@swagger-api/apidom-ns-openapi-2": "^0.86.0", + "@swagger-api/apidom-ns-openapi-3-0": "^0.86.0", + "@swagger-api/apidom-ns-openapi-3-1": "^0.86.0", + "@swagger-api/apidom-parser-adapter-api-design-systems-json": "^0.86.0", + "@swagger-api/apidom-parser-adapter-api-design-systems-yaml": "^0.86.0", + "@swagger-api/apidom-parser-adapter-asyncapi-json-2": "^0.86.0", + "@swagger-api/apidom-parser-adapter-asyncapi-yaml-2": "^0.86.0", + "@swagger-api/apidom-parser-adapter-json": "^0.86.0", + "@swagger-api/apidom-parser-adapter-openapi-json-2": "^0.86.0", + "@swagger-api/apidom-parser-adapter-openapi-json-3-0": "^0.86.0", + "@swagger-api/apidom-parser-adapter-openapi-json-3-1": "^0.86.0", + "@swagger-api/apidom-parser-adapter-openapi-yaml-2": "^0.86.0", + "@swagger-api/apidom-parser-adapter-openapi-yaml-3-0": "^0.86.0", + "@swagger-api/apidom-parser-adapter-openapi-yaml-3-1": "^0.86.0", + "@swagger-api/apidom-parser-adapter-yaml-1-2": "^0.86.0", + "@types/ramda": "~0.29.6", "axios": "^1.4.0", "minimatch": "^7.4.3", "process": "^0.11.10", - "ramda": "~0.29.0", - "ramda-adjunct": "^4.0.0", + "ramda": "~0.29.1", + "ramda-adjunct": "^4.1.1", "stampit": "^4.3.2" }, "dependencies": { "axios": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", - "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", + "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", "dev": true, "requires": { "follow-redirects": "^1.15.0", @@ -13140,12 +13511,6 @@ "balanced-match": "^1.0.0" } }, - "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "dev": true - }, "minimatch": { "version": "7.4.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", @@ -13164,31 +13529,31 @@ "dev": true }, "@types/babel__core": { - "version": "7.1.20", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.20.tgz", - "integrity": "sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" } }, "@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.7.tgz", + "integrity": "sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==", "dev": true, "requires": { "@babel/types": "^7.0.0" } }, "@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, "requires": { "@babel/parser": "^7.1.0", @@ -13196,18 +13561,18 @@ } }, "@types/babel__traverse": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", - "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz", + "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==", "dev": true, "requires": { - "@babel/types": "^7.3.0" + "@babel/types": "^7.20.7" } }, "@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", "dev": true, "requires": { "@types/connect": "*", @@ -13215,18 +13580,18 @@ } }, "@types/bonjour": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", - "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", "dev": true, "requires": { "@types/node": "*" } }, "@types/clean-css": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/@types/clean-css/-/clean-css-4.2.6.tgz", - "integrity": "sha512-Ze1tf+LnGPmG6hBFMi0B4TEB0mhF7EiMM5oyjLDNPE9hxrPU0W+5+bHvO+eFPA+bt0iC1zkQMoU/iGdRVjcRbw==", + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/@types/clean-css/-/clean-css-4.2.11.tgz", + "integrity": "sha512-Y8n81lQVTAfP2TOdtJJEsCoYl1AnOkqDqMvXb9/7pfgZZ7r8YrEyurrAvAoAjHOGXKRybay+5CsExqIH6liccw==", "dev": true, "requires": { "@types/node": "*", @@ -13234,18 +13599,18 @@ } }, "@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", "dev": true, "requires": { "@types/node": "*" } }, "@types/connect-history-api-fallback": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", - "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", "dev": true, "requires": { "@types/express-serve-static-core": "*", @@ -13253,9 +13618,9 @@ } }, "@types/eslint": { - "version": "8.4.10", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", - "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", + "version": "8.44.8", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.8.tgz", + "integrity": "sha512-4K8GavROwhrYl2QXDXm0Rv9epkA8GBFu0EI+XrrnnuCl7u8CWBRusX7fXJfanhZTDWSAL24gDI/UqXyUM0Injw==", "dev": true, "requires": { "@types/estree": "*", @@ -13263,9 +13628,9 @@ } }, "@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", "dev": true, "requires": { "@types/eslint": "*", @@ -13273,32 +13638,33 @@ } }, "@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", "dev": true }, "@types/express": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.15.tgz", - "integrity": "sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", "dev": true, "requires": { "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.31", + "@types/express-serve-static-core": "^4.17.33", "@types/qs": "*", "@types/serve-static": "*" } }, "@types/express-serve-static-core": { - "version": "4.17.32", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.32.tgz", - "integrity": "sha512-aI5h/VOkxOF2Z1saPy0Zsxs5avets/iaiAJYznQFm5By/pamU31xWKL//epiF4OfUA2qTOc9PV6tCUjhO8wlZA==", + "version": "4.17.41", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz", + "integrity": "sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==", "dev": true, "requires": { "@types/node": "*", "@types/qs": "*", - "@types/range-parser": "*" + "@types/range-parser": "*", + "@types/send": "*" } }, "@types/glob": { @@ -13312,64 +13678,70 @@ } }, "@types/hast": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.5.tgz", - "integrity": "sha512-SvQi0L/lNpThgPoleH53cdjB3y9zpLlVjRbqB3rH8hx1jiRSBGAhyjV3H+URFjNVRqt2EdYNrbZE5IsGlNfpRg==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.8.tgz", + "integrity": "sha512-aMIqAlFd2wTIDZuvLbhUT+TGvMxrNC8ECUIVtH6xxy0sQLs3iu6NO8Kp/VT5je7i5ufnebXzdV1dNDMnvaH6IQ==", "dev": true, "requires": { "@types/unist": "^2" } }, "@types/hoist-non-react-statics": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", - "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz", + "integrity": "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==", "dev": true, "requires": { "@types/react": "*", "hoist-non-react-statics": "^3.3.0" } }, + "@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "dev": true + }, "@types/http-proxy": { - "version": "1.17.9", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", - "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", + "version": "1.17.14", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", + "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", "dev": true, "requires": { "@types/node": "*" } }, "@types/imagemin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@types/imagemin/-/imagemin-8.0.0.tgz", - "integrity": "sha512-B9X2CUeDv/uUeY9CqkzSTfmsLkeJP6PkmXlh4lODBbf9SwpmNuLS30WzUOi863dgsjY3zt3gY5q2F+UdifRi1A==", + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/@types/imagemin/-/imagemin-8.0.5.tgz", + "integrity": "sha512-tah3dm+5sG+fEDAz6CrQ5evuEaPX9K6DF3E5a01MPOKhA2oGBoC+oA5EJzSugB905sN4DE19EDzldT2Cld2g6Q==", "dev": true, "requires": { "@types/node": "*" } }, "@types/imagemin-gifsicle": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@types/imagemin-gifsicle/-/imagemin-gifsicle-7.0.1.tgz", - "integrity": "sha512-kUz6sUh0P95JOS0RGEaaemWUrASuw+dLsWIveK2UZJx74id/B9epgblMkCk/r5MjUWbZ83wFvacG5Rb/f97gyA==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/@types/imagemin-gifsicle/-/imagemin-gifsicle-7.0.4.tgz", + "integrity": "sha512-ZghMBd/Jgqg5utTJNPmvf6DkuHzMhscJ8vgf/7MUGCpO+G+cLrhYltL+5d+h3A1B4W73S2SrmJZ1jS5LACpX+A==", "dev": true, "requires": { "@types/imagemin": "*" } }, "@types/imagemin-mozjpeg": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@types/imagemin-mozjpeg/-/imagemin-mozjpeg-8.0.1.tgz", - "integrity": "sha512-kMQWEoKxxhlnH4POI3qfW9DjXlQfi80ux3l2b3j5R3eudSCoUIzKQLkfMjNJ6eMYnMWBcB+rfQOWqIzdIwFGKw==", + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/@types/imagemin-mozjpeg/-/imagemin-mozjpeg-8.0.4.tgz", + "integrity": "sha512-ZCAxV8SYJB8ehwHpnbRpHjg5Wc4HcyuAMiDhXbkgC7gujDoOTyHO3dhDkUtZ1oK1DLBRZapqG9etdLVhUml7yQ==", "dev": true, "requires": { "@types/imagemin": "*" } }, "@types/imagemin-optipng": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/@types/imagemin-optipng/-/imagemin-optipng-5.2.1.tgz", - "integrity": "sha512-XCM/3q+HUL7v4zOqMI+dJ5dTxT+MUukY9KU49DSnYb/4yWtSMHJyADP+WHSMVzTR63J2ZvfUOzSilzBNEQW78g==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/@types/imagemin-optipng/-/imagemin-optipng-5.2.4.tgz", + "integrity": "sha512-mvKnDMC8eCYZetAQudjs1DbgpR84WhsTx1wgvdiXnpuUEti3oJ+MaMYBRWPY0JlQ4+y4TXKOfa7+LOuT8daegQ==", "dev": true, "requires": { "@types/imagemin": "*" @@ -13386,15 +13758,15 @@ } }, "@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true }, "@types/mime": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", - "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", "dev": true }, "@types/minimatch": { @@ -13404,48 +13776,60 @@ "dev": true }, "@types/node": { - "version": "18.11.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", - "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==", - "dev": true + "version": "20.10.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.3.tgz", + "integrity": "sha512-XJavIpZqiXID5Yxnxv3RUDKTN5b81ddNC3ecsA0SoFXz/QU8OGBwZGMomiq0zw+uuqbL/krztv/DINAQ/EV4gg==", + "dev": true, + "requires": { + "undici-types": "~5.26.4" + } + }, + "@types/node-forge": { + "version": "1.3.10", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.10.tgz", + "integrity": "sha512-y6PJDYN4xYBxwd22l+OVH35N+1fCYWiuC3aiP2SlXVE6Lo7SS+rSx9r89hLxrP4pn6n1lBGhHJ12pj3F3Mpttw==", + "dev": true, + "requires": { + "@types/node": "*" + } }, "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", "dev": true }, "@types/prop-types": { - "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", + "version": "15.7.11", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", + "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==", "dev": true }, "@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "version": "6.9.10", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.10.tgz", + "integrity": "sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==", "dev": true }, "@types/ramda": { - "version": "0.29.3", - "resolved": "https://registry.npmjs.org/@types/ramda/-/ramda-0.29.3.tgz", - "integrity": "sha512-Yh/RHkjN0ru6LVhSQtTkCRo6HXkfL9trot/2elzM/yXLJmbLm2v6kJc8yftTnwv1zvUob6TEtqI2cYjdqG3U0Q==", + "version": "0.29.9", + "resolved": "https://registry.npmjs.org/@types/ramda/-/ramda-0.29.9.tgz", + "integrity": "sha512-X3yEG6tQCWBcUAql+RPC/O1Hm9BSU+MXu2wJnCETuAgUlrEDwTA1kIOdEEE4YXDtf0zfQLHa9CCE7WYp9kqPIQ==", "dev": true, "requires": { - "types-ramda": "^0.29.4" + "types-ramda": "^0.29.6" } }, "@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", "dev": true }, "@types/react": { - "version": "18.2.14", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.14.tgz", - "integrity": "sha512-A0zjq+QN/O0Kpe30hA1GidzyFjatVvrpIvWLxD+xv67Vt91TWWgco9IvrJBkeyHm1trGaFS/FSGqPlhyeZRm0g==", + "version": "18.2.42", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.42.tgz", + "integrity": "sha512-c1zEr96MjakLYus/wPnuWDo1/zErfdU9rNsIGmE+NV71nx88FG9Ttgo5dqorXTu/LImX2f63WBP986gJkMPNbA==", "dev": true, "requires": { "@types/prop-types": "*", @@ -13460,34 +13844,45 @@ "dev": true }, "@types/scheduler": { - "version": "0.16.3", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", - "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==", + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==", "dev": true }, + "@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dev": true, + "requires": { + "@types/mime": "^1", + "@types/node": "*" + } + }, "@types/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", "dev": true, "requires": { "@types/express": "*" } }, "@types/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", + "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", "dev": true, "requires": { + "@types/http-errors": "*", "@types/mime": "*", "@types/node": "*" } }, "@types/sockjs": { - "version": "0.3.33", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", - "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", "dev": true, "requires": { "@types/node": "*" @@ -13500,9 +13895,9 @@ "dev": true }, "@types/unist": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.7.tgz", - "integrity": "sha512-cputDpIbFgLUaGQn6Vqg3/YsJwxUwHLO13v3i5ouxT4lat0khip9AEWxtERujXV9wxIB1EyF97BSJFt6vpdI8g==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==", "dev": true }, "@types/use-sync-external-store": { @@ -13512,18 +13907,18 @@ "dev": true }, "@types/ws": { - "version": "8.5.4", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", - "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", + "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", "dev": true, "requires": { "@types/node": "*" } }, "@vue/compiler-sfc": { - "version": "2.7.14", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.14.tgz", - "integrity": "sha512-aNmNHyLPsw+sVvlQFQ2/8sjNuLtK54TC6cuKnVzAY93ks4ZBrvwQSnkkIh7bsbNhum5hJBS00wSDipQ937f5DA==", + "version": "2.7.15", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.15.tgz", + "integrity": "sha512-FCvIEevPmgCgqFBH7wD+3B97y7u7oj/Wr69zADBf403Tui377bThTjBvekaZvlRr4IwUAu3M6hYZeULZFJbdYg==", "dev": true, "requires": { "@babel/parser": "^7.18.4", @@ -13532,148 +13927,148 @@ } }, "@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", "dev": true, "requires": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" } }, "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", "dev": true }, "@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", "dev": true }, "@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", "dev": true }, "@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", "dev": true, "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", "@xtuc/long": "4.2.2" } }, "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", "dev": true }, "@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" } }, "@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", "dev": true, "requires": { "@xtuc/ieee754": "^1.2.0" } }, "@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", "dev": true, "requires": { "@xtuc/long": "4.2.2" } }, "@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", "dev": true }, "@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" } }, "@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" } }, "@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" } }, "@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" } }, "@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/ast": "1.11.6", "@xtuc/long": "4.2.2" } }, @@ -13726,29 +14121,18 @@ "requires": { "mime-types": "~2.1.34", "negotiator": "0.6.3" - }, - "dependencies": { - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "requires": { - "mime-db": "1.52.0" - } - } } }, "acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", "dev": true }, "acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", "dev": true, "requires": {} }, @@ -13823,12 +14207,12 @@ "dev": true }, "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" } }, "anymatch": { @@ -13880,28 +14264,28 @@ } }, "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.1.tgz", + "integrity": "sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==", "dev": true, "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" + "object.assign": "^4.1.4", + "util": "^0.10.4" }, "dependencies": { "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", "dev": true }, "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ==", + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", "dev": true, "requires": { - "inherits": "2.0.1" + "inherits": "2.0.3" } } } @@ -13928,14 +14312,14 @@ } }, "autoprefixer": { - "version": "10.4.13", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", - "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", + "version": "10.4.16", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", + "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", "dev": true, "requires": { - "browserslist": "^4.21.4", - "caniuse-lite": "^1.0.30001426", - "fraction.js": "^4.2.0", + "browserslist": "^4.21.10", + "caniuse-lite": "^1.0.30001538", + "fraction.js": "^4.3.6", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.2.0" @@ -13948,14 +14332,6 @@ "dev": true, "requires": { "follow-redirects": "^1.14.7" - }, - "dependencies": { - "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "dev": true - } } }, "babel-loader": { @@ -13971,41 +14347,41 @@ } }, "babel-plugin-polyfill-corejs2": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", - "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", + "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", "dev": true, "requires": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.3", - "semver": "^6.1.1" + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.3", + "semver": "^6.3.1" }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true } } }, "babel-plugin-polyfill-corejs3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", - "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz", + "integrity": "sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==", "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.3", - "core-js-compat": "^3.25.1" + "@babel/helper-define-polyfill-provider": "^0.4.3", + "core-js-compat": "^3.33.1" } }, "babel-plugin-polyfill-regenerator": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", - "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", + "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.3" + "@babel/helper-define-polyfill-provider": "^0.4.3" } }, "balanced-match": { @@ -14061,13 +14437,6 @@ "ieee754": "^1.1.13" } }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "optional": true - }, "readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", @@ -14123,14 +14492,11 @@ "ms": "2.0.0" } }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true }, "qs": { "version": "6.11.0", @@ -14144,9 +14510,9 @@ } }, "bonjour-service": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.14.tgz", - "integrity": "sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", + "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", "dev": true, "requires": { "array-flatten": "^2.1.2", @@ -14234,26 +14600,26 @@ } }, "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.2.tgz", + "integrity": "sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==", "dev": true, "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", + "bn.js": "^5.2.1", + "browserify-rsa": "^4.1.0", "create-hash": "^1.2.0", "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", + "elliptic": "^6.5.4", "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" + "parse-asn1": "^5.1.6", + "readable-stream": "^3.6.2", + "safe-buffer": "^5.2.1" }, "dependencies": { "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "requires": { "inherits": "^2.0.3", @@ -14273,15 +14639,15 @@ } }, "browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" } }, "buffer": { @@ -14320,13 +14686,14 @@ "dev": true }, "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", "dev": true, "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" } }, "callsites": { @@ -14358,9 +14725,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001442", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001442.tgz", - "integrity": "sha512-239m03Pqy0hwxYPYR5JwOIxRJfLTWtle9FV8zosfV5pHg+/51uD4nxcUlM8+mWWGfwKtt8lJNHnD3cWw9VZ6ow==", + "version": "1.0.30001566", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001566.tgz", + "integrity": "sha512-ggIhCsTxmITBAMmK8yZjEhCO5/47jKXPu6Dha/wuCS4JePVL+3uiDEBuhu2aIoT+bqTOR8L76Ip1ARL9xYsEJA==", "dev": true }, "chalk": { @@ -14371,47 +14738,6 @@ "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } } }, "character-entities": { @@ -14490,9 +14816,9 @@ "dev": true }, "clean-css": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.1.tgz", - "integrity": "sha512-lCr8OHhiWCTw4v8POJovCoh4T7I9U11yVsPjMWWnnMmp9ZowCxyad1Pathle/9HjaDp+fdQKjO9fQydE6RHTZg==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", "dev": true, "requires": { "source-map": "~0.6.0" @@ -14528,27 +14854,38 @@ "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", "shallow-clone": "^3.0.0" + }, + "dependencies": { + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + } } }, "collect.js": { - "version": "4.34.3", - "resolved": "https://registry.npmjs.org/collect.js/-/collect.js-4.34.3.tgz", - "integrity": "sha512-aFr67xDazPwthsGm729mnClgNuh15JEagU6McKBKqxuHOkWL7vMFzGbhsXDdPZ+H6ia5QKIMGYuGOMENBHnVpg==", + "version": "4.36.1", + "resolved": "https://registry.npmjs.org/collect.js/-/collect.js-4.36.1.tgz", + "integrity": "sha512-jd97xWPKgHn6uvK31V6zcyPd40lUJd7gpYxbN2VOVxGWO4tyvS9Li4EpsFjXepGTo2tYcOTC4a8YsbQXMJ4XUw==", "dev": true }, "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "~1.1.4" } }, "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "colord": { @@ -14558,9 +14895,9 @@ "dev": true }, "colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", "dev": true }, "combined-stream": { @@ -14623,6 +14960,12 @@ "ms": "2.0.0" } }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -14688,15 +15031,15 @@ } }, "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "dev": true }, "convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, "cookie": { @@ -14721,18 +15064,18 @@ } }, "core-js-compat": { - "version": "3.27.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.27.1.tgz", - "integrity": "sha512-Dg91JFeCDA17FKnneN7oCMz4BkQ4TcffkgHP4OWwp9yx3pi7ubqMDXXSacfNak1PQqjc95skyt+YBLHQJnkJwA==", + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.34.0.tgz", + "integrity": "sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA==", "dev": true, "requires": { - "browserslist": "^4.21.4" + "browserslist": "^4.22.2" } }, "core-js-pure": { - "version": "3.31.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.31.1.tgz", - "integrity": "sha512-w+C62kvWti0EPs4KPMCMVv9DriHSXfQOCQ94bGGBiEW5rrbtt/Rz8n5Krhfw9cpFyzXBjf3DB3QnPdEzGDY4Fw==", + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.34.0.tgz", + "integrity": "sha512-pmhivkYXkymswFfbXsANmBAewXx86UBfmagP+w0wkK06kLsLlTK5oQmsURPivzMkIBQiYq2cjamcZExIwlFQIg==", "dev": true }, "core-util-is": { @@ -14799,24 +15142,25 @@ "sha.js": "^2.4.8" } }, - "cross-fetch": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", - "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", - "dev": true, - "requires": { - "node-fetch": "^2.6.12" - } - }, "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + } } }, "crypt": { @@ -14845,9 +15189,9 @@ } }, "css-declaration-sorter": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz", - "integrity": "sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", + "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", "dev": true, "requires": {} }, @@ -14870,9 +15214,9 @@ }, "dependencies": { "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "requires": { "@types/json-schema": "^7.0.8", @@ -14893,6 +15237,17 @@ "domhandler": "^4.3.1", "domutils": "^2.8.0", "nth-check": "^2.0.1" + }, + "dependencies": { + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + } + } } }, "css-tree": { @@ -14924,33 +15279,33 @@ "dev": true }, "cssnano": { - "version": "5.1.14", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.14.tgz", - "integrity": "sha512-Oou7ihiTocbKqi0J1bB+TRJIQX5RMR3JghA8hcWSw9mjBLQ5Y3RWqEDoYG3sRNlAbCIXpqMoZGbq5KDR3vdzgw==", + "version": "5.1.15", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", + "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", "dev": true, "requires": { - "cssnano-preset-default": "^5.2.13", + "cssnano-preset-default": "^5.2.14", "lilconfig": "^2.0.3", "yaml": "^1.10.2" } }, "cssnano-preset-default": { - "version": "5.2.13", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.13.tgz", - "integrity": "sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ==", + "version": "5.2.14", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", + "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", "dev": true, "requires": { "css-declaration-sorter": "^6.3.1", "cssnano-utils": "^3.1.0", "postcss-calc": "^8.2.3", - "postcss-colormin": "^5.3.0", + "postcss-colormin": "^5.3.1", "postcss-convert-values": "^5.1.3", "postcss-discard-comments": "^5.1.2", "postcss-discard-duplicates": "^5.1.0", "postcss-discard-empty": "^5.1.1", "postcss-discard-overridden": "^5.1.0", "postcss-merge-longhand": "^5.1.7", - "postcss-merge-rules": "^5.1.3", + "postcss-merge-rules": "^5.1.4", "postcss-minify-font-values": "^5.1.0", "postcss-minify-gradients": "^5.1.1", "postcss-minify-params": "^5.1.4", @@ -14965,7 +15320,7 @@ "postcss-normalize-url": "^5.1.0", "postcss-normalize-whitespace": "^5.1.1", "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.1", + "postcss-reduce-initial": "^5.1.2", "postcss-reduce-transforms": "^5.1.0", "postcss-svgo": "^5.1.0", "postcss-unique-selectors": "^5.1.1" @@ -14994,12 +15349,12 @@ "dev": true }, "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "2.1.2" } }, "decompress-response": { @@ -15033,12 +15388,34 @@ "execa": "^5.0.0" } }, + "define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + } + }, "define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", "dev": true }, + "define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "requires": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -15052,9 +15429,9 @@ "dev": true }, "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", "dev": true, "requires": { "inherits": "^2.0.1", @@ -15068,9 +15445,9 @@ "dev": true }, "detect-libc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", - "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", "dev": true, "optional": true }, @@ -15115,9 +15492,9 @@ "dev": true }, "dns-packet": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", - "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", "dev": true, "requires": { "@leichtgewicht/ip-codec": "^2.0.1" @@ -15132,6 +15509,17 @@ "domelementtype": "^2.0.1", "domhandler": "^4.2.0", "entities": "^2.0.0" + }, + "dependencies": { + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + } + } } }, "domain-browser": { @@ -15147,12 +15535,12 @@ "dev": true }, "domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", + "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==", "dev": true, "requires": { - "domelementtype": "^2.2.0" + "domelementtype": "^2.0.1" } }, "dompurify": { @@ -15170,6 +15558,17 @@ "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", "domhandler": "^4.2.0" + }, + "dependencies": { + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + } + } } }, "dot-case": { @@ -15207,9 +15606,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "version": "1.4.605", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.605.tgz", + "integrity": "sha512-V52j+P5z6cdRqTjPR/bYNxx7ETCHIkm5VIGuyCy3CMrfSnbEpIlLnk5oHmZo7gYvDfh2TfHeanB6rawyQ23ktg==", "dev": true }, "elliptic": { @@ -15264,9 +15663,9 @@ } }, "enhanced-resolve": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", - "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", "dev": true, "requires": { "graceful-fs": "^4.2.4", @@ -15280,9 +15679,9 @@ "dev": true }, "envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz", + "integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==", "dev": true }, "error-ex": { @@ -15295,9 +15694,9 @@ } }, "es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", + "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", "dev": true }, "escalade": { @@ -15402,11 +15801,46 @@ "strip-final-newline": "^2.0.0" }, "dependencies": { - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } } } }, @@ -15462,12 +15896,6 @@ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "dev": true }, - "cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "dev": true - }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -15477,6 +15905,12 @@ "ms": "2.0.0" } }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, "qs": { "version": "6.11.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", @@ -15495,9 +15929,9 @@ "dev": true }, "fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -15563,9 +15997,9 @@ }, "dependencies": { "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "requires": { "@types/json-schema": "^7.0.8", @@ -15613,6 +16047,12 @@ "requires": { "ms": "2.0.0" } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true } } }, @@ -15646,14 +16086,17 @@ "micromatch": "^4.0.2" } }, + "flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true + }, "follow-redirects": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.1.tgz", - "integrity": "sha512-v9GI1hpaqq1ZZR6pBD1+kI7O24PhDvNGNodjS3MdcEqyrahCp8zbtpv+2B/krUnSmUH80lbAS7MrdeK5IylgKg==", - "dev": true, - "requires": { - "debug": "^3.1.0" - } + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", + "dev": true }, "form-data": { "version": "4.0.0", @@ -15666,28 +16109,12 @@ "mime-types": "^2.1.12" } }, - "form-data-encoder": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.9.0.tgz", - "integrity": "sha512-rahaRMkN8P8d/tgK/BLPX+WBVM27NbvdXBxqQujBtkDAIFspaRqN7Od7lfdGQA6KAD+f82fYCLBq1ipvcu8qLw==", - "dev": true - }, "format": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==", "dev": true }, - "formdata-node": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-4.4.1.tgz", - "integrity": "sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==", - "dev": true, - "requires": { - "node-domexception": "1.0.0", - "web-streams-polyfill": "4.0.0-beta.3" - } - }, "forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -15695,9 +16122,9 @@ "dev": true }, "fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", "dev": true }, "fresh": { @@ -15725,9 +16152,9 @@ } }, "fs-monkey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", - "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz", + "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==", "dev": true }, "fs.realpath": { @@ -15737,16 +16164,16 @@ "dev": true }, "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "optional": true }, "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true }, "gensync": { @@ -15762,14 +16189,15 @@ "dev": true }, "get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", "dev": true, "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" } }, "get-stream": { @@ -15836,6 +16264,15 @@ "slash": "^3.0.0" } }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, "govuk-frontend": { "version": "2.13.0", "resolved": "https://registry.npmjs.org/govuk-frontend/-/govuk-frontend-2.13.0.tgz", @@ -15843,9 +16280,9 @@ "dev": true }, "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, "growly": { @@ -15860,19 +16297,25 @@ "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "dev": true }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", "dev": true, "requires": { - "function-bind": "^1.1.1" + "get-intrinsic": "^1.2.2" } }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", "dev": true }, "has-symbols": { @@ -15893,9 +16336,9 @@ }, "dependencies": { "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "requires": { "inherits": "^2.0.3", @@ -15921,6 +16364,15 @@ "minimalistic-assert": "^1.0.1" } }, + "hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "requires": { + "function-bind": "^1.1.2" + } + }, "hast-util-parse-selector": { "version": "2.2.5", "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", @@ -15985,9 +16437,9 @@ } }, "html-entities": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", - "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", + "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==", "dev": true }, "html-loader": { @@ -16003,9 +16455,9 @@ }, "dependencies": { "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "requires": { "@types/json-schema": "^7.0.8", @@ -16076,17 +16528,6 @@ "domhandler": "^3.0.0", "domutils": "^2.0.0", "entities": "^2.0.0" - }, - "dependencies": { - "domhandler": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", - "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1" - } - } } }, "http-deceiver": { @@ -16150,6 +16591,15 @@ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, "icss-utils": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", @@ -16158,15 +16608,15 @@ "requires": {} }, "ieee754": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", - "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "dev": true }, "ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", "dev": true }, "imagemin": { @@ -16216,9 +16666,9 @@ } }, "immutable": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.1.tgz", - "integrity": "sha512-lj9cnmB/kVS0QHsJnYKD1uo3o39nrbKxszjnqS9Fr6NB7bZzW45U6WSGBPKXDL/CvDKqDNPA4r3DoDQ8GTxo2A==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz", + "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==", "dev": true }, "import-fresh": { @@ -16280,9 +16730,9 @@ } }, "ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", + "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", "dev": true }, "is-alphabetical": { @@ -16332,12 +16782,12 @@ } }, "is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, "requires": { - "has": "^1.0.3" + "hasown": "^2.0.0" } }, "is-decimal": { @@ -16392,13 +16842,16 @@ "dev": true }, "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true }, "is-wsl": { "version": "2.2.0", @@ -16438,12 +16891,6 @@ "supports-color": "^8.0.0" }, "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, "supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -16532,9 +16979,9 @@ } }, "klona": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", - "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", "dev": true }, "laravel-mix": { @@ -16593,20 +17040,22 @@ "webpack-notifier": "^1.14.1", "webpackbar": "^5.0.0-3", "yargs": "^17.2.1" - }, - "dependencies": { - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - } + } + }, + "launch-editor": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz", + "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", + "dev": true, + "requires": { + "picocolors": "^1.0.0", + "shell-quote": "^1.8.1" } }, "lilconfig": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", - "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", "dev": true }, "lines-and-columns": { @@ -16650,7 +17099,7 @@ "lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true }, "lodash.memoize": { @@ -16712,9 +17161,9 @@ }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true } } @@ -16754,12 +17203,12 @@ "dev": true }, "memfs": { - "version": "3.4.12", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.12.tgz", - "integrity": "sha512-BcjuQn6vfqP+k100e0E9m61Hyqa//Brp+I3f0OBmN0ATHlFA8vx3Lt8z57R3u2bPqe3WGDBC+nF72fTH7isyEw==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", "dev": true, "requires": { - "fs-monkey": "^1.0.3" + "fs-monkey": "^1.0.4" } }, "merge-descriptors": { @@ -16827,20 +17276,12 @@ "dev": true }, "mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, "requires": { - "mime-db": "~1.33.0" - }, - "dependencies": { - "mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", - "dev": true - } + "mime-db": "1.52.0" } }, "mimic-fn": { @@ -16868,9 +17309,9 @@ }, "dependencies": { "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "requires": { "@types/json-schema": "^7.0.8", @@ -16911,9 +17352,9 @@ } }, "minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true }, "mkdirp-classic": { @@ -16924,9 +17365,9 @@ "optional": true }, "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "multicast-dns": { @@ -16940,16 +17381,16 @@ } }, "nan": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", - "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", + "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==", "dev": true, "optional": true }, "nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "dev": true }, "napi-build-utils": { @@ -16988,28 +17429,35 @@ } }, "node-abi": { - "version": "3.45.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.45.0.tgz", - "integrity": "sha512-iwXuFrMAcFVi/ZoZiqq8BzAdsLw9kxDfTC0HMyjXfSL/6CSDAGD5UmR7azrAgWV1zKYq7dUUMj4owusBWKLsiQ==", + "version": "3.52.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.52.0.tgz", + "integrity": "sha512-JJ98b02z16ILv7859irtXn4oUaFWADtvkzy2c0IAatNVX2Mc9Yoh8z6hZInn3QwvMEYhHuQloYi+TTQy67SIdQ==", "dev": true, "optional": true, "requires": { "semver": "^7.3.5" } }, + "node-abort-controller": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", + "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==", + "dev": true + }, "node-domexception": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", "dev": true }, - "node-fetch": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", - "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", + "node-fetch-commonjs": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch-commonjs/-/node-fetch-commonjs-3.3.2.tgz", + "integrity": "sha512-VBlAiynj3VMLrotgwOS3OyECFxas5y7ltLcK4t41lMUZeaK15Ym4QRkqN0EQKAFL42q9i21EPKjzLUPfltR72A==", "dev": true, "requires": { - "whatwg-url": "^5.0.0" + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" } }, "node-forge": { @@ -17047,14 +17495,6 @@ "url": "^0.11.0", "util": "^0.11.0", "vm-browserify": "^1.0.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true - } } }, "node-notifier": { @@ -17069,12 +17509,23 @@ "shellwords": "^0.1.1", "uuid": "^8.3.0", "which": "^2.0.2" + }, + "dependencies": { + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, "node-releases": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", - "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, "normalize-path": { @@ -17102,6 +17553,14 @@ "dev": true, "requires": { "path-key": "^3.0.0" + }, + "dependencies": { + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + } } }, "nth-check": { @@ -17116,15 +17575,33 @@ "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true }, "object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true }, + "object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, "obuf": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", @@ -17165,14 +17642,13 @@ } }, "open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", "dev": true, "requires": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" } }, "os-browserify": { @@ -17329,54 +17805,16 @@ "yaml": "^1.10.2" }, "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "open": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", - "dev": true, - "requires": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "dev": true - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, "requires": { - "glob": "^7.1.3" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" } }, "semver": { @@ -17385,35 +17823,11 @@ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "dev": true - }, "slash": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", "dev": true - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } } } }, @@ -17436,9 +17850,9 @@ "dev": true }, "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", "dev": true }, "path-parse": { @@ -17494,12 +17908,12 @@ } }, "postcss": { - "version": "8.4.25", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.25.tgz", - "integrity": "sha512-7taJ/8t2av0Z+sQEvNzCkpDynl0tX3uJMCODi6nT3PfASC7dYCWV9aQ+uiCf+KBD4SEFcu+GvJdGdwzQ6OSjCw==", + "version": "8.4.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", + "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", "dev": true, "requires": { - "nanoid": "^3.3.6", + "nanoid": "^3.3.7", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" } @@ -17515,12 +17929,12 @@ } }, "postcss-colormin": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", - "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", + "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", "dev": true, "requires": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", "colord": "^2.9.1", "postcss-value-parser": "^4.2.0" @@ -17596,9 +18010,9 @@ } }, "postcss-merge-rules": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.3.tgz", - "integrity": "sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", + "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", "dev": true, "requires": { "browserslist": "^4.21.4", @@ -17655,9 +18069,9 @@ "requires": {} }, "postcss-modules-local-by-default": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", - "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz", + "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==", "dev": true, "requires": { "icss-utils": "^5.0.0", @@ -17775,9 +18189,9 @@ } }, "postcss-reduce-initial": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.1.tgz", - "integrity": "sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", + "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", "dev": true, "requires": { "browserslist": "^4.21.4", @@ -17794,9 +18208,9 @@ } }, "postcss-selector-parser": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", - "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", "dev": true, "requires": { "cssesc": "^3.0.0", @@ -17951,9 +18365,9 @@ } }, "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", "dev": true }, "qs": { @@ -17965,12 +18379,6 @@ "side-channel": "^1.0.4" } }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, "querystring-es3": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", @@ -17990,15 +18398,15 @@ "dev": true }, "ramda": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.29.0.tgz", - "integrity": "sha512-BBea6L67bYLtdbOqfp8f58fPMqEwx0doL+pAi8TZyp2YWz8R9G8z9x75CZI8W+ftqhFHCpEX2cRnUUXK130iKA==", + "version": "0.29.1", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.29.1.tgz", + "integrity": "sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA==", "dev": true }, "ramda-adjunct": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/ramda-adjunct/-/ramda-adjunct-4.0.0.tgz", - "integrity": "sha512-W/NiJAlZdwZ/iUkWEQQgRdH5Szqqet1WoVH9cdqDVjFbVaZHuJfJRvsxqHhvq6tZse+yVbFatLDLdVa30wBlGQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ramda-adjunct/-/ramda-adjunct-4.1.1.tgz", + "integrity": "sha512-BnCGsZybQZMDGram9y7RiryoRHS5uwx8YeGuUeDKuZuvK38XO6JJfmK85BwRWAKFA6pZ5nZBO/HBFtExVaf31w==", "dev": true, "requires": {} }, @@ -18054,15 +18462,6 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } } } }, @@ -18150,9 +18549,9 @@ "dev": true }, "react-redux": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.1.1.tgz", - "integrity": "sha512-5W0QaKtEhj+3bC0Nj0NkqkhIv8gLADH/2kYFMTHxCVqQILiWzLv6MaLuV5wJU3BQEdHKzTfcvPN0WMS6SC1oyA==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.1.3.tgz", + "integrity": "sha512-n0ZrutD7DaX/j9VscF+uTALI3oUPa/pO4Z3soOBIjuRn/FzVu6aehhysxZCLi6y7duMf52WNZGMl7CtuK5EnRw==", "dev": true, "requires": { "@babel/runtime": "^7.12.1", @@ -18185,9 +18584,9 @@ } }, "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -18276,24 +18675,24 @@ "dev": true }, "regenerate-unicode-properties": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", - "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", "dev": true, "requires": { "regenerate": "^1.4.2" } }, "regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", "dev": true }, "regenerator-transform": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", - "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, "requires": { "@babel/runtime": "^7.8.4" @@ -18306,25 +18705,19 @@ "dev": true }, "regexpu-core": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.2.tgz", - "integrity": "sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", "dev": true, "requires": { + "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", "regenerate-unicode-properties": "^10.1.0", - "regjsgen": "^0.7.1", "regjsparser": "^0.9.1", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.1.0" } }, - "regjsgen": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", - "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==", - "dev": true - }, "regjsparser": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", @@ -18396,7 +18789,7 @@ "requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "dev": true }, "reselect": { @@ -18406,12 +18799,12 @@ "dev": true }, "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "requires": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -18450,6 +18843,14 @@ "loader-utils": "^2.0.0", "postcss": "^8.2.14", "source-map": "0.6.1" + }, + "dependencies": { + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + } } }, "ret": { @@ -18471,9 +18872,9 @@ "dev": true }, "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, "requires": { "glob": "^7.1.3" @@ -18511,9 +18912,9 @@ "dev": true }, "sass": { - "version": "1.63.6", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.63.6.tgz", - "integrity": "sha512-MJuxGMHzaOW7ipp+1KdELtqKbfAWbH7OLIdoSMnVe3EXPMTmxTmlaZDCTsgIpPCs3w99lLo9/zDKkOrJuT5byw==", + "version": "1.69.5", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.5.tgz", + "integrity": "sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", @@ -18559,18 +18960,19 @@ "dev": true }, "selfsigned": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", - "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", "dev": true, "requires": { + "@types/node-forge": "^1.3.0", "node-forge": "^1" } }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -18649,9 +19051,9 @@ } }, "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", "dev": true, "requires": { "randombytes": "^2.1.0" @@ -18705,6 +19107,12 @@ "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", "dev": true }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, "setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", @@ -18731,10 +19139,22 @@ "send": "0.18.0" } }, + "set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dev": true, + "requires": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + } + }, "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", "dev": true }, "setprototypeof": { @@ -18763,18 +19183,24 @@ } }, "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", "dev": true, "requires": { - "shebang-regex": "^3.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true + }, + "shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", "dev": true }, "shellwords": { @@ -18784,9 +19210,9 @@ "dev": true }, "short-unique-id": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/short-unique-id/-/short-unique-id-4.4.4.tgz", - "integrity": "sha512-oLF1NCmtbiTWl2SqdXZQbo5KM1b7axdp0RgQLq8qCBBLoq+o3A5wmLrNM6bZIh54/a8BJ3l69kTXuxwZ+XCYuw==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/short-unique-id/-/short-unique-id-5.0.3.tgz", + "integrity": "sha512-yhniEILouC0s4lpH0h7rJsfylZdca10W9mDJRAFh3EpcSUanCHGb0R7kcFOIUCZYSAPo0PUD5ZxWQdW0T4xaug==", "dev": true }, "side-channel": { @@ -18887,23 +19313,6 @@ "http-deceiver": "^1.2.7", "select-hose": "^2.0.0", "spdy-transport": "^3.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } } }, "spdy-transport": { @@ -18920,25 +19329,10 @@ "wbuf": "^1.7.3" }, "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "requires": { "inherits": "^2.0.3", @@ -18973,9 +19367,9 @@ "dev": true }, "std-env": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.3.1.tgz", - "integrity": "sha512-3H20QlwQsSm2OvAxWIYhs+j01MzzqwMwGiiO1NQaJYZgJZFPuAbf95/DiKRBSTYIJ2FeGUc+B/6mPGcWP9dO3Q==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.6.0.tgz", + "integrity": "sha512-aFZ19IgVmhdB2uX599ve2kE6BIE3YMnQ6Gp6BURhW/oIzpXGKr878TQfAQZn1+i0Flcc/UKUy1gOlcfaUBCryg==", "dev": true }, "stream-browserify": { @@ -19054,9 +19448,9 @@ }, "dependencies": { "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "requires": { "@types/json-schema": "^7.0.8", @@ -19077,12 +19471,12 @@ } }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" } }, "supports-preserve-symlinks-flag": { @@ -19107,36 +19501,27 @@ } }, "swagger-client": { - "version": "3.19.10", - "resolved": "https://registry.npmjs.org/swagger-client/-/swagger-client-3.19.10.tgz", - "integrity": "sha512-r+uGryGdxYQf7Aa9WzK226RigDaWAutDqP903O1QFA47jnJZ5RCkaV3X8nadXkNoZRlsZv8sEKOB8UoDY99BBA==", + "version": "3.24.5", + "resolved": "https://registry.npmjs.org/swagger-client/-/swagger-client-3.24.5.tgz", + "integrity": "sha512-qb4Rr9LpWs7o2AO4KdiIK+dz0GbrRLyD+UyN24h6AcNcDUnwfkb6LgFE4e6bXwVXWJzMp27w1QvSQ4hQNMPnoQ==", "dev": true, "requires": { - "@babel/runtime-corejs3": "^7.20.13", - "@swagger-api/apidom-core": ">=0.70.1 <1.0.0", - "@swagger-api/apidom-json-pointer": ">=0.70.1 <1.0.0", - "@swagger-api/apidom-ns-openapi-3-1": ">=0.70.2 <1.0.0", - "@swagger-api/apidom-reference": ">=0.70.2 <1.0.0", + "@babel/runtime-corejs3": "^7.22.15", + "@swagger-api/apidom-core": ">=0.83.0 <1.0.0", + "@swagger-api/apidom-error": ">=0.83.0 <1.0.0", + "@swagger-api/apidom-json-pointer": ">=0.83.0 <1.0.0", + "@swagger-api/apidom-ns-openapi-3-1": ">=0.83.0 <1.0.0", + "@swagger-api/apidom-reference": ">=0.83.0 <1.0.0", "cookie": "~0.5.0", - "cross-fetch": "^3.1.5", "deepmerge": "~4.3.0", "fast-json-patch": "^3.0.0-1", - "form-data-encoder": "^1.4.3", - "formdata-node": "^4.0.0", "is-plain-object": "^5.0.0", "js-yaml": "^4.1.0", - "lodash": "^4.17.21", + "node-abort-controller": "^3.1.1", + "node-fetch-commonjs": "^3.3.1", "qs": "^6.10.2", "traverse": "~0.6.6", - "url": "~0.11.0" - }, - "dependencies": { - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true - } + "undici": "^5.24.0" } }, "swagger-ui": { @@ -19183,12 +19568,6 @@ "zenscroll": "^4.0.2" }, "dependencies": { - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, "immutable": { "version": "3.8.2", "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", @@ -19245,13 +19624,13 @@ } }, "terser": { - "version": "5.16.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", - "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.25.0.tgz", + "integrity": "sha512-we0I9SIsfvNUMP77zC9HG+MylwYYsGFSBG8qm+13oud2Yh+O104y614FRbyjpxys16jZwot72Fpi827YvGzuqg==", "dev": true, "requires": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, @@ -19265,22 +19644,22 @@ } }, "terser-webpack-plugin": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", - "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", + "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", "dev": true, "requires": { - "@jridgewell/trace-mapping": "^0.3.14", + "@jridgewell/trace-mapping": "^0.3.17", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "terser": "^5.14.1" + "serialize-javascript": "^6.0.1", + "terser": "^5.16.8" }, "dependencies": { "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "requires": { "@types/json-schema": "^7.0.8", @@ -19347,12 +19726,6 @@ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, "traverse": { "version": "0.6.7", "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.7.tgz", @@ -19371,13 +19744,13 @@ } }, "tree-sitter-json": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/tree-sitter-json/-/tree-sitter-json-0.20.0.tgz", - "integrity": "sha512-PteOLH+Tx6Bz4ZA/d40/DbkiSXXRM/gKahhHI8hQ1lWNfFvdknnz9k3Mz84ol5srRyLboJ8wp8GSkhZ6ht9EGQ==", + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/tree-sitter-json/-/tree-sitter-json-0.20.1.tgz", + "integrity": "sha512-482hf7J+aBwhksSw8yWaqI8nyP1DrSwnS4IMBShsnkFWD3SE8oalHnsEik59fEVi3orcTCUtMzSjZx+0Tpa6Vw==", "dev": true, "optional": true, "requires": { - "nan": "^2.14.1" + "nan": "^2.18.0" } }, "tree-sitter-yaml": { @@ -19397,9 +19770,9 @@ "dev": true }, "tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, "tty-browserify": { @@ -19432,28 +19805,32 @@ "requires": { "media-typer": "0.3.0", "mime-types": "~2.1.24" - }, - "dependencies": { - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "requires": { - "mime-db": "1.52.0" - } - } } }, "types-ramda": { - "version": "0.29.4", - "resolved": "https://registry.npmjs.org/types-ramda/-/types-ramda-0.29.4.tgz", - "integrity": "sha512-XO/820iRsCDwqLjE8XE+b57cVGPyk1h+U9lBGpDWvbEky+NQChvHVwaKM05WnW1c5z3EVQh8NhXFmh2E/1YazQ==", + "version": "0.29.6", + "resolved": "https://registry.npmjs.org/types-ramda/-/types-ramda-0.29.6.tgz", + "integrity": "sha512-VJoOk1uYNh9ZguGd3eZvqkdhD4hTGtnjRBUx5Zc0U9ftmnCgiWcSj/lsahzKunbiwRje1MxxNkEy1UdcXRCpYw==", "dev": true, "requires": { "ts-toolbelt": "^9.6.0" } }, + "undici": { + "version": "5.28.2", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.2.tgz", + "integrity": "sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==", + "dev": true, + "requires": { + "@fastify/busboy": "^2.0.0" + } + }, + "undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, "unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -19483,9 +19860,9 @@ "dev": true }, "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true }, "unpipe": { @@ -19495,15 +19872,15 @@ "dev": true }, "unraw": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unraw/-/unraw-2.0.1.tgz", - "integrity": "sha512-tdOvLfRzHolwYcHS6HIX860MkK9LQ4+oLuNwFYL7bpgTEO64PZrcQxkisgwJYCfF8sKiWLwwu1c83DvMkbefIQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unraw/-/unraw-3.0.0.tgz", + "integrity": "sha512-08/DA66UF65OlpUDIQtbJyrqTR0jTAlJ+jsnkQ4jxR7+K5g5YG1APZKQSMCE1vqqmD+2pv6+IdEjmopFatacvg==", "dev": true }, "update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, "requires": { "escalade": "^3.1.1", @@ -19517,26 +19894,26 @@ "dev": true, "requires": { "punycode": "^2.1.0" - } - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" }, "dependencies": { "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true } } }, + "url": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", + "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", + "dev": true, + "requires": { + "punycode": "^1.4.1", + "qs": "^6.11.2" + } + }, "url-parse": { "version": "1.5.10", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", @@ -19602,12 +19979,12 @@ "dev": true }, "vue": { - "version": "2.7.14", - "resolved": "https://registry.npmjs.org/vue/-/vue-2.7.14.tgz", - "integrity": "sha512-b2qkFyOM0kwqWFuQmgd4o+uHGU7T+2z3T+WQp8UBjADfEv2n4FEMffzBmCKNP0IGzOEEfYjvtcC62xaSKeQDrQ==", + "version": "2.7.15", + "resolved": "https://registry.npmjs.org/vue/-/vue-2.7.15.tgz", + "integrity": "sha512-a29fsXd2G0KMRqIFTpRgpSbWaNBK3lpCTOLuGLEDnlHWdjB8fwl6zyYZ8xCrqkJdatwZb4mGHiEfJjnw0Q6AwQ==", "dev": true, "requires": { - "@vue/compiler-sfc": "2.7.14", + "@vue/compiler-sfc": "2.7.15", "csstype": "^3.1.0" } }, @@ -19663,9 +20040,9 @@ } }, "web-streams-polyfill": { - "version": "4.0.0-beta.3", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz", - "integrity": "sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", + "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", "dev": true }, "web-tree-sitter": { @@ -19675,29 +20052,23 @@ "dev": true, "optional": true }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, "webpack": { - "version": "5.75.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz", - "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==", + "version": "5.89.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", + "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", "acorn": "^8.7.1", - "acorn-import-assertions": "^1.7.6", + "acorn-import-assertions": "^1.9.0", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", - "es-module-lexer": "^0.9.0", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", @@ -19706,26 +20077,17 @@ "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", + "schema-utils": "^3.2.0", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", + "terser-webpack-plugin": "^5.3.7", "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, "dependencies": { - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "requires": { - "mime-db": "1.52.0" - } - }, "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "requires": { "@types/json-schema": "^7.0.8", @@ -19759,6 +20121,49 @@ "interpret": "^2.2.0", "rechoir": "^0.7.0", "webpack-merge": "^5.7.3" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, "webpack-dev-middleware": { @@ -19801,33 +20206,24 @@ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "requires": { - "mime-db": "1.52.0" - } - }, "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", + "ajv": "^8.9.0", "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" + "ajv-keywords": "^5.1.0" } } } }, "webpack-dev-server": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz", - "integrity": "sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==", + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", + "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", "dev": true, "requires": { "@types/bonjour": "^3.5.9", @@ -19836,7 +20232,7 @@ "@types/serve-index": "^1.9.1", "@types/serve-static": "^1.13.10", "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.1", + "@types/ws": "^8.5.5", "ansi-html-community": "^0.0.8", "bonjour-service": "^1.0.11", "chokidar": "^3.5.3", @@ -19849,6 +20245,7 @@ "html-entities": "^2.3.2", "http-proxy-middleware": "^2.0.3", "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", "open": "^8.0.9", "p-retry": "^4.5.0", "rimraf": "^3.0.2", @@ -19858,7 +20255,7 @@ "sockjs": "^0.3.24", "spdy": "^4.0.2", "webpack-dev-middleware": "^5.3.1", - "ws": "^8.4.2" + "ws": "^8.13.0" }, "dependencies": { "ajv": { @@ -19888,27 +20285,48 @@ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, + "open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dev": true, + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", + "ajv": "^8.9.0", "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" + "ajv-keywords": "^5.1.0" } } } }, "webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", "dev": true, "requires": { "clone-deep": "^4.0.1", + "flat": "^5.0.2", "wildcard": "^2.0.0" } }, @@ -19961,29 +20379,19 @@ "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", "dev": true }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { "isexe": "^2.0.0" } }, "wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", "dev": true }, "wrap-ansi": { @@ -19995,32 +20403,6 @@ "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - } } }, "wrappy": { @@ -20030,9 +20412,9 @@ "dev": true }, "ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "version": "8.14.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", + "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", "dev": true, "requires": {} }, @@ -20076,9 +20458,9 @@ "dev": true }, "yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "requires": { "cliui": "^8.0.1", From 4e2ffc2c6286c9ec2d71b4e94c3052d076ebe7b4 Mon Sep 17 00:00:00 2001 From: Stuart Laverick Date: Fri, 8 Dec 2023 15:14:42 +0000 Subject: [PATCH 10/14] Added comment to Node Dockerfile for clarity --- docker/node/Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docker/node/Dockerfile b/docker/node/Dockerfile index df8f80d64..8e27aa144 100644 --- a/docker/node/Dockerfile +++ b/docker/node/Dockerfile @@ -7,6 +7,8 @@ LABEL maintainer="Ayup Digital" # Install git for faster package downloads. RUN apt-get install -y git +# Create new cache directory for npm +# See https://stackoverflow.com/questions/77626859/npm-cannot-run-dev-in-docker-node-container-due-to-root-owned-files RUN mkdir -p /home/node/app/.npm \ && chown -R node:node /home/node/app/.npm From c91d99f98bf9ad077fd0e1a68153f16c7e3eb11b Mon Sep 17 00:00:00 2001 From: Stuart Laverick Date: Fri, 8 Dec 2023 17:43:56 +0000 Subject: [PATCH 11/14] Fixed incorrectly assigning parent pages --- app/Models/Page.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Models/Page.php b/app/Models/Page.php index e2776e068..890f42b57 100644 --- a/app/Models/Page.php +++ b/app/Models/Page.php @@ -293,7 +293,7 @@ public function applyUpdateRequest(UpdateRequest $updateRequest): UpdateRequest 'page_type' => Arr::get($data, 'page_type', $this->page_type), ]); - $this->updateParent(Arr::get($data, 'parent_id', $this->parent_id)) + $this->updateParent(Arr::get($data, 'parent_id', $this->parent_uuid)) ->updateStatus(Arr::get($data, 'enabled', $this->enabled)) ->updateOrder(Arr::get($data, 'order', $this->order)) ->updateImage(Arr::get($data, 'image_file_id', $this->image_file_id)); From aac959943df2700c96be3f03b94b43bb98d580d4 Mon Sep 17 00:00:00 2001 From: Stuart Laverick Date: Mon, 11 Dec 2023 09:33:49 +0000 Subject: [PATCH 12/14] Adjust boost scores to mprove search performance --- app/Models/Model.php | 3 ++- app/Models/OrganisationEvent.php | 8 +++--- app/Models/Page.php | 6 ++--- app/Models/Service.php | 8 +++--- .../ElasticSearch/EventQueryBuilder.php | 26 +++++++++---------- app/Search/ElasticSearch/PageQueryBuilder.php | 12 ++++----- .../ElasticSearch/ServiceEloquentMapper.php | 2 +- .../ElasticSearch/ServiceQueryBuilder.php | 20 +++++++------- app/Search/SearchCriteriaQuery.php | 4 +-- database/factories/ServiceFactory.php | 2 ++ tests/Feature/Search/ServiceTest.php | 14 +++------- tests/TestCase.php | 2 ++ 12 files changed, 53 insertions(+), 54 deletions(-) diff --git a/app/Models/Model.php b/app/Models/Model.php index 72a1a16a3..b16af4fb5 100644 --- a/app/Models/Model.php +++ b/app/Models/Model.php @@ -81,8 +81,9 @@ public function hasAppend(string $name): bool * * @author */ - public function onlyWords($string) + public function makeSearchable($string) { + $string = mb_strtolower($string); preg_match_all('/(?:\b([A-Z,a-z]+)\b)/i', $string, $words); return implode(' ', array_filter($words[1], function ($word) { diff --git a/app/Models/OrganisationEvent.php b/app/Models/OrganisationEvent.php index 8daf8df8d..678c38634 100644 --- a/app/Models/OrganisationEvent.php +++ b/app/Models/OrganisationEvent.php @@ -60,14 +60,14 @@ public function toSearchableArray(): array { $organisationEvent = [ 'id' => $this->id, - 'title' => $this->onlyWords($this->title), - 'intro' => $this->onlyWords($this->intro), - 'description' => $this->onlyWords($this->description), + 'title' => $this->makeSearchable($this->title), + 'intro' => $this->makeSearchable($this->intro), + 'description' => $this->makeSearchable($this->description), 'start_date' => $this->start_date->setTimeFromTimeString($this->start_time)->toDateTimeLocalString(), 'end_date' => $this->end_date->setTimeFromTimeString($this->end_time)->toDateTimeLocalString(), 'is_free' => $this->is_free, 'is_virtual' => $this->is_virtual, - 'organisation_name' => $this->onlyWords($this->organisation->name), + 'organisation_name' => $this->makeSearchable($this->organisation->name), 'taxonomy_categories' => $this->taxonomies()->pluck('name')->toArray(), 'collection_categories' => $this->collections()->pluck('name')->toArray(), 'event_location' => null, diff --git a/app/Models/Page.php b/app/Models/Page.php index 890f42b57..3dfe84cfc 100644 --- a/app/Models/Page.php +++ b/app/Models/Page.php @@ -73,10 +73,10 @@ public function toSearchableArray(): array foreach ($sectionContent['content'] as $i => $contentBlock) { switch ($contentBlock['type']) { case 'copy': - $content[] = $this->onlyWords($contentBlock['value']); + $content[] = $this->makeSearchable($contentBlock['value']); break; case 'cta': - $content[] = $this->onlyWords($contentBlock['title'] . ' ' . $contentBlock['description']); + $content[] = $this->makeSearchable($contentBlock['title'] . ' ' . $contentBlock['description']); break; default: break; @@ -92,7 +92,7 @@ public function toSearchableArray(): array return [ 'id' => $this->id, 'enabled' => $this->enabled, - 'title' => $this->onlyWords($this->title), + 'title' => $this->makeSearchable($this->title), 'content' => $contentSections, 'collection_categories' => $this->collections()->where('type', Collection::TYPE_CATEGORY)->pluck('name')->all(), 'collection_personas' => $this->collections()->where('type', Collection::TYPE_PERSONA)->pluck('name')->all(), diff --git a/app/Models/Service.php b/app/Models/Service.php index 7d4ee8995..1559987a2 100644 --- a/app/Models/Service.php +++ b/app/Models/Service.php @@ -111,14 +111,14 @@ public function toSearchableArray(): array return [ 'id' => $this->id, - 'name' => $this->onlyWords($this->name), - 'intro' => $this->onlyWords($this->intro), - 'description' => $this->onlyWords($this->description), + 'name' => $this->makeSearchable($this->name), + 'intro' => $this->makeSearchable($this->intro), + 'description' => $this->makeSearchable($this->description), 'wait_time' => $this->wait_time, 'is_free' => $this->is_free, 'status' => $this->status, 'score' => $this->score, - 'organisation_name' => $this->onlyWords($this->organisation->name), + 'organisation_name' => $this->makeSearchable($this->organisation->name), 'taxonomy_categories' => $this->taxonomies()->pluck('name')->toArray(), 'collection_categories' => static::collections($this)->where('type', Collection::TYPE_CATEGORY)->pluck('name')->toArray(), 'collection_personas' => static::collections($this)->where('type', Collection::TYPE_PERSONA)->pluck('name')->toArray(), diff --git a/app/Search/ElasticSearch/EventQueryBuilder.php b/app/Search/ElasticSearch/EventQueryBuilder.php index f18520630..8a7814549 100644 --- a/app/Search/ElasticSearch/EventQueryBuilder.php +++ b/app/Search/ElasticSearch/EventQueryBuilder.php @@ -1,6 +1,6 @@ addMatch('title', $query, $this->shouldPath, 1.5); - $this->addMatch('title', $query, $this->shouldPath, 2.5, 'AUTO', 'AND'); - $this->addMatchPhrase('title', $query, $this->shouldPath, 4); - $this->addMatch('organisation_name', $query, $this->shouldPath); - $this->addMatch('organisation_name', $query, $this->shouldPath, 2, 'AUTO', 'AND'); - $this->addMatchPhrase('organisation_name', $query, $this->shouldPath, 3); + $this->addMatch('title', $query, $this->shouldPath, 3); + $this->addMatch('title', $query, $this->shouldPath, 4, 'AUTO', 'AND'); + $this->addMatchPhrase('title', $query, $this->shouldPath, 6); + $this->addMatch('organisation_name', $query, $this->shouldPath, 3); + $this->addMatch('organisation_name', $query, $this->shouldPath, 4, 'AUTO', 'AND'); + $this->addMatchPhrase('organisation_name', $query, $this->shouldPath, 6); $this->addMatch('intro', $query, $this->shouldPath); - $this->addMatch('intro', $query, $this->shouldPath, 1.5, 'AUTO', 'AND'); - $this->addMatchPhrase('intro', $query, $this->shouldPath, 2.5); - $this->addMatch('description', $query, $this->shouldPath, 0.5); + $this->addMatch('intro', $query, $this->shouldPath, 2, 'AUTO', 'AND'); + $this->addMatchPhrase('intro', $query, $this->shouldPath, 3); + $this->addMatch('description', $query, $this->shouldPath); $this->addMatch('description', $query, $this->shouldPath, 1.5, 'AUTO', 'AND'); $this->addMatchPhrase('description', $query, $this->shouldPath, 2); - $this->addMatch('taxonomy_categories', $query, $this->shouldPath, 0.5); - $this->addMatch('taxonomy_categories', $query, $this->shouldPath, 1, 'AUTO', 'AND'); - $this->addMatchPhrase('taxonomy_categories', $query, $this->shouldPath, 1.5); + $this->addMatch('taxonomy_categories', $query, $this->shouldPath); + $this->addMatch('taxonomy_categories', $query, $this->shouldPath, 2, 'AUTO', 'AND'); + $this->addMatchPhrase('taxonomy_categories', $query, $this->shouldPath, 3); $this->addMinimumShouldMatch(); } diff --git a/app/Search/ElasticSearch/PageQueryBuilder.php b/app/Search/ElasticSearch/PageQueryBuilder.php index 90ef3f59b..542870dc1 100644 --- a/app/Search/ElasticSearch/PageQueryBuilder.php +++ b/app/Search/ElasticSearch/PageQueryBuilder.php @@ -50,12 +50,12 @@ protected function applyStatus(bool $enabled): void protected function applyQuery(string $query): void { - $this->addMatch('title', $query, $this->shouldPath, 2); - $this->addMatch('title', $query, $this->shouldPath, 3, 'AUTO', 'AND'); - $this->addMatchPhrase('title', $query, $this->shouldPath, 5); - $this->addMatch('content.introduction.title', $query, $this->shouldPath, 1.5); - $this->addMatch('content.introduction.title', $query, $this->shouldPath, 2, 'AUTO', 'AND'); - $this->addMatchPhrase('content.introduction.title', $query, $this->shouldPath, 2.5); + $this->addMatch('title', $query, $this->shouldPath, 3); + $this->addMatch('title', $query, $this->shouldPath, 4, 'AUTO', 'AND'); + $this->addMatchPhrase('title', $query, $this->shouldPath, 6); + $this->addMatch('content.introduction.title', $query, $this->shouldPath, 2); + $this->addMatch('content.introduction.title', $query, $this->shouldPath, 3, 'AUTO', 'AND'); + $this->addMatchPhrase('content.introduction.title', $query, $this->shouldPath, 4); $this->addMatch('content.introduction.content', $query, $this->shouldPath); $this->addMatch('content.introduction.content', $query, $this->shouldPath, 1.5, 'AUTO', 'AND'); $this->addMatchPhrase('content.introduction.content', $query, $this->shouldPath, 2); diff --git a/app/Search/ElasticSearch/ServiceEloquentMapper.php b/app/Search/ElasticSearch/ServiceEloquentMapper.php index e4dece0e8..6114b5256 100644 --- a/app/Search/ElasticSearch/ServiceEloquentMapper.php +++ b/app/Search/ElasticSearch/ServiceEloquentMapper.php @@ -1,6 +1,6 @@ addMatch('name', $query, $this->shouldPath, 2); - $this->addMatch('name', $query, $this->shouldPath, 2.5, 'AUTO', 'AND'); - $this->addMatchPhrase('name', $query, $this->shouldPath, 3); - $this->addMatch('organisation_name', $query, $this->shouldPath, 2); - $this->addMatch('organisation_name', $query, $this->shouldPath, 2.5, 'AUTO', 'AND'); - $this->addMatchPhrase('organisation_name', $query, $this->shouldPath, 3); + $this->addMatch('name', $query, $this->shouldPath, 3); + $this->addMatch('name', $query, $this->shouldPath, 4, 'AUTO', 'AND'); + $this->addMatchPhrase('name', $query, $this->shouldPath, 6); + $this->addMatch('organisation_name', $query, $this->shouldPath, 3); + $this->addMatch('organisation_name', $query, $this->shouldPath, 4, 'AUTO', 'AND'); + $this->addMatchPhrase('organisation_name', $query, $this->shouldPath, 6); $this->addMatch('intro', $query, $this->shouldPath); - $this->addMatch('intro', $query, $this->shouldPath, 1.5, 'AUTO', 'AND'); - $this->addMatchPhrase('intro', $query, $this->shouldPath, 2); + $this->addMatch('intro', $query, $this->shouldPath, 2, 'AUTO', 'AND'); + $this->addMatchPhrase('intro', $query, $this->shouldPath, 3); $this->addMatch('description', $query, $this->shouldPath); $this->addMatch('description', $query, $this->shouldPath, 1.5, 'AUTO', 'AND'); $this->addMatchPhrase('description', $query, $this->shouldPath, 2); $this->addMatch('taxonomy_categories', $query, $this->shouldPath); - $this->addMatch('taxonomy_categories', $query, $this->shouldPath, 1, 'AUTO', 'AND'); - $this->addMatchPhrase('taxonomy_categories', $query, $this->shouldPath, 1.5); + $this->addMatch('taxonomy_categories', $query, $this->shouldPath, 2, 'AUTO', 'AND'); + $this->addMatchPhrase('taxonomy_categories', $query, $this->shouldPath, 3); $this->addMinimumShouldMatch(); } diff --git a/app/Search/SearchCriteriaQuery.php b/app/Search/SearchCriteriaQuery.php index 80c04fa6c..ba84cb54f 100644 --- a/app/Search/SearchCriteriaQuery.php +++ b/app/Search/SearchCriteriaQuery.php @@ -1,6 +1,6 @@ query = $query; + $this->query = mb_strtolower($query); } public function hasType(): bool diff --git a/database/factories/ServiceFactory.php b/database/factories/ServiceFactory.php index b716bb728..22cbf6362 100644 --- a/database/factories/ServiceFactory.php +++ b/database/factories/ServiceFactory.php @@ -28,6 +28,8 @@ public function definition(): array 'status' => Service::STATUS_ACTIVE, 'intro' => mb_substr($this->faker->paragraph(2), 0, 149), 'description' => $this->faker->paragraph(5), + // 'intro' => 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit.', + // 'description' => 'Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium.', 'is_free' => true, 'url' => $this->faker->url(), 'contact_name' => $this->faker->name(), diff --git a/tests/Feature/Search/ServiceTest.php b/tests/Feature/Search/ServiceTest.php index a2598b4ec..1f6529d8a 100644 --- a/tests/Feature/Search/ServiceTest.php +++ b/tests/Feature/Search/ServiceTest.php @@ -275,22 +275,17 @@ public function test_query_ranks_service_name_equivalent_to_organisation_name(): 'name' => 'Relevant Organisation', 'organisation_id' => $organisation->id, ]); - $serviceWithRelevantOrganisationName->save(); $serviceWithRelevantServiceName = Service::factory()->create([ 'name' => 'Hammer Play Swim', - 'description' => 'Service description', ]); - $serviceWithRelevantServiceName->save(); $serviceWithRelevantIntro = Service::factory()->create([ 'name' => 'Relevant Intro', 'intro' => 'Hammer Play Swim', ]); - $serviceWithRelevantIntro->save(); $serviceWithRelevantDescription = Service::factory()->create([ 'name' => 'Relevant Description', 'description' => 'Hammer Play Swim', ]); - $serviceWithRelevantDescription->save(); $serviceWithRelevantTaxonomy = Service::factory()->create([ 'name' => 'Relevant Taxonomy', ]); @@ -301,7 +296,6 @@ public function test_query_ranks_service_name_equivalent_to_organisation_name(): 'depth' => 1, ]); $serviceWithRelevantTaxonomy->serviceTaxonomies()->create(['taxonomy_id' => $taxonomy->id]); - $serviceWithRelevantTaxonomy->save(); sleep(1); @@ -1294,10 +1288,10 @@ public function test_ranking_for_eligibility_higher_for_single_matching_eligibil $this->assertEquals(4, count($data)); - $this->assertEquals($serviceA->id, $data[0]['id']); - $this->assertEquals($serviceB->id, $data[1]['id']); - $this->assertEquals($serviceC->id, $data[2]['id']); - $this->assertEquals($serviceD->id, $data[3]['id']); + $this->assertTrue(in_array($serviceA->id, [$data[0]['id'], $data[1]['id']])); + $this->assertTrue(in_array($serviceB->id, [$data[1]['id'], $data[2]['id']])); + $this->assertTrue(in_array($serviceC->id, [$data[1]['id'], $data[2]['id']])); + $this->assertTrue(in_array($serviceD->id, [$data[2]['id'], $data[3]['id']])); } public function test_search_ranking_given_more_relevant_matches_versus_less_hits_or_no_eligibilities_attached(): void diff --git a/tests/TestCase.php b/tests/TestCase.php index d9cfd0358..33673ecc0 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -150,6 +150,7 @@ protected function setUpElasticsearch() return; } else { + config(['elastic.scout_driver.refresh_documents' => true]); Service::enableSearchSyncing(); OrganisationEvent::enableSearchSyncing(); Page::enableSearchSyncing(); @@ -173,6 +174,7 @@ protected function tearDownElasticsearch() return; } else { + config(['elastic.scout_driver.refresh_documents' => false]); Service::enableSearchSyncing(); OrganisationEvent::enableSearchSyncing(); Page::enableSearchSyncing(); From 2718fe834b7f3b89d919fc8f1950b1c1153c4a58 Mon Sep 17 00:00:00 2001 From: Stuart Laverick Date: Mon, 11 Dec 2023 10:09:04 +0000 Subject: [PATCH 13/14] Fixed failing tests due to use of strtolower in search query --- tests/Feature/PagesTest.php | 2 +- tests/Feature/Search/ServiceTest.php | 17 ++++++++++++++-- tests/Unit/Models/ReportTest.php | 30 ++++++++++++++-------------- 3 files changed, 31 insertions(+), 18 deletions(-) diff --git a/tests/Feature/PagesTest.php b/tests/Feature/PagesTest.php index 73de2357d..5e586d6bd 100644 --- a/tests/Feature/PagesTest.php +++ b/tests/Feature/PagesTest.php @@ -1875,7 +1875,7 @@ public function createPageWithImageSVGAsContentAdmin200(): void $data = [ 'title' => $this->faker->sentence(), - 'excerpt' => substr($this->faker->paragraph(2), 0, 149), + 'excerpt' => trim(substr($this->faker->paragraph(2), 0, 149)), 'content' => [ 'introduction' => [ 'content' => [ diff --git a/tests/Feature/Search/ServiceTest.php b/tests/Feature/Search/ServiceTest.php index 1f6529d8a..e1790c4a9 100644 --- a/tests/Feature/Search/ServiceTest.php +++ b/tests/Feature/Search/ServiceTest.php @@ -103,8 +103,21 @@ public function test_guest_can_search(): void public function test_query_matches_service_name(): void { - $service1 = Service::factory()->create(['name' => 'hunt remind voice']); - $service2 = Service::factory()->create(); + $service1 = Service::factory()->create([ + 'name' => 'hunt remind voice', + ]); + Service::factory()->create([ + 'name' => 'bend simple orange', + ]); + Service::factory()->create([ + 'name' => 'pigs sake wooden', + ]); + Service::factory()->create([ + 'name' => 'exam punt pencil', + ]); + Service::factory()->create([ + 'name' => 'shadow relay kinks', + ]); sleep(1); diff --git a/tests/Unit/Models/ReportTest.php b/tests/Unit/Models/ReportTest.php index 112db693e..9929f28e9 100644 --- a/tests/Unit/Models/ReportTest.php +++ b/tests/Unit/Models/ReportTest.php @@ -2,26 +2,26 @@ namespace Tests\Unit\Models; +use Tests\TestCase; +use App\Models\Role; +use App\Models\User; use App\Models\Audit; +use App\Models\Report; +use App\Models\Service; use App\Models\Location; -use App\Models\Organisation; -use App\Models\PageFeedback; use App\Models\Referral; -use App\Models\Report; use App\Models\ReportType; -use App\Models\Role; +use App\Support\Coordinate; +use Carbon\CarbonImmutable; +use App\Models\Organisation; +use App\Models\PageFeedback; use App\Models\SearchHistory; -use App\Models\Service; -use App\Models\ServiceLocation; use App\Models\UpdateRequest; -use App\Models\User; -use App\Search\ElasticSearch\ElasticsearchQueryBuilder; -use App\Search\ElasticSearch\ServiceQueryBuilder; +use App\Models\ServiceLocation; use App\Search\SearchCriteriaQuery; -use App\Support\Coordinate; -use Carbon\CarbonImmutable; use Illuminate\Support\Facades\Date; -use Tests\TestCase; +use App\Search\ElasticSearch\ServiceQueryBuilder; +use App\Search\ElasticSearch\ElasticsearchQueryBuilder; class ReportTest extends TestCase { @@ -807,7 +807,7 @@ public function test_search_histories_export_works(): void // Assert created search history exported. $this->assertEquals([ $searchHistory->created_at->toDateString(), - 'Health and Social', + 'health and social', 1, '', ], $csv[1]); @@ -849,7 +849,7 @@ public function test_search_histories_export_works_with_location(): void // Assert created search history exported. $this->assertEquals([ $searchHistory->created_at->toDateString(), - 'Health and Social', + 'health and social', 1, '0,0', ], $csv[1]); @@ -898,7 +898,7 @@ public function test_search_histories_export_works_with_date_range(): void // Assert created search history exported. $this->assertEquals([ $searchHistoryWithinRange->created_at->toDateString(), - 'Health and Social', + 'health and social', 1, '', ], $csv[1]); From 829b1b138e7a56c077e62739c55e23cc9aaef807 Mon Sep 17 00:00:00 2001 From: Stuart Laverick Date: Mon, 11 Dec 2023 11:08:57 +0000 Subject: [PATCH 14/14] Allow for fuzziness in tests --- tests/Feature/Search/ServiceTest.php | 83 ++++++++++++---------------- 1 file changed, 36 insertions(+), 47 deletions(-) diff --git a/tests/Feature/Search/ServiceTest.php b/tests/Feature/Search/ServiceTest.php index e1790c4a9..99fb4e1b0 100644 --- a/tests/Feature/Search/ServiceTest.php +++ b/tests/Feature/Search/ServiceTest.php @@ -103,21 +103,10 @@ public function test_guest_can_search(): void public function test_query_matches_service_name(): void { - $service1 = Service::factory()->create([ + $service = Service::factory()->create([ 'name' => 'hunt remind voice', ]); - Service::factory()->create([ - 'name' => 'bend simple orange', - ]); - Service::factory()->create([ - 'name' => 'pigs sake wooden', - ]); - Service::factory()->create([ - 'name' => 'exam punt pencil', - ]); - Service::factory()->create([ - 'name' => 'shadow relay kinks', - ]); + Service::factory()->count(5)->create(); sleep(1); @@ -126,10 +115,10 @@ public function test_query_matches_service_name(): void ]); $response->assertStatus(Response::HTTP_OK); - $response->assertJsonCount(1, 'data'); $response->assertJsonFragment([ - 'id' => $service1->id, + 'id' => $service->id, ]); + $this->assertEquals($service->id, $this->getResponseContent($response)['data'][0]['id']); // Fuzzy match $response = $this->json('POST', '/core/v1/search', [ @@ -137,16 +126,16 @@ public function test_query_matches_service_name(): void ]); $response->assertStatus(Response::HTTP_OK); - $response->assertJsonCount(1, 'data'); $response->assertJsonFragment([ - 'id' => $service1->id, + 'id' => $service->id, ]); + $this->assertEquals($service->id, $this->getResponseContent($response)['data'][0]['id']); } public function test_query_matches_service_description(): void { - $service1 = Service::factory()->create(['description' => $this->textContainingPhrases(['rods game sleeps'], 500)]); - $service2 = Service::factory()->create(); + $service = Service::factory()->create(['description' => $this->textContainingPhrases(['rods game sleeps'], 500)]); + Service::factory()->count(5)->create(); sleep(1); @@ -155,10 +144,10 @@ public function test_query_matches_service_description(): void ]); $response->assertStatus(Response::HTTP_OK); - $response->assertJsonCount(1, 'data'); $response->assertJsonFragment([ - 'id' => $service1->id, + 'id' => $service->id, ]); + $this->assertEquals($service->id, $this->getResponseContent($response)['data'][0]['id']); // Fuzzy match $response = $this->json('POST', '/core/v1/search', [ @@ -166,10 +155,10 @@ public function test_query_matches_service_description(): void ]); $response->assertStatus(Response::HTTP_OK); - $response->assertJsonCount(1, 'data'); $response->assertJsonFragment([ - 'id' => $service1->id, + 'id' => $service->id, ]); + $this->assertEquals($service->id, $this->getResponseContent($response)['data'][0]['id']); } public function test_query_matches_taxonomy_name(): void @@ -199,8 +188,8 @@ public function test_query_matches_taxonomy_name(): void ]); $response->assertStatus(Response::HTTP_OK); - $response->assertJsonCount(1, 'data'); $response->assertJsonFragment(['id' => $service1->id]); + $this->assertEquals($service1->id, $this->getResponseContent($response)['data'][0]['id']); // Fuzzy $response = $this->json('POST', '/core/v1/search', [ @@ -208,8 +197,8 @@ public function test_query_matches_taxonomy_name(): void ]); $response->assertStatus(Response::HTTP_OK); - $response->assertJsonCount(1, 'data'); $response->assertJsonFragment(['id' => $service1->id]); + $this->assertEquals($service1->id, $this->getResponseContent($response)['data'][0]['id']); } public function test_query_matches_partial_taxonomy_name(): void @@ -239,8 +228,8 @@ public function test_query_matches_partial_taxonomy_name(): void ]); $response->assertStatus(Response::HTTP_OK); - $response->assertJsonCount(1, 'data'); $response->assertJsonFragment(['id' => $service1->id]); + $this->assertEquals($service1->id, $this->getResponseContent($response)['data'][0]['id']); // Fuzzy $response = $this->json('POST', '/core/v1/search', [ @@ -248,16 +237,16 @@ public function test_query_matches_partial_taxonomy_name(): void ]); $response->assertStatus(Response::HTTP_OK); - $response->assertJsonCount(1, 'data'); $response->assertJsonFragment(['id' => $service1->id]); + $this->assertEquals($service1->id, $this->getResponseContent($response)['data'][0]['id']); } public function test_query_matches_organisation_name(): void { $organisation1 = Organisation::factory()->create(['name' => 'Riches Resist Envy']); $organisation2 = Organisation::factory()->create(); - $service1 = Service::factory()->create(['organisation_id' => $organisation1->id]); - $service2 = Service::factory()->create(['organisation_id' => $organisation2->id]); + $service = Service::factory()->create(['organisation_id' => $organisation1->id]); + Service::factory()->count(5)->create(['organisation_id' => $organisation2->id]); sleep(1); @@ -266,10 +255,10 @@ public function test_query_matches_organisation_name(): void ]); $response->assertStatus(Response::HTTP_OK); - $response->assertJsonCount(1, 'data'); $response->assertJsonFragment([ - 'id' => $service1->id, + 'id' => $service->id, ]); + $this->assertEquals($service->id, $this->getResponseContent($response)['data'][0]['id']); // Fuzzy $response = $this->json('POST', '/core/v1/search', [ @@ -277,8 +266,8 @@ public function test_query_matches_organisation_name(): void ]); $response->assertStatus(Response::HTTP_OK); - $response->assertJsonCount(1, 'data'); - $response->assertJsonFragment(['id' => $service1->id]); + $response->assertJsonFragment(['id' => $service->id]); + $this->assertEquals($service->id, $this->getResponseContent($response)['data'][0]['id']); } public function test_query_ranks_service_name_equivalent_to_organisation_name(): void @@ -352,11 +341,11 @@ public function test_query_ranks_perfect_match_above_fuzzy_match(): void public function test_query_matches_service_intro(): void { - $service1 = Service::factory()->create([ + $service = Service::factory()->create([ 'intro' => $this->textContainingPhrases(['glaze mild chats']), ]); - $service2 = Service::factory()->create(); + Service::factory()->count(5)->create(); sleep(1); @@ -365,10 +354,10 @@ public function test_query_matches_service_intro(): void ]); $response->assertStatus(Response::HTTP_OK); - $response->assertJsonCount(1, 'data'); $response->assertJsonFragment([ - 'id' => $service1->id, + 'id' => $service->id, ]); + $this->assertEquals($service->id, $this->getResponseContent($response)['data'][0]['id']); // Fuzzy $response = $this->json('POST', '/core/v1/search', [ @@ -376,10 +365,10 @@ public function test_query_matches_service_intro(): void ]); $response->assertStatus(Response::HTTP_OK); - $response->assertJsonCount(1, 'data'); $response->assertJsonFragment([ - 'id' => $service1->id, + 'id' => $service->id, ]); + $this->assertEquals($service->id, $this->getResponseContent($response)['data'][0]['id']); } public function test_query_matches_single_word_from_service_description(): void @@ -400,11 +389,11 @@ public function test_query_matches_single_word_from_service_description(): void public function test_query_matches_multiple_words_from_service_description(): void { - $service1 = Service::factory()->create([ + $service = Service::factory()->create([ 'description' => $this->textContainingPhrases(['hurls star humans']), ]); - $service2 = Service::factory()->create(); + Service::factory()->create(); sleep(1); @@ -413,8 +402,8 @@ public function test_query_matches_multiple_words_from_service_description(): vo ]); $response->assertStatus(Response::HTTP_OK); - $response->assertJsonCount(1, 'data'); - $response->assertJsonFragment(['id' => $service1->id]); + $response->assertJsonFragment(['id' => $service->id]); + $this->assertEquals($service->id, $this->getResponseContent($response)['data'][0]['id']); // Fuzzy $response = $this->json('POST', '/core/v1/search', [ @@ -422,8 +411,8 @@ public function test_query_matches_multiple_words_from_service_description(): vo ]); $response->assertStatus(Response::HTTP_OK); - $response->assertJsonCount(1, 'data'); - $response->assertJsonFragment(['id' => $service1->id]); + $response->assertJsonFragment(['id' => $service->id]); + $this->assertEquals($service->id, $this->getResponseContent($response)['data'][0]['id']); } public function test_filter_by_wait_time_works(): void @@ -1302,8 +1291,8 @@ public function test_ranking_for_eligibility_higher_for_single_matching_eligibil $this->assertEquals(4, count($data)); $this->assertTrue(in_array($serviceA->id, [$data[0]['id'], $data[1]['id']])); - $this->assertTrue(in_array($serviceB->id, [$data[1]['id'], $data[2]['id']])); - $this->assertTrue(in_array($serviceC->id, [$data[1]['id'], $data[2]['id']])); + $this->assertTrue(in_array($serviceB->id, [$data[0]['id'], $data[1]['id'], $data[2]['id']])); + $this->assertTrue(in_array($serviceC->id, [$data[1]['id'], $data[2]['id'], $data[3]['id']])); $this->assertTrue(in_array($serviceD->id, [$data[2]['id'], $data[3]['id']])); }