From 3259173066173bf6f127715af25f6eb5d2c0c3fa Mon Sep 17 00:00:00 2001 From: mchev Date: Wed, 5 Jun 2024 11:33:52 +0200 Subject: [PATCH 01/50] Laravel 11 (#84) * Convert string references to `::class` PHP 5.5.9 adds the new static `class` property which provides the fully qualified class name. This is preferred over using strings for class names since the `class` property references are checked by PHP. * Use Faker methods Accessing Faker properties was deprecated in Faker 1.14. * Convert route options to fluent methods Laravel 8 adopts the tuple syntax for controller actions. Since the old options array is incompatible with this syntax, Shift converted them to use modern, fluent methods. * Adopt class based routes * Remove default `app` files * Shift core files * Streamline config files * Set new `ENV` variables * Default new `bootstrap/app.php` * Re-register HTTP middleware * Consolidate service providers * Re-register service providers * Re-register routes * Re-register scheduled commands * Bump Composer dependencies * Use `` tags for configuration `` tags have a lower precedence than system environment variables making it easier to overwrite PHPUnit configuration values in additional environments, such a CI. Review this blog post for more details on configuration precedence when testing Laravel: https://jasonmccreary.me/articles/laravel-testing-configuration-precedence/ * Adopt anonymous migrations * Rename `password_resets` table * Convert `$casts` property to method * Adopt Laravel type hints * Mark base controller as `abstract` * Remove `CreatesApplication` testing trait * Shift cleanup * Fix shift first issues * Updating Rules for laravel 11, sanctum config and pint * Fix Carbon issue on dashboard * Temporary fix for tests while migration is issue fixed on laravel side * Carbon needs numerical values, not strings * Minimum php version * Fix domain installation step not fetching the correct company_id * Fix Role Policy wasn't properly registered --------- --- .env.example | 18 +- app/Bouncer/Scopes/DefaultScope.php | 2 +- app/Console/Commands/CheckEstimateStatus.php | 6 +- app/Console/Commands/CheckInvoiceStatus.php | 6 +- .../Commands/CreateTemplateCommand.php | 6 +- app/Console/Commands/InstallModuleCommand.php | 8 +- app/Console/Commands/ResetApp.php | 4 +- app/Console/Commands/UpdateCommand.php | 8 +- app/Console/Kernel.php | 60 - app/Events/ModuleDisabledEvent.php | 2 +- app/Events/ModuleEnabledEvent.php | 2 +- app/Events/ModuleInstalledEvent.php | 2 +- app/Events/UpdateFinished.php | 2 +- app/Exceptions/Handler.php | 51 - app/Generators/CustomPathGenerator.php | 8 +- app/Http/Controllers/AppVersionController.php | 4 +- app/Http/Controllers/Controller.php | 4 +- .../Admin/Auth/ConfirmPasswordController.php | 8 +- .../Admin/Auth/ForgotPasswordController.php | 4 +- .../V1/Admin/Auth/LoginController.php | 8 +- .../V1/Admin/Auth/RegisterController.php | 10 +- .../V1/Admin/Auth/ResetPasswordController.php | 8 +- .../V1/Admin/Auth/VerificationController.php | 8 +- .../V1/Admin/Backup/ApiController.php | 4 +- .../V1/Admin/Backup/BackupsController.php | 6 +- .../Admin/Backup/DownloadBackupController.php | 4 +- .../V1/Admin/Company/CompaniesController.php | 12 +- .../V1/Admin/Company/CompanyController.php | 8 +- .../V1/Admin/Config/FiscalYearsController.php | 4 +- .../V1/Admin/Config/LanguagesController.php | 4 +- .../Config/RetrospectiveEditsController.php | 4 +- .../CustomField/CustomFieldsController.php | 10 +- .../Customer/CustomerStatsController.php | 31 +- .../V1/Admin/Customer/CustomersController.php | 12 +- .../Admin/Dashboard/DashboardController.php | 33 +- .../ChangeEstimateStatusController.php | 6 +- .../Estimate/ConvertEstimateController.php | 18 +- .../Estimate/EstimateTemplatesController.php | 6 +- .../V1/Admin/Estimate/EstimatesController.php | 14 +- .../Admin/Estimate/SendEstimateController.php | 8 +- .../SendEstimatePreviewController.php | 8 +- .../ExchangeRateProviderController.php | 10 +- .../GetActiveProviderController.php | 8 +- .../GetExchangeRateController.php | 14 +- .../GetSupportedCurrenciesController.php | 8 +- .../GetUsedCurrenciesController.php | 6 +- .../Expense/ExpenseCategoriesController.php | 14 +- .../V1/Admin/Expense/ExpensesController.php | 12 +- .../Admin/Expense/ShowReceiptController.php | 6 +- .../Admin/Expense/UploadReceiptController.php | 10 +- .../V1/Admin/General/BootstrapController.php | 20 +- .../General/BulkExchangeRateController.php | 16 +- .../V1/Admin/General/ConfigController.php | 4 +- .../V1/Admin/General/CountriesController.php | 8 +- .../V1/Admin/General/CurrenciesController.php | 8 +- .../Admin/General/DateFormatsController.php | 6 +- .../GetAllUsedCurrenciesController.php | 14 +- .../V1/Admin/General/NextNumberController.php | 12 +- .../V1/Admin/General/NotesController.php | 10 +- .../General/NumberPlaceholdersController.php | 6 +- .../V1/Admin/General/SearchController.php | 8 +- .../Admin/General/SearchUsersController.php | 6 +- .../V1/Admin/General/TimezonesController.php | 6 +- .../Invoice/ChangeInvoiceStatusController.php | 6 +- .../Admin/Invoice/CloneInvoiceController.php | 16 +- .../Invoice/InvoiceTemplatesController.php | 6 +- .../V1/Admin/Invoice/InvoicesController.php | 14 +- .../Admin/Invoice/SendInvoiceController.php | 8 +- .../Invoice/SendInvoicePreviewController.php | 8 +- .../V1/Admin/Item/ItemsController.php | 18 +- .../V1/Admin/Item/UnitsController.php | 10 +- .../V1/Admin/Mobile/AuthController.php | 8 +- .../V1/Admin/Modules/ApiTokenController.php | 6 +- .../CompleteModuleInstallationController.php | 6 +- .../V1/Admin/Modules/CopyModuleController.php | 6 +- .../Admin/Modules/DisableModuleController.php | 8 +- .../Modules/DownloadModuleController.php | 6 +- .../Admin/Modules/EnableModuleController.php | 8 +- .../V1/Admin/Modules/ModuleController.php | 8 +- .../V1/Admin/Modules/ModulesController.php | 6 +- .../Admin/Modules/UnzipModuleController.php | 8 +- .../Admin/Modules/UploadModuleController.php | 8 +- .../Payment/PaymentMethodsController.php | 10 +- .../V1/Admin/Payment/PaymentsController.php | 12 +- .../Admin/Payment/SendPaymentController.php | 8 +- .../Payment/SendPaymentPreviewController.php | 6 +- .../RecurringInvoiceController.php | 12 +- .../RecurringInvoiceFrequencyController.php | 6 +- .../Report/CustomerSalesReportController.php | 12 +- .../Admin/Report/ExpensesReportController.php | 12 +- .../Report/ItemSalesReportController.php | 12 +- .../Report/ProfitLossReportController.php | 14 +- .../Report/TaxSummaryReportController.php | 12 +- .../V1/Admin/Role/AbilitiesController.php | 4 +- .../V1/Admin/Role/RolesController.php | 10 +- .../V1/Admin/Settings/CompanyController.php | 18 +- ...anyCurrencyCheckTransactionsController.php | 6 +- .../V1/Admin/Settings/DiskController.php | 14 +- .../GetCompanyMailConfigurationController.php | 4 +- .../Settings/GetCompanySettingsController.php | 8 +- .../Admin/Settings/GetSettingsController.php | 8 +- .../Settings/GetUserSettingsController.php | 6 +- .../Settings/MailConfigurationController.php | 12 +- .../V1/Admin/Settings/TaxTypesController.php | 10 +- .../UpdateCompanySettingsController.php | 10 +- .../Settings/UpdateSettingsController.php | 8 +- .../Settings/UpdateUserSettingsController.php | 6 +- .../Admin/Update/CheckVersionController.php | 8 +- .../V1/Admin/Update/CopyFilesController.php | 6 +- .../V1/Admin/Update/DeleteFilesController.php | 6 +- .../Admin/Update/DownloadUpdateController.php | 6 +- .../Admin/Update/FinishUpdateController.php | 6 +- .../Admin/Update/MigrateUpdateController.php | 6 +- .../V1/Admin/Update/UnzipUpdateController.php | 6 +- .../V1/Admin/Update/UpdateController.php | 8 +- .../V1/Admin/Users/UsersController.php | 12 +- .../Auth/ForgotPasswordController.php | 4 +- .../V1/Customer/Auth/LoginController.php | 10 +- .../Customer/Auth/ResetPasswordController.php | 6 +- .../Estimate/AcceptEstimateController.php | 10 +- .../Customer/Estimate/EstimatesController.php | 10 +- .../V1/Customer/EstimatePdfController.php | 16 +- .../Customer/Expense/ExpensesController.php | 12 +- .../Customer/General/BootstrapController.php | 10 +- .../Customer/General/DashboardController.php | 10 +- .../V1/Customer/General/ProfileController.php | 10 +- .../Customer/Invoice/InvoicesController.php | 10 +- .../V1/Customer/InvoicePdfController.php | 16 +- .../Payment/PaymentMethodController.php | 10 +- .../Customer/Payment/PaymentsController.php | 12 +- .../V1/Customer/PaymentPdfController.php | 10 +- .../V1/Installation/AppDomainController.php | 8 +- .../DatabaseConfigurationController.php | 8 +- .../FilePermissionsController.php | 6 +- .../V1/Installation/FinishController.php | 6 +- .../V1/Installation/LoginController.php | 6 +- .../OnboardingWizardController.php | 8 +- .../Installation/RequirementsController.php | 6 +- .../V1/Modules/ScriptController.php | 6 +- .../V1/Modules/StyleController.php | 6 +- .../V1/PDF/DownloadInvoicePdfController.php | 6 +- .../V1/PDF/DownloadPaymentPdfController.php | 6 +- .../V1/PDF/DownloadReceiptController.php | 6 +- .../V1/PDF/EstimatePdfController.php | 6 +- .../V1/PDF/InvoicePdfController.php | 6 +- .../V1/PDF/PaymentPdfController.php | 6 +- .../V1/Webhook/CronJobController.php | 4 +- app/Http/Kernel.php | 92 - app/Http/Middleware/AdminMiddleware.php | 7 +- app/Http/Middleware/Authenticate.php | 2 +- app/Http/Middleware/CompanyMiddleware.php | 5 +- app/Http/Middleware/ConfigMiddleware.php | 11 +- app/Http/Middleware/CronJobMiddleware.php | 5 +- .../Middleware/CustomerPortalMiddleware.php | 5 +- app/Http/Middleware/EncryptCookies.php | 2 +- .../Middleware/InstallationMiddleware.php | 11 +- app/Http/Middleware/PdfMiddleware.php | 5 +- .../Middleware/RedirectIfAuthenticated.php | 4 +- app/Http/Middleware/RedirectIfInstalled.php | 11 +- .../Middleware/RedirectIfUnauthorized.php | 5 +- app/Http/Middleware/ScopeBouncer.php | 7 +- app/Http/Middleware/TrimStrings.php | 2 +- app/Http/Middleware/TrustProxies.php | 2 +- app/Http/Middleware/VerifyCsrfToken.php | 2 +- app/Http/Requests/AvatarRequest.php | 12 +- app/Http/Requests/BulkExchangeRateRequest.php | 10 +- app/Http/Requests/CompaniesRequest.php | 10 +- app/Http/Requests/CompanyLogoRequest.php | 12 +- app/Http/Requests/CompanyRequest.php | 10 +- app/Http/Requests/CompanySettingRequest.php | 10 +- app/Http/Requests/CustomFieldRequest.php | 10 +- .../Customer/CustomerLoginRequest.php | 10 +- .../Customer/CustomerProfileRequest.php | 12 +- .../CustomerEstimateStatusRequest.php | 10 +- app/Http/Requests/CustomerRequest.php | 12 +- .../Requests/DatabaseEnvironmentRequest.php | 10 +- app/Http/Requests/DeleteCustomersRequest.php | 10 +- app/Http/Requests/DeleteEstimatesRequest.php | 10 +- app/Http/Requests/DeleteExpensesRequest.php | 10 +- app/Http/Requests/DeleteInvoiceRequest.php | 14 +- app/Http/Requests/DeleteItemsRequest.php | 14 +- app/Http/Requests/DeletePaymentsRequest.php | 10 +- app/Http/Requests/DeleteUserRequest.php | 10 +- app/Http/Requests/DiskEnvironmentRequest.php | 10 +- .../Requests/DomainEnvironmentRequest.php | 10 +- app/Http/Requests/EstimatesRequest.php | 16 +- app/Http/Requests/ExchangeRateLogRequest.php | 12 +- .../Requests/ExchangeRateProviderRequest.php | 10 +- app/Http/Requests/ExpenseCategoryRequest.php | 10 +- app/Http/Requests/ExpenseRequest.php | 12 +- app/Http/Requests/GetSettingRequest.php | 10 +- app/Http/Requests/GetSettingsRequest.php | 10 +- app/Http/Requests/InvoicesRequest.php | 16 +- app/Http/Requests/ItemsRequest.php | 10 +- app/Http/Requests/LoginRequest.php | 10 +- app/Http/Requests/MailEnvironmentRequest.php | 10 +- app/Http/Requests/NotesRequest.php | 10 +- app/Http/Requests/PaymentMethodRequest.php | 12 +- app/Http/Requests/PaymentRequest.php | 14 +- app/Http/Requests/ProfileRequest.php | 10 +- app/Http/Requests/RecurringInvoiceRequest.php | 16 +- app/Http/Requests/Request.php | 2 +- app/Http/Requests/RoleRequest.php | 10 +- app/Http/Requests/SendEstimatesRequest.php | 10 +- app/Http/Requests/SendInvoiceRequest.php | 10 +- app/Http/Requests/SendPaymentRequest.php | 10 +- app/Http/Requests/SettingKeyRequest.php | 10 +- app/Http/Requests/SettingRequest.php | 10 +- app/Http/Requests/TaxTypeRequest.php | 12 +- app/Http/Requests/UnitRequest.php | 10 +- app/Http/Requests/UnzipUpdateRequest.php | 10 +- app/Http/Requests/UpdateSettingsRequest.php | 10 +- .../Requests/UploadExpenseReceiptRequest.php | 12 +- app/Http/Requests/UploadModuleRequest.php | 10 +- app/Http/Requests/UserRequest.php | 10 +- app/Http/Resources/AbilityCollection.php | 5 +- app/Http/Resources/AbilityResource.php | 5 +- app/Http/Resources/AddressCollection.php | 5 +- app/Http/Resources/AddressResource.php | 5 +- app/Http/Resources/CompanyCollection.php | 5 +- app/Http/Resources/CompanyResource.php | 5 +- app/Http/Resources/CountryCollection.php | 5 +- app/Http/Resources/CountryResource.php | 5 +- app/Http/Resources/CurrencyCollection.php | 5 +- app/Http/Resources/CurrencyResource.php | 5 +- app/Http/Resources/CustomFieldCollection.php | 5 +- app/Http/Resources/CustomFieldResource.php | 5 +- .../Resources/CustomFieldValueCollection.php | 5 +- .../Resources/CustomFieldValueResource.php | 7 +- .../Resources/Customer/AddressCollection.php | 5 +- .../Resources/Customer/AddressResource.php | 5 +- .../Resources/Customer/CompanyResource.php | 5 +- .../Resources/Customer/CountryCollection.php | 5 +- .../Resources/Customer/CountryResource.php | 5 +- .../Resources/Customer/CurrencyCollection.php | 5 +- .../Resources/Customer/CurrencyResource.php | 5 +- .../Customer/CustomFieldCollection.php | 5 +- .../Customer/CustomFieldResource.php | 5 +- .../Customer/CustomFieldValueCollection.php | 5 +- .../Customer/CustomFieldValueResource.php | 5 +- .../Resources/Customer/CustomerCollection.php | 5 +- .../Resources/Customer/CustomerResource.php | 5 +- .../Resources/Customer/EstimateCollection.php | 5 +- .../Customer/EstimateItemCollection.php | 5 +- .../Customer/EstimateItemResource.php | 5 +- .../Resources/Customer/EstimateResource.php | 5 +- .../Customer/ExpenseCategoryCollection.php | 5 +- .../Customer/ExpenseCategoryResource.php | 5 +- .../Resources/Customer/ExpenseCollection.php | 5 +- .../Resources/Customer/ExpenseResource.php | 5 +- .../Resources/Customer/InvoiceCollection.php | 5 +- .../Customer/InvoiceItemCollection.php | 5 +- .../Customer/InvoiceItemResource.php | 5 +- .../Resources/Customer/InvoiceResource.php | 5 +- .../Resources/Customer/ItemCollection.php | 5 +- .../Resources/Customer/PaymentCollection.php | 5 +- .../Customer/PaymentMethodCollection.php | 5 +- .../Customer/PaymentMethodResource.php | 5 +- .../Resources/Customer/PaymentResource.php | 5 +- .../Customer/RecurringInvoiceCollection.php | 5 +- .../Customer/RecurringInvoiceResource.php | 5 +- app/Http/Resources/Customer/TaxCollection.php | 5 +- app/Http/Resources/Customer/TaxResource.php | 5 +- .../Resources/Customer/TaxTypeCollection.php | 5 +- .../Resources/Customer/TaxTypeResource.php | 5 +- .../Customer/TransactionCollection.php | 4 +- .../Customer/TransactionResource.php | 4 +- .../Resources/Customer/UserCollection.php | 5 +- app/Http/Resources/Customer/UserResource.php | 5 +- app/Http/Resources/CustomerCollection.php | 5 +- app/Http/Resources/CustomerResource.php | 5 +- app/Http/Resources/EstimateCollection.php | 5 +- app/Http/Resources/EstimateItemCollection.php | 5 +- app/Http/Resources/EstimateItemResource.php | 5 +- app/Http/Resources/EstimateResource.php | 5 +- .../Resources/ExchangeRateLogCollection.php | 5 +- .../Resources/ExchangeRateLogResource.php | 5 +- .../ExchangeRateProviderCollection.php | 5 +- .../ExchangeRateProviderResource.php | 5 +- .../Resources/ExpenseCategoryCollection.php | 5 +- .../Resources/ExpenseCategoryResource.php | 5 +- app/Http/Resources/ExpenseCollection.php | 5 +- app/Http/Resources/ExpenseResource.php | 5 +- app/Http/Resources/FileDiskCollection.php | 5 +- app/Http/Resources/FileDiskResource.php | 5 +- app/Http/Resources/InvoiceCollection.php | 5 +- app/Http/Resources/InvoiceItemCollection.php | 5 +- app/Http/Resources/InvoiceItemResource.php | 5 +- app/Http/Resources/InvoiceResource.php | 5 +- app/Http/Resources/ItemCollection.php | 5 +- app/Http/Resources/ItemResource.php | 5 +- app/Http/Resources/ModuleCollection.php | 4 +- app/Http/Resources/ModuleResource.php | 8 +- app/Http/Resources/NoteCollection.php | 5 +- app/Http/Resources/NoteResource.php | 5 +- app/Http/Resources/PaymentCollection.php | 5 +- .../Resources/PaymentMethodCollection.php | 5 +- app/Http/Resources/PaymentMethodResource.php | 5 +- app/Http/Resources/PaymentResource.php | 5 +- .../Resources/RecurringInvoiceCollection.php | 5 +- .../Resources/RecurringInvoiceResource.php | 5 +- app/Http/Resources/RoleCollection.php | 5 +- app/Http/Resources/RoleResource.php | 7 +- app/Http/Resources/TaxCollection.php | 5 +- app/Http/Resources/TaxResource.php | 5 +- app/Http/Resources/TaxTypeCollection.php | 5 +- app/Http/Resources/TaxTypeResource.php | 5 +- app/Http/Resources/TransactionCollection.php | 4 +- app/Http/Resources/TransactionResource.php | 4 +- app/Http/Resources/UnitCollection.php | 5 +- app/Http/Resources/UnitResource.php | 5 +- app/Http/Resources/UserCollection.php | 5 +- app/Http/Resources/UserResource.php | 5 +- app/Jobs/CreateBackupJob.php | 8 +- app/Jobs/GenerateEstimatePdfJob.php | 6 +- app/Jobs/GenerateInvoicePdfJob.php | 6 +- app/Jobs/GeneratePaymentPdfJob.php | 6 +- app/Listeners/Updates/Listener.php | 2 +- app/Mail/EstimateViewedMail.php | 2 +- app/Mail/InvoiceViewedMail.php | 2 +- app/Mail/SendEstimateMail.php | 6 +- app/Mail/SendInvoiceMail.php | 6 +- app/Mail/SendPaymentMail.php | 6 +- app/Mail/TestMail.php | 2 +- app/Models/Address.php | 11 +- app/Models/Company.php | 44 +- app/Models/CompanySetting.php | 5 +- app/Models/Country.php | 5 +- app/Models/Currency.php | 2 +- app/Models/CustomField.php | 17 +- app/Models/CustomFieldValue.php | 10 +- app/Models/Customer.php | 40 +- app/Models/EmailLog.php | 5 +- app/Models/Estimate.php | 52 +- app/Models/EstimateItem.php | 31 +- app/Models/ExchangeRateLog.php | 16 +- app/Models/ExchangeRateProvider.php | 20 +- app/Models/Expense.php | 30 +- app/Models/ExpenseCategory.php | 8 +- app/Models/FileDisk.php | 13 +- app/Models/Invoice.php | 56 +- app/Models/InvoiceItem.php | 33 +- app/Models/Item.php | 31 +- app/Models/Module.php | 2 +- app/Models/Note.php | 5 +- app/Models/Payment.php | 43 +- app/Models/PaymentMethod.php | 21 +- app/Models/RecurringInvoice.php | 35 +- app/Models/Setting.php | 2 +- app/Models/Tax.php | 30 +- app/Models/TaxType.php | 19 +- app/Models/Transaction.php | 10 +- app/Models/Unit.php | 8 +- app/Models/User.php | 47 +- app/Models/UserSetting.php | 5 +- .../CustomerMailResetPasswordNotification.php | 11 +- .../MailResetPasswordNotification.php | 11 +- app/Policies/CompanyPolicy.php | 10 +- app/Policies/CustomFieldPolicy.php | 20 +- app/Policies/CustomerPolicy.php | 20 +- app/Policies/DashboardPolicy.php | 8 +- app/Policies/EstimatePolicy.php | 22 +- app/Policies/ExchangeRateProviderPolicy.php | 20 +- app/Policies/ExpenseCategoryPolicy.php | 22 +- app/Policies/ExpensePolicy.php | 20 +- app/Policies/InvoicePolicy.php | 22 +- app/Policies/ItemPolicy.php | 20 +- app/Policies/ModulesPolicy.php | 4 +- app/Policies/NotePolicy.php | 6 +- app/Policies/OwnerPolicy.php | 4 +- app/Policies/PaymentMethodPolicy.php | 22 +- app/Policies/PaymentPolicy.php | 20 +- app/Policies/RecurringInvoicePolicy.php | 20 +- app/Policies/ReportPolicy.php | 6 +- app/Policies/RolePolicy.php | 74 +- app/Policies/SettingsPolicy.php | 6 +- app/Policies/TaxTypePolicy.php | 20 +- app/Policies/UnitPolicy.php | 22 +- app/Policies/UserPolicy.php | 18 +- app/Providers/AppServiceProvider.php | 91 +- app/Providers/AuthServiceProvider.php | 90 - app/Providers/BroadcastServiceProvider.php | 21 - app/Providers/DropboxServiceProvider.php | 10 +- app/Providers/EventServiceProvider.php | 37 - app/Providers/RouteServiceProvider.php | 21 +- app/Providers/ViewServiceProvider.php | 10 +- app/Rules/Backup/BackupDisk.php | 30 +- app/Rules/Backup/FilesystemDisks.php | 33 +- app/Rules/Backup/PathToZip.php | 31 +- app/Rules/Base64Mime.php | 47 +- app/Rules/RelationNotExist.php | 28 +- app/Services/Module/Module.php | 2 +- app/Services/Module/ModuleFacade.php | 2 +- app/Services/SerialNumberFormatter.php | 6 +- app/Space/DateFormatter.php | 2 +- app/Space/EnvironmentManager.php | 10 +- app/Space/FilePermissionChecker.php | 2 +- app/Space/InstallUtils.php | 2 +- app/Space/ModuleInstaller.php | 12 +- app/Space/RequirementsChecker.php | 2 +- app/Space/SiteApi.php | 4 +- app/Space/TimeZones.php | 2 +- app/Space/Updater.php | 4 +- app/Space/helpers.php | 10 +- app/Traits/ExchangeRateProvidersTrait.php | 2 +- app/Traits/GeneratesMenuTrait.php | 2 +- app/Traits/GeneratesPdfTrait.php | 8 +- app/Traits/HasCustomFieldsTrait.php | 9 +- artisan | 50 +- bootstrap/app.php | 110 +- bootstrap/providers.php | 8 + composer.json | 172 +- composer.lock | 2331 +++++++---------- config/abilities.php | 22 +- config/app.php | 225 +- config/auth.php | 99 +- config/broadcasting.php | 59 - config/cache.php | 93 - config/cors.php | 34 - config/database.php | 76 +- config/filesystems.php | 66 - config/hashids.php | 12 +- config/hashing.php | 45 - config/installer.php | 2 +- config/invoiceshelf.php | 24 +- config/logging.php | 80 - config/mail.php | 127 +- config/media-library.php | 2 +- config/queue.php | 85 - config/sanctum.php | 5 +- config/services.php | 21 +- config/session.php | 199 -- config/view.php | 33 - database/factories/AddressFactory.php | 26 +- database/factories/CompanyFactory.php | 10 +- database/factories/CompanySettingFactory.php | 12 +- database/factories/CustomFieldFactory.php | 14 +- .../factories/CustomFieldValueFactory.php | 14 +- database/factories/CustomerFactory.php | 24 +- database/factories/EmailLogFactory.php | 20 +- database/factories/EstimateFactory.php | 32 +- database/factories/EstimateItemFactory.php | 28 +- database/factories/ExchangeRateLogFactory.php | 12 +- .../factories/ExchangeRateProviderFactory.php | 8 +- database/factories/ExpenseCategoryFactory.php | 12 +- database/factories/ExpenseFactory.php | 22 +- database/factories/FileDiskFactory.php | 8 +- database/factories/InvoiceFactory.php | 36 +- database/factories/InvoiceItemFactory.php | 28 +- database/factories/ItemFactory.php | 18 +- database/factories/NoteFactory.php | 12 +- database/factories/PaymentFactory.php | 20 +- database/factories/PaymentMethodFactory.php | 10 +- .../factories/RecurringInvoiceFactory.php | 26 +- database/factories/TaxFactory.php | 18 +- database/factories/TaxTypeFactory.php | 12 +- database/factories/UnitFactory.php | 10 +- database/factories/UserFactory.php | 20 +- ...14_10_11_071840_create_companies_table.php | 12 +- ...4_10_11_125754_create_currencies_table.php | 12 +- .../2014_10_12_000000_create_users_table.php | 12 +- ...12_100000_create_password_resets_table.php | 12 +- ...016_05_13_060834_create_settings_table.php | 12 +- .../2017_04_11_064308_create_units_table.php | 12 +- .../2017_04_11_081227_create_items_table.php | 12 +- ...017_04_12_090759_create_invoices_table.php | 12 +- ...4_12_091015_create_invoice_items_table.php | 12 +- ...17_05_05_055609_create_estimates_table.php | 12 +- ...5_05_073927_create_notifications_table.php | 12 +- ...17_05_06_173745_create_countries_table.php | 12 +- ..._02_123501_create_estimate_items_table.php | 12 +- ...33825_create_ expense_categories_table.php | 12 +- ...018_11_02_133956_create_expenses_table.php | 12 +- ...19_08_30_072639_create_addresses_table.php | 12 +- ...02_053155_create_payment_methods_table.php | 12 +- ...019_09_03_135234_create_payments_table.php | 12 +- .../2019_09_14_120124_create_media_table.php | 8 +- ...19_09_21_052540_create_tax_types_table.php | 12 +- .../2019_09_21_052548_create_taxes_table.php | 12 +- ...6_145012_create_company_settings_table.php | 12 +- ...01_create_personal_access_tokens_table.php | 12 +- ...2_01_063235_create_custom_fields_table.php | 12 +- ...63509_create_custom_field_values_table.php | 12 +- ...2_154129_add_user_id_to_expenses_table.php | 12 +- ...0_09_07_103054_create_file_disks_table.php | 12 +- ...9_22_153617_add_columns_to_media_table.php | 12 +- ...9_26_100951_create_user_settings_table.php | 12 +- ..._102913_add_company_to_addresses_table.php | 12 +- .../2020_10_17_074745_create_notes_table.php | 12 +- ...lumn_to_text_on_company_settings_table.php | 12 +- ...3_050206_add_creator_in_invoices_table.php | 12 +- ..._050252_add_creator_in_estimates_table.php | 12 +- ...3_050316_add_creator_in_payments_table.php | 12 +- ...3_050333_add_creator_in_expenses_table.php | 12 +- ...1_23_050406_add_creator_in_items_table.php | 12 +- ...1_23_065815_add_creator_in_users_table.php | 12 +- ...0_11_23_074154_create_email_logs_table.php | 12 +- ...12_02_064933_update_crater_version_320.php | 16 +- ...12_02_090527_update_crater_version_400.php | 32 +- ...ange_description_and_notes_column_type.php | 12 +- ...12_08_133131_update_crater_version_401.php | 14 +- ...17_add_template_name_to_invoices_table.php | 12 +- ...0_add_template_name_to_estimates_table.php | 12 +- ...e_id_from_invoices_and_estimates_table.php | 16 +- ...12_23_061302_update_crater_version_402.php | 14 +- ...12_31_100816_update_crater_version_403.php | 14 +- ...01_22_085644_update_crater_version_404.php | 14 +- ...2021_03_03_155223_add_unit_name_to_pdf.php | 12 +- ...03_23_145012_add_number_length_setting.php | 16 +- ...05_05_063533_update_crater_version_410.php | 14 +- ...06_19_121939_update_crater_version_420.php | 14 +- ...021_06_28_105334_create_bouncer_tables.php | 12 +- ...21_06_28_111647_create_customers_table.php | 12 +- ...010_add_customer_id_to_estimates_table.php | 12 +- ...0133_add_customer_id_to_expenses_table.php | 12 +- ...0208_add_customer_id_to_invoices_table.php | 12 +- ...0231_add_customer_id_to_payments_table.php | 12 +- ...745_add_customer_id_to_addresses_table.php | 12 +- ...62411_update_customer_id_in_all_tables.php | 84 +- ...07_01_060700_create_user_company_table.php | 12 +- ..._100256_change_relationship_of_company.php | 29 +- ...070204_add_owner_id_to_companies_table.php | 16 +- ...7_08_110940_add_company_to_notes_table.php | 16 +- ...063502_create_recurring_invoices_table.php | 12 +- ...recurring_invoice_id_to_invoices_table.php | 12 +- ...ring_invoice_id_to_invoice_items_table.php | 12 +- ...ke_due_date_optional_in_invoices_table.php | 12 +- ...e_expiry_date_optional_estimates_table.php | 12 +- ...8_add_base_columns_into_invoices_table.php | 12 +- ..._base_columns_into_invoice_items_table.php | 12 +- ..._add_base_columns_into_estimates_table.php | 12 +- ...base_columns_into_estimate_items_table.php | 12 +- ...10_add_base_column_into_payments_table.php | 12 +- ...75100_add_base_values_into_taxes_table.php | 12 +- ...53_add_currency_id_into_invoices_table.php | 12 +- ...08_add_currency_id_into_payments_table.php | 12 +- ...80611_add_currency_id_into_items_table.php | 12 +- ...80702_add_currency_id_into_taxes_table.php | 12 +- ...9_add_currency_id_into_estimates_table.php | 12 +- ...103535_create_exchange_rate_logs_table.php | 12 +- ...1413_add_tax_per_item_into_items_table.php | 14 +- ...3244_add_base_columns_to_expense_table.php | 12 +- ...3_create_exchange_rate_providers_table.php | 12 +- .../2021_09_28_130822_add_sequence_column.php | 16 +- ...dd_recurring_invoice_id_to_taxes_table.php | 12 +- ...27_add_payment_method_to_expense_table.php | 12 +- ...alculate_base_values_for_existing_data.php | 20 +- ..._11_23_092111_add_new_company_settings.php | 16 +- ...11_23_093811_update_crater_version_500.php | 14 +- ...12_01_120956_update_crater_version_501.php | 14 +- ...12_02_063005_calculate_base_due_amount.php | 14 +- ...74516_migrate_templates_from_version_4.php | 12 +- ...12_02_123007_update_crater_version_502.php | 14 +- ...12_03_154423_update_crater_version_503.php | 14 +- ...12_04_122255_create_transactions_table.php | 12 +- ...5_add_transaction_id_to_payments_table.php | 12 +- ...3415_add_type_to_payment_methods_table.php | 14 +- ...12_06_131201_update_crater_version_504.php | 14 +- ...033_calculate_base_values_for_expenses.php | 18 +- ...12_09_062434_update_crater_version_505.php | 14 +- ...8_drop_unique_email_on_customers_table.php | 12 +- ...2_10_121739_update_creater_version_506.php | 14 +- ...alculate_base_amount_of_payments_table.php | 14 +- ..._093701_add_fields_to_email_logs_table.php | 18 +- ...2021_12_15_053223_create_modules_table.php | 12 +- ...enable_portal_field_of_customers_table.php | 14 +- ..._31_042453_add_type_to_tax_types_table.php | 14 +- ...add_sales_tax_fields_to_invoices_table.php | 12 +- ...dd_sales_tax_fields_to_estimates_table.php | 12 +- ...tax_fields_to_recurring_invoices_table.php | 12 +- ...01_05_115423_update_crater_version_600.php | 14 +- ...022_01_06_103536_add_slug_to_companies.php | 14 +- ...01_12_132859_update_crater_version_601.php | 14 +- ...01_13_123829_update_crater_version_602.php | 14 +- ...02_15_113648_update_crater_version_603.php | 14 +- ...02_17_081723_update_crater_version_604.php | 14 +- ...e_column_to_nullable_on_settings_table.php | 12 +- ...2_120210_add_overdue_to_invoices_table.php | 12 +- .../2022_03_03_060121_crater_version_605.php | 14 +- ..._063237_change_over_due_status_to_sent.php | 14 +- ...alculate_base_values_for_invoice_items.php | 16 +- ...03_06_070829_update_crater_version_606.php | 14 +- ...d_generated_conversions_to_media_table.php | 8 +- .../2024_02_04_005632_update_version_100.php | 2 +- ...24_02_08_181804_taxes_amount_as_signed.php | 12 +- .../2024_02_11_075831_update_version_110.php | 2 +- .../2024_05_04_110000_update_version_121.php | 2 +- .../2024_05_04_110000_update_version_122.php | 2 +- ...30_000000_rename_password_resets_table.php | 23 + database/seeders/CountriesTableSeeder.php | 4 +- database/seeders/CurrenciesTableSeeder.php | 6 +- database/seeders/DatabaseSeeder.php | 4 +- database/seeders/DemoSeeder.php | 12 +- database/seeders/UsersTableSeeder.php | 10 +- phpunit.xml | 18 +- public/index.php | 63 +- resources/views/app.blade.php | 4 +- routes/api.php | 214 +- routes/console.php | 34 +- routes/web.php | 36 +- tests/CreatesApplication.php | 22 - tests/Feature/Admin/BackupTest.php | 6 +- tests/Feature/Admin/CompanySettingTest.php | 14 +- tests/Feature/Admin/CompanyTest.php | 8 +- tests/Feature/Admin/ConfigTest.php | 2 +- tests/Feature/Admin/CurrenciesTest.php | 2 +- tests/Feature/Admin/CustomFieldTest.php | 8 +- tests/Feature/Admin/CustomerTest.php | 10 +- tests/Feature/Admin/DashboardTest.php | 2 +- tests/Feature/Admin/EstimateTest.php | 20 +- tests/Feature/Admin/ExpenseCategoryTest.php | 8 +- tests/Feature/Admin/ExpenseTest.php | 8 +- tests/Feature/Admin/FileDiskTest.php | 4 +- tests/Feature/Admin/InvoiceTest.php | 14 +- tests/Feature/Admin/ItemTest.php | 10 +- tests/Feature/Admin/LocationTest.php | 2 +- tests/Feature/Admin/NextNumberTest.php | 2 +- tests/Feature/Admin/NotesTest.php | 4 +- tests/Feature/Admin/PaymentMethodTest.php | 8 +- tests/Feature/Admin/PaymentTest.php | 12 +- tests/Feature/Admin/RecurringInvoiceTest.php | 10 +- tests/Feature/Admin/RoleTest.php | 2 +- tests/Feature/Admin/TaxTypeTest.php | 8 +- tests/Feature/Admin/UnitTest.php | 8 +- tests/Feature/Admin/UserTest.php | 6 +- tests/Feature/Customer/DashboardTest.php | 2 +- tests/Feature/Customer/EstimateTest.php | 4 +- tests/Feature/Customer/ExpenseTest.php | 4 +- tests/Feature/Customer/InvoiceTest.php | 4 +- tests/Feature/Customer/PaymentTest.php | 4 +- tests/Feature/Customer/ProfileTest.php | 6 +- tests/TestCase.php | 1 - tests/Unit/AddressTest.php | 2 +- tests/Unit/CompanySettingTest.php | 4 +- tests/Unit/CompanyTest.php | 2 +- tests/Unit/CountryTest.php | 4 +- tests/Unit/CustomFieldTest.php | 2 +- tests/Unit/CustomFieldValueTest.php | 2 +- tests/Unit/CustomerTest.php | 4 +- tests/Unit/EstimateItemTest.php | 6 +- tests/Unit/EstimateTest.php | 8 +- tests/Unit/ExchangeRateLogTest.php | 4 +- tests/Unit/ExpenseCategoryTest.php | 2 +- tests/Unit/ExpenseTest.php | 2 +- tests/Unit/InvoiceItemTest.php | 6 +- tests/Unit/InvoiceTest.php | 8 +- tests/Unit/ItemTest.php | 10 +- tests/Unit/PaymentMethodTest.php | 2 +- tests/Unit/PaymentTest.php | 2 +- tests/Unit/RecurringInvoiceTest.php | 2 +- tests/Unit/SettingTest.php | 2 +- tests/Unit/TaxTest.php | 10 +- tests/Unit/TaxTypeTest.php | 2 +- tests/Unit/UnitTest.php | 4 +- tests/Unit/UserTest.php | 2 +- yarn.lock | 1749 ++++++------- 656 files changed, 4964 insertions(+), 7944 deletions(-) delete mode 100644 app/Console/Kernel.php delete mode 100644 app/Exceptions/Handler.php delete mode 100644 app/Http/Kernel.php delete mode 100644 app/Providers/AuthServiceProvider.php delete mode 100644 app/Providers/BroadcastServiceProvider.php delete mode 100644 app/Providers/EventServiceProvider.php create mode 100644 bootstrap/providers.php delete mode 100644 config/broadcasting.php delete mode 100644 config/cache.php delete mode 100644 config/cors.php delete mode 100644 config/hashing.php delete mode 100644 config/logging.php delete mode 100644 config/queue.php delete mode 100644 config/session.php delete mode 100644 config/view.php create mode 100644 database/migrations/2024_05_30_000000_rename_password_resets_table.php delete mode 100644 tests/CreatesApplication.php diff --git a/.env.example b/.env.example index 710dadf6..d54053ff 100644 --- a/.env.example +++ b/.env.example @@ -2,8 +2,18 @@ APP_ENV=production APP_KEY=base64:kgk/4DW1vEVy7aEvet5FPp5un6PIGe/so8H0mvoUtW0= APP_DEBUG=true APP_LOG_LEVEL=debug +APP_TIMEZONE=UTC APP_URL=http://invoiceshelf.test +APP_LOCALE=en +APP_FALLBACK_LOCALE=en +APP_FAKER_LOCALE=en_US + +APP_MAINTENANCE_DRIVER=file +APP_MAINTENANCE_STORE=database + +BCRYPT_ROUNDS=12 + DB_CONNECTION=mysql DB_HOST=db DB_PORT=3306 @@ -11,11 +21,14 @@ DB_DATABASE=invoiceshelf DB_USERNAME=invoiceshelf DB_PASSWORD="invoiceshelf" -BROADCAST_DRIVER=log -CACHE_DRIVER=file +BROADCAST_CONNECTION=log +CACHE_STORE=file QUEUE_DRIVER=sync SESSION_DRIVER=cookie SESSION_LIFETIME=1440 +SESSION_ENCRYPT=false +SESSION_PATH=/ +SESSION_DOMAIN=null REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null @@ -41,3 +54,4 @@ SESSION_DOMAIN=invoiceshelf.test TRUSTED_PROXIES="*" CRON_JOB_AUTH_TOKEN="" +LOG_STACK=single \ No newline at end of file diff --git a/app/Bouncer/Scopes/DefaultScope.php b/app/Bouncer/Scopes/DefaultScope.php index 17a0f650..b93a5664 100644 --- a/app/Bouncer/Scopes/DefaultScope.php +++ b/app/Bouncer/Scopes/DefaultScope.php @@ -1,6 +1,6 @@ argument('name'); $type = $this->option('type'); diff --git a/app/Console/Commands/InstallModuleCommand.php b/app/Console/Commands/InstallModuleCommand.php index c86144ea..a55e70cc 100644 --- a/app/Console/Commands/InstallModuleCommand.php +++ b/app/Console/Commands/InstallModuleCommand.php @@ -1,9 +1,9 @@ argument('module'), $this->argument('version')); diff --git a/app/Console/Commands/ResetApp.php b/app/Console/Commands/ResetApp.php index c704a857..d4e3fc42 100644 --- a/app/Console/Commands/ResetApp.php +++ b/app/Console/Commands/ResetApp.php @@ -1,6 +1,6 @@ confirmToProceed()) { return; diff --git a/app/Console/Commands/UpdateCommand.php b/app/Console/Commands/UpdateCommand.php index e14ce4b5..916ef627 100644 --- a/app/Console/Commands/UpdateCommand.php +++ b/app/Console/Commands/UpdateCommand.php @@ -1,10 +1,10 @@ command('check:invoices:status') - ->daily(); - - $schedule->command('check:estimates:status') - ->daily(); - - $recurringInvoices = RecurringInvoice::where('status', 'ACTIVE')->get(); - foreach ($recurringInvoices as $recurringInvoice) { - $timeZone = CompanySetting::getSetting('time_zone', $recurringInvoice->company_id); - - $schedule->call(function () use ($recurringInvoice) { - $recurringInvoice->generateInvoice(); - })->cron($recurringInvoice->frequency)->timezone($timeZone); - } - } - } - - /** - * Register the Closure based commands for the application. - * - * @return void - */ - protected function commands() - { - $this->load(__DIR__.'/Commands'); - require base_path('routes/console.php'); - } -} diff --git a/app/Events/ModuleDisabledEvent.php b/app/Events/ModuleDisabledEvent.php index 16eab58c..793fa94c 100644 --- a/app/Events/ModuleDisabledEvent.php +++ b/app/Events/ModuleDisabledEvent.php @@ -1,6 +1,6 @@ month) { - $startDate->month($terms[0])->startOfMonth(); - $start->month($terms[0])->startOfMonth(); - $end->month($terms[0])->endOfMonth(); + if ($companyStartMonth <= $start->month) { + $startDate->month($companyStartMonth)->startOfMonth(); + $start->month($companyStartMonth)->startOfMonth(); + $end->month($companyStartMonth)->endOfMonth(); } else { - $startDate->subYear()->month($terms[0])->startOfMonth(); - $start->subYear()->month($terms[0])->startOfMonth(); - $end->subYear()->month($terms[0])->endOfMonth(); + $startDate->subYear()->month($companyStartMonth)->startOfMonth(); + $start->subYear()->month($companyStartMonth)->startOfMonth(); + $end->subYear()->month($companyStartMonth)->endOfMonth(); } if ($request->has('previous_year')) { diff --git a/app/Http/Controllers/V1/Admin/Customer/CustomersController.php b/app/Http/Controllers/V1/Admin/Customer/CustomersController.php index cc1bbc84..ada15c13 100644 --- a/app/Http/Controllers/V1/Admin/Customer/CustomersController.php +++ b/app/Http/Controllers/V1/Admin/Customer/CustomersController.php @@ -1,14 +1,14 @@ month) { - $startDate->month($terms[0])->startOfMonth(); - $start->month($terms[0])->startOfMonth(); - $end->month($terms[0])->endOfMonth(); + if ($companyStartMonth <= $start->month) { + $startDate->month($companyStartMonth)->startOfMonth(); + $start->month($companyStartMonth)->startOfMonth(); + $end->month($companyStartMonth)->endOfMonth(); } else { - $startDate->subYear()->month($terms[0])->startOfMonth(); - $start->subYear()->month($terms[0])->startOfMonth(); - $end->subYear()->month($terms[0])->endOfMonth(); + $startDate->subYear()->month($companyStartMonth)->startOfMonth(); + $start->subYear()->month($companyStartMonth)->startOfMonth(); + $end->subYear()->month($companyStartMonth)->endOfMonth(); } if ($request->has('previous_year')) { diff --git a/app/Http/Controllers/V1/Admin/Estimate/ChangeEstimateStatusController.php b/app/Http/Controllers/V1/Admin/Estimate/ChangeEstimateStatusController.php index 3f21116f..ca8d5af8 100644 --- a/app/Http/Controllers/V1/Admin/Estimate/ChangeEstimateStatusController.php +++ b/app/Http/Controllers/V1/Admin/Estimate/ChangeEstimateStatusController.php @@ -1,10 +1,10 @@ header('company') - ); + )); $due_date = Carbon::now()->addDays($dueDateDays)->format('Y-m-d'); } diff --git a/app/Http/Controllers/V1/Admin/Estimate/EstimateTemplatesController.php b/app/Http/Controllers/V1/Admin/Estimate/EstimateTemplatesController.php index ad535e6c..6a4b1aa8 100644 --- a/app/Http/Controllers/V1/Admin/Estimate/EstimateTemplatesController.php +++ b/app/Http/Controllers/V1/Admin/Estimate/EstimateTemplatesController.php @@ -1,10 +1,10 @@ header('company') - ); + )); $due_date = Carbon::now()->addDays($dueDateDays)->format('Y-m-d'); } diff --git a/app/Http/Controllers/V1/Admin/Invoice/InvoiceTemplatesController.php b/app/Http/Controllers/V1/Admin/Invoice/InvoiceTemplatesController.php index 8d974a8a..2bc845aa 100644 --- a/app/Http/Controllers/V1/Admin/Invoice/InvoiceTemplatesController.php +++ b/app/Http/Controllers/V1/Admin/Invoice/InvoiceTemplatesController.php @@ -1,10 +1,10 @@ [ - \InvoiceShelf\Http\Middleware\EncryptCookies::class, - \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, - \Illuminate\Session\Middleware\StartSession::class, - // \Illuminate\Session\Middleware\AuthenticateSession::class, - \Illuminate\View\Middleware\ShareErrorsFromSession::class, - \InvoiceShelf\Http\Middleware\VerifyCsrfToken::class, - \Illuminate\Routing\Middleware\SubstituteBindings::class, - ], - - 'api' => [ - EnsureFrontendRequestsAreStateful::class, - 'throttle:180,1', - \Illuminate\Routing\Middleware\SubstituteBindings::class, - ], - ]; - - /** - * The application's route middleware. - * - * These middleware may be assigned to groups or used individually. - * - * @var array - */ - protected $routeMiddleware = [ - 'auth' => \InvoiceShelf\Http\Middleware\Authenticate::class, - 'bouncer' => \InvoiceShelf\Http\Middleware\ScopeBouncer::class, - 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, - 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class, - 'can' => \Illuminate\Auth\Middleware\Authorize::class, - 'guest' => \InvoiceShelf\Http\Middleware\RedirectIfAuthenticated::class, - 'customer' => \InvoiceShelf\Http\Middleware\CustomerRedirectIfAuthenticated::class, - 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, - 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, - 'install' => \InvoiceShelf\Http\Middleware\InstallationMiddleware::class, - 'redirect-if-installed' => \InvoiceShelf\Http\Middleware\RedirectIfInstalled::class, - 'redirect-if-unauthenticated' => \InvoiceShelf\Http\Middleware\RedirectIfUnauthorized::class, - 'customer-guest' => \InvoiceShelf\Http\Middleware\CustomerGuest::class, - 'company' => \InvoiceShelf\Http\Middleware\CompanyMiddleware::class, - 'pdf-auth' => \InvoiceShelf\Http\Middleware\PdfMiddleware::class, - 'cron-job' => \InvoiceShelf\Http\Middleware\CronJobMiddleware::class, - 'customer-portal' => \InvoiceShelf\Http\Middleware\CustomerPortalMiddleware::class, - ]; - - /** - * The priority-sorted list of middleware. - * - * This forces the listed middleware to always be in the given order. - * - * @var array - */ - protected $middlewarePriority = [ - \Illuminate\Session\Middleware\StartSession::class, - \Illuminate\View\Middleware\ShareErrorsFromSession::class, - \InvoiceShelf\Http\Middleware\Authenticate::class, - \Illuminate\Session\Middleware\AuthenticateSession::class, - \Illuminate\Routing\Middleware\SubstituteBindings::class, - \Illuminate\Auth\Middleware\Authorize::class, - ]; -} diff --git a/app/Http/Middleware/AdminMiddleware.php b/app/Http/Middleware/AdminMiddleware.php index 7e1cbb54..12341fcc 100644 --- a/app/Http/Middleware/AdminMiddleware.php +++ b/app/Http/Middleware/AdminMiddleware.php @@ -1,20 +1,21 @@ guest() || ! Auth::user()->isSuperAdminOrAdmin()) { if ($request->ajax() || $request->wantsJson()) { diff --git a/app/Http/Middleware/Authenticate.php b/app/Http/Middleware/Authenticate.php index c76b3f3b..a4be5c58 100644 --- a/app/Http/Middleware/Authenticate.php +++ b/app/Http/Middleware/Authenticate.php @@ -1,6 +1,6 @@ user(); diff --git a/app/Http/Middleware/ConfigMiddleware.php b/app/Http/Middleware/ConfigMiddleware.php index b3b6567c..d4b918ad 100644 --- a/app/Http/Middleware/ConfigMiddleware.php +++ b/app/Http/Middleware/ConfigMiddleware.php @@ -1,20 +1,21 @@ has('file_disk_id')) { diff --git a/app/Http/Middleware/CronJobMiddleware.php b/app/Http/Middleware/CronJobMiddleware.php index ad992168..fad8ae67 100644 --- a/app/Http/Middleware/CronJobMiddleware.php +++ b/app/Http/Middleware/CronJobMiddleware.php @@ -1,9 +1,10 @@ header('x-authorization-token') && $request->header('x-authorization-token') == config('services.cron_job.auth_token')) { return $next($request); diff --git a/app/Http/Middleware/CustomerPortalMiddleware.php b/app/Http/Middleware/CustomerPortalMiddleware.php index 5cf03bf8..91d68acf 100644 --- a/app/Http/Middleware/CustomerPortalMiddleware.php +++ b/app/Http/Middleware/CustomerPortalMiddleware.php @@ -1,10 +1,11 @@ user(); diff --git a/app/Http/Middleware/EncryptCookies.php b/app/Http/Middleware/EncryptCookies.php index 9cee42d4..e59cca6b 100644 --- a/app/Http/Middleware/EncryptCookies.php +++ b/app/Http/Middleware/EncryptCookies.php @@ -1,6 +1,6 @@ check() || Auth::guard('sanctum')->check() || Auth::guard('customer')->check()) { return $next($request); diff --git a/app/Http/Middleware/RedirectIfAuthenticated.php b/app/Http/Middleware/RedirectIfAuthenticated.php index f883959f..daa70891 100644 --- a/app/Http/Middleware/RedirectIfAuthenticated.php +++ b/app/Http/Middleware/RedirectIfAuthenticated.php @@ -1,10 +1,10 @@ check()) { return $next($request); diff --git a/app/Http/Middleware/ScopeBouncer.php b/app/Http/Middleware/ScopeBouncer.php index 717511e5..82b97fbc 100644 --- a/app/Http/Middleware/ScopeBouncer.php +++ b/app/Http/Middleware/ScopeBouncer.php @@ -1,9 +1,11 @@ user(); $tenantId = $request->header('company') diff --git a/app/Http/Middleware/TrimStrings.php b/app/Http/Middleware/TrimStrings.php index ece5d79a..5a50e7b5 100644 --- a/app/Http/Middleware/TrimStrings.php +++ b/app/Http/Middleware/TrimStrings.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/BulkExchangeRateRequest.php b/app/Http/Requests/BulkExchangeRateRequest.php index 581a99c6..8b04d0cd 100644 --- a/app/Http/Requests/BulkExchangeRateRequest.php +++ b/app/Http/Requests/BulkExchangeRateRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/CompaniesRequest.php b/app/Http/Requests/CompaniesRequest.php index c774ea5c..cf4798cd 100644 --- a/app/Http/Requests/CompaniesRequest.php +++ b/app/Http/Requests/CompaniesRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/CompanyLogoRequest.php b/app/Http/Requests/CompanyLogoRequest.php index cf2a75cf..7b5bebd3 100644 --- a/app/Http/Requests/CompanyLogoRequest.php +++ b/app/Http/Requests/CompanyLogoRequest.php @@ -1,28 +1,24 @@ [ diff --git a/app/Http/Requests/CompanyRequest.php b/app/Http/Requests/CompanyRequest.php index 8dc5001a..5f3fb3b2 100644 --- a/app/Http/Requests/CompanyRequest.php +++ b/app/Http/Requests/CompanyRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/CompanySettingRequest.php b/app/Http/Requests/CompanySettingRequest.php index 65842951..b6e267e2 100644 --- a/app/Http/Requests/CompanySettingRequest.php +++ b/app/Http/Requests/CompanySettingRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/CustomFieldRequest.php b/app/Http/Requests/CustomFieldRequest.php index e5e10d2b..3f2ccffd 100644 --- a/app/Http/Requests/CustomFieldRequest.php +++ b/app/Http/Requests/CustomFieldRequest.php @@ -1,6 +1,6 @@ 'required', diff --git a/app/Http/Requests/Customer/CustomerLoginRequest.php b/app/Http/Requests/Customer/CustomerLoginRequest.php index 63b6db67..93f65d70 100644 --- a/app/Http/Requests/Customer/CustomerLoginRequest.php +++ b/app/Http/Requests/Customer/CustomerLoginRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/Customer/CustomerProfileRequest.php b/app/Http/Requests/Customer/CustomerProfileRequest.php index 64df7b8c..3782fb1e 100644 --- a/app/Http/Requests/Customer/CustomerProfileRequest.php +++ b/app/Http/Requests/Customer/CustomerProfileRequest.php @@ -1,30 +1,26 @@ [ diff --git a/app/Http/Requests/CustomerEstimateStatusRequest.php b/app/Http/Requests/CustomerEstimateStatusRequest.php index ad8cb975..05211693 100644 --- a/app/Http/Requests/CustomerEstimateStatusRequest.php +++ b/app/Http/Requests/CustomerEstimateStatusRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/CustomerRequest.php b/app/Http/Requests/CustomerRequest.php index 36e557a1..58c58acd 100644 --- a/app/Http/Requests/CustomerRequest.php +++ b/app/Http/Requests/CustomerRequest.php @@ -1,30 +1,26 @@ [ diff --git a/app/Http/Requests/DatabaseEnvironmentRequest.php b/app/Http/Requests/DatabaseEnvironmentRequest.php index 85834d61..5621a7d9 100644 --- a/app/Http/Requests/DatabaseEnvironmentRequest.php +++ b/app/Http/Requests/DatabaseEnvironmentRequest.php @@ -1,6 +1,6 @@ get('database_connection')) { case 'sqlite': diff --git a/app/Http/Requests/DeleteCustomersRequest.php b/app/Http/Requests/DeleteCustomersRequest.php index a13e6d98..3bc72431 100644 --- a/app/Http/Requests/DeleteCustomersRequest.php +++ b/app/Http/Requests/DeleteCustomersRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/DeleteEstimatesRequest.php b/app/Http/Requests/DeleteEstimatesRequest.php index 7a144360..b94fbb6d 100644 --- a/app/Http/Requests/DeleteEstimatesRequest.php +++ b/app/Http/Requests/DeleteEstimatesRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/DeleteExpensesRequest.php b/app/Http/Requests/DeleteExpensesRequest.php index 0653c5aa..553ab87b 100644 --- a/app/Http/Requests/DeleteExpensesRequest.php +++ b/app/Http/Requests/DeleteExpensesRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/DeleteInvoiceRequest.php b/app/Http/Requests/DeleteInvoiceRequest.php index eb8d9d1b..b5e87509 100644 --- a/app/Http/Requests/DeleteInvoiceRequest.php +++ b/app/Http/Requests/DeleteInvoiceRequest.php @@ -1,30 +1,26 @@ [ diff --git a/app/Http/Requests/DeleteItemsRequest.php b/app/Http/Requests/DeleteItemsRequest.php index b75e65cf..0fbaa7f5 100644 --- a/app/Http/Requests/DeleteItemsRequest.php +++ b/app/Http/Requests/DeleteItemsRequest.php @@ -1,30 +1,26 @@ [ diff --git a/app/Http/Requests/DeletePaymentsRequest.php b/app/Http/Requests/DeletePaymentsRequest.php index 66e2530c..50a53f93 100644 --- a/app/Http/Requests/DeletePaymentsRequest.php +++ b/app/Http/Requests/DeletePaymentsRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/DeleteUserRequest.php b/app/Http/Requests/DeleteUserRequest.php index b2323a9b..aafb05aa 100644 --- a/app/Http/Requests/DeleteUserRequest.php +++ b/app/Http/Requests/DeleteUserRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/DiskEnvironmentRequest.php b/app/Http/Requests/DiskEnvironmentRequest.php index cbd4cfea..2f2f1838 100644 --- a/app/Http/Requests/DiskEnvironmentRequest.php +++ b/app/Http/Requests/DiskEnvironmentRequest.php @@ -1,6 +1,6 @@ get('driver')) { diff --git a/app/Http/Requests/DomainEnvironmentRequest.php b/app/Http/Requests/DomainEnvironmentRequest.php index d1e1a4bc..3d91795b 100644 --- a/app/Http/Requests/DomainEnvironmentRequest.php +++ b/app/Http/Requests/DomainEnvironmentRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/EstimatesRequest.php b/app/Http/Requests/EstimatesRequest.php index 9bc0d2f4..5dad66bb 100644 --- a/app/Http/Requests/EstimatesRequest.php +++ b/app/Http/Requests/EstimatesRequest.php @@ -1,31 +1,27 @@ [ diff --git a/app/Http/Requests/ExchangeRateLogRequest.php b/app/Http/Requests/ExchangeRateLogRequest.php index 1b593814..07d98d2c 100644 --- a/app/Http/Requests/ExchangeRateLogRequest.php +++ b/app/Http/Requests/ExchangeRateLogRequest.php @@ -1,28 +1,24 @@ [ diff --git a/app/Http/Requests/ExchangeRateProviderRequest.php b/app/Http/Requests/ExchangeRateProviderRequest.php index 4c3d02f1..72584c41 100644 --- a/app/Http/Requests/ExchangeRateProviderRequest.php +++ b/app/Http/Requests/ExchangeRateProviderRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/ExpenseCategoryRequest.php b/app/Http/Requests/ExpenseCategoryRequest.php index da3e52c4..8e512c17 100644 --- a/app/Http/Requests/ExpenseCategoryRequest.php +++ b/app/Http/Requests/ExpenseCategoryRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/ExpenseRequest.php b/app/Http/Requests/ExpenseRequest.php index 40a187f9..1ea65d13 100644 --- a/app/Http/Requests/ExpenseRequest.php +++ b/app/Http/Requests/ExpenseRequest.php @@ -1,28 +1,24 @@ header('company')); diff --git a/app/Http/Requests/GetSettingRequest.php b/app/Http/Requests/GetSettingRequest.php index 71eebad2..a5441e71 100644 --- a/app/Http/Requests/GetSettingRequest.php +++ b/app/Http/Requests/GetSettingRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/GetSettingsRequest.php b/app/Http/Requests/GetSettingsRequest.php index f81702c5..4600ffb5 100644 --- a/app/Http/Requests/GetSettingsRequest.php +++ b/app/Http/Requests/GetSettingsRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/InvoicesRequest.php b/app/Http/Requests/InvoicesRequest.php index 58102546..d4d84221 100644 --- a/app/Http/Requests/InvoicesRequest.php +++ b/app/Http/Requests/InvoicesRequest.php @@ -1,31 +1,27 @@ [ diff --git a/app/Http/Requests/ItemsRequest.php b/app/Http/Requests/ItemsRequest.php index 3e51b590..e8d9dd74 100644 --- a/app/Http/Requests/ItemsRequest.php +++ b/app/Http/Requests/ItemsRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/LoginRequest.php b/app/Http/Requests/LoginRequest.php index 11dad9a7..2a637b10 100644 --- a/app/Http/Requests/LoginRequest.php +++ b/app/Http/Requests/LoginRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/MailEnvironmentRequest.php b/app/Http/Requests/MailEnvironmentRequest.php index 3d5e4ee3..242162c6 100644 --- a/app/Http/Requests/MailEnvironmentRequest.php +++ b/app/Http/Requests/MailEnvironmentRequest.php @@ -1,6 +1,6 @@ get('mail_driver')) { case 'smtp': diff --git a/app/Http/Requests/NotesRequest.php b/app/Http/Requests/NotesRequest.php index a47004cc..a1c16be9 100644 --- a/app/Http/Requests/NotesRequest.php +++ b/app/Http/Requests/NotesRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/PaymentMethodRequest.php b/app/Http/Requests/PaymentMethodRequest.php index 965ebfb2..1e8f3888 100644 --- a/app/Http/Requests/PaymentMethodRequest.php +++ b/app/Http/Requests/PaymentMethodRequest.php @@ -1,29 +1,25 @@ [ diff --git a/app/Http/Requests/PaymentRequest.php b/app/Http/Requests/PaymentRequest.php index 51b45918..772d2a80 100644 --- a/app/Http/Requests/PaymentRequest.php +++ b/app/Http/Requests/PaymentRequest.php @@ -1,30 +1,26 @@ [ diff --git a/app/Http/Requests/ProfileRequest.php b/app/Http/Requests/ProfileRequest.php index cebad550..edac19a5 100644 --- a/app/Http/Requests/ProfileRequest.php +++ b/app/Http/Requests/ProfileRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/RecurringInvoiceRequest.php b/app/Http/Requests/RecurringInvoiceRequest.php index 08fbc709..82fb3ea8 100644 --- a/app/Http/Requests/RecurringInvoiceRequest.php +++ b/app/Http/Requests/RecurringInvoiceRequest.php @@ -1,30 +1,26 @@ header('company')); diff --git a/app/Http/Requests/Request.php b/app/Http/Requests/Request.php index 5107994f..76b2ffd4 100644 --- a/app/Http/Requests/Request.php +++ b/app/Http/Requests/Request.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/SendEstimatesRequest.php b/app/Http/Requests/SendEstimatesRequest.php index 68f94a58..807e5fac 100644 --- a/app/Http/Requests/SendEstimatesRequest.php +++ b/app/Http/Requests/SendEstimatesRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/SendInvoiceRequest.php b/app/Http/Requests/SendInvoiceRequest.php index a610fb8a..758971d6 100644 --- a/app/Http/Requests/SendInvoiceRequest.php +++ b/app/Http/Requests/SendInvoiceRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/SendPaymentRequest.php b/app/Http/Requests/SendPaymentRequest.php index 251e31a0..d020bcfa 100644 --- a/app/Http/Requests/SendPaymentRequest.php +++ b/app/Http/Requests/SendPaymentRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/SettingKeyRequest.php b/app/Http/Requests/SettingKeyRequest.php index 7fc351d0..fbee5581 100644 --- a/app/Http/Requests/SettingKeyRequest.php +++ b/app/Http/Requests/SettingKeyRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/SettingRequest.php b/app/Http/Requests/SettingRequest.php index 488b86c4..f2fb859b 100644 --- a/app/Http/Requests/SettingRequest.php +++ b/app/Http/Requests/SettingRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/TaxTypeRequest.php b/app/Http/Requests/TaxTypeRequest.php index a0a48802..63605c4c 100644 --- a/app/Http/Requests/TaxTypeRequest.php +++ b/app/Http/Requests/TaxTypeRequest.php @@ -1,29 +1,25 @@ [ diff --git a/app/Http/Requests/UnitRequest.php b/app/Http/Requests/UnitRequest.php index d7c43ee2..d7151c9d 100644 --- a/app/Http/Requests/UnitRequest.php +++ b/app/Http/Requests/UnitRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/UnzipUpdateRequest.php b/app/Http/Requests/UnzipUpdateRequest.php index 59a96062..cb4492ed 100644 --- a/app/Http/Requests/UnzipUpdateRequest.php +++ b/app/Http/Requests/UnzipUpdateRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/UpdateSettingsRequest.php b/app/Http/Requests/UpdateSettingsRequest.php index 83fc5c53..83f4ae5c 100644 --- a/app/Http/Requests/UpdateSettingsRequest.php +++ b/app/Http/Requests/UpdateSettingsRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/UploadExpenseReceiptRequest.php b/app/Http/Requests/UploadExpenseReceiptRequest.php index aacaef54..8329049a 100644 --- a/app/Http/Requests/UploadExpenseReceiptRequest.php +++ b/app/Http/Requests/UploadExpenseReceiptRequest.php @@ -1,28 +1,24 @@ [ diff --git a/app/Http/Requests/UploadModuleRequest.php b/app/Http/Requests/UploadModuleRequest.php index 973ffc91..af53cae0 100644 --- a/app/Http/Requests/UploadModuleRequest.php +++ b/app/Http/Requests/UploadModuleRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/UserRequest.php b/app/Http/Requests/UserRequest.php index 9238a09c..d456ce83 100644 --- a/app/Http/Requests/UserRequest.php +++ b/app/Http/Requests/UserRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Resources/AbilityCollection.php b/app/Http/Resources/AbilityCollection.php index 51aba7f3..8583cc0b 100644 --- a/app/Http/Resources/AbilityCollection.php +++ b/app/Http/Resources/AbilityCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/AddressCollection.php b/app/Http/Resources/AddressCollection.php index 7663e664..684b1c08 100644 --- a/app/Http/Resources/AddressCollection.php +++ b/app/Http/Resources/AddressCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/CompanyCollection.php b/app/Http/Resources/CompanyCollection.php index fce53898..77bb0e30 100644 --- a/app/Http/Resources/CompanyCollection.php +++ b/app/Http/Resources/CompanyCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/CountryCollection.php b/app/Http/Resources/CountryCollection.php index 237c5071..c92f4886 100644 --- a/app/Http/Resources/CountryCollection.php +++ b/app/Http/Resources/CountryCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/CurrencyCollection.php b/app/Http/Resources/CurrencyCollection.php index 0edf9544..841e97fb 100644 --- a/app/Http/Resources/CurrencyCollection.php +++ b/app/Http/Resources/CurrencyCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/CustomFieldCollection.php b/app/Http/Resources/CustomFieldCollection.php index 8f23e2ff..3248ae1d 100644 --- a/app/Http/Resources/CustomFieldCollection.php +++ b/app/Http/Resources/CustomFieldCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/CustomFieldValueCollection.php b/app/Http/Resources/CustomFieldValueCollection.php index 1a59565c..62ac75e5 100644 --- a/app/Http/Resources/CustomFieldValueCollection.php +++ b/app/Http/Resources/CustomFieldValueCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/AddressCollection.php b/app/Http/Resources/Customer/AddressCollection.php index 2bfe927b..0dca13a1 100644 --- a/app/Http/Resources/Customer/AddressCollection.php +++ b/app/Http/Resources/Customer/AddressCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/CompanyResource.php b/app/Http/Resources/Customer/CompanyResource.php index b2b37060..4cd366f4 100644 --- a/app/Http/Resources/Customer/CompanyResource.php +++ b/app/Http/Resources/Customer/CompanyResource.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/CountryCollection.php b/app/Http/Resources/Customer/CountryCollection.php index a64093c2..db802b9c 100644 --- a/app/Http/Resources/Customer/CountryCollection.php +++ b/app/Http/Resources/Customer/CountryCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/CurrencyCollection.php b/app/Http/Resources/Customer/CurrencyCollection.php index f9e0cc6f..803f30d3 100644 --- a/app/Http/Resources/Customer/CurrencyCollection.php +++ b/app/Http/Resources/Customer/CurrencyCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/CustomFieldCollection.php b/app/Http/Resources/Customer/CustomFieldCollection.php index e6ccde4a..92ea7428 100644 --- a/app/Http/Resources/Customer/CustomFieldCollection.php +++ b/app/Http/Resources/Customer/CustomFieldCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/CustomFieldValueCollection.php b/app/Http/Resources/Customer/CustomFieldValueCollection.php index 0f6c24dd..dd596621 100644 --- a/app/Http/Resources/Customer/CustomFieldValueCollection.php +++ b/app/Http/Resources/Customer/CustomFieldValueCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/CustomerCollection.php b/app/Http/Resources/Customer/CustomerCollection.php index e9877ddd..7be718e6 100644 --- a/app/Http/Resources/Customer/CustomerCollection.php +++ b/app/Http/Resources/Customer/CustomerCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/EstimateCollection.php b/app/Http/Resources/Customer/EstimateCollection.php index e0e3c59b..88b6a828 100644 --- a/app/Http/Resources/Customer/EstimateCollection.php +++ b/app/Http/Resources/Customer/EstimateCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/EstimateResource.php b/app/Http/Resources/Customer/EstimateResource.php index 58de4e2a..5cbdb0a0 100644 --- a/app/Http/Resources/Customer/EstimateResource.php +++ b/app/Http/Resources/Customer/EstimateResource.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/ExpenseCategoryCollection.php b/app/Http/Resources/Customer/ExpenseCategoryCollection.php index 6197b963..d5390e75 100644 --- a/app/Http/Resources/Customer/ExpenseCategoryCollection.php +++ b/app/Http/Resources/Customer/ExpenseCategoryCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/ExpenseCollection.php b/app/Http/Resources/Customer/ExpenseCollection.php index 239deaa0..d43a005f 100644 --- a/app/Http/Resources/Customer/ExpenseCollection.php +++ b/app/Http/Resources/Customer/ExpenseCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/InvoiceCollection.php b/app/Http/Resources/Customer/InvoiceCollection.php index ad91c305..50c74636 100644 --- a/app/Http/Resources/Customer/InvoiceCollection.php +++ b/app/Http/Resources/Customer/InvoiceCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/InvoiceResource.php b/app/Http/Resources/Customer/InvoiceResource.php index 55a1c01a..a66e0fb9 100644 --- a/app/Http/Resources/Customer/InvoiceResource.php +++ b/app/Http/Resources/Customer/InvoiceResource.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/ItemCollection.php b/app/Http/Resources/Customer/ItemCollection.php index ad5a0469..3fcc1458 100644 --- a/app/Http/Resources/Customer/ItemCollection.php +++ b/app/Http/Resources/Customer/ItemCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/PaymentResource.php b/app/Http/Resources/Customer/PaymentResource.php index a5e8aa89..d0e9736a 100644 --- a/app/Http/Resources/Customer/PaymentResource.php +++ b/app/Http/Resources/Customer/PaymentResource.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/RecurringInvoiceCollection.php b/app/Http/Resources/Customer/RecurringInvoiceCollection.php index 17c1c371..c6793672 100644 --- a/app/Http/Resources/Customer/RecurringInvoiceCollection.php +++ b/app/Http/Resources/Customer/RecurringInvoiceCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/TaxCollection.php b/app/Http/Resources/Customer/TaxCollection.php index ee28aafd..0d21774d 100644 --- a/app/Http/Resources/Customer/TaxCollection.php +++ b/app/Http/Resources/Customer/TaxCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/TaxTypeCollection.php b/app/Http/Resources/Customer/TaxTypeCollection.php index 1c408214..56335b67 100644 --- a/app/Http/Resources/Customer/TaxTypeCollection.php +++ b/app/Http/Resources/Customer/TaxTypeCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/TransactionCollection.php b/app/Http/Resources/Customer/TransactionCollection.php index 3c59bc63..1163645f 100644 --- a/app/Http/Resources/Customer/TransactionCollection.php +++ b/app/Http/Resources/Customer/TransactionCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/UserCollection.php b/app/Http/Resources/Customer/UserCollection.php index 0deda9b9..98a7ae5f 100644 --- a/app/Http/Resources/Customer/UserCollection.php +++ b/app/Http/Resources/Customer/UserCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/CustomerCollection.php b/app/Http/Resources/CustomerCollection.php index 5e7cf620..7b7f1cd2 100644 --- a/app/Http/Resources/CustomerCollection.php +++ b/app/Http/Resources/CustomerCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/EstimateCollection.php b/app/Http/Resources/EstimateCollection.php index 4782bf21..e34cee9f 100644 --- a/app/Http/Resources/EstimateCollection.php +++ b/app/Http/Resources/EstimateCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/EstimateResource.php b/app/Http/Resources/EstimateResource.php index e17b135e..67766ab4 100644 --- a/app/Http/Resources/EstimateResource.php +++ b/app/Http/Resources/EstimateResource.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/ExchangeRateLogCollection.php b/app/Http/Resources/ExchangeRateLogCollection.php index f63b813a..f4025c2a 100644 --- a/app/Http/Resources/ExchangeRateLogCollection.php +++ b/app/Http/Resources/ExchangeRateLogCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/ExchangeRateProviderCollection.php b/app/Http/Resources/ExchangeRateProviderCollection.php index 8675f6c3..0de39dc9 100644 --- a/app/Http/Resources/ExchangeRateProviderCollection.php +++ b/app/Http/Resources/ExchangeRateProviderCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/ExpenseCategoryCollection.php b/app/Http/Resources/ExpenseCategoryCollection.php index 36d517c5..1cf9260e 100644 --- a/app/Http/Resources/ExpenseCategoryCollection.php +++ b/app/Http/Resources/ExpenseCategoryCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/ExpenseCollection.php b/app/Http/Resources/ExpenseCollection.php index 12d1a06d..764aae45 100644 --- a/app/Http/Resources/ExpenseCollection.php +++ b/app/Http/Resources/ExpenseCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/FileDiskCollection.php b/app/Http/Resources/FileDiskCollection.php index ceb50ac2..e9e97a05 100644 --- a/app/Http/Resources/FileDiskCollection.php +++ b/app/Http/Resources/FileDiskCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/InvoiceCollection.php b/app/Http/Resources/InvoiceCollection.php index 1b77c0b3..083d6b02 100644 --- a/app/Http/Resources/InvoiceCollection.php +++ b/app/Http/Resources/InvoiceCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/InvoiceResource.php b/app/Http/Resources/InvoiceResource.php index a6bef952..5aaf3fd5 100644 --- a/app/Http/Resources/InvoiceResource.php +++ b/app/Http/Resources/InvoiceResource.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/ItemCollection.php b/app/Http/Resources/ItemCollection.php index ffa893ce..a8bc0eb6 100644 --- a/app/Http/Resources/ItemCollection.php +++ b/app/Http/Resources/ItemCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/ModuleCollection.php b/app/Http/Resources/ModuleCollection.php index 1eb74c80..8955f869 100644 --- a/app/Http/Resources/ModuleCollection.php +++ b/app/Http/Resources/ModuleCollection.php @@ -1,6 +1,6 @@ checkPurchased(); $this->installed_module = ModelsModule::where('name', $this->module_name)->first(); diff --git a/app/Http/Resources/NoteCollection.php b/app/Http/Resources/NoteCollection.php index 82b987e6..39eeb956 100644 --- a/app/Http/Resources/NoteCollection.php +++ b/app/Http/Resources/NoteCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/PaymentCollection.php b/app/Http/Resources/PaymentCollection.php index c7809460..076e7a97 100644 --- a/app/Http/Resources/PaymentCollection.php +++ b/app/Http/Resources/PaymentCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/PaymentResource.php b/app/Http/Resources/PaymentResource.php index 7ad14116..2801011b 100644 --- a/app/Http/Resources/PaymentResource.php +++ b/app/Http/Resources/PaymentResource.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/RecurringInvoiceCollection.php b/app/Http/Resources/RecurringInvoiceCollection.php index 1669d5ac..3bde614a 100644 --- a/app/Http/Resources/RecurringInvoiceCollection.php +++ b/app/Http/Resources/RecurringInvoiceCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/RoleCollection.php b/app/Http/Resources/RoleCollection.php index 5bb28ede..087f8334 100644 --- a/app/Http/Resources/RoleCollection.php +++ b/app/Http/Resources/RoleCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/TaxCollection.php b/app/Http/Resources/TaxCollection.php index 6e9c47bd..87b93543 100644 --- a/app/Http/Resources/TaxCollection.php +++ b/app/Http/Resources/TaxCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/TaxTypeCollection.php b/app/Http/Resources/TaxTypeCollection.php index eb9dc6b8..f146abf4 100644 --- a/app/Http/Resources/TaxTypeCollection.php +++ b/app/Http/Resources/TaxTypeCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/TransactionCollection.php b/app/Http/Resources/TransactionCollection.php index 785fdb1f..f8d72558 100644 --- a/app/Http/Resources/TransactionCollection.php +++ b/app/Http/Resources/TransactionCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/UnitCollection.php b/app/Http/Resources/UnitCollection.php index 6305a11c..1f01b3f8 100644 --- a/app/Http/Resources/UnitCollection.php +++ b/app/Http/Resources/UnitCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/UserCollection.php b/app/Http/Resources/UserCollection.php index b73e2f21..ad220cb4 100644 --- a/app/Http/Resources/UserCollection.php +++ b/app/Http/Resources/UserCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Jobs/CreateBackupJob.php b/app/Jobs/CreateBackupJob.php index 841cf829..f21fba98 100644 --- a/app/Jobs/CreateBackupJob.php +++ b/app/Jobs/CreateBackupJob.php @@ -1,13 +1,13 @@ data['file_disk_id']); $fileDisk->setConfig(); diff --git a/app/Jobs/GenerateEstimatePdfJob.php b/app/Jobs/GenerateEstimatePdfJob.php index 5eeb4535..8c2e0daa 100644 --- a/app/Jobs/GenerateEstimatePdfJob.php +++ b/app/Jobs/GenerateEstimatePdfJob.php @@ -1,6 +1,6 @@ estimate->generatePDF('estimate', $this->estimate->estimate_number, $this->deleteExistingFile); diff --git a/app/Jobs/GenerateInvoicePdfJob.php b/app/Jobs/GenerateInvoicePdfJob.php index e9df8ae0..04edd7a3 100644 --- a/app/Jobs/GenerateInvoicePdfJob.php +++ b/app/Jobs/GenerateInvoicePdfJob.php @@ -1,6 +1,6 @@ invoice->generatePDF('invoice', $this->invoice->invoice_number, $this->deleteExistingFile); diff --git a/app/Jobs/GeneratePaymentPdfJob.php b/app/Jobs/GeneratePaymentPdfJob.php index ae68e3dc..93f02096 100644 --- a/app/Jobs/GeneratePaymentPdfJob.php +++ b/app/Jobs/GeneratePaymentPdfJob.php @@ -1,6 +1,6 @@ payment->generatePDF('payment', $this->payment->payment_number, $this->deleteExistingFile); diff --git a/app/Listeners/Updates/Listener.php b/app/Listeners/Updates/Listener.php index fc600cad..5b9f395e 100644 --- a/app/Listeners/Updates/Listener.php +++ b/app/Listeners/Updates/Listener.php @@ -1,6 +1,6 @@ belongsTo(User::class); } - public function customer() + public function customer(): BelongsTo { return $this->belongsTo(Customer::class); } - public function company() + public function company(): BelongsTo { return $this->belongsTo(Company::class); } - public function country() + public function country(): BelongsTo { return $this->belongsTo(Country::class); } diff --git a/app/Models/Company.php b/app/Models/Company.php index c3b11307..05a163ac 100644 --- a/app/Models/Company.php +++ b/app/Models/Company.php @@ -1,9 +1,13 @@ hasMany(Customer::class); } - public function owner() + public function owner(): BelongsTo { return $this->belongsTo(User::class, 'owner_id'); } - public function settings() + public function settings(): HasMany { return $this->hasMany(CompanySetting::class); } - public function recurringInvoices() + public function recurringInvoices(): HasMany { return $this->hasMany(RecurringInvoice::class); } - public function customFields() + public function customFields(): HasMany { return $this->hasMany(CustomField::class); } - public function customFieldValues() + public function customFieldValues(): HasMany { return $this->hasMany(CustomFieldValue::class); } - public function exchangeRateLogs() + public function exchangeRateLogs(): HasMany { return $this->hasMany(ExchangeRateLog::class); } - public function exchangeRateProviders() + public function exchangeRateProviders(): HasMany { return $this->hasMany(ExchangeRateProvider::class); } - public function invoices() + public function invoices(): HasMany { return $this->hasMany(Invoice::class); } - public function expenses() + public function expenses(): HasMany { return $this->hasMany(Expense::class); } - public function units() + public function units(): HasMany { return $this->hasMany(Unit::class); } - public function expenseCategories() + public function expenseCategories(): HasMany { return $this->hasMany(ExpenseCategory::class); } - public function taxTypes() + public function taxTypes(): HasMany { return $this->hasMany(TaxType::class); } - public function items() + public function items(): HasMany { return $this->hasMany(Item::class); } - public function payments() + public function payments(): HasMany { return $this->hasMany(Payment::class); } - public function paymentMethods() + public function paymentMethods(): HasMany { return $this->hasMany(PaymentMethod::class); } - public function estimates() + public function estimates(): HasMany { return $this->hasMany(Estimate::class); } - public function address() + public function address(): HasOne { return $this->hasOne(Address::class); } - public function users() + public function users(): BelongsToMany { return $this->belongsToMany(User::class, 'user_company', 'company_id', 'user_id'); } diff --git a/app/Models/CompanySetting.php b/app/Models/CompanySetting.php index 8b1105f9..459e4bc5 100644 --- a/app/Models/CompanySetting.php +++ b/app/Models/CompanySetting.php @@ -1,9 +1,10 @@ belongsTo(Company::class); } diff --git a/app/Models/Country.php b/app/Models/Country.php index ea833fd7..a825584a 100644 --- a/app/Models/Country.php +++ b/app/Models/Country.php @@ -1,15 +1,16 @@ hasMany(Address::class); } diff --git a/app/Models/Currency.php b/app/Models/Currency.php index 44fbae4a..326aaf8b 100644 --- a/app/Models/Currency.php +++ b/app/Models/Currency.php @@ -1,6 +1,6 @@ 'array', - ]; + protected function casts(): array + { + return [ + 'options' => 'array', + ]; + } public function setTimeAnswerAttribute($value) { @@ -50,12 +55,12 @@ class CustomField extends Model return $this->customFieldValues()->exists(); } - public function company() + public function company(): BelongsTo { return $this->belongsTo(Company::class); } - public function customFieldValues() + public function customFieldValues(): HasMany { return $this->hasMany(CustomFieldValue::class); } diff --git a/app/Models/CustomFieldValue.php b/app/Models/CustomFieldValue.php index e8509d8f..f3f39f1c 100644 --- a/app/Models/CustomFieldValue.php +++ b/app/Models/CustomFieldValue.php @@ -1,9 +1,11 @@ $value_type; } - public function company() + public function company(): BelongsTo { return $this->belongsTo(Company::class); } - public function customField() + public function customField(): BelongsTo { return $this->belongsTo(CustomField::class); } - public function customFieldValuable() + public function customFieldValuable(): MorphTo { return $this->morphTo(); } diff --git a/app/Models/Customer.php b/app/Models/Customer.php index b333338e..101efdd8 100644 --- a/app/Models/Customer.php +++ b/app/Models/Customer.php @@ -1,13 +1,16 @@ 'boolean', - ]; + protected function casts(): array + { + return [ + 'enable_portal' => 'boolean', + ]; + } public function getFormattedCreatedAtAttribute($value) { @@ -58,57 +64,57 @@ class Customer extends Authenticatable implements HasMedia } } - public function estimates() + public function estimates(): HasMany { return $this->hasMany(Estimate::class); } - public function expenses() + public function expenses(): HasMany { return $this->hasMany(Expense::class); } - public function invoices() + public function invoices(): HasMany { return $this->hasMany(Invoice::class); } - public function payments() + public function payments(): HasMany { return $this->hasMany(Payment::class); } - public function addresses() + public function addresses(): HasMany { return $this->hasMany(Address::class); } - public function recurringInvoices() + public function recurringInvoices(): HasMany { return $this->hasMany(RecurringInvoice::class); } - public function currency() + public function currency(): BelongsTo { return $this->belongsTo(Currency::class); } - public function creator() + public function creator(): BelongsTo { return $this->belongsTo(Customer::class, 'creator_id'); } - public function company() + public function company(): BelongsTo { return $this->belongsTo(Company::class); } - public function billingAddress() + public function billingAddress(): HasOne { return $this->hasOne(Address::class)->where('type', Address::BILLING_TYPE); } - public function shippingAddress() + public function shippingAddress(): HasOne { return $this->hasOne(Address::class)->where('type', Address::SHIPPING_TYPE); } diff --git a/app/Models/EmailLog.php b/app/Models/EmailLog.php index f1efa25e..340f47cf 100644 --- a/app/Models/EmailLog.php +++ b/app/Models/EmailLog.php @@ -1,10 +1,11 @@ morphTo(); } diff --git a/app/Models/Estimate.php b/app/Models/Estimate.php index 1b52c59c..43d8684e 100644 --- a/app/Models/Estimate.php +++ b/app/Models/Estimate.php @@ -1,19 +1,22 @@ 'integer', - 'tax' => 'integer', - 'sub_total' => 'integer', - 'discount' => 'float', - 'discount_val' => 'integer', - 'exchange_rate' => 'float', - ]; + protected function casts(): array + { + return [ + 'total' => 'integer', + 'tax' => 'integer', + 'sub_total' => 'integer', + 'discount' => 'float', + 'discount_val' => 'integer', + 'exchange_rate' => 'float', + ]; + } public function getEstimatePdfUrlAttribute() { return url('/estimates/pdf/'.$this->unique_hash); } - public function emailLogs() + public function emailLogs(): MorphMany { return $this->morphMany('App\Models\EmailLog', 'mailable'); } - public function items() + public function items(): HasMany { - return $this->hasMany('InvoiceShelf\Models\EstimateItem'); + return $this->hasMany(\App\Models\EstimateItem::class); } - public function customer() + public function customer(): BelongsTo { return $this->belongsTo(Customer::class, 'customer_id'); } - public function creator() + public function creator(): BelongsTo { - return $this->belongsTo('InvoiceShelf\Models\User', 'creator_id'); + return $this->belongsTo(\App\Models\User::class, 'creator_id'); } - public function company() + public function company(): BelongsTo { - return $this->belongsTo('InvoiceShelf\Models\Company'); + return $this->belongsTo(\App\Models\Company::class); } - public function currency() + public function currency(): BelongsTo { return $this->belongsTo(Currency::class); } - public function taxes() + public function taxes(): HasMany { return $this->hasMany(Tax::class); } diff --git a/app/Models/EstimateItem.php b/app/Models/EstimateItem.php index ad1ffe19..2d9b9dfb 100644 --- a/app/Models/EstimateItem.php +++ b/app/Models/EstimateItem.php @@ -1,10 +1,12 @@ 'integer', - 'total' => 'integer', - 'discount' => 'float', - 'quantity' => 'float', - 'discount_val' => 'integer', - 'tax' => 'integer', - ]; + protected function casts(): array + { + return [ + 'price' => 'integer', + 'total' => 'integer', + 'discount' => 'float', + 'quantity' => 'float', + 'discount_val' => 'integer', + 'tax' => 'integer', + ]; + } - public function estimate() + public function estimate(): BelongsTo { return $this->belongsTo(Estimate::class); } - public function item() + public function item(): BelongsTo { return $this->belongsTo(Item::class); } - public function taxes() + public function taxes(): HasMany { return $this->hasMany(Tax::class); } diff --git a/app/Models/ExchangeRateLog.php b/app/Models/ExchangeRateLog.php index 82960475..e716037b 100644 --- a/app/Models/ExchangeRateLog.php +++ b/app/Models/ExchangeRateLog.php @@ -1,9 +1,10 @@ 'float', - ]; + protected function casts(): array + { + return [ + 'exchange_rate' => 'float', + ]; + } - public function currency() + public function currency(): BelongsTo { return $this->belongsTo(Currency::class); } - public function company() + public function company(): BelongsTo { return $this->belongsTo(Company::class); } diff --git a/app/Models/ExchangeRateProvider.php b/app/Models/ExchangeRateProvider.php index fef6110c..51c80792 100644 --- a/app/Models/ExchangeRateProvider.php +++ b/app/Models/ExchangeRateProvider.php @@ -1,11 +1,12 @@ 'array', - 'driver_config' => 'array', - 'active' => 'boolean', - ]; + protected function casts(): array + { + return [ + 'currencies' => 'array', + 'driver_config' => 'array', + 'active' => 'boolean', + ]; + } - public function company() + public function company(): BelongsTo { return $this->belongsTo(Company::class); } diff --git a/app/Models/Expense.php b/app/Models/Expense.php index 87bbb134..c7d297bc 100644 --- a/app/Models/Expense.php +++ b/app/Models/Expense.php @@ -1,12 +1,13 @@ 'string', - 'exchange_rate' => 'float', - ]; + protected function casts(): array + { + return [ + 'notes' => 'string', + 'exchange_rate' => 'float', + ]; + } - public function category() + public function category(): BelongsTo { return $this->belongsTo(ExpenseCategory::class, 'expense_category_id'); } - public function customer() + public function customer(): BelongsTo { return $this->belongsTo(Customer::class, 'customer_id'); } - public function company() + public function company(): BelongsTo { return $this->belongsTo(Company::class, 'company_id'); } - public function paymentMethod() + public function paymentMethod(): BelongsTo { return $this->belongsTo(PaymentMethod::class); } - public function currency() + public function currency(): BelongsTo { return $this->belongsTo(Currency::class, 'currency_id'); } - public function creator() + public function creator(): BelongsTo { - return $this->belongsTo('InvoiceShelf\Models\User', 'creator_id'); + return $this->belongsTo(\App\Models\User::class, 'creator_id'); } public function getFormattedExpenseDateAttribute($value) diff --git a/app/Models/ExpenseCategory.php b/app/Models/ExpenseCategory.php index 6347b675..3b02fe4c 100644 --- a/app/Models/ExpenseCategory.php +++ b/app/Models/ExpenseCategory.php @@ -1,10 +1,12 @@ hasMany(Expense::class); } - public function company() + public function company(): BelongsTo { return $this->belongsTo(Company::class); } diff --git a/app/Models/FileDisk.php b/app/Models/FileDisk.php index 1df45207..01725219 100644 --- a/app/Models/FileDisk.php +++ b/app/Models/FileDisk.php @@ -1,10 +1,10 @@ 'boolean', - ]; + protected function casts(): array + { + return [ + 'set_as_default' => 'boolean', + ]; + } public function setCredentialsAttribute($value) { diff --git a/app/Models/Invoice.php b/app/Models/Invoice.php index 91ea77f1..84e0361a 100644 --- a/app/Models/Invoice.php +++ b/app/Models/Invoice.php @@ -1,19 +1,22 @@ 'integer', - 'tax' => 'integer', - 'sub_total' => 'integer', - 'discount' => 'float', - 'discount_val' => 'integer', - 'exchange_rate' => 'float', - ]; - protected $guarded = [ 'id', ]; @@ -68,52 +62,64 @@ class Invoice extends Model implements HasMedia 'invoicePdfUrl', ]; - public function transactions() + protected function casts(): array + { + return [ + 'total' => 'integer', + 'tax' => 'integer', + 'sub_total' => 'integer', + 'discount' => 'float', + 'discount_val' => 'integer', + 'exchange_rate' => 'float', + ]; + } + + public function transactions(): HasMany { return $this->hasMany(Transaction::class); } - public function emailLogs() + public function emailLogs(): MorphMany { return $this->morphMany('App\Models\EmailLog', 'mailable'); } - public function items() + public function items(): HasMany { - return $this->hasMany('InvoiceShelf\Models\InvoiceItem'); + return $this->hasMany(\App\Models\InvoiceItem::class); } - public function taxes() + public function taxes(): HasMany { return $this->hasMany(Tax::class); } - public function payments() + public function payments(): HasMany { return $this->hasMany(Payment::class); } - public function currency() + public function currency(): BelongsTo { return $this->belongsTo(Currency::class); } - public function company() + public function company(): BelongsTo { return $this->belongsTo(Company::class); } - public function customer() + public function customer(): BelongsTo { return $this->belongsTo(Customer::class, 'customer_id'); } - public function recurringInvoice() + public function recurringInvoice(): BelongsTo { return $this->belongsTo(RecurringInvoice::class); } - public function creator() + public function creator(): BelongsTo { return $this->belongsTo(User::class, 'creator_id'); } diff --git a/app/Models/InvoiceItem.php b/app/Models/InvoiceItem.php index 71341645..b4ec3a9d 100644 --- a/app/Models/InvoiceItem.php +++ b/app/Models/InvoiceItem.php @@ -1,12 +1,14 @@ 'integer', - 'total' => 'integer', - 'discount' => 'float', - 'quantity' => 'float', - 'discount_val' => 'integer', - 'tax' => 'integer', - ]; + protected function casts(): array + { + return [ + 'price' => 'integer', + 'total' => 'integer', + 'discount' => 'float', + 'quantity' => 'float', + 'discount_val' => 'integer', + 'tax' => 'integer', + ]; + } - public function invoice() + public function invoice(): BelongsTo { return $this->belongsTo(Invoice::class); } - public function item() + public function item(): BelongsTo { return $this->belongsTo(Item::class); } - public function taxes() + public function taxes(): HasMany { return $this->hasMany(Tax::class); } - public function recurringInvoice() + public function recurringInvoice(): BelongsTo { return $this->belongsTo(RecurringInvoice::class); } diff --git a/app/Models/Item.php b/app/Models/Item.php index 5e6d7448..9be3b144 100644 --- a/app/Models/Item.php +++ b/app/Models/Item.php @@ -1,10 +1,12 @@ 'integer', - ]; - protected $appends = [ 'formattedCreatedAt', ]; - public function unit() + protected function casts(): array + { + return [ + 'price' => 'integer', + ]; + } + + public function unit(): BelongsTo { return $this->belongsTo(Unit::class, 'unit_id'); } - public function company() + public function company(): BelongsTo { return $this->belongsTo(Company::class); } - public function creator() + public function creator(): BelongsTo { - return $this->belongsTo('InvoiceShelf\Models\User', 'creator_id'); + return $this->belongsTo(\App\Models\User::class, 'creator_id'); } - public function currency() + public function currency(): BelongsTo { return $this->belongsTo(Currency::class); } @@ -109,7 +114,7 @@ class Item extends Model return Carbon::parse($this->created_at)->format($dateFormat); } - public function taxes() + public function taxes(): HasMany { return $this->hasMany(Tax::class) ->where('invoice_item_id', null) @@ -121,12 +126,12 @@ class Item extends Model $query->where('items.company_id', request()->header('company')); } - public function invoiceItems() + public function invoiceItems(): HasMany { return $this->hasMany(InvoiceItem::class); } - public function estimateItems() + public function estimateItems(): HasMany { return $this->hasMany(EstimateItem::class); } diff --git a/app/Models/Module.php b/app/Models/Module.php index 179492a3..ce81ec2d 100644 --- a/app/Models/Module.php +++ b/app/Models/Module.php @@ -1,6 +1,6 @@ belongsTo(Company::class); } diff --git a/app/Models/Payment.php b/app/Models/Payment.php index f8af9ceb..423f6964 100644 --- a/app/Models/Payment.php +++ b/app/Models/Payment.php @@ -1,16 +1,18 @@ 'string', - 'exchange_rate' => 'float', - ]; + protected function casts(): array + { + return [ + 'notes' => 'string', + 'exchange_rate' => 'float', + ]; + } protected static function booted() { @@ -84,42 +89,42 @@ class Payment extends Model implements HasMedia return url('/payments/pdf/'.$this->unique_hash); } - public function transaction() + public function transaction(): BelongsTo { return $this->belongsTo(Transaction::class); } - public function emailLogs() + public function emailLogs(): MorphMany { return $this->morphMany('App\Models\EmailLog', 'mailable'); } - public function customer() + public function customer(): BelongsTo { return $this->belongsTo(Customer::class, 'customer_id'); } - public function company() + public function company(): BelongsTo { return $this->belongsTo(Company::class); } - public function invoice() + public function invoice(): BelongsTo { return $this->belongsTo(Invoice::class); } - public function creator() + public function creator(): BelongsTo { - return $this->belongsTo('InvoiceShelf\Models\User', 'creator_id'); + return $this->belongsTo(\App\Models\User::class, 'creator_id'); } - public function currency() + public function currency(): BelongsTo { return $this->belongsTo(Currency::class); } - public function paymentMethod() + public function paymentMethod(): BelongsTo { return $this->belongsTo(PaymentMethod::class); } diff --git a/app/Models/PaymentMethod.php b/app/Models/PaymentMethod.php index aab51b30..ab3a8a3c 100644 --- a/app/Models/PaymentMethod.php +++ b/app/Models/PaymentMethod.php @@ -1,9 +1,11 @@ 'array', - 'use_test_env' => 'boolean', - ]; + protected function casts(): array + { + return [ + 'settings' => 'array', + 'use_test_env' => 'boolean', + ]; + } public function setSettingsAttribute($value) { $this->attributes['settings'] = json_encode($value); } - public function payments() + public function payments(): HasMany { return $this->hasMany(Payment::class); } - public function expenses() + public function expenses(): HasMany { return $this->hasMany(Expense::class); } - public function company() + public function company(): BelongsTo { return $this->belongsTo(Company::class); } diff --git a/app/Models/RecurringInvoice.php b/app/Models/RecurringInvoice.php index 33f10fd8..8afbeed9 100644 --- a/app/Models/RecurringInvoice.php +++ b/app/Models/RecurringInvoice.php @@ -1,14 +1,16 @@ 'float', - 'send_automatically' => 'boolean', - ]; + protected function casts(): array + { + return [ + 'exchange_rate' => 'float', + 'send_automatically' => 'boolean', + ]; + } public function getFormattedStartsAtAttribute() { @@ -76,37 +81,37 @@ class RecurringInvoice extends Model return Carbon::parse($this->created_at)->format($dateFormat); } - public function invoices() + public function invoices(): HasMany { return $this->hasMany(Invoice::class); } - public function taxes() + public function taxes(): HasMany { return $this->hasMany(Tax::class); } - public function items() + public function items(): HasMany { return $this->hasMany(InvoiceItem::class); } - public function customer() + public function customer(): BelongsTo { return $this->belongsTo(Customer::class); } - public function company() + public function company(): BelongsTo { return $this->belongsTo(Company::class); } - public function creator() + public function creator(): BelongsTo { return $this->belongsTo(User::class, 'creator_id'); } - public function currency() + public function currency(): BelongsTo { return $this->belongsTo(Currency::class); } diff --git a/app/Models/Setting.php b/app/Models/Setting.php index 188b595d..5031d3c0 100644 --- a/app/Models/Setting.php +++ b/app/Models/Setting.php @@ -1,6 +1,6 @@ 'integer', - 'percent' => 'float', - ]; + protected function casts(): array + { + return [ + 'amount' => 'integer', + 'percent' => 'float', + ]; + } - public function taxType() + public function taxType(): BelongsTo { return $this->belongsTo(TaxType::class); } - public function invoice() + public function invoice(): BelongsTo { return $this->belongsTo(Invoice::class); } - public function recurringInvoice() + public function recurringInvoice(): BelongsTo { return $this->belongsTo(RecurringInvoice::class); } - public function estimate() + public function estimate(): BelongsTo { return $this->belongsTo(Estimate::class); } - public function currency() + public function currency(): BelongsTo { return $this->belongsTo(Currency::class); } - public function invoiceItem() + public function invoiceItem(): BelongsTo { return $this->belongsTo(InvoiceItem::class); } - public function estimateItem() + public function estimateItem(): BelongsTo { return $this->belongsTo(EstimateItem::class); } - public function item() + public function item(): BelongsTo { return $this->belongsTo(Item::class); } diff --git a/app/Models/TaxType.php b/app/Models/TaxType.php index f14d6f34..30dc7392 100644 --- a/app/Models/TaxType.php +++ b/app/Models/TaxType.php @@ -1,9 +1,11 @@ 'float', - 'compound_tax' => 'boolean', - ]; + protected function casts(): array + { + return [ + 'percent' => 'float', + 'compound_tax' => 'boolean', + ]; + } public const TYPE_GENERAL = 'GENERAL'; public const TYPE_MODULE = 'MODULE'; - public function taxes() + public function taxes(): HasMany { return $this->hasMany(Tax::class); } - public function company() + public function company(): BelongsTo { return $this->belongsTo(Company::class); } diff --git a/app/Models/Transaction.php b/app/Models/Transaction.php index 3dc761d3..6682a901 100644 --- a/app/Models/Transaction.php +++ b/app/Models/Transaction.php @@ -1,10 +1,12 @@ hasMany(Payment::class); } - public function invoice() + public function invoice(): BelongsTo { return $this->belongsTo(Invoice::class); } - public function company() + public function company(): BelongsTo { return $this->belongsTo(Company::class); } diff --git a/app/Models/Unit.php b/app/Models/Unit.php index 0328b615..5fe010ed 100644 --- a/app/Models/Unit.php +++ b/app/Models/Unit.php @@ -1,9 +1,11 @@ hasMany(Item::class); } - public function company() + public function company(): BelongsTo { return $this->belongsTo(Company::class); } diff --git a/app/Models/User.php b/app/Models/User.php index 0fe9005c..167a0477 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -1,15 +1,19 @@ header('company')); + $company_id = (CompanySetting::where('company_id', request()->header('company'))->exists()) + ? request()->header('company') + : $this->companies()->first()->id; + $dateFormat = CompanySetting::getSetting('carbon_date_format', $company_id); return Carbon::parse($this->created_at)->format($dateFormat); } - public function estimates() + public function estimates(): HasMany { return $this->hasMany(Estimate::class, 'creator_id'); } - public function customers() + public function customers(): HasMany { return $this->hasMany(Customer::class, 'creator_id'); } - public function recurringInvoices() + public function recurringInvoices(): HasMany { return $this->hasMany(RecurringInvoice::class, 'creator_id'); } - public function currency() + public function currency(): BelongsTo { return $this->belongsTo(Currency::class, 'currency_id'); } - public function creator() + public function creator(): BelongsTo { - return $this->belongsTo('InvoiceShelf\Models\User', 'creator_id'); + return $this->belongsTo(\App\Models\User::class, 'creator_id'); } - public function companies() + public function companies(): BelongsToMany { return $this->belongsToMany(Company::class, 'user_company', 'user_id', 'company_id'); } - public function expenses() + public function expenses(): HasMany { return $this->hasMany(Expense::class, 'creator_id'); } - public function payments() + public function payments(): HasMany { return $this->hasMany(Payment::class, 'creator_id'); } - public function invoices() + public function invoices(): HasMany { return $this->hasMany(Invoice::class, 'creator_id'); } - public function items() + public function items(): HasMany { return $this->hasMany(Item::class, 'creator_id'); } - public function settings() + public function settings(): HasMany { return $this->hasMany(UserSetting::class, 'user_id'); } - public function addresses() + public function addresses(): HasMany { return $this->hasMany(Address::class); } - public function billingAddress() + public function billingAddress(): HasOne { return $this->hasOne(Address::class)->where('type', Address::BILLING_TYPE); } - public function shippingAddress() + public function shippingAddress(): HasOne { return $this->hasOne(Address::class)->where('type', Address::SHIPPING_TYPE); } diff --git a/app/Models/UserSetting.php b/app/Models/UserSetting.php index 15a67732..5229ee04 100644 --- a/app/Models/UserSetting.php +++ b/app/Models/UserSetting.php @@ -1,9 +1,10 @@ belongsTo(User::class); } diff --git a/app/Notifications/CustomerMailResetPasswordNotification.php b/app/Notifications/CustomerMailResetPasswordNotification.php index 6a64e2a1..f33b39c6 100644 --- a/app/Notifications/CustomerMailResetPasswordNotification.php +++ b/app/Notifications/CustomerMailResetPasswordNotification.php @@ -1,6 +1,6 @@ company->slug}/customer/reset/password/".$this->token); @@ -54,9 +52,8 @@ class CustomerMailResetPasswordNotification extends ResetPassword * Get the array representation of the notification. * * @param mixed $notifiable - * @return array */ - public function toArray($notifiable) + public function toArray($notifiable): array { return [ // diff --git a/app/Notifications/MailResetPasswordNotification.php b/app/Notifications/MailResetPasswordNotification.php index bf455365..73d57f63 100644 --- a/app/Notifications/MailResetPasswordNotification.php +++ b/app/Notifications/MailResetPasswordNotification.php @@ -1,6 +1,6 @@ token); @@ -54,9 +52,8 @@ class MailResetPasswordNotification extends ResetPassword * Get the array representation of the notification. * * @param mixed $notifiable - * @return array */ - public function toArray($notifiable) + public function toArray($notifiable): array { return [ // diff --git a/app/Policies/CompanyPolicy.php b/app/Policies/CompanyPolicy.php index 1d8d3d32..93210abd 100644 --- a/app/Policies/CompanyPolicy.php +++ b/app/Policies/CompanyPolicy.php @@ -1,16 +1,16 @@ isOwner()) { return true; @@ -19,7 +19,7 @@ class CompanyPolicy return false; } - public function delete(User $user, Company $company) + public function delete(User $user, Company $company): bool { if ($user->id == $company->owner_id) { return true; diff --git a/app/Policies/CustomFieldPolicy.php b/app/Policies/CustomFieldPolicy.php index add706ef..8b099b19 100644 --- a/app/Policies/CustomFieldPolicy.php +++ b/app/Policies/CustomFieldPolicy.php @@ -1,10 +1,10 @@ hasCompany($customField->company_id)) { return true; @@ -44,7 +44,7 @@ class CustomFieldPolicy * * @return mixed */ - public function create(User $user) + public function create(User $user): bool { if (BouncerFacade::can('create-custom-field', CustomField::class)) { return true; @@ -58,7 +58,7 @@ class CustomFieldPolicy * * @return mixed */ - public function update(User $user, CustomField $customField) + public function update(User $user, CustomField $customField): bool { if (BouncerFacade::can('edit-custom-field', $customField) && $user->hasCompany($customField->company_id)) { return true; @@ -72,7 +72,7 @@ class CustomFieldPolicy * * @return mixed */ - public function delete(User $user, CustomField $customField) + public function delete(User $user, CustomField $customField): bool { if (BouncerFacade::can('delete-custom-field', $customField) && $user->hasCompany($customField->company_id)) { return true; @@ -86,7 +86,7 @@ class CustomFieldPolicy * * @return mixed */ - public function restore(User $user, CustomField $customField) + public function restore(User $user, CustomField $customField): bool { if (BouncerFacade::can('delete-custom-field', $customField) && $user->hasCompany($customField->company_id)) { return true; @@ -100,7 +100,7 @@ class CustomFieldPolicy * * @return mixed */ - public function forceDelete(User $user, CustomField $customField) + public function forceDelete(User $user, CustomField $customField): bool { if (BouncerFacade::can('delete-custom-field', $customField) && $user->hasCompany($customField->company_id)) { return true; diff --git a/app/Policies/CustomerPolicy.php b/app/Policies/CustomerPolicy.php index 57194205..aa2feccb 100644 --- a/app/Policies/CustomerPolicy.php +++ b/app/Policies/CustomerPolicy.php @@ -1,10 +1,10 @@ hasCompany($company->id)) { return true; diff --git a/app/Policies/EstimatePolicy.php b/app/Policies/EstimatePolicy.php index 2817db9c..e83bf3ab 100644 --- a/app/Policies/EstimatePolicy.php +++ b/app/Policies/EstimatePolicy.php @@ -1,10 +1,10 @@ hasCompany($estimate->company_id)) { return true; @@ -44,7 +44,7 @@ class EstimatePolicy * * @return mixed */ - public function create(User $user) + public function create(User $user): bool { if (BouncerFacade::can('create-estimate', Estimate::class)) { return true; @@ -58,7 +58,7 @@ class EstimatePolicy * * @return mixed */ - public function update(User $user, Estimate $estimate) + public function update(User $user, Estimate $estimate): bool { if (BouncerFacade::can('edit-estimate', $estimate) && $user->hasCompany($estimate->company_id)) { return true; @@ -72,7 +72,7 @@ class EstimatePolicy * * @return mixed */ - public function delete(User $user, Estimate $estimate) + public function delete(User $user, Estimate $estimate): bool { if (BouncerFacade::can('delete-estimate', $estimate) && $user->hasCompany($estimate->company_id)) { return true; @@ -86,7 +86,7 @@ class EstimatePolicy * * @return mixed */ - public function restore(User $user, Estimate $estimate) + public function restore(User $user, Estimate $estimate): bool { if (BouncerFacade::can('delete-estimate', $estimate) && $user->hasCompany($estimate->company_id)) { return true; @@ -100,7 +100,7 @@ class EstimatePolicy * * @return mixed */ - public function forceDelete(User $user, Estimate $estimate) + public function forceDelete(User $user, Estimate $estimate): bool { if (BouncerFacade::can('delete-estimate', $estimate) && $user->hasCompany($estimate->company_id)) { return true; @@ -112,7 +112,7 @@ class EstimatePolicy /** * Determine whether the user can send email of the model. * - * @param \InvoiceShelf\Models\Estimate $payment + * @param \App\Models\Estimate $payment * @return mixed */ public function send(User $user, Estimate $estimate) diff --git a/app/Policies/ExchangeRateProviderPolicy.php b/app/Policies/ExchangeRateProviderPolicy.php index 617599fa..b53addcc 100644 --- a/app/Policies/ExchangeRateProviderPolicy.php +++ b/app/Policies/ExchangeRateProviderPolicy.php @@ -1,10 +1,10 @@ hasCompany($exchangeRateProvider->company_id)) { return true; @@ -44,7 +44,7 @@ class ExchangeRateProviderPolicy * * @return \Illuminate\Auth\Access\Response|bool */ - public function create(User $user) + public function create(User $user): bool { if (BouncerFacade::can('create-exchange-rate-provider', ExchangeRateProvider::class)) { return true; @@ -58,7 +58,7 @@ class ExchangeRateProviderPolicy * * @return \Illuminate\Auth\Access\Response|bool */ - public function update(User $user, ExchangeRateProvider $exchangeRateProvider) + public function update(User $user, ExchangeRateProvider $exchangeRateProvider): bool { if (BouncerFacade::can('edit-exchange-rate-provider', $exchangeRateProvider) && $user->hasCompany($exchangeRateProvider->company_id)) { return true; @@ -72,7 +72,7 @@ class ExchangeRateProviderPolicy * * @return \Illuminate\Auth\Access\Response|bool */ - public function delete(User $user, ExchangeRateProvider $exchangeRateProvider) + public function delete(User $user, ExchangeRateProvider $exchangeRateProvider): bool { if (BouncerFacade::can('delete-exchange-rate-provider', $exchangeRateProvider) && $user->hasCompany($exchangeRateProvider->company_id)) { return true; @@ -86,7 +86,7 @@ class ExchangeRateProviderPolicy * * @return \Illuminate\Auth\Access\Response|bool */ - public function restore(User $user, ExchangeRateProvider $exchangeRateProvider) + public function restore(User $user, ExchangeRateProvider $exchangeRateProvider): bool { // } @@ -96,7 +96,7 @@ class ExchangeRateProviderPolicy * * @return \Illuminate\Auth\Access\Response|bool */ - public function forceDelete(User $user, ExchangeRateProvider $exchangeRateProvider) + public function forceDelete(User $user, ExchangeRateProvider $exchangeRateProvider): bool { // } diff --git a/app/Policies/ExpenseCategoryPolicy.php b/app/Policies/ExpenseCategoryPolicy.php index f6bf268b..7aa06563 100644 --- a/app/Policies/ExpenseCategoryPolicy.php +++ b/app/Policies/ExpenseCategoryPolicy.php @@ -1,11 +1,11 @@ hasCompany($expenseCategory->company_id)) { return true; @@ -45,7 +45,7 @@ class ExpenseCategoryPolicy * * @return mixed */ - public function create(User $user) + public function create(User $user): bool { if (BouncerFacade::can('view-expense', Expense::class)) { return true; @@ -59,7 +59,7 @@ class ExpenseCategoryPolicy * * @return mixed */ - public function update(User $user, ExpenseCategory $expenseCategory) + public function update(User $user, ExpenseCategory $expenseCategory): bool { if (BouncerFacade::can('view-expense', Expense::class) && $user->hasCompany($expenseCategory->company_id)) { return true; @@ -73,7 +73,7 @@ class ExpenseCategoryPolicy * * @return mixed */ - public function delete(User $user, ExpenseCategory $expenseCategory) + public function delete(User $user, ExpenseCategory $expenseCategory): bool { if (BouncerFacade::can('view-expense', Expense::class) && $user->hasCompany($expenseCategory->company_id)) { return true; @@ -87,7 +87,7 @@ class ExpenseCategoryPolicy * * @return mixed */ - public function restore(User $user, ExpenseCategory $expenseCategory) + public function restore(User $user, ExpenseCategory $expenseCategory): bool { if (BouncerFacade::can('view-expense', Expense::class) && $user->hasCompany($expenseCategory->company_id)) { return true; @@ -101,7 +101,7 @@ class ExpenseCategoryPolicy * * @return mixed */ - public function forceDelete(User $user, ExpenseCategory $expenseCategory) + public function forceDelete(User $user, ExpenseCategory $expenseCategory): bool { if (BouncerFacade::can('view-expense', Expense::class) && $user->hasCompany($expenseCategory->company_id)) { return true; diff --git a/app/Policies/ExpensePolicy.php b/app/Policies/ExpensePolicy.php index 29caaf88..770faa2d 100644 --- a/app/Policies/ExpensePolicy.php +++ b/app/Policies/ExpensePolicy.php @@ -1,10 +1,10 @@ hasCompany($expense->company_id)) { return true; @@ -44,7 +44,7 @@ class ExpensePolicy * * @return mixed */ - public function create(User $user) + public function create(User $user): bool { if (BouncerFacade::can('create-expense', Expense::class)) { return true; @@ -58,7 +58,7 @@ class ExpensePolicy * * @return mixed */ - public function update(User $user, Expense $expense) + public function update(User $user, Expense $expense): bool { if (BouncerFacade::can('edit-expense', $expense) && $user->hasCompany($expense->company_id)) { return true; @@ -72,7 +72,7 @@ class ExpensePolicy * * @return mixed */ - public function delete(User $user, Expense $expense) + public function delete(User $user, Expense $expense): bool { if (BouncerFacade::can('delete-expense', $expense) && $user->hasCompany($expense->company_id)) { return true; @@ -86,7 +86,7 @@ class ExpensePolicy * * @return mixed */ - public function restore(User $user, Expense $expense) + public function restore(User $user, Expense $expense): bool { if (BouncerFacade::can('delete-expense', $expense) && $user->hasCompany($expense->company_id)) { return true; @@ -100,7 +100,7 @@ class ExpensePolicy * * @return mixed */ - public function forceDelete(User $user, Expense $expense) + public function forceDelete(User $user, Expense $expense): bool { if (BouncerFacade::can('delete-expense', $expense) && $user->hasCompany($expense->company_id)) { return true; diff --git a/app/Policies/InvoicePolicy.php b/app/Policies/InvoicePolicy.php index d0704be6..cb67aae3 100644 --- a/app/Policies/InvoicePolicy.php +++ b/app/Policies/InvoicePolicy.php @@ -1,10 +1,10 @@ hasCompany($invoice->company_id)) { return true; @@ -44,7 +44,7 @@ class InvoicePolicy * * @return mixed */ - public function create(User $user) + public function create(User $user): bool { if (BouncerFacade::can('create-invoice', Invoice::class)) { return true; @@ -58,7 +58,7 @@ class InvoicePolicy * * @return mixed */ - public function update(User $user, Invoice $invoice) + public function update(User $user, Invoice $invoice): bool { if (BouncerFacade::can('edit-invoice', $invoice) && $user->hasCompany($invoice->company_id)) { return $invoice->allow_edit; @@ -72,7 +72,7 @@ class InvoicePolicy * * @return mixed */ - public function delete(User $user, Invoice $invoice) + public function delete(User $user, Invoice $invoice): bool { if (BouncerFacade::can('delete-invoice', $invoice) && $user->hasCompany($invoice->company_id)) { return true; @@ -86,7 +86,7 @@ class InvoicePolicy * * @return mixed */ - public function restore(User $user, Invoice $invoice) + public function restore(User $user, Invoice $invoice): bool { if (BouncerFacade::can('delete-invoice', $invoice) && $user->hasCompany($invoice->company_id)) { return true; @@ -100,7 +100,7 @@ class InvoicePolicy * * @return mixed */ - public function forceDelete(User $user, Invoice $invoice) + public function forceDelete(User $user, Invoice $invoice): bool { if (BouncerFacade::can('delete-invoice', $invoice) && $user->hasCompany($invoice->company_id)) { return true; @@ -112,7 +112,7 @@ class InvoicePolicy /** * Determine whether the user can send email of the model. * - * @param \InvoiceShelf\Models\Payment $payment + * @param \App\Models\Payment $payment * @return mixed */ public function send(User $user, Invoice $invoice) diff --git a/app/Policies/ItemPolicy.php b/app/Policies/ItemPolicy.php index b93beeaa..074f33b2 100644 --- a/app/Policies/ItemPolicy.php +++ b/app/Policies/ItemPolicy.php @@ -1,10 +1,10 @@ hasCompany($item->company_id)) { return true; @@ -44,7 +44,7 @@ class ItemPolicy * * @return mixed */ - public function create(User $user) + public function create(User $user): bool { if (BouncerFacade::can('create-item', Item::class)) { return true; @@ -58,7 +58,7 @@ class ItemPolicy * * @return mixed */ - public function update(User $user, Item $item) + public function update(User $user, Item $item): bool { if (BouncerFacade::can('edit-item', $item) && $user->hasCompany($item->company_id)) { return true; @@ -72,7 +72,7 @@ class ItemPolicy * * @return mixed */ - public function delete(User $user, Item $item) + public function delete(User $user, Item $item): bool { if (BouncerFacade::can('delete-item', $item) && $user->hasCompany($item->company_id)) { return true; @@ -86,7 +86,7 @@ class ItemPolicy * * @return mixed */ - public function restore(User $user, Item $item) + public function restore(User $user, Item $item): bool { if (BouncerFacade::can('delete-item', $item) && $user->hasCompany($item->company_id)) { return true; @@ -100,7 +100,7 @@ class ItemPolicy * * @return mixed */ - public function forceDelete(User $user, Item $item) + public function forceDelete(User $user, Item $item): bool { if (BouncerFacade::can('delete-item', $item) && $user->hasCompany($item->company_id)) { return true; diff --git a/app/Policies/ModulesPolicy.php b/app/Policies/ModulesPolicy.php index e4b729e2..f5c6e886 100644 --- a/app/Policies/ModulesPolicy.php +++ b/app/Policies/ModulesPolicy.php @@ -1,9 +1,9 @@ hasCompany($paymentMethod->company_id)) { return true; @@ -45,7 +45,7 @@ class PaymentMethodPolicy * * @return mixed */ - public function create(User $user) + public function create(User $user): bool { if (BouncerFacade::can('view-payment', Payment::class)) { return true; @@ -59,7 +59,7 @@ class PaymentMethodPolicy * * @return mixed */ - public function update(User $user, PaymentMethod $paymentMethod) + public function update(User $user, PaymentMethod $paymentMethod): bool { if (BouncerFacade::can('view-payment', Payment::class) && $user->hasCompany($paymentMethod->company_id)) { return true; @@ -73,7 +73,7 @@ class PaymentMethodPolicy * * @return mixed */ - public function delete(User $user, PaymentMethod $paymentMethod) + public function delete(User $user, PaymentMethod $paymentMethod): bool { if (BouncerFacade::can('view-payment', Payment::class) && $user->hasCompany($paymentMethod->company_id)) { return true; @@ -87,7 +87,7 @@ class PaymentMethodPolicy * * @return mixed */ - public function restore(User $user, PaymentMethod $paymentMethod) + public function restore(User $user, PaymentMethod $paymentMethod): bool { if (BouncerFacade::can('view-payment', Payment::class) && $user->hasCompany($paymentMethod->company_id)) { return true; @@ -101,7 +101,7 @@ class PaymentMethodPolicy * * @return mixed */ - public function forceDelete(User $user, PaymentMethod $paymentMethod) + public function forceDelete(User $user, PaymentMethod $paymentMethod): bool { if (BouncerFacade::can('view-payment', Payment::class) && $user->hasCompany($paymentMethod->company_id)) { return true; diff --git a/app/Policies/PaymentPolicy.php b/app/Policies/PaymentPolicy.php index 9e2b5e92..8ca7dfda 100644 --- a/app/Policies/PaymentPolicy.php +++ b/app/Policies/PaymentPolicy.php @@ -1,10 +1,10 @@ hasCompany($payment->company_id)) { return true; @@ -44,7 +44,7 @@ class PaymentPolicy * * @return mixed */ - public function create(User $user) + public function create(User $user): bool { if (BouncerFacade::can('create-payment', Payment::class)) { return true; @@ -58,7 +58,7 @@ class PaymentPolicy * * @return mixed */ - public function update(User $user, Payment $payment) + public function update(User $user, Payment $payment): bool { if (BouncerFacade::can('edit-payment', $payment) && $user->hasCompany($payment->company_id)) { return true; @@ -72,7 +72,7 @@ class PaymentPolicy * * @return mixed */ - public function delete(User $user, Payment $payment) + public function delete(User $user, Payment $payment): bool { if (BouncerFacade::can('delete-payment', $payment) && $user->hasCompany($payment->company_id)) { return true; @@ -86,7 +86,7 @@ class PaymentPolicy * * @return mixed */ - public function restore(User $user, Payment $payment) + public function restore(User $user, Payment $payment): bool { if (BouncerFacade::can('delete-payment', $payment) && $user->hasCompany($payment->company_id)) { return true; @@ -100,7 +100,7 @@ class PaymentPolicy * * @return mixed */ - public function forceDelete(User $user, Payment $payment) + public function forceDelete(User $user, Payment $payment): bool { if (BouncerFacade::can('delete-payment', $payment) && $user->hasCompany($payment->company_id)) { return true; diff --git a/app/Policies/RecurringInvoicePolicy.php b/app/Policies/RecurringInvoicePolicy.php index f5f9b379..9750bfbf 100644 --- a/app/Policies/RecurringInvoicePolicy.php +++ b/app/Policies/RecurringInvoicePolicy.php @@ -1,10 +1,10 @@ hasCompany($recurringInvoice->company_id)) { return true; @@ -44,7 +44,7 @@ class RecurringInvoicePolicy * * @return \Illuminate\Auth\Access\Response|bool */ - public function create(User $user) + public function create(User $user): bool { if (BouncerFacade::can('create-recurring-invoice', RecurringInvoice::class)) { return true; @@ -58,7 +58,7 @@ class RecurringInvoicePolicy * * @return \Illuminate\Auth\Access\Response|bool */ - public function update(User $user, RecurringInvoice $recurringInvoice) + public function update(User $user, RecurringInvoice $recurringInvoice): bool { if (BouncerFacade::can('edit-recurring-invoice', $recurringInvoice) && $user->hasCompany($recurringInvoice->company_id)) { return true; @@ -72,7 +72,7 @@ class RecurringInvoicePolicy * * @return \Illuminate\Auth\Access\Response|bool */ - public function delete(User $user, RecurringInvoice $recurringInvoice) + public function delete(User $user, RecurringInvoice $recurringInvoice): bool { if (BouncerFacade::can('delete-recurring-invoice', $recurringInvoice) && $user->hasCompany($recurringInvoice->company_id)) { return true; @@ -86,7 +86,7 @@ class RecurringInvoicePolicy * * @return \Illuminate\Auth\Access\Response|bool */ - public function restore(User $user, RecurringInvoice $recurringInvoice) + public function restore(User $user, RecurringInvoice $recurringInvoice): bool { if (BouncerFacade::can('delete-recurring-invoice', $recurringInvoice) && $user->hasCompany($recurringInvoice->company_id)) { return true; @@ -100,7 +100,7 @@ class RecurringInvoicePolicy * * @return \Illuminate\Auth\Access\Response|bool */ - public function forceDelete(User $user, RecurringInvoice $recurringInvoice) + public function forceDelete(User $user, RecurringInvoice $recurringInvoice): bool { if (BouncerFacade::can('delete-recurring-invoice', $recurringInvoice) && $user->hasCompany($recurringInvoice->company_id)) { return true; diff --git a/app/Policies/ReportPolicy.php b/app/Policies/ReportPolicy.php index 6710e1b0..92642e6f 100644 --- a/app/Policies/ReportPolicy.php +++ b/app/Policies/ReportPolicy.php @@ -1,10 +1,10 @@ isOwner()) { - return true; - } - - return false; + return $user->isOwner(); } /** * Determine whether the user can view the model. - * - * @return mixed */ - public function view(User $user, Role $role) + public function view(User $user, Role $role): bool { - if ($user->isOwner()) { - return true; - } - - return false; + return $user->isOwner(); } /** * Determine whether the user can create models. - * - * @return mixed */ - public function create(User $user) + public function create(User $user): bool { - if ($user->isOwner()) { - return true; - } - - return false; + return $user->isOwner(); } /** * Determine whether the user can update the model. - * - * @return mixed */ - public function update(User $user, Role $role) + public function update(User $user, Role $role): bool { - if ($user->isOwner()) { - return true; - } - - return false; + return $user->isOwner(); } /** * Determine whether the user can delete the model. - * - * @return mixed */ - public function delete(User $user, Role $role) + public function delete(User $user, Role $role): bool { - if ($user->isOwner()) { - return true; - } - - return false; + return $user->isOwner(); } /** * Determine whether the user can restore the model. - * - * @return mixed */ - public function restore(User $user, Role $role) + public function restore(User $user, Role $role): bool { - if ($user->isOwner()) { - return true; - } - - return false; + return $user->isOwner(); } /** * Determine whether the user can permanently delete the model. - * - * @return mixed */ - public function forceDelete(User $user, Role $role) + public function forceDelete(User $user, Role $role): bool { - if ($user->isOwner()) { - return true; - } - - return false; + return $user->isOwner(); } } diff --git a/app/Policies/SettingsPolicy.php b/app/Policies/SettingsPolicy.php index 2a68addb..6fd3d1a7 100644 --- a/app/Policies/SettingsPolicy.php +++ b/app/Policies/SettingsPolicy.php @@ -1,10 +1,10 @@ hasCompany($taxType->company_id)) { return true; @@ -44,7 +44,7 @@ class TaxTypePolicy * * @return mixed */ - public function create(User $user) + public function create(User $user): bool { if (BouncerFacade::can('create-tax-type', TaxType::class)) { return true; @@ -58,7 +58,7 @@ class TaxTypePolicy * * @return mixed */ - public function update(User $user, TaxType $taxType) + public function update(User $user, TaxType $taxType): bool { if (BouncerFacade::can('edit-tax-type', $taxType) && $user->hasCompany($taxType->company_id)) { return true; @@ -72,7 +72,7 @@ class TaxTypePolicy * * @return mixed */ - public function delete(User $user, TaxType $taxType) + public function delete(User $user, TaxType $taxType): bool { if (BouncerFacade::can('delete-tax-type', $taxType) && $user->hasCompany($taxType->company_id)) { return true; @@ -86,7 +86,7 @@ class TaxTypePolicy * * @return mixed */ - public function restore(User $user, TaxType $taxType) + public function restore(User $user, TaxType $taxType): bool { if (BouncerFacade::can('delete-tax-type', $taxType) && $user->hasCompany($taxType->company_id)) { return true; @@ -100,7 +100,7 @@ class TaxTypePolicy * * @return mixed */ - public function forceDelete(User $user, TaxType $taxType) + public function forceDelete(User $user, TaxType $taxType): bool { if (BouncerFacade::can('delete-tax-type', $taxType) && $user->hasCompany($taxType->company_id)) { return true; diff --git a/app/Policies/UnitPolicy.php b/app/Policies/UnitPolicy.php index 34271f8a..4a8b7f3d 100644 --- a/app/Policies/UnitPolicy.php +++ b/app/Policies/UnitPolicy.php @@ -1,11 +1,11 @@ hasCompany($unit->company_id)) { return true; @@ -45,7 +45,7 @@ class UnitPolicy * * @return mixed */ - public function create(User $user) + public function create(User $user): bool { if (BouncerFacade::can('view-item', Item::class)) { return true; @@ -59,7 +59,7 @@ class UnitPolicy * * @return mixed */ - public function update(User $user, Unit $unit) + public function update(User $user, Unit $unit): bool { if (BouncerFacade::can('view-item', Item::class) && $user->hasCompany($unit->company_id)) { return true; @@ -73,7 +73,7 @@ class UnitPolicy * * @return mixed */ - public function delete(User $user, Unit $unit) + public function delete(User $user, Unit $unit): bool { if (BouncerFacade::can('view-item', Item::class) && $user->hasCompany($unit->company_id)) { return true; @@ -87,7 +87,7 @@ class UnitPolicy * * @return mixed */ - public function restore(User $user, Unit $unit) + public function restore(User $user, Unit $unit): bool { if (BouncerFacade::can('view-item', Item::class) && $user->hasCompany($unit->company_id)) { return true; @@ -101,7 +101,7 @@ class UnitPolicy * * @return mixed */ - public function forceDelete(User $user, Unit $unit) + public function forceDelete(User $user, Unit $unit): bool { if (BouncerFacade::can('view-item', Item::class) && $user->hasCompany($unit->company_id)) { return true; diff --git a/app/Policies/UserPolicy.php b/app/Policies/UserPolicy.php index c6c9d273..ad1305b0 100644 --- a/app/Policies/UserPolicy.php +++ b/app/Policies/UserPolicy.php @@ -1,9 +1,9 @@ isOwner()) { return true; @@ -28,7 +28,7 @@ class UserPolicy * * @return mixed */ - public function view(User $user, User $model) + public function view(User $user, User $model): bool { if ($user->isOwner()) { return true; @@ -42,7 +42,7 @@ class UserPolicy * * @return mixed */ - public function create(User $user) + public function create(User $user): bool { if ($user->isOwner()) { return true; @@ -56,7 +56,7 @@ class UserPolicy * * @return mixed */ - public function update(User $user, User $model) + public function update(User $user, User $model): bool { if ($user->isOwner()) { return true; @@ -70,7 +70,7 @@ class UserPolicy * * @return mixed */ - public function delete(User $user, User $model) + public function delete(User $user, User $model): bool { if ($user->isOwner()) { return true; @@ -84,7 +84,7 @@ class UserPolicy * * @return mixed */ - public function restore(User $user, User $model) + public function restore(User $user, User $model): bool { if ($user->isOwner()) { return true; @@ -98,7 +98,7 @@ class UserPolicy * * @return mixed */ - public function forceDelete(User $user, User $model) + public function forceDelete(User $user, User $model): bool { if ($user->isOwner()) { return true; diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 62881023..d4eb3eb3 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -1,35 +1,62 @@ addMenus(); } + + Gate::policy(Role::class, RolePolicy::class); + + $this->bootAuth(); + $this->bootBroadcast(); } /** * Register any application services. - * - * @return void */ - public function register() + public function register(): void { BouncerModels::scope(new DefaultScope); } @@ -67,4 +94,46 @@ class AppServiceProvider extends ServiceProvider ->data('model', $data['model']) ->data('group', $data['group']); } + + public function bootAuth() + { + + Gate::define('create company', [CompanyPolicy::class, 'create']); + Gate::define('transfer company ownership', [CompanyPolicy::class, 'transferOwnership']); + Gate::define('delete company', [CompanyPolicy::class, 'delete']); + + Gate::define('manage modules', [ModulesPolicy::class, 'manageModules']); + + Gate::define('manage settings', [SettingsPolicy::class, 'manageSettings']); + Gate::define('manage company', [SettingsPolicy::class, 'manageCompany']); + Gate::define('manage backups', [SettingsPolicy::class, 'manageBackups']); + Gate::define('manage file disk', [SettingsPolicy::class, 'manageFileDisk']); + Gate::define('manage email config', [SettingsPolicy::class, 'manageEmailConfig']); + Gate::define('manage notes', [NotePolicy::class, 'manageNotes']); + Gate::define('view notes', [NotePolicy::class, 'viewNotes']); + + Gate::define('send invoice', [InvoicePolicy::class, 'send']); + Gate::define('send estimate', [EstimatePolicy::class, 'send']); + Gate::define('send payment', [PaymentPolicy::class, 'send']); + + Gate::define('delete multiple items', [ItemPolicy::class, 'deleteMultiple']); + Gate::define('delete multiple customers', [CustomerPolicy::class, 'deleteMultiple']); + Gate::define('delete multiple users', [UserPolicy::class, 'deleteMultiple']); + Gate::define('delete multiple invoices', [InvoicePolicy::class, 'deleteMultiple']); + Gate::define('delete multiple estimates', [EstimatePolicy::class, 'deleteMultiple']); + Gate::define('delete multiple expenses', [ExpensePolicy::class, 'deleteMultiple']); + Gate::define('delete multiple payments', [PaymentPolicy::class, 'deleteMultiple']); + Gate::define('delete multiple recurring invoices', [RecurringInvoicePolicy::class, 'deleteMultiple']); + + Gate::define('view dashboard', [DashboardPolicy::class, 'view']); + + Gate::define('view report', [ReportPolicy::class, 'viewReport']); + + Gate::define('owner only', [OwnerPolicy::class, 'managedByOwner']); + } + + public function bootBroadcast() + { + Broadcast::routes(['middleware' => 'api.auth']); + } } diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php deleted file mode 100644 index b5e59d15..00000000 --- a/app/Providers/AuthServiceProvider.php +++ /dev/null @@ -1,90 +0,0 @@ - \InvoiceShelf\Policies\CustomerPolicy::class, - \InvoiceShelf\Models\Invoice::class => \InvoiceShelf\Policies\InvoicePolicy::class, - \InvoiceShelf\Models\Estimate::class => \InvoiceShelf\Policies\EstimatePolicy::class, - \InvoiceShelf\Models\Payment::class => \InvoiceShelf\Policies\PaymentPolicy::class, - \InvoiceShelf\Models\Expense::class => \InvoiceShelf\Policies\ExpensePolicy::class, - \InvoiceShelf\Models\ExpenseCategory::class => \InvoiceShelf\Policies\ExpenseCategoryPolicy::class, - \InvoiceShelf\Models\PaymentMethod::class => \InvoiceShelf\Policies\PaymentMethodPolicy::class, - \InvoiceShelf\Models\TaxType::class => \InvoiceShelf\Policies\TaxTypePolicy::class, - \InvoiceShelf\Models\CustomField::class => \InvoiceShelf\Policies\CustomFieldPolicy::class, - \InvoiceShelf\Models\User::class => \InvoiceShelf\Policies\UserPolicy::class, - \InvoiceShelf\Models\Item::class => \InvoiceShelf\Policies\ItemPolicy::class, - \Silber\Bouncer\Database\Role::class => \InvoiceShelf\Policies\RolePolicy::class, - \InvoiceShelf\Models\Unit::class => \InvoiceShelf\Policies\UnitPolicy::class, - \InvoiceShelf\Models\RecurringInvoice::class => \InvoiceShelf\Policies\RecurringInvoicePolicy::class, - \InvoiceShelf\Models\ExchangeRateProvider::class => \InvoiceShelf\Policies\ExchangeRateProviderPolicy::class, - ]; - - /** - * Register any authentication / authorization services. - * - * @return void - */ - public function boot() - { - $this->registerPolicies(); - - Gate::define('create company', [CompanyPolicy::class, 'create']); - Gate::define('transfer company ownership', [CompanyPolicy::class, 'transferOwnership']); - Gate::define('delete company', [CompanyPolicy::class, 'delete']); - - Gate::define('manage modules', [ModulesPolicy::class, 'manageModules']); - - Gate::define('manage settings', [SettingsPolicy::class, 'manageSettings']); - Gate::define('manage company', [SettingsPolicy::class, 'manageCompany']); - Gate::define('manage backups', [SettingsPolicy::class, 'manageBackups']); - Gate::define('manage file disk', [SettingsPolicy::class, 'manageFileDisk']); - Gate::define('manage email config', [SettingsPolicy::class, 'manageEmailConfig']); - Gate::define('manage notes', [NotePolicy::class, 'manageNotes']); - Gate::define('view notes', [NotePolicy::class, 'viewNotes']); - - Gate::define('send invoice', [InvoicePolicy::class, 'send']); - Gate::define('send estimate', [EstimatePolicy::class, 'send']); - Gate::define('send payment', [PaymentPolicy::class, 'send']); - - Gate::define('delete multiple items', [ItemPolicy::class, 'deleteMultiple']); - Gate::define('delete multiple customers', [CustomerPolicy::class, 'deleteMultiple']); - Gate::define('delete multiple users', [UserPolicy::class, 'deleteMultiple']); - Gate::define('delete multiple invoices', [InvoicePolicy::class, 'deleteMultiple']); - Gate::define('delete multiple estimates', [EstimatePolicy::class, 'deleteMultiple']); - Gate::define('delete multiple expenses', [ExpensePolicy::class, 'deleteMultiple']); - Gate::define('delete multiple payments', [PaymentPolicy::class, 'deleteMultiple']); - Gate::define('delete multiple recurring invoices', [RecurringInvoicePolicy::class, 'deleteMultiple']); - - Gate::define('view dashboard', [DashboardPolicy::class, 'view']); - - Gate::define('view report', [ReportPolicy::class, 'viewReport']); - - Gate::define('owner only', [OwnerPolicy::class, 'managedByOwner']); - } -} diff --git a/app/Providers/BroadcastServiceProvider.php b/app/Providers/BroadcastServiceProvider.php deleted file mode 100644 index 03311fc2..00000000 --- a/app/Providers/BroadcastServiceProvider.php +++ /dev/null @@ -1,21 +0,0 @@ - 'api.auth']); - require base_path('routes/channels.php'); - } -} diff --git a/app/Providers/DropboxServiceProvider.php b/app/Providers/DropboxServiceProvider.php index 96fed754..334dc63e 100644 --- a/app/Providers/DropboxServiceProvider.php +++ b/app/Providers/DropboxServiceProvider.php @@ -1,6 +1,6 @@ [ - - ], - Registered::class => [ - SendEmailVerificationNotification::class, - ], - ]; - - /** - * Register any events for your application. - * - * @return void - */ - public function boot() - { - parent::boot(); - - // - } -} diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php index 9c95749d..9dffbff5 100644 --- a/app/Providers/RouteServiceProvider.php +++ b/app/Providers/RouteServiceProvider.php @@ -1,6 +1,6 @@ configureRateLimiting(); $this->routes(function () { Route::prefix('api') ->middleware('api') - ->namespace($this->namespace) ->group(base_path('routes/api.php')); Route::middleware('web') - ->namespace($this->namespace) ->group(base_path('routes/web.php')); }); } /** * Configure the rate limiters for the application. - * - * @return void */ - protected function configureRateLimiting() + protected function configureRateLimiting(): void { RateLimiter::for('api', function (Request $request) { return Limit::perMinute(60); diff --git a/app/Providers/ViewServiceProvider.php b/app/Providers/ViewServiceProvider.php index 16b868a4..17d7a106 100644 --- a/app/Providers/ViewServiceProvider.php +++ b/app/Providers/ViewServiceProvider.php @@ -1,6 +1,6 @@ extensions = $extensions; } - /** - * Determine if the validation rule passes. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function passes($attribute, $value) + public function validate(string $attribute, mixed $value, Closure $fail): void { $this->attribute = $attribute; + $failed = false; try { $decoded = json_decode(trim($value)); $name = ! empty($decoded->name) ? $decoded->name : ''; $data = ! empty($decoded->data) ? $decoded->data : ''; } catch (\Exception $e) { - return false; + $failed = true; } $extension = pathinfo($name, PATHINFO_EXTENSION); if (! in_array($extension, $this->extensions)) { - return false; + $failed = true; } $pattern = '/^data:\w+\/[\w\+]+;base64,[\w\+\=\/]+$/'; if (! preg_match($pattern, $data)) { - return false; + $failed = true; } $data = explode(',', $data); if (! isset($data[1]) || empty($data[1])) { - return false; + $failed = true; } try { @@ -62,34 +57,26 @@ class Base64Mime implements Rule $result = finfo_buffer($f, $data, FILEINFO_EXTENSION); if ($result === '???') { - return false; + $failed = true; } if (strpos($result, '/')) { foreach (explode('/', $result) as $ext) { if (in_array($ext, $this->extensions)) { - return true; + $failed = false; } } } else { if (in_array($result, $this->extensions)) { - return true; + $failed = false; } } } catch (\Exception $e) { - return false; + $failed = true; } - return false; - } - - /** - * Get the validation error message. - * - * @return string - */ - public function message() - { - return 'The '.$this->attribute.' must be a json with file of type: '.implode(', ', $this->extensions).' encoded in base64.'; + if ($failed) { + $fail('The '.$this->attribute.' must be a json with file of type: '.implode(', ', $this->extensions).' encoded in base64.'); + } } } diff --git a/app/Rules/RelationNotExist.php b/app/Rules/RelationNotExist.php index fd100682..452c49fb 100644 --- a/app/Rules/RelationNotExist.php +++ b/app/Rules/RelationNotExist.php @@ -1,10 +1,11 @@ relation; if ($this->class::find($value)->$relation()->exists()) { - return false; + $fail("Relation {$this->relation} exists."); } - return true; - } - - /** - * Get the validation error message. - * - * @return string - */ - public function message() - { - return "Relation {$this->relation} exists."; } } diff --git a/app/Services/Module/Module.php b/app/Services/Module/Module.php index c51a87ed..70e5103d 100644 --- a/app/Services/Module/Module.php +++ b/app/Services/Module/Module.php @@ -1,6 +1,6 @@ morphMany('InvoiceShelf\Models\CustomFieldValue', 'custom_field_valuable'); + return $this->morphMany(\App\Models\CustomFieldValue::class, 'custom_field_valuable'); } protected static function booted() diff --git a/artisan b/artisan index 5c23e2e2..8e04b422 100644 --- a/artisan +++ b/artisan @@ -1,53 +1,15 @@ #!/usr/bin/env php make(Illuminate\Contracts\Console\Kernel::class); - -$status = $kernel->handle( - $input = new Symfony\Component\Console\Input\ArgvInput, - new Symfony\Component\Console\Output\ConsoleOutput -); - -/* -|-------------------------------------------------------------------------- -| Shutdown The Application -|-------------------------------------------------------------------------- -| -| Once Artisan has finished running, we will fire off the shutdown events -| so that any final work may be done by the application before we shut -| down the process. This is the last thing to happen to the request. -| -*/ - -$kernel->terminate($input, $status); +// Bootstrap Laravel and handle the command... +$status = (require_once __DIR__.'/bootstrap/app.php') + ->handleCommand(new ArgvInput); exit($status); diff --git a/bootstrap/app.php b/bootstrap/app.php index cf96fb62..b71fd536 100644 --- a/bootstrap/app.php +++ b/bootstrap/app.php @@ -1,55 +1,73 @@ withProviders([ + \Lavary\Menu\ServiceProvider::class, + ]) + ->withRouting( + web: __DIR__.'/../routes/web.php', + api: __DIR__.'/../routes/api.php', + commands: __DIR__.'/../routes/console.php', + channels: __DIR__.'/../routes/channels.php', + health: '/up', + ) + ->withMiddleware(function (Middleware $middleware) { + $middleware->redirectGuestsTo(fn () => route('login')); + $middleware->redirectUsersTo(AppServiceProvider::HOME); -/* -|-------------------------------------------------------------------------- -| Bind Important Interfaces -|-------------------------------------------------------------------------- -| -| Next, we need to bind some important interfaces into the container so -| we will be able to resolve them when needed. The kernels serve the -| incoming requests to this application from both the web and CLI. -| -*/ + $middleware->validateCsrfTokens(except: [ + 'login', + ]); -$app->singleton( - Illuminate\Contracts\Http\Kernel::class, - InvoiceShelf\Http\Kernel::class -); + $middleware->append([ + \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class, + \App\Http\Middleware\TrimStrings::class, + \App\Http\Middleware\TrustProxies::class, + \App\Http\Middleware\ConfigMiddleware::class, + ]); -$app->singleton( - Illuminate\Contracts\Console\Kernel::class, - InvoiceShelf\Console\Kernel::class -); + $middleware->web([ + \App\Http\Middleware\EncryptCookies::class, + \App\Http\Middleware\VerifyCsrfToken::class, + ]); -$app->singleton( - Illuminate\Contracts\Debug\ExceptionHandler::class, - InvoiceShelf\Exceptions\Handler::class -); + $middleware->statefulApi(); + $middleware->throttleApi('180,1'); -/* -|-------------------------------------------------------------------------- -| Return The Application -|-------------------------------------------------------------------------- -| -| This script returns the application instance. The instance is given to -| the calling script so we can separate the building of the instances -| from the actual running of the application and sending responses. -| -*/ + $middleware->replace(\Illuminate\Http\Middleware\TrustProxies::class, \App\Http\Middleware\TrustProxies::class); -return $app; + $middleware->replaceInGroup('web', \Illuminate\Cookie\Middleware\EncryptCookies::class, \App\Http\Middleware\EncryptCookies::class); + + $middleware->alias([ + 'auth' => \App\Http\Middleware\Authenticate::class, + 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class, + 'bouncer' => \App\Http\Middleware\ScopeBouncer::class, + 'company' => \App\Http\Middleware\CompanyMiddleware::class, + 'cron-job' => \App\Http\Middleware\CronJobMiddleware::class, + 'customer' => \App\Http\Middleware\CustomerRedirectIfAuthenticated::class, + 'customer-guest' => \App\Http\Middleware\CustomerGuest::class, + 'customer-portal' => \App\Http\Middleware\CustomerPortalMiddleware::class, + 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, + 'install' => \App\Http\Middleware\InstallationMiddleware::class, + 'pdf-auth' => \App\Http\Middleware\PdfMiddleware::class, + 'redirect-if-installed' => \App\Http\Middleware\RedirectIfInstalled::class, + 'redirect-if-unauthenticated' => \App\Http\Middleware\RedirectIfUnauthorized::class, + ]); + + $middleware->priority([ + \Illuminate\Session\Middleware\StartSession::class, + \Illuminate\View\Middleware\ShareErrorsFromSession::class, + \App\Http\Middleware\Authenticate::class, + \Illuminate\Session\Middleware\AuthenticateSession::class, + \Illuminate\Routing\Middleware\SubstituteBindings::class, + \Illuminate\Auth\Middleware\Authorize::class, + ]); + }) + ->withExceptions(function (Exceptions $exceptions) { + // + })->create(); diff --git a/bootstrap/providers.php b/bootstrap/providers.php new file mode 100644 index 00000000..d1d8afb7 --- /dev/null +++ b/bootstrap/providers.php @@ -0,0 +1,8 @@ +=4.0.0" + "doctrine/dbal": "<4.0.0 || >=5.0.0" }, "require-dev": { - "doctrine/dbal": "^3.7.0", + "doctrine/dbal": "^4.0.0", "nesbot/carbon": "^2.71.0 || ^3.0.0", "phpunit/phpunit": "^10.3" }, @@ -338,7 +343,7 @@ ], "support": { "issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues", - "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/2.1.0" + "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/3.2.0" }, "funding": [ { @@ -354,7 +359,7 @@ "type": "tidelift" } ], - "time": "2023-12-11T17:09:12+00:00" + "time": "2024-02-09T16:56:22+00:00" }, { "name": "dflydev/dot-access-data", @@ -433,16 +438,16 @@ }, { "name": "doctrine/inflector", - "version": "2.0.9", + "version": "2.0.10", "source": { "type": "git", "url": "https://github.com/doctrine/inflector.git", - "reference": "2930cd5ef353871c821d5c43ed030d39ac8cfe65" + "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/2930cd5ef353871c821d5c43ed030d39ac8cfe65", - "reference": "2930cd5ef353871c821d5c43ed030d39ac8cfe65", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/5817d0659c5b50c9b950feb9af7b9668e2c436bc", + "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc", "shasum": "" }, "require": { @@ -504,7 +509,7 @@ ], "support": { "issues": "https://github.com/doctrine/inflector/issues", - "source": "https://github.com/doctrine/inflector/tree/2.0.9" + "source": "https://github.com/doctrine/inflector/tree/2.0.10" }, "funding": [ { @@ -520,7 +525,7 @@ "type": "tidelift" } ], - "time": "2024-01-15T18:05:13+00:00" + "time": "2024-02-18T20:23:39+00:00" }, { "name": "doctrine/lexer", @@ -601,16 +606,16 @@ }, { "name": "dompdf/dompdf", - "version": "v2.0.4", + "version": "v2.0.8", "source": { "type": "git", "url": "https://github.com/dompdf/dompdf.git", - "reference": "093f2d9739cec57428e39ddadedfd4f3ae862c0f" + "reference": "c20247574601700e1f7c8dab39310fca1964dc52" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dompdf/dompdf/zipball/093f2d9739cec57428e39ddadedfd4f3ae862c0f", - "reference": "093f2d9739cec57428e39ddadedfd4f3ae862c0f", + "url": "https://api.github.com/repos/dompdf/dompdf/zipball/c20247574601700e1f7c8dab39310fca1964dc52", + "reference": "c20247574601700e1f7c8dab39310fca1964dc52", "shasum": "" }, "require": { @@ -618,7 +623,7 @@ "ext-mbstring": "*", "masterminds/html5": "^2.0", "phenx/php-font-lib": ">=0.5.4 <1.0.0", - "phenx/php-svg-lib": ">=0.3.3 <1.0.0", + "phenx/php-svg-lib": ">=0.5.2 <1.0.0", "php": "^7.1 || ^8.0" }, "require-dev": { @@ -657,9 +662,9 @@ "homepage": "https://github.com/dompdf/dompdf", "support": { "issues": "https://github.com/dompdf/dompdf/issues", - "source": "https://github.com/dompdf/dompdf/tree/v2.0.4" + "source": "https://github.com/dompdf/dompdf/tree/v2.0.8" }, - "time": "2023-12-12T20:19:39+00:00" + "time": "2024-04-29T13:06:17+00:00" }, { "name": "dragonmantank/cron-expression", @@ -1588,90 +1593,6 @@ }, "time": "2023-02-23T15:00:54+00:00" }, - { - "name": "intervention/image", - "version": "2.7.2", - "source": { - "type": "git", - "url": "https://github.com/Intervention/image.git", - "reference": "04be355f8d6734c826045d02a1079ad658322dad" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Intervention/image/zipball/04be355f8d6734c826045d02a1079ad658322dad", - "reference": "04be355f8d6734c826045d02a1079ad658322dad", - "shasum": "" - }, - "require": { - "ext-fileinfo": "*", - "guzzlehttp/psr7": "~1.1 || ^2.0", - "php": ">=5.4.0" - }, - "require-dev": { - "mockery/mockery": "~0.9.2", - "phpunit/phpunit": "^4.8 || ^5.7 || ^7.5.15" - }, - "suggest": { - "ext-gd": "to use GD library based image processing.", - "ext-imagick": "to use Imagick based image processing.", - "intervention/imagecache": "Caching extension for the Intervention Image library" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.4-dev" - }, - "laravel": { - "providers": [ - "Intervention\\Image\\ImageServiceProvider" - ], - "aliases": { - "Image": "Intervention\\Image\\Facades\\Image" - } - } - }, - "autoload": { - "psr-4": { - "Intervention\\Image\\": "src/Intervention/Image" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Oliver Vogel", - "email": "oliver@intervention.io", - "homepage": "https://intervention.io/" - } - ], - "description": "Image handling and manipulation library with support for Laravel integration", - "homepage": "http://image.intervention.io/", - "keywords": [ - "gd", - "image", - "imagick", - "laravel", - "thumbnail", - "watermark" - ], - "support": { - "issues": "https://github.com/Intervention/image/issues", - "source": "https://github.com/Intervention/image/tree/2.7.2" - }, - "funding": [ - { - "url": "https://paypal.me/interventionio", - "type": "custom" - }, - { - "url": "https://github.com/Intervention", - "type": "github" - } - ], - "time": "2022-05-21T17:30:32+00:00" - }, { "name": "invoiceshelf/modules", "version": "1.0.0", @@ -1740,23 +1661,23 @@ }, { "name": "jasonmccreary/laravel-test-assertions", - "version": "v2.3", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/jasonmccreary/laravel-test-assertions.git", - "reference": "77d1812dce4438c294e281acade9d52adf4ce0a0" + "reference": "e506c4eb57816e036b143bd1c64589e1d013337d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jasonmccreary/laravel-test-assertions/zipball/77d1812dce4438c294e281acade9d52adf4ce0a0", - "reference": "77d1812dce4438c294e281acade9d52adf4ce0a0", + "url": "https://api.github.com/repos/jasonmccreary/laravel-test-assertions/zipball/e506c4eb57816e036b143bd1c64589e1d013337d", + "reference": "e506c4eb57816e036b143bd1c64589e1d013337d", "shasum": "" }, "require": { - "illuminate/testing": "^9.0|^10.0", - "mockery/mockery": "^1.4.2", - "php": "^8.0", - "phpunit/phpunit": "^9.3.3|^10.0" + "illuminate/testing": "^10.0|^11.0", + "mockery/mockery": "^1.4.4", + "php": "^8.1", + "phpunit/phpunit": "^10.1" }, "type": "library", "extra": { @@ -1784,22 +1705,22 @@ "description": "A set of helpful assertions when testing Laravel applications.", "support": { "issues": "https://github.com/jasonmccreary/laravel-test-assertions/issues", - "source": "https://github.com/jasonmccreary/laravel-test-assertions/tree/v2.3" + "source": "https://github.com/jasonmccreary/laravel-test-assertions/tree/v2.4.0" }, - "time": "2023-03-15T16:29:35+00:00" + "time": "2024-02-29T19:39:03+00:00" }, { "name": "laravel/framework", - "version": "v10.44.0", + "version": "v11.9.2", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "1199dbe361787bbe9648131a79f53921b4148cf6" + "reference": "2b3e8d75f10b0ed17416282946355dc026bf326c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/1199dbe361787bbe9648131a79f53921b4148cf6", - "reference": "1199dbe361787bbe9648131a79f53921b4148cf6", + "url": "https://api.github.com/repos/laravel/framework/zipball/2b3e8d75f10b0ed17416282946355dc026bf326c", + "reference": "2b3e8d75f10b0ed17416282946355dc026bf326c", "shasum": "" }, "require": { @@ -1815,39 +1736,39 @@ "ext-openssl": "*", "ext-session": "*", "ext-tokenizer": "*", - "fruitcake/php-cors": "^1.2", + "fruitcake/php-cors": "^1.3", + "guzzlehttp/guzzle": "^7.8", "guzzlehttp/uri-template": "^1.0", - "laravel/prompts": "^0.1.9", + "laravel/prompts": "^0.1.18", "laravel/serializable-closure": "^1.3", "league/commonmark": "^2.2.1", "league/flysystem": "^3.8.0", "monolog/monolog": "^3.0", - "nesbot/carbon": "^2.67", - "nunomaduro/termwind": "^1.13", - "php": "^8.1", + "nesbot/carbon": "^2.72.2|^3.0", + "nunomaduro/termwind": "^2.0", + "php": "^8.2", "psr/container": "^1.1.1|^2.0.1", "psr/log": "^1.0|^2.0|^3.0", "psr/simple-cache": "^1.0|^2.0|^3.0", "ramsey/uuid": "^4.7", - "symfony/console": "^6.2", - "symfony/error-handler": "^6.2", - "symfony/finder": "^6.2", - "symfony/http-foundation": "^6.4", - "symfony/http-kernel": "^6.2", - "symfony/mailer": "^6.2", - "symfony/mime": "^6.2", - "symfony/process": "^6.2", - "symfony/routing": "^6.2", - "symfony/uid": "^6.2", - "symfony/var-dumper": "^6.2", + "symfony/console": "^7.0", + "symfony/error-handler": "^7.0", + "symfony/finder": "^7.0", + "symfony/http-foundation": "^7.0", + "symfony/http-kernel": "^7.0", + "symfony/mailer": "^7.0", + "symfony/mime": "^7.0", + "symfony/polyfill-php83": "^1.28", + "symfony/process": "^7.0", + "symfony/routing": "^7.0", + "symfony/uid": "^7.0", + "symfony/var-dumper": "^7.0", "tijsverkoyen/css-to-inline-styles": "^2.2.5", "vlucas/phpdotenv": "^5.4.1", "voku/portable-ascii": "^2.0" }, "conflict": { - "carbonphp/carbon-doctrine-types": ">=3.0", - "doctrine/dbal": ">=4.0", - "phpunit/phpunit": ">=11.0.0", + "mockery/mockery": "1.6.8", "tightenco/collect": "<5.5.33" }, "provide": { @@ -1887,36 +1808,35 @@ "illuminate/testing": "self.version", "illuminate/translation": "self.version", "illuminate/validation": "self.version", - "illuminate/view": "self.version" + "illuminate/view": "self.version", + "spatie/once": "*" }, "require-dev": { "ably/ably-php": "^1.0", "aws/aws-sdk-php": "^3.235.5", - "doctrine/dbal": "^3.5.1", "ext-gmp": "*", - "fakerphp/faker": "^1.21", - "guzzlehttp/guzzle": "^7.5", + "fakerphp/faker": "^1.23", "league/flysystem-aws-s3-v3": "^3.0", "league/flysystem-ftp": "^3.0", "league/flysystem-path-prefixing": "^3.3", "league/flysystem-read-only": "^3.3", "league/flysystem-sftp-v3": "^3.0", - "mockery/mockery": "^1.5.1", + "mockery/mockery": "^1.6", "nyholm/psr7": "^1.2", - "orchestra/testbench-core": "^8.18", - "pda/pheanstalk": "^4.0", + "orchestra/testbench-core": "^9.0.15", + "pda/pheanstalk": "^5.0", "phpstan/phpstan": "^1.4.7", - "phpunit/phpunit": "^10.0.7", + "phpunit/phpunit": "^10.5|^11.0", "predis/predis": "^2.0.2", - "symfony/cache": "^6.2", - "symfony/http-client": "^6.2.4", - "symfony/psr-http-message-bridge": "^2.0" + "resend/resend-php": "^0.10.0", + "symfony/cache": "^7.0", + "symfony/http-client": "^7.0", + "symfony/psr-http-message-bridge": "^7.0" }, "suggest": { "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).", "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage, and SES mail driver (^3.235.5).", - "brianium/paratest": "Required to run tests in parallel (^6.0).", - "doctrine/dbal": "Required to rename columns and drop SQLite columns (^3.5.1).", + "brianium/paratest": "Required to run tests in parallel (^7.0|^8.0).", "ext-apcu": "Required to use the APC cache driver.", "ext-fileinfo": "Required to use the Filesystem class.", "ext-ftp": "Required to use the Flysystem FTP driver.", @@ -1925,34 +1845,34 @@ "ext-pcntl": "Required to use all features of the queue worker and console signal trapping.", "ext-pdo": "Required to use all database features.", "ext-posix": "Required to use all features of the queue worker.", - "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0).", + "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0|^6.0).", "fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).", "filp/whoops": "Required for friendly error pages in development (^2.14.3).", - "guzzlehttp/guzzle": "Required to use the HTTP Client and the ping methods on schedules (^7.5).", "laravel/tinker": "Required to use the tinker console command (^2.0).", "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.0).", "league/flysystem-ftp": "Required to use the Flysystem FTP driver (^3.0).", "league/flysystem-path-prefixing": "Required to use the scoped driver (^3.3).", "league/flysystem-read-only": "Required to use read-only disks (^3.3)", "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.0).", - "mockery/mockery": "Required to use mocking (^1.5.1).", + "mockery/mockery": "Required to use mocking (^1.6).", "nyholm/psr7": "Required to use PSR-7 bridging features (^1.2).", - "pda/pheanstalk": "Required to use the beanstalk queue driver (^4.0).", - "phpunit/phpunit": "Required to use assertions and run tests (^9.5.8|^10.0.7).", + "pda/pheanstalk": "Required to use the beanstalk queue driver (^5.0).", + "phpunit/phpunit": "Required to use assertions and run tests (^10.5|^11.0).", "predis/predis": "Required to use the predis connector (^2.0.2).", "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).", - "symfony/cache": "Required to PSR-6 cache bridge (^6.2).", - "symfony/filesystem": "Required to enable support for relative symbolic links (^6.2).", - "symfony/http-client": "Required to enable support for the Symfony API mail transports (^6.2).", - "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^6.2).", - "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^6.2).", - "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0)." + "resend/resend-php": "Required to enable support for the Resend mail transport (^0.10.0).", + "symfony/cache": "Required to PSR-6 cache bridge (^7.0).", + "symfony/filesystem": "Required to enable support for relative symbolic links (^7.0).", + "symfony/http-client": "Required to enable support for the Symfony API mail transports (^7.0).", + "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^7.0).", + "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^7.0).", + "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^7.0)." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "10.x-dev" + "dev-master": "11.x-dev" } }, "autoload": { @@ -1992,7 +1912,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2024-02-13T16:01:16+00:00" + "time": "2024-05-30T09:40:11+00:00" }, { "name": "laravel/helpers", @@ -2053,16 +1973,16 @@ }, { "name": "laravel/prompts", - "version": "v0.1.15", + "version": "v0.1.23", "source": { "type": "git", "url": "https://github.com/laravel/prompts.git", - "reference": "d814a27514d99b03c85aa42b22cfd946568636c1" + "reference": "9bc4df7c699b0452c6b815e64a2d84b6d7f99400" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/prompts/zipball/d814a27514d99b03c85aa42b22cfd946568636c1", - "reference": "d814a27514d99b03c85aa42b22cfd946568636c1", + "url": "https://api.github.com/repos/laravel/prompts/zipball/9bc4df7c699b0452c6b815e64a2d84b6d7f99400", + "reference": "9bc4df7c699b0452c6b815e64a2d84b6d7f99400", "shasum": "" }, "require": { @@ -2102,45 +2022,44 @@ "license": [ "MIT" ], + "description": "Add beautiful and user-friendly forms to your command-line applications.", "support": { "issues": "https://github.com/laravel/prompts/issues", - "source": "https://github.com/laravel/prompts/tree/v0.1.15" + "source": "https://github.com/laravel/prompts/tree/v0.1.23" }, - "time": "2023-12-29T22:37:42+00:00" + "time": "2024-05-27T13:53:20+00:00" }, { "name": "laravel/sanctum", - "version": "v3.3.3", + "version": "v4.0.2", "source": { "type": "git", "url": "https://github.com/laravel/sanctum.git", - "reference": "8c104366459739f3ada0e994bcd3e6fd681ce3d5" + "reference": "9cfc0ce80cabad5334efff73ec856339e8ec1ac1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sanctum/zipball/8c104366459739f3ada0e994bcd3e6fd681ce3d5", - "reference": "8c104366459739f3ada0e994bcd3e6fd681ce3d5", + "url": "https://api.github.com/repos/laravel/sanctum/zipball/9cfc0ce80cabad5334efff73ec856339e8ec1ac1", + "reference": "9cfc0ce80cabad5334efff73ec856339e8ec1ac1", "shasum": "" }, "require": { "ext-json": "*", - "illuminate/console": "^9.21|^10.0", - "illuminate/contracts": "^9.21|^10.0", - "illuminate/database": "^9.21|^10.0", - "illuminate/support": "^9.21|^10.0", - "php": "^8.0.2" + "illuminate/console": "^11.0", + "illuminate/contracts": "^11.0", + "illuminate/database": "^11.0", + "illuminate/support": "^11.0", + "php": "^8.2", + "symfony/console": "^7.0" }, "require-dev": { - "mockery/mockery": "^1.0", - "orchestra/testbench": "^7.28.2|^8.8.3", + "mockery/mockery": "^1.6", + "orchestra/testbench": "^9.0", "phpstan/phpstan": "^1.10", - "phpunit/phpunit": "^9.6" + "phpunit/phpunit": "^10.5" }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - }, "laravel": { "providers": [ "Laravel\\Sanctum\\SanctumServiceProvider" @@ -2172,7 +2091,7 @@ "issues": "https://github.com/laravel/sanctum/issues", "source": "https://github.com/laravel/sanctum" }, - "time": "2023-12-19T18:44:48+00:00" + "time": "2024-04-10T19:39:58+00:00" }, { "name": "laravel/serializable-closure", @@ -2302,16 +2221,16 @@ }, { "name": "laravel/ui", - "version": "v4.4.0", + "version": "v4.5.2", "source": { "type": "git", "url": "https://github.com/laravel/ui.git", - "reference": "7335d7049b2cde345c029e9d2de839b80af62bc0" + "reference": "c75396f63268c95b053c8e4814eb70e0875e9628" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/ui/zipball/7335d7049b2cde345c029e9d2de839b80af62bc0", - "reference": "7335d7049b2cde345c029e9d2de839b80af62bc0", + "url": "https://api.github.com/repos/laravel/ui/zipball/c75396f63268c95b053c8e4814eb70e0875e9628", + "reference": "c75396f63268c95b053c8e4814eb70e0875e9628", "shasum": "" }, "require": { @@ -2319,11 +2238,12 @@ "illuminate/filesystem": "^9.21|^10.0|^11.0", "illuminate/support": "^9.21|^10.0|^11.0", "illuminate/validation": "^9.21|^10.0|^11.0", - "php": "^8.0" + "php": "^8.0", + "symfony/console": "^6.0|^7.0" }, "require-dev": { - "orchestra/testbench": "^7.0|^8.0|^9.0", - "phpunit/phpunit": "^9.3|^10.4" + "orchestra/testbench": "^7.35|^8.15|^9.0", + "phpunit/phpunit": "^9.3|^10.4|^11.0" }, "type": "library", "extra": { @@ -2358,9 +2278,9 @@ "ui" ], "support": { - "source": "https://github.com/laravel/ui/tree/v4.4.0" + "source": "https://github.com/laravel/ui/tree/v4.5.2" }, - "time": "2024-01-12T15:56:45+00:00" + "time": "2024-05-08T18:07:10+00:00" }, { "name": "lavary/laravel-menu", @@ -2608,16 +2528,16 @@ }, { "name": "league/flysystem", - "version": "3.24.0", + "version": "3.28.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "b25a361508c407563b34fac6f64a8a17a8819675" + "reference": "e611adab2b1ae2e3072fa72d62c62f52c2bf1f0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/b25a361508c407563b34fac6f64a8a17a8819675", - "reference": "b25a361508c407563b34fac6f64a8a17a8819675", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/e611adab2b1ae2e3072fa72d62c62f52c2bf1f0c", + "reference": "e611adab2b1ae2e3072fa72d62c62f52c2bf1f0c", "shasum": "" }, "require": { @@ -2641,11 +2561,14 @@ "composer/semver": "^3.0", "ext-fileinfo": "*", "ext-ftp": "*", + "ext-mongodb": "^1.3", "ext-zip": "*", "friendsofphp/php-cs-fixer": "^3.5", "google/cloud-storage": "^1.23", + "guzzlehttp/psr7": "^2.6", "microsoft/azure-storage-blob": "^1.1", - "phpseclib/phpseclib": "^3.0.34", + "mongodb/mongodb": "^1.2", + "phpseclib/phpseclib": "^3.0.36", "phpstan/phpstan": "^1.10", "phpunit/phpunit": "^9.5.11|^10.0", "sabre/dav": "^4.6.0" @@ -2682,32 +2605,22 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/3.24.0" + "source": "https://github.com/thephpleague/flysystem/tree/3.28.0" }, - "funding": [ - { - "url": "https://ecologi.com/frankdejonge", - "type": "custom" - }, - { - "url": "https://github.com/frankdejonge", - "type": "github" - } - ], - "time": "2024-02-04T12:10:17+00:00" + "time": "2024-05-22T10:09:12+00:00" }, { "name": "league/flysystem-aws-s3-v3", - "version": "3.24.0", + "version": "3.28.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git", - "reference": "809474e37b7fb1d1f8bcc0f8a98bc1cae99aa513" + "reference": "22071ef1604bc776f5ff2468ac27a752514665c8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/809474e37b7fb1d1f8bcc0f8a98bc1cae99aa513", - "reference": "809474e37b7fb1d1f8bcc0f8a98bc1cae99aa513", + "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/22071ef1604bc776f5ff2468ac27a752514665c8", + "reference": "22071ef1604bc776f5ff2468ac27a752514665c8", "shasum": "" }, "require": { @@ -2747,32 +2660,22 @@ "storage" ], "support": { - "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.24.0" + "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.28.0" }, - "funding": [ - { - "url": "https://ecologi.com/frankdejonge", - "type": "custom" - }, - { - "url": "https://github.com/frankdejonge", - "type": "github" - } - ], - "time": "2024-01-26T18:43:21+00:00" + "time": "2024-05-06T20:05:52+00:00" }, { "name": "league/flysystem-local", - "version": "3.23.1", + "version": "3.28.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem-local.git", - "reference": "b884d2bf9b53bb4804a56d2df4902bb51e253f00" + "reference": "13f22ea8be526ea58c2ddff9e158ef7c296e4f40" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/b884d2bf9b53bb4804a56d2df4902bb51e253f00", - "reference": "b884d2bf9b53bb4804a56d2df4902bb51e253f00", + "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/13f22ea8be526ea58c2ddff9e158ef7c296e4f40", + "reference": "13f22ea8be526ea58c2ddff9e158ef7c296e4f40", "shasum": "" }, "require": { @@ -2806,85 +2709,9 @@ "local" ], "support": { - "issues": "https://github.com/thephpleague/flysystem-local/issues", - "source": "https://github.com/thephpleague/flysystem-local/tree/3.23.1" + "source": "https://github.com/thephpleague/flysystem-local/tree/3.28.0" }, - "funding": [ - { - "url": "https://ecologi.com/frankdejonge", - "type": "custom" - }, - { - "url": "https://github.com/frankdejonge", - "type": "github" - } - ], - "time": "2024-01-26T18:25:23+00:00" - }, - { - "name": "league/glide", - "version": "2.3.0", - "source": { - "type": "git", - "url": "https://github.com/thephpleague/glide.git", - "reference": "2ff92c8f1edc80b74e2d3c5efccfc7223f74d407" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/thephpleague/glide/zipball/2ff92c8f1edc80b74e2d3c5efccfc7223f74d407", - "reference": "2ff92c8f1edc80b74e2d3c5efccfc7223f74d407", - "shasum": "" - }, - "require": { - "intervention/image": "^2.7", - "league/flysystem": "^2.0|^3.0", - "php": "^7.2|^8.0", - "psr/http-message": "^1.0|^2.0" - }, - "require-dev": { - "mockery/mockery": "^1.3.3", - "phpunit/php-token-stream": "^3.1|^4.0", - "phpunit/phpunit": "^8.5|^9.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "League\\Glide\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jonathan Reinink", - "email": "jonathan@reinink.ca", - "homepage": "http://reinink.ca" - }, - { - "name": "Titouan Galopin", - "email": "galopintitouan@gmail.com", - "homepage": "https://titouangalopin.com" - } - ], - "description": "Wonderfully easy on-demand image manipulation library with an HTTP based API.", - "homepage": "http://glide.thephpleague.com", - "keywords": [ - "ImageMagick", - "editing", - "gd", - "image", - "imagick", - "league", - "manipulation", - "processing" - ], - "support": { - "issues": "https://github.com/thephpleague/glide/issues", - "source": "https://github.com/thephpleague/glide/tree/2.3.0" - }, - "time": "2023-07-08T06:26:07+00:00" + "time": "2024-05-06T20:05:52+00:00" }, { "name": "league/mime-type-detection", @@ -3025,16 +2852,16 @@ }, { "name": "masterminds/html5", - "version": "2.8.1", + "version": "2.9.0", "source": { "type": "git", "url": "https://github.com/Masterminds/html5-php.git", - "reference": "f47dcf3c70c584de14f21143c55d9939631bc6cf" + "reference": "f5ac2c0b0a2eefca70b2ce32a5809992227e75a6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f47dcf3c70c584de14f21143c55d9939631bc6cf", - "reference": "f47dcf3c70c584de14f21143c55d9939631bc6cf", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f5ac2c0b0a2eefca70b2ce32a5809992227e75a6", + "reference": "f5ac2c0b0a2eefca70b2ce32a5809992227e75a6", "shasum": "" }, "require": { @@ -3042,7 +2869,7 @@ "php": ">=5.3.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8" + "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8 || ^9" }, "type": "library", "extra": { @@ -3086,22 +2913,22 @@ ], "support": { "issues": "https://github.com/Masterminds/html5-php/issues", - "source": "https://github.com/Masterminds/html5-php/tree/2.8.1" + "source": "https://github.com/Masterminds/html5-php/tree/2.9.0" }, - "time": "2023-05-10T11:58:31+00:00" + "time": "2024-03-31T07:05:07+00:00" }, { "name": "mockery/mockery", - "version": "1.6.7", + "version": "1.6.12", "source": { "type": "git", "url": "https://github.com/mockery/mockery.git", - "reference": "0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06" + "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06", - "reference": "0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06", + "url": "https://api.github.com/repos/mockery/mockery/zipball/1f4efdd7d3beafe9807b08156dfcb176d18f1699", + "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699", "shasum": "" }, "require": { @@ -3113,8 +2940,8 @@ "phpunit/phpunit": "<8.0" }, "require-dev": { - "phpunit/phpunit": "^8.5 || ^9.6.10", - "symplify/easy-coding-standard": "^12.0.8" + "phpunit/phpunit": "^8.5 || ^9.6.17", + "symplify/easy-coding-standard": "^12.1.14" }, "type": "library", "autoload": { @@ -3171,20 +2998,20 @@ "security": "https://github.com/mockery/mockery/security/advisories", "source": "https://github.com/mockery/mockery" }, - "time": "2023-12-10T02:24:34+00:00" + "time": "2024-05-16T03:13:13+00:00" }, { "name": "monolog/monolog", - "version": "3.5.0", + "version": "3.6.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448" + "reference": "4b18b21a5527a3d5ffdac2fd35d3ab25a9597654" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/c915e2634718dbc8a4a15c61b0e62e7a44e14448", - "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/4b18b21a5527a3d5ffdac2fd35d3ab25a9597654", + "reference": "4b18b21a5527a3d5ffdac2fd35d3ab25a9597654", "shasum": "" }, "require": { @@ -3207,7 +3034,7 @@ "phpstan/phpstan": "^1.9", "phpstan/phpstan-deprecation-rules": "^1.0", "phpstan/phpstan-strict-rules": "^1.4", - "phpunit/phpunit": "^10.1", + "phpunit/phpunit": "^10.5.17", "predis/predis": "^1.1 || ^2", "ruflin/elastica": "^7", "symfony/mailer": "^5.4 || ^6", @@ -3260,7 +3087,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/3.5.0" + "source": "https://github.com/Seldaek/monolog/tree/3.6.0" }, "funding": [ { @@ -3272,7 +3099,7 @@ "type": "tidelift" } ], - "time": "2023-10-27T15:32:31+00:00" + "time": "2024-04-12T21:02:21+00:00" }, { "name": "mtdowling/jmespath.php", @@ -3401,42 +3228,41 @@ }, { "name": "nesbot/carbon", - "version": "2.72.3", + "version": "3.4.0", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "0c6fd108360c562f6e4fd1dedb8233b423e91c83" + "reference": "8eab8983c83c30e0bacbef8d311e3f3b8172727f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/0c6fd108360c562f6e4fd1dedb8233b423e91c83", - "reference": "0c6fd108360c562f6e4fd1dedb8233b423e91c83", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/8eab8983c83c30e0bacbef8d311e3f3b8172727f", + "reference": "8eab8983c83c30e0bacbef8d311e3f3b8172727f", "shasum": "" }, "require": { "carbonphp/carbon-doctrine-types": "*", "ext-json": "*", - "php": "^7.1.8 || ^8.0", + "php": "^8.1", "psr/clock": "^1.0", + "symfony/clock": "^6.3 || ^7.0", "symfony/polyfill-mbstring": "^1.0", - "symfony/polyfill-php80": "^1.16", - "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0" + "symfony/translation": "^4.4.18 || ^5.2.1|| ^6.0 || ^7.0" }, "provide": { "psr/clock-implementation": "1.0" }, "require-dev": { - "doctrine/dbal": "^2.0 || ^3.1.4 || ^4.0", - "doctrine/orm": "^2.7 || ^3.0", - "friendsofphp/php-cs-fixer": "^3.0", - "kylekatarnls/multi-tester": "^2.0", - "ondrejmirtes/better-reflection": "*", - "phpmd/phpmd": "^2.9", - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^0.12.99 || ^1.7.14", - "phpunit/php-file-iterator": "^2.0.5 || ^3.0.6", - "phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20", - "squizlabs/php_codesniffer": "^3.4" + "doctrine/dbal": "^3.6.3 || ^4.0", + "doctrine/orm": "^2.15.2 || ^3.0", + "friendsofphp/php-cs-fixer": "^3.52.1", + "kylekatarnls/multi-tester": "^2.5.3", + "ondrejmirtes/better-reflection": "^6.25.0.4", + "phpmd/phpmd": "^2.15.0", + "phpstan/extension-installer": "^1.3.1", + "phpstan/phpstan": "^1.10.65", + "phpunit/phpunit": "^10.5.15", + "squizlabs/php_codesniffer": "^3.9.0" }, "bin": [ "bin/carbon" @@ -3444,8 +3270,8 @@ "type": "library", "extra": { "branch-alias": { - "dev-3.x": "3.x-dev", - "dev-master": "2.x-dev" + "dev-master": "3.x-dev", + "dev-2.x": "2.x-dev" }, "laravel": { "providers": [ @@ -3504,7 +3330,7 @@ "type": "tidelift" } ], - "time": "2024-01-25T10:35:09+00:00" + "time": "2024-05-24T14:26:34+00:00" }, { "name": "nette/schema", @@ -3656,16 +3482,16 @@ }, { "name": "nikic/php-parser", - "version": "v5.0.0", + "version": "v5.0.2", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "4a21235f7e56e713259a6f76bf4b5ea08502b9dc" + "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4a21235f7e56e713259a6f76bf4b5ea08502b9dc", - "reference": "4a21235f7e56e713259a6f76bf4b5ea08502b9dc", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/139676794dc1e9231bf7bcd123cfc0c99182cb13", + "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13", "shasum": "" }, "require": { @@ -3708,39 +3534,38 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.0.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.0.2" }, - "time": "2024-01-07T17:17:35+00:00" + "time": "2024-03-05T20:51:40+00:00" }, { "name": "nunomaduro/termwind", - "version": "v1.15.1", + "version": "v2.0.1", "source": { "type": "git", "url": "https://github.com/nunomaduro/termwind.git", - "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc" + "reference": "58c4c58cf23df7f498daeb97092e34f5259feb6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/8ab0b32c8caa4a2e09700ea32925441385e4a5dc", - "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc", + "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/58c4c58cf23df7f498daeb97092e34f5259feb6a", + "reference": "58c4c58cf23df7f498daeb97092e34f5259feb6a", "shasum": "" }, "require": { "ext-mbstring": "*", - "php": "^8.0", - "symfony/console": "^5.3.0|^6.0.0" + "php": "^8.2", + "symfony/console": "^7.0.4" }, "require-dev": { - "ergebnis/phpstan-rules": "^1.0.", - "illuminate/console": "^8.0|^9.0", - "illuminate/support": "^8.0|^9.0", - "laravel/pint": "^1.0.0", - "pestphp/pest": "^1.21.0", - "pestphp/pest-plugin-mock": "^1.0", - "phpstan/phpstan": "^1.4.6", - "phpstan/phpstan-strict-rules": "^1.1.0", - "symfony/var-dumper": "^5.2.7|^6.0.0", + "ergebnis/phpstan-rules": "^2.2.0", + "illuminate/console": "^11.0.0", + "laravel/pint": "^1.14.0", + "mockery/mockery": "^1.6.7", + "pestphp/pest": "^2.34.1", + "phpstan/phpstan": "^1.10.59", + "phpstan/phpstan-strict-rules": "^1.5.2", + "symfony/var-dumper": "^7.0.4", "thecodingmachine/phpstan-strict-rules": "^1.0.0" }, "type": "library", @@ -3749,6 +3574,9 @@ "providers": [ "Termwind\\Laravel\\TermwindServiceProvider" ] + }, + "branch-alias": { + "dev-2.x": "2.x-dev" } }, "autoload": { @@ -3780,7 +3608,7 @@ ], "support": { "issues": "https://github.com/nunomaduro/termwind/issues", - "source": "https://github.com/nunomaduro/termwind/tree/v1.15.1" + "source": "https://github.com/nunomaduro/termwind/tree/v2.0.1" }, "funding": [ { @@ -3796,24 +3624,25 @@ "type": "github" } ], - "time": "2023-02-08T01:06:31+00:00" + "time": "2024-03-06T16:17:14+00:00" }, { "name": "phar-io/manifest", - "version": "2.0.3", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/phar-io/manifest.git", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53" + "reference": "54750ef60c58e43759730615a392c31c80e23176" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", + "reference": "54750ef60c58e43759730615a392c31c80e23176", "shasum": "" }, "require": { "ext-dom": "*", + "ext-libxml": "*", "ext-phar": "*", "ext-xmlwriter": "*", "phar-io/version": "^3.0.1", @@ -3854,9 +3683,15 @@ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", "support": { "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/2.0.3" + "source": "https://github.com/phar-io/manifest/tree/2.0.4" }, - "time": "2021-07-20T11:28:43+00:00" + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2024-03-03T12:33:53+00:00" }, { "name": "phar-io/version", @@ -3955,16 +3790,16 @@ }, { "name": "phenx/php-svg-lib", - "version": "0.5.2", + "version": "0.5.4", "source": { "type": "git", "url": "https://github.com/dompdf/php-svg-lib.git", - "reference": "732faa9fb4309221e2bd9b2fda5de44f947133aa" + "reference": "46b25da81613a9cf43c83b2a8c2c1bdab27df691" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dompdf/php-svg-lib/zipball/732faa9fb4309221e2bd9b2fda5de44f947133aa", - "reference": "732faa9fb4309221e2bd9b2fda5de44f947133aa", + "url": "https://api.github.com/repos/dompdf/php-svg-lib/zipball/46b25da81613a9cf43c83b2a8c2c1bdab27df691", + "reference": "46b25da81613a9cf43c83b2a8c2c1bdab27df691", "shasum": "" }, "require": { @@ -3983,7 +3818,7 @@ }, "notification-url": "https://packagist.org/downloads/", "license": [ - "LGPL-3.0" + "LGPL-3.0-or-later" ], "authors": [ { @@ -3995,9 +3830,9 @@ "homepage": "https://github.com/PhenX/php-svg-lib", "support": { "issues": "https://github.com/dompdf/php-svg-lib/issues", - "source": "https://github.com/dompdf/php-svg-lib/tree/0.5.2" + "source": "https://github.com/dompdf/php-svg-lib/tree/0.5.4" }, - "time": "2024-02-07T12:49:40+00:00" + "time": "2024-04-08T12:52:34+00:00" }, { "name": "phpoption/phpoption", @@ -4076,16 +3911,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "10.1.11", + "version": "10.1.14", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "78c3b7625965c2513ee96569a4dbb62601784145" + "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/78c3b7625965c2513ee96569a4dbb62601784145", - "reference": "78c3b7625965c2513ee96569a4dbb62601784145", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/e3f51450ebffe8e0efdf7346ae966a656f7d5e5b", + "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b", "shasum": "" }, "require": { @@ -4142,7 +3977,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.11" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.14" }, "funding": [ { @@ -4150,7 +3985,7 @@ "type": "github" } ], - "time": "2023-12-21T15:38:30+00:00" + "time": "2024-03-12T15:33:41+00:00" }, { "name": "phpunit/php-file-iterator", @@ -4397,16 +4232,16 @@ }, { "name": "phpunit/phpunit", - "version": "10.5.10", + "version": "10.5.17", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "50b8e314b6d0dd06521dc31d1abffa73f25f850c" + "reference": "c1f736a473d21957ead7e94fcc029f571895abf5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/50b8e314b6d0dd06521dc31d1abffa73f25f850c", - "reference": "50b8e314b6d0dd06521dc31d1abffa73f25f850c", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c1f736a473d21957ead7e94fcc029f571895abf5", + "reference": "c1f736a473d21957ead7e94fcc029f571895abf5", "shasum": "" }, "require": { @@ -4478,7 +4313,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.10" + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.17" }, "funding": [ { @@ -4494,7 +4329,7 @@ "type": "tidelift" } ], - "time": "2024-02-04T09:07:51+00:00" + "time": "2024-04-05T04:39:01+00:00" }, { "name": "predis/predis", @@ -4762,20 +4597,20 @@ }, { "name": "psr/http-factory", - "version": "1.0.2", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/php-fig/http-factory.git", - "reference": "e616d01114759c4c489f93b099585439f795fe35" + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35", - "reference": "e616d01114759c4c489f93b099585439f795fe35", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", "shasum": "" }, "require": { - "php": ">=7.0.0", + "php": ">=7.1", "psr/http-message": "^1.0 || ^2.0" }, "type": "library", @@ -4799,7 +4634,7 @@ "homepage": "https://www.php-fig.org/" } ], - "description": "Common interfaces for PSR-7 HTTP message factories", + "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", "keywords": [ "factory", "http", @@ -4811,9 +4646,9 @@ "response" ], "support": { - "source": "https://github.com/php-fig/http-factory/tree/1.0.2" + "source": "https://github.com/php-fig/http-factory" }, - "time": "2023-04-10T20:10:41+00:00" + "time": "2024-04-15T12:06:14+00:00" }, { "name": "psr/http-message", @@ -4971,16 +4806,16 @@ }, { "name": "psy/psysh", - "version": "v0.12.0", + "version": "v0.12.3", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "750bf031a48fd07c673dbe3f11f72362ea306d0d" + "reference": "b6b6cce7d3ee8fbf31843edce5e8f5a72eff4a73" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/750bf031a48fd07c673dbe3f11f72362ea306d0d", - "reference": "750bf031a48fd07c673dbe3f11f72362ea306d0d", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/b6b6cce7d3ee8fbf31843edce5e8f5a72eff4a73", + "reference": "b6b6cce7d3ee8fbf31843edce5e8f5a72eff4a73", "shasum": "" }, "require": { @@ -5044,9 +4879,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.12.0" + "source": "https://github.com/bobthecow/psysh/tree/v0.12.3" }, - "time": "2023-12-20T15:28:09+00:00" + "time": "2024-04-02T15:57:53+00:00" }, { "name": "ralouphie/getallheaders", @@ -5183,20 +5018,20 @@ }, { "name": "ramsey/uuid", - "version": "4.7.5", + "version": "4.7.6", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e" + "reference": "91039bc1faa45ba123c4328958e620d382ec7088" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e", - "reference": "5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/91039bc1faa45ba123c4328958e620d382ec7088", + "reference": "91039bc1faa45ba123c4328958e620d382ec7088", "shasum": "" }, "require": { - "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11", + "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12", "ext-json": "*", "php": "^8.0", "ramsey/collection": "^1.2 || ^2.0" @@ -5259,7 +5094,7 @@ ], "support": { "issues": "https://github.com/ramsey/uuid/issues", - "source": "https://github.com/ramsey/uuid/tree/4.7.5" + "source": "https://github.com/ramsey/uuid/tree/4.7.6" }, "funding": [ { @@ -5271,7 +5106,7 @@ "type": "tidelift" } ], - "time": "2023-11-08T05:53:05+00:00" + "time": "2024-04-27T21:32:50+00:00" }, { "name": "sabberworm/php-css-parser", @@ -5340,16 +5175,16 @@ }, { "name": "sebastian/cli-parser", - "version": "2.0.0", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae" + "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/efdc130dbbbb8ef0b545a994fd811725c5282cae", - "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/c34583b87e7b7a8055bf6c450c2c77ce32a24084", + "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084", "shasum": "" }, "require": { @@ -5384,7 +5219,8 @@ "homepage": "https://github.com/sebastianbergmann/cli-parser", "support": { "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.0" + "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.1" }, "funding": [ { @@ -5392,7 +5228,7 @@ "type": "github" } ], - "time": "2023-02-03T06:58:15+00:00" + "time": "2024-03-02T07:12:49+00:00" }, { "name": "sebastian/code-unit", @@ -5642,16 +5478,16 @@ }, { "name": "sebastian/diff", - "version": "5.1.0", + "version": "5.1.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "fbf413a49e54f6b9b17e12d900ac7f6101591b7f" + "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/fbf413a49e54f6b9b17e12d900ac7f6101591b7f", - "reference": "fbf413a49e54f6b9b17e12d900ac7f6101591b7f", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/c41e007b4b62af48218231d6c2275e4c9b975b2e", + "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e", "shasum": "" }, "require": { @@ -5659,7 +5495,7 @@ }, "require-dev": { "phpunit/phpunit": "^10.0", - "symfony/process": "^4.2 || ^5" + "symfony/process": "^6.4" }, "type": "library", "extra": { @@ -5697,7 +5533,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", "security": "https://github.com/sebastianbergmann/diff/security/policy", - "source": "https://github.com/sebastianbergmann/diff/tree/5.1.0" + "source": "https://github.com/sebastianbergmann/diff/tree/5.1.1" }, "funding": [ { @@ -5705,20 +5541,20 @@ "type": "github" } ], - "time": "2023-12-22T10:55:06+00:00" + "time": "2024-03-02T07:15:17+00:00" }, { "name": "sebastian/environment", - "version": "6.0.1", + "version": "6.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951" + "reference": "8074dbcd93529b357029f5cc5058fd3e43666984" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/43c751b41d74f96cbbd4e07b7aec9675651e2951", - "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/8074dbcd93529b357029f5cc5058fd3e43666984", + "reference": "8074dbcd93529b357029f5cc5058fd3e43666984", "shasum": "" }, "require": { @@ -5733,7 +5569,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "6.0-dev" + "dev-main": "6.1-dev" } }, "autoload": { @@ -5761,7 +5597,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", "security": "https://github.com/sebastianbergmann/environment/security/policy", - "source": "https://github.com/sebastianbergmann/environment/tree/6.0.1" + "source": "https://github.com/sebastianbergmann/environment/tree/6.1.0" }, "funding": [ { @@ -5769,20 +5605,20 @@ "type": "github" } ], - "time": "2023-04-11T05:39:26+00:00" + "time": "2024-03-23T08:47:14+00:00" }, { "name": "sebastian/exporter", - "version": "5.1.1", + "version": "5.1.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc" + "reference": "955288482d97c19a372d3f31006ab3f37da47adf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/64f51654862e0f5e318db7e9dcc2292c63cdbddc", - "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/955288482d97c19a372d3f31006ab3f37da47adf", + "reference": "955288482d97c19a372d3f31006ab3f37da47adf", "shasum": "" }, "require": { @@ -5839,7 +5675,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", "security": "https://github.com/sebastianbergmann/exporter/security/policy", - "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.1" + "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.2" }, "funding": [ { @@ -5847,20 +5683,20 @@ "type": "github" } ], - "time": "2023-09-24T13:22:09+00:00" + "time": "2024-03-02T07:17:12+00:00" }, { "name": "sebastian/global-state", - "version": "6.0.1", + "version": "6.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4" + "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/7ea9ead78f6d380d2a667864c132c2f7b83055e4", - "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/987bafff24ecc4c9ac418cab1145b96dd6e9cbd9", + "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9", "shasum": "" }, "require": { @@ -5894,14 +5730,14 @@ } ], "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", + "homepage": "https://www.github.com/sebastianbergmann/global-state", "keywords": [ "global state" ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", "security": "https://github.com/sebastianbergmann/global-state/security/policy", - "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.1" + "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.2" }, "funding": [ { @@ -5909,7 +5745,7 @@ "type": "github" } ], - "time": "2023-07-19T07:19:23+00:00" + "time": "2024-03-02T07:19:19+00:00" }, { "name": "sebastian/lines-of-code", @@ -6255,32 +6091,33 @@ }, { "name": "silber/bouncer", - "version": "v1.0.1", + "version": "v1.0.2", "source": { "type": "git", "url": "https://github.com/JosephSilber/bouncer.git", - "reference": "502221b6724fe806aa01ffe08070edaa10222101" + "reference": "c4b3528990b1a6c652ff3705639dbb126dd9ee73" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/JosephSilber/bouncer/zipball/502221b6724fe806aa01ffe08070edaa10222101", - "reference": "502221b6724fe806aa01ffe08070edaa10222101", + "url": "https://api.github.com/repos/JosephSilber/bouncer/zipball/c4b3528990b1a6c652ff3705639dbb126dd9ee73", + "reference": "c4b3528990b1a6c652ff3705639dbb126dd9ee73", "shasum": "" }, "require": { - "illuminate/auth": "^6.0|^7.0|^8.0|^9.0|^10.0", - "illuminate/cache": "^6.0|^7.0|^8.0|^9.0|^10.0", - "illuminate/container": "^6.0|^7.0|^8.0|^9.0|^10.0", - "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0", - "illuminate/database": "^6.0|^7.0|^8.0|^9.0|^10.0", - "php": "^7.2|^8.0" + "illuminate/auth": "^11.0", + "illuminate/cache": "^11.0", + "illuminate/container": "^11.0", + "illuminate/contracts": "^11.0", + "illuminate/database": "^11.0", + "php": "^8.2|^8.3" }, "require-dev": { - "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0", - "illuminate/events": "^6.0|^7.0|^8.0|^9.0|^10.0", - "larapack/dd": "^1.1", - "mockery/mockery": "^1.3.3", - "phpunit/phpunit": "^8.0|^9.0" + "illuminate/console": "^11.0", + "illuminate/events": "^11.0", + "laravel/pint": "^1.14", + "orchestra/testbench": "^9.0", + "pestphp/pest": "3.x-dev", + "phpunit/phpunit": "^11.0" }, "suggest": { "illuminate/console": "Allows running the bouncer:clean artisan command", @@ -6324,22 +6161,22 @@ ], "support": { "issues": "https://github.com/JosephSilber/bouncer/issues", - "source": "https://github.com/JosephSilber/bouncer/tree/v1.0.1" + "source": "https://github.com/JosephSilber/bouncer/tree/v1.0.2" }, - "time": "2023-02-10T16:47:25+00:00" + "time": "2024-03-14T14:11:37+00:00" }, { "name": "spatie/db-dumper", - "version": "3.4.2", + "version": "3.6.0", "source": { "type": "git", "url": "https://github.com/spatie/db-dumper.git", - "reference": "59beef7ad612ca7463dfddb64de6e038eb59e0d7" + "reference": "faca5056830bccea04eadf07e8074669cb9e905e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/db-dumper/zipball/59beef7ad612ca7463dfddb64de6e038eb59e0d7", - "reference": "59beef7ad612ca7463dfddb64de6e038eb59e0d7", + "url": "https://api.github.com/repos/spatie/db-dumper/zipball/faca5056830bccea04eadf07e8074669cb9e905e", + "reference": "faca5056830bccea04eadf07e8074669cb9e905e", "shasum": "" }, "require": { @@ -6377,7 +6214,7 @@ "spatie" ], "support": { - "source": "https://github.com/spatie/db-dumper/tree/3.4.2" + "source": "https://github.com/spatie/db-dumper/tree/3.6.0" }, "funding": [ { @@ -6389,7 +6226,7 @@ "type": "github" } ], - "time": "2023-12-25T11:42:15+00:00" + "time": "2024-04-24T14:54:13+00:00" }, { "name": "spatie/dropbox-api", @@ -6535,33 +6372,36 @@ }, { "name": "spatie/image", - "version": "2.2.7", + "version": "3.6.3", "source": { "type": "git", "url": "https://github.com/spatie/image.git", - "reference": "2f802853aab017aa615224daae1588054b5ab20e" + "reference": "1d4e9c536f1bf7b88e55555d0a1ae9eee6b76a99" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/image/zipball/2f802853aab017aa615224daae1588054b5ab20e", - "reference": "2f802853aab017aa615224daae1588054b5ab20e", + "url": "https://api.github.com/repos/spatie/image/zipball/1d4e9c536f1bf7b88e55555d0a1ae9eee6b76a99", + "reference": "1d4e9c536f1bf7b88e55555d0a1ae9eee6b76a99", "shasum": "" }, "require": { "ext-exif": "*", "ext-json": "*", "ext-mbstring": "*", - "league/glide": "^2.2.2", - "php": "^8.0", - "spatie/image-optimizer": "^1.7", - "spatie/temporary-directory": "^1.0|^2.0", - "symfony/process": "^3.0|^4.0|^5.0|^6.0" + "php": "^8.2", + "spatie/image-optimizer": "^1.7.5", + "spatie/temporary-directory": "^2.2", + "symfony/process": "^6.4|^7.0" }, "require-dev": { - "pestphp/pest": "^1.22", - "phpunit/phpunit": "^9.5", - "symfony/var-dumper": "^4.0|^5.0|^6.0", - "vimeo/psalm": "^4.6" + "ext-gd": "*", + "ext-imagick": "*", + "pestphp/pest": "^2.28", + "phpstan/phpstan": "^1.10.50", + "spatie/pest-plugin-snapshots": "^2.1", + "spatie/pixelmatch-php": "^1.0", + "spatie/ray": "^1.40.1", + "symfony/var-dumper": "^6.4|7.0" }, "type": "library", "autoload": { @@ -6588,7 +6428,7 @@ "spatie" ], "support": { - "source": "https://github.com/spatie/image/tree/2.2.7" + "source": "https://github.com/spatie/image/tree/3.6.3" }, "funding": [ { @@ -6600,20 +6440,20 @@ "type": "github" } ], - "time": "2023-07-24T13:54:13+00:00" + "time": "2024-05-24T14:08:59+00:00" }, { "name": "spatie/image-optimizer", - "version": "1.7.2", + "version": "1.7.5", "source": { "type": "git", "url": "https://github.com/spatie/image-optimizer.git", - "reference": "62f7463483d1bd975f6f06025d89d42a29608fe1" + "reference": "43aff6725cd87bb78ccd8532633cfa8bdc962505" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/image-optimizer/zipball/62f7463483d1bd975f6f06025d89d42a29608fe1", - "reference": "62f7463483d1bd975f6f06025d89d42a29608fe1", + "url": "https://api.github.com/repos/spatie/image-optimizer/zipball/43aff6725cd87bb78ccd8532633cfa8bdc962505", + "reference": "43aff6725cd87bb78ccd8532633cfa8bdc962505", "shasum": "" }, "require": { @@ -6653,22 +6493,22 @@ ], "support": { "issues": "https://github.com/spatie/image-optimizer/issues", - "source": "https://github.com/spatie/image-optimizer/tree/1.7.2" + "source": "https://github.com/spatie/image-optimizer/tree/1.7.5" }, - "time": "2023-11-03T10:08:02+00:00" + "time": "2024-05-16T08:48:33+00:00" }, { "name": "spatie/laravel-backup", - "version": "8.6.0", + "version": "8.8.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-backup.git", - "reference": "c6a7607c0eea80efc2cf6628ffcd172f73a2088f" + "reference": "7e74431fc5c46319a27daa44897df1c7bf4afe5a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-backup/zipball/c6a7607c0eea80efc2cf6628ffcd172f73a2088f", - "reference": "c6a7607c0eea80efc2cf6628ffcd172f73a2088f", + "url": "https://api.github.com/repos/spatie/laravel-backup/zipball/7e74431fc5c46319a27daa44897df1c7bf4afe5a", + "reference": "7e74431fc5c46319a27daa44897df1c7bf4afe5a", "shasum": "" }, "require": { @@ -6742,7 +6582,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-backup/issues", - "source": "https://github.com/spatie/laravel-backup/tree/8.6.0" + "source": "https://github.com/spatie/laravel-backup/tree/8.8.0" }, "funding": [ { @@ -6754,57 +6594,57 @@ "type": "other" } ], - "time": "2024-02-06T20:39:11+00:00" + "time": "2024-05-02T13:09:01+00:00" }, { "name": "spatie/laravel-medialibrary", - "version": "10.15.0", + "version": "11.5.2", "source": { "type": "git", "url": "https://github.com/spatie/laravel-medialibrary.git", - "reference": "f464c82357500c5c68ea350edff35ed9831fd48e" + "reference": "99760ad7865a418708474cf594e736a381b45c0e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-medialibrary/zipball/f464c82357500c5c68ea350edff35ed9831fd48e", - "reference": "f464c82357500c5c68ea350edff35ed9831fd48e", + "url": "https://api.github.com/repos/spatie/laravel-medialibrary/zipball/99760ad7865a418708474cf594e736a381b45c0e", + "reference": "99760ad7865a418708474cf594e736a381b45c0e", "shasum": "" }, "require": { "ext-exif": "*", "ext-fileinfo": "*", "ext-json": "*", - "illuminate/bus": "^9.18|^10.0", - "illuminate/conditionable": "^9.18|^10.0", - "illuminate/console": "^9.18|^10.0", - "illuminate/database": "^9.18|^10.0", - "illuminate/pipeline": "^9.18|^10.0", - "illuminate/support": "^9.18|^10.0", - "maennchen/zipstream-php": "^2.0|^3.0", - "php": "^8.0", - "spatie/image": "^2.2.7", - "spatie/temporary-directory": "^2.0", - "symfony/console": "^6.0" + "illuminate/bus": "^10.0|^11.0", + "illuminate/conditionable": "^10.0|^11.0", + "illuminate/console": "^10.0|^11.0", + "illuminate/database": "^10.0|^11.0", + "illuminate/pipeline": "^10.0|^11.0", + "illuminate/support": "^10.0|^11.0", + "maennchen/zipstream-php": "^3.1", + "php": "^8.2", + "spatie/image": "^3.3.2", + "spatie/laravel-package-tools": "^1.16.1", + "spatie/temporary-directory": "^2.2", + "symfony/console": "^6.4.1|^7.0" }, "conflict": { "php-ffmpeg/php-ffmpeg": "<0.6.1" }, "require-dev": { - "aws/aws-sdk-php": "^3.133.11", - "doctrine/dbal": "^2.13", + "aws/aws-sdk-php": "^3.293.10", "ext-imagick": "*", "ext-pdo_sqlite": "*", "ext-zip": "*", - "guzzlehttp/guzzle": "^7.4", - "league/flysystem-aws-s3-v3": "^3.0", - "mockery/mockery": "^1.4", - "nunomaduro/larastan": "^2.0", - "orchestra/testbench": "^7.0|^8.0", - "pestphp/pest": "^1.21", - "phpstan/extension-installer": "^1.1", - "spatie/laravel-ray": "^1.28", - "spatie/pdf-to-image": "^2.1", - "spatie/phpunit-snapshot-assertions": "^4.2" + "guzzlehttp/guzzle": "^7.8.1", + "larastan/larastan": "^2.7", + "league/flysystem-aws-s3-v3": "^3.22", + "mockery/mockery": "^1.6.7", + "orchestra/testbench": "^7.0|^8.17|^9.0", + "pestphp/pest": "^2.28", + "phpstan/extension-installer": "^1.3.1", + "spatie/laravel-ray": "^1.33", + "spatie/pdf-to-image": "^2.2", + "spatie/pest-plugin-snapshots": "^2.1" }, "suggest": { "league/flysystem-aws-s3-v3": "Required to use AWS S3 file storage", @@ -6850,7 +6690,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-medialibrary/issues", - "source": "https://github.com/spatie/laravel-medialibrary/tree/10.15.0" + "source": "https://github.com/spatie/laravel-medialibrary/tree/11.5.2" }, "funding": [ { @@ -6862,20 +6702,20 @@ "type": "github" } ], - "time": "2023-11-03T13:09:19+00:00" + "time": "2024-05-27T09:07:25+00:00" }, { "name": "spatie/laravel-package-tools", - "version": "1.16.2", + "version": "1.16.4", "source": { "type": "git", "url": "https://github.com/spatie/laravel-package-tools.git", - "reference": "e62eeb1fe8a8a0b2e83227a6c279c8c59f7d3a15" + "reference": "ddf678e78d7f8b17e5cdd99c0c3413a4a6592e53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/e62eeb1fe8a8a0b2e83227a6c279c8c59f7d3a15", - "reference": "e62eeb1fe8a8a0b2e83227a6c279c8c59f7d3a15", + "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/ddf678e78d7f8b17e5cdd99c0c3413a4a6592e53", + "reference": "ddf678e78d7f8b17e5cdd99c0c3413a4a6592e53", "shasum": "" }, "require": { @@ -6914,7 +6754,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-package-tools/issues", - "source": "https://github.com/spatie/laravel-package-tools/tree/1.16.2" + "source": "https://github.com/spatie/laravel-package-tools/tree/1.16.4" }, "funding": [ { @@ -6922,34 +6762,35 @@ "type": "github" } ], - "time": "2024-01-11T08:43:00+00:00" + "time": "2024-03-20T07:29:11+00:00" }, { "name": "spatie/laravel-signal-aware-command", - "version": "1.3.0", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-signal-aware-command.git", - "reference": "46cda09a85aef3fd47fb73ddc7081f963e255571" + "reference": "49a5e671c3a3fd992187a777d01385fc6a84759d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-signal-aware-command/zipball/46cda09a85aef3fd47fb73ddc7081f963e255571", - "reference": "46cda09a85aef3fd47fb73ddc7081f963e255571", + "url": "https://api.github.com/repos/spatie/laravel-signal-aware-command/zipball/49a5e671c3a3fd992187a777d01385fc6a84759d", + "reference": "49a5e671c3a3fd992187a777d01385fc6a84759d", "shasum": "" }, "require": { - "illuminate/contracts": "^8.35|^9.0|^10.0", - "php": "^8.0", - "spatie/laravel-package-tools": "^1.4.3" + "illuminate/contracts": "^11.0", + "php": "^8.2", + "spatie/laravel-package-tools": "^1.4.3", + "symfony/console": "^7.0" }, "require-dev": { - "brianium/paratest": "^6.2", + "brianium/paratest": "^6.2|^7.0", "ext-pcntl": "*", - "nunomaduro/collision": "^5.3|^6.0", - "orchestra/testbench": "^6.16|^7.0|^8.0", - "pestphp/pest-plugin-laravel": "^1.3", - "phpunit/phpunit": "^9.5", + "nunomaduro/collision": "^5.3|^6.0|^7.0|^8.0", + "orchestra/testbench": "^9.0", + "pestphp/pest-plugin-laravel": "^1.3|^2.0", + "phpunit/phpunit": "^9.5|^10|^11", "spatie/laravel-ray": "^1.17" }, "type": "library", @@ -6988,7 +6829,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-signal-aware-command/issues", - "source": "https://github.com/spatie/laravel-signal-aware-command/tree/1.3.0" + "source": "https://github.com/spatie/laravel-signal-aware-command/tree/2.0.0" }, "funding": [ { @@ -6996,7 +6837,7 @@ "type": "github" } ], - "time": "2023-01-14T21:10:59+00:00" + "time": "2024-02-05T13:37:25+00:00" }, { "name": "spatie/temporary-directory", @@ -7060,48 +6901,121 @@ "time": "2023-12-25T11:46:58+00:00" }, { - "name": "symfony/console", - "version": "v6.4.3", + "name": "symfony/clock", + "version": "v7.0.7", "source": { "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "2aaf83b4de5b9d43b93e4aec6f2f8b676f7c567e" + "url": "https://github.com/symfony/clock.git", + "reference": "2008671acb4a30b01c453de193cf9c80549ebda6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/2aaf83b4de5b9d43b93e4aec6f2f8b676f7c567e", - "reference": "2aaf83b4de5b9d43b93e4aec6f2f8b676f7c567e", + "url": "https://api.github.com/repos/symfony/clock/zipball/2008671acb4a30b01c453de193cf9c80549ebda6", + "reference": "2008671acb4a30b01c453de193cf9c80549ebda6", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=8.2", + "psr/clock": "^1.0", + "symfony/polyfill-php83": "^1.28" + }, + "provide": { + "psr/clock-implementation": "1.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/now.php" + ], + "psr-4": { + "Symfony\\Component\\Clock\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Decouples applications from the system clock", + "homepage": "https://symfony.com", + "keywords": [ + "clock", + "psr20", + "time" + ], + "support": { + "source": "https://github.com/symfony/clock/tree/v7.0.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:29:19+00:00" + }, + { + "name": "symfony/console", + "version": "v7.0.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "c981e0e9380ce9f146416bde3150c79197ce9986" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/c981e0e9380ce9f146416bde3150c79197ce9986", + "reference": "c981e0e9380ce9f146416bde3150c79197ce9986", + "shasum": "" + }, + "require": { + "php": ">=8.2", "symfony/polyfill-mbstring": "~1.0", "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^5.4|^6.0|^7.0" + "symfony/string": "^6.4|^7.0" }, "conflict": { - "symfony/dependency-injection": "<5.4", - "symfony/dotenv": "<5.4", - "symfony/event-dispatcher": "<5.4", - "symfony/lock": "<5.4", - "symfony/process": "<5.4" + "symfony/dependency-injection": "<6.4", + "symfony/dotenv": "<6.4", + "symfony/event-dispatcher": "<6.4", + "symfony/lock": "<6.4", + "symfony/process": "<6.4" }, "provide": { "psr/log-implementation": "1.0|2.0|3.0" }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/config": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/event-dispatcher": "^6.4|^7.0", "symfony/http-foundation": "^6.4|^7.0", "symfony/http-kernel": "^6.4|^7.0", - "symfony/lock": "^5.4|^6.0|^7.0", - "symfony/messenger": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/stopwatch": "^5.4|^6.0|^7.0", - "symfony/var-dumper": "^5.4|^6.0|^7.0" + "symfony/lock": "^6.4|^7.0", + "symfony/messenger": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0", + "symfony/stopwatch": "^6.4|^7.0", + "symfony/var-dumper": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -7135,7 +7049,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.3" + "source": "https://github.com/symfony/console/tree/v7.0.7" }, "funding": [ { @@ -7151,20 +7065,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T14:51:35+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/css-selector", - "version": "v7.0.3", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "ec60a4edf94e63b0556b6a0888548bb400a3a3be" + "reference": "b08a4ad89e84b29cec285b7b1f781a7ae51cf4bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/ec60a4edf94e63b0556b6a0888548bb400a3a3be", - "reference": "ec60a4edf94e63b0556b6a0888548bb400a3a3be", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/b08a4ad89e84b29cec285b7b1f781a7ae51cf4bc", + "reference": "b08a4ad89e84b29cec285b7b1f781a7ae51cf4bc", "shasum": "" }, "require": { @@ -7200,7 +7114,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v7.0.3" + "source": "https://github.com/symfony/css-selector/tree/v7.0.7" }, "funding": [ { @@ -7216,20 +7130,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T15:02:46+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.4.0", + "version": "v3.5.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf" + "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf", - "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", + "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", "shasum": "" }, "require": { @@ -7238,7 +7152,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.4-dev" + "dev-main": "3.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -7267,7 +7181,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.4.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0" }, "funding": [ { @@ -7283,26 +7197,26 @@ "type": "tidelift" } ], - "time": "2023-05-23T14:45:45+00:00" + "time": "2024-04-18T09:32:20+00:00" }, { "name": "symfony/error-handler", - "version": "v6.4.3", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "6dc3c76a278b77f01d864a6005d640822c6f26a6" + "reference": "cf97429887e40480c847bfeb6c3991e1e2c086ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/6dc3c76a278b77f01d864a6005d640822c6f26a6", - "reference": "6dc3c76a278b77f01d864a6005d640822c6f26a6", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/cf97429887e40480c847bfeb6c3991e1e2c086ab", + "reference": "cf97429887e40480c847bfeb6c3991e1e2c086ab", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "psr/log": "^1|^2|^3", - "symfony/var-dumper": "^5.4|^6.0|^7.0" + "symfony/var-dumper": "^6.4|^7.0" }, "conflict": { "symfony/deprecation-contracts": "<2.5", @@ -7311,7 +7225,7 @@ "require-dev": { "symfony/deprecation-contracts": "^2.5|^3", "symfony/http-kernel": "^6.4|^7.0", - "symfony/serializer": "^5.4|^6.0|^7.0" + "symfony/serializer": "^6.4|^7.0" }, "bin": [ "Resources/bin/patch-type-declarations" @@ -7342,7 +7256,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.4.3" + "source": "https://github.com/symfony/error-handler/tree/v7.0.7" }, "funding": [ { @@ -7358,20 +7272,20 @@ "type": "tidelift" } ], - "time": "2024-01-29T15:40:36+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v7.0.3", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "834c28d533dd0636f910909d01b9ff45cc094b5e" + "reference": "db2a7fab994d67d92356bb39c367db115d9d30f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/834c28d533dd0636f910909d01b9ff45cc094b5e", - "reference": "834c28d533dd0636f910909d01b9ff45cc094b5e", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/db2a7fab994d67d92356bb39c367db115d9d30f9", + "reference": "db2a7fab994d67d92356bb39c367db115d9d30f9", "shasum": "" }, "require": { @@ -7422,7 +7336,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v7.0.3" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.0.7" }, "funding": [ { @@ -7438,20 +7352,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T15:02:46+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.4.0", + "version": "v3.5.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "a76aed96a42d2b521153fb382d418e30d18b59df" + "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/a76aed96a42d2b521153fb382d418e30d18b59df", - "reference": "a76aed96a42d2b521153fb382d418e30d18b59df", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/8f93aec25d41b72493c6ddff14e916177c9efc50", + "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50", "shasum": "" }, "require": { @@ -7461,7 +7375,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.4-dev" + "dev-main": "3.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -7498,7 +7412,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.4.0" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.0" }, "funding": [ { @@ -7514,27 +7428,27 @@ "type": "tidelift" } ], - "time": "2023-05-23T14:45:45+00:00" + "time": "2024-04-18T09:32:20+00:00" }, { "name": "symfony/finder", - "version": "v6.4.0", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "11d736e97f116ac375a81f96e662911a34cd50ce" + "reference": "4d58f0f4fe95a30d7b538d71197135483560b97c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/11d736e97f116ac375a81f96e662911a34cd50ce", - "reference": "11d736e97f116ac375a81f96e662911a34cd50ce", + "url": "https://api.github.com/repos/symfony/finder/zipball/4d58f0f4fe95a30d7b538d71197135483560b97c", + "reference": "4d58f0f4fe95a30d7b538d71197135483560b97c", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "symfony/filesystem": "^6.0|^7.0" + "symfony/filesystem": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -7562,7 +7476,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.4.0" + "source": "https://github.com/symfony/finder/tree/v7.0.7" }, "funding": [ { @@ -7578,40 +7492,40 @@ "type": "tidelift" } ], - "time": "2023-10-31T17:30:12+00:00" + "time": "2024-04-28T11:44:19+00:00" }, { "name": "symfony/http-foundation", - "version": "v6.4.3", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "5677bdf7cade4619cb17fc9e1e7b31ec392244a9" + "reference": "0194e064b8bdc29381462f790bab04e1cac8fdc8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/5677bdf7cade4619cb17fc9e1e7b31ec392244a9", - "reference": "5677bdf7cade4619cb17fc9e1e7b31ec392244a9", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/0194e064b8bdc29381462f790bab04e1cac8fdc8", + "reference": "0194e064b8bdc29381462f790bab04e1cac8fdc8", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=8.2", "symfony/polyfill-mbstring": "~1.1", "symfony/polyfill-php83": "^1.27" }, "conflict": { - "symfony/cache": "<6.3" + "doctrine/dbal": "<3.6", + "symfony/cache": "<6.4" }, "require-dev": { - "doctrine/dbal": "^2.13.1|^3|^4", + "doctrine/dbal": "^3.6|^4", "predis/predis": "^1.1|^2.0", - "symfony/cache": "^6.3|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4|^7.0", - "symfony/mime": "^5.4|^6.0|^7.0", - "symfony/rate-limiter": "^5.4|^6.0|^7.0" + "symfony/cache": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/mime": "^6.4|^7.0", + "symfony/rate-limiter": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -7639,7 +7553,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.4.3" + "source": "https://github.com/symfony/http-foundation/tree/v7.0.7" }, "funding": [ { @@ -7655,76 +7569,76 @@ "type": "tidelift" } ], - "time": "2024-01-23T14:51:35+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.4.3", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "9c6ec4e543044f7568a53a76ab1484ecd30637a2" + "reference": "e07bb9bd86e7cd8ba2d3d9c618eec9d1bbe06d25" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/9c6ec4e543044f7568a53a76ab1484ecd30637a2", - "reference": "9c6ec4e543044f7568a53a76ab1484ecd30637a2", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/e07bb9bd86e7cd8ba2d3d9c618eec9d1bbe06d25", + "reference": "e07bb9bd86e7cd8ba2d3d9c618eec9d1bbe06d25", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "psr/log": "^1|^2|^3", - "symfony/deprecation-contracts": "^2.5|^3", "symfony/error-handler": "^6.4|^7.0", - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/event-dispatcher": "^6.4|^7.0", "symfony/http-foundation": "^6.4|^7.0", "symfony/polyfill-ctype": "^1.8" }, "conflict": { - "symfony/browser-kit": "<5.4", - "symfony/cache": "<5.4", - "symfony/config": "<6.1", - "symfony/console": "<5.4", + "symfony/browser-kit": "<6.4", + "symfony/cache": "<6.4", + "symfony/config": "<6.4", + "symfony/console": "<6.4", "symfony/dependency-injection": "<6.4", - "symfony/doctrine-bridge": "<5.4", - "symfony/form": "<5.4", - "symfony/http-client": "<5.4", + "symfony/doctrine-bridge": "<6.4", + "symfony/form": "<6.4", + "symfony/http-client": "<6.4", "symfony/http-client-contracts": "<2.5", - "symfony/mailer": "<5.4", - "symfony/messenger": "<5.4", - "symfony/translation": "<5.4", + "symfony/mailer": "<6.4", + "symfony/messenger": "<6.4", + "symfony/translation": "<6.4", "symfony/translation-contracts": "<2.5", - "symfony/twig-bridge": "<5.4", + "symfony/twig-bridge": "<6.4", "symfony/validator": "<6.4", - "symfony/var-dumper": "<6.3", - "twig/twig": "<2.13" + "symfony/var-dumper": "<6.4", + "twig/twig": "<3.0.4" }, "provide": { "psr/log-implementation": "1.0|2.0|3.0" }, "require-dev": { "psr/cache": "^1.0|^2.0|^3.0", - "symfony/browser-kit": "^5.4|^6.0|^7.0", - "symfony/clock": "^6.2|^7.0", - "symfony/config": "^6.1|^7.0", - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/css-selector": "^5.4|^6.0|^7.0", + "symfony/browser-kit": "^6.4|^7.0", + "symfony/clock": "^6.4|^7.0", + "symfony/config": "^6.4|^7.0", + "symfony/console": "^6.4|^7.0", + "symfony/css-selector": "^6.4|^7.0", "symfony/dependency-injection": "^6.4|^7.0", - "symfony/dom-crawler": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/finder": "^5.4|^6.0|^7.0", + "symfony/dom-crawler": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/finder": "^6.4|^7.0", "symfony/http-client-contracts": "^2.5|^3", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/property-access": "^5.4.5|^6.0.5|^7.0", - "symfony/routing": "^5.4|^6.0|^7.0", - "symfony/serializer": "^6.3|^7.0", - "symfony/stopwatch": "^5.4|^6.0|^7.0", - "symfony/translation": "^5.4|^6.0|^7.0", + "symfony/process": "^6.4|^7.0", + "symfony/property-access": "^6.4|^7.0", + "symfony/routing": "^6.4|^7.0", + "symfony/serializer": "^6.4.4|^7.0.4", + "symfony/stopwatch": "^6.4|^7.0", + "symfony/translation": "^6.4|^7.0", "symfony/translation-contracts": "^2.5|^3", - "symfony/uid": "^5.4|^6.0|^7.0", + "symfony/uid": "^6.4|^7.0", "symfony/validator": "^6.4|^7.0", - "symfony/var-exporter": "^6.2|^7.0", - "twig/twig": "^2.13|^3.0.4" + "symfony/var-dumper": "^6.4|^7.0", + "symfony/var-exporter": "^6.4|^7.0", + "twig/twig": "^3.0.4" }, "type": "library", "autoload": { @@ -7752,7 +7666,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.4.3" + "source": "https://github.com/symfony/http-kernel/tree/v7.0.7" }, "funding": [ { @@ -7768,43 +7682,43 @@ "type": "tidelift" } ], - "time": "2024-01-31T07:21:29+00:00" + "time": "2024-04-29T12:20:25+00:00" }, { "name": "symfony/mailer", - "version": "v6.4.3", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "74412c62f88a85a41b61f0b71ab0afcaad6f03ee" + "reference": "4ff41a7c7998a88cfdc31b5841ef64d9246fc56a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/74412c62f88a85a41b61f0b71ab0afcaad6f03ee", - "reference": "74412c62f88a85a41b61f0b71ab0afcaad6f03ee", + "url": "https://api.github.com/repos/symfony/mailer/zipball/4ff41a7c7998a88cfdc31b5841ef64d9246fc56a", + "reference": "4ff41a7c7998a88cfdc31b5841ef64d9246fc56a", "shasum": "" }, "require": { "egulias/email-validator": "^2.1.10|^3|^4", - "php": ">=8.1", + "php": ">=8.2", "psr/event-dispatcher": "^1", "psr/log": "^1|^2|^3", - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", - "symfony/mime": "^6.2|^7.0", + "symfony/event-dispatcher": "^6.4|^7.0", + "symfony/mime": "^6.4|^7.0", "symfony/service-contracts": "^2.5|^3" }, "conflict": { "symfony/http-client-contracts": "<2.5", - "symfony/http-kernel": "<5.4", - "symfony/messenger": "<6.2", - "symfony/mime": "<6.2", - "symfony/twig-bridge": "<6.2.1" + "symfony/http-kernel": "<6.4", + "symfony/messenger": "<6.4", + "symfony/mime": "<6.4", + "symfony/twig-bridge": "<6.4" }, "require-dev": { - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/http-client": "^5.4|^6.0|^7.0", - "symfony/messenger": "^6.2|^7.0", - "symfony/twig-bridge": "^6.2|^7.0" + "symfony/console": "^6.4|^7.0", + "symfony/http-client": "^6.4|^7.0", + "symfony/messenger": "^6.4|^7.0", + "symfony/twig-bridge": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -7832,7 +7746,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v6.4.3" + "source": "https://github.com/symfony/mailer/tree/v7.0.7" }, "funding": [ { @@ -7848,25 +7762,24 @@ "type": "tidelift" } ], - "time": "2024-01-29T15:01:07+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/mime", - "version": "v6.4.3", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "5017e0a9398c77090b7694be46f20eb796262a34" + "reference": "3adbf110c306546f6f00337f421d2edca0e8d3c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/5017e0a9398c77090b7694be46f20eb796262a34", - "reference": "5017e0a9398c77090b7694be46f20eb796262a34", + "url": "https://api.github.com/repos/symfony/mime/zipball/3adbf110c306546f6f00337f421d2edca0e8d3c0", + "reference": "3adbf110c306546f6f00337f421d2edca0e8d3c0", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=8.2", "symfony/polyfill-intl-idn": "^1.10", "symfony/polyfill-mbstring": "^1.0" }, @@ -7874,17 +7787,18 @@ "egulias/email-validator": "~3.0.0", "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", - "symfony/mailer": "<5.4", - "symfony/serializer": "<6.3.2" + "symfony/mailer": "<6.4", + "symfony/serializer": "<6.4" }, "require-dev": { "egulias/email-validator": "^2.1.10|^3.1|^4", "league/html-to-markdown": "^5.0", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/property-access": "^5.4|^6.0|^7.0", - "symfony/property-info": "^5.4|^6.0|^7.0", - "symfony/serializer": "^6.3.2|^7.0" + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0", + "symfony/property-access": "^6.4|^7.0", + "symfony/property-info": "^6.4|^7.0", + "symfony/serializer": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -7916,7 +7830,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.4.3" + "source": "https://github.com/symfony/mime/tree/v7.0.7" }, "funding": [ { @@ -7932,7 +7846,7 @@ "type": "tidelift" } ], - "time": "2024-01-30T08:32:12+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/polyfill-ctype", @@ -8647,20 +8561,20 @@ }, { "name": "symfony/process", - "version": "v6.4.3", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "31642b0818bfcff85930344ef93193f8c607e0a3" + "reference": "3839e56b94dd1dbd13235d27504e66baf23faba0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/31642b0818bfcff85930344ef93193f8c607e0a3", - "reference": "31642b0818bfcff85930344ef93193f8c607e0a3", + "url": "https://api.github.com/repos/symfony/process/zipball/3839e56b94dd1dbd13235d27504e66baf23faba0", + "reference": "3839e56b94dd1dbd13235d27504e66baf23faba0", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "type": "library", "autoload": { @@ -8688,7 +8602,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.4.3" + "source": "https://github.com/symfony/process/tree/v7.0.7" }, "funding": [ { @@ -8704,40 +8618,38 @@ "type": "tidelift" } ], - "time": "2024-01-23T14:51:35+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/routing", - "version": "v6.4.3", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "3b2957ad54902f0f544df83e3d58b38d7e8e5842" + "reference": "9f82bf7766ccc9c22ab7aeb9bebb98351483fa5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/3b2957ad54902f0f544df83e3d58b38d7e8e5842", - "reference": "3b2957ad54902f0f544df83e3d58b38d7e8e5842", + "url": "https://api.github.com/repos/symfony/routing/zipball/9f82bf7766ccc9c22ab7aeb9bebb98351483fa5b", + "reference": "9f82bf7766ccc9c22ab7aeb9bebb98351483fa5b", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3" }, "conflict": { - "doctrine/annotations": "<1.12", - "symfony/config": "<6.2", - "symfony/dependency-injection": "<5.4", - "symfony/yaml": "<5.4" + "symfony/config": "<6.4", + "symfony/dependency-injection": "<6.4", + "symfony/yaml": "<6.4" }, "require-dev": { - "doctrine/annotations": "^1.12|^2", "psr/log": "^1|^2|^3", - "symfony/config": "^6.2|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^5.4|^6.0|^7.0", - "symfony/yaml": "^5.4|^6.0|^7.0" + "symfony/config": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/yaml": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -8771,7 +8683,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.3" + "source": "https://github.com/symfony/routing/tree/v7.0.7" }, "funding": [ { @@ -8787,25 +8699,26 @@ "type": "tidelift" } ], - "time": "2024-01-30T13:55:02+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.4.1", + "version": "v3.5.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0" + "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/fe07cbc8d837f60caf7018068e350cc5163681a0", - "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", + "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", "shasum": "" }, "require": { "php": ">=8.1", - "psr/container": "^1.1|^2.0" + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3" }, "conflict": { "ext-psr": "<1.1|>=2" @@ -8813,7 +8726,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.4-dev" + "dev-main": "3.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -8853,7 +8766,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.4.1" + "source": "https://github.com/symfony/service-contracts/tree/v3.5.0" }, "funding": [ { @@ -8869,20 +8782,20 @@ "type": "tidelift" } ], - "time": "2023-12-26T14:02:43+00:00" + "time": "2024-04-18T09:32:20+00:00" }, { "name": "symfony/string", - "version": "v7.0.3", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "524aac4a280b90a4420d8d6a040718d0586505ac" + "reference": "e405b5424dc2528e02e31ba26b83a79fd4eb8f63" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/524aac4a280b90a4420d8d6a040718d0586505ac", - "reference": "524aac4a280b90a4420d8d6a040718d0586505ac", + "url": "https://api.github.com/repos/symfony/string/zipball/e405b5424dc2528e02e31ba26b83a79fd4eb8f63", + "reference": "e405b5424dc2528e02e31ba26b83a79fd4eb8f63", "shasum": "" }, "require": { @@ -8939,7 +8852,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.0.3" + "source": "https://github.com/symfony/string/tree/v7.0.7" }, "funding": [ { @@ -8955,37 +8868,36 @@ "type": "tidelift" } ], - "time": "2024-01-29T15:41:16+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/translation", - "version": "v6.4.3", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "637c51191b6b184184bbf98937702bcf554f7d04" + "reference": "1515e03afaa93e6419aba5d5c9d209159317100b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/637c51191b6b184184bbf98937702bcf554f7d04", - "reference": "637c51191b6b184184bbf98937702bcf554f7d04", + "url": "https://api.github.com/repos/symfony/translation/zipball/1515e03afaa93e6419aba5d5c9d209159317100b", + "reference": "1515e03afaa93e6419aba5d5c9d209159317100b", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=8.2", "symfony/polyfill-mbstring": "~1.0", "symfony/translation-contracts": "^2.5|^3.0" }, "conflict": { - "symfony/config": "<5.4", - "symfony/console": "<5.4", - "symfony/dependency-injection": "<5.4", + "symfony/config": "<6.4", + "symfony/console": "<6.4", + "symfony/dependency-injection": "<6.4", "symfony/http-client-contracts": "<2.5", - "symfony/http-kernel": "<5.4", + "symfony/http-kernel": "<6.4", "symfony/service-contracts": "<2.5", - "symfony/twig-bundle": "<5.4", - "symfony/yaml": "<5.4" + "symfony/twig-bundle": "<6.4", + "symfony/yaml": "<6.4" }, "provide": { "symfony/translation-implementation": "2.3|3.0" @@ -8993,17 +8905,17 @@ "require-dev": { "nikic/php-parser": "^4.18|^5.0", "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0|^7.0", - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/finder": "^5.4|^6.0|^7.0", + "symfony/config": "^6.4|^7.0", + "symfony/console": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/finder": "^6.4|^7.0", "symfony/http-client-contracts": "^2.5|^3.0", - "symfony/http-kernel": "^5.4|^6.0|^7.0", - "symfony/intl": "^5.4|^6.0|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/intl": "^6.4|^7.0", "symfony/polyfill-intl-icu": "^1.21", - "symfony/routing": "^5.4|^6.0|^7.0", + "symfony/routing": "^6.4|^7.0", "symfony/service-contracts": "^2.5|^3", - "symfony/yaml": "^5.4|^6.0|^7.0" + "symfony/yaml": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -9034,7 +8946,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.4.3" + "source": "https://github.com/symfony/translation/tree/v7.0.7" }, "funding": [ { @@ -9050,20 +8962,20 @@ "type": "tidelift" } ], - "time": "2024-01-29T13:11:52+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/translation-contracts", - "version": "v3.4.1", + "version": "v3.5.0", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "06450585bf65e978026bda220cdebca3f867fde7" + "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/06450585bf65e978026bda220cdebca3f867fde7", - "reference": "06450585bf65e978026bda220cdebca3f867fde7", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a", + "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a", "shasum": "" }, "require": { @@ -9072,7 +8984,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.4-dev" + "dev-main": "3.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -9112,7 +9024,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.4.1" + "source": "https://github.com/symfony/translation-contracts/tree/v3.5.0" }, "funding": [ { @@ -9128,28 +9040,28 @@ "type": "tidelift" } ], - "time": "2023-12-26T14:02:43+00:00" + "time": "2024-04-18T09:32:20+00:00" }, { "name": "symfony/uid", - "version": "v6.4.3", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/uid.git", - "reference": "1d31267211cc3a2fff32bcfc7c1818dac41b6fc0" + "reference": "4f3a5d181999e25918586c8369de09e7814e7be2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/uid/zipball/1d31267211cc3a2fff32bcfc7c1818dac41b6fc0", - "reference": "1d31267211cc3a2fff32bcfc7c1818dac41b6fc0", + "url": "https://api.github.com/repos/symfony/uid/zipball/4f3a5d181999e25918586c8369de09e7814e7be2", + "reference": "4f3a5d181999e25918586c8369de09e7814e7be2", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/polyfill-uuid": "^1.15" }, "require-dev": { - "symfony/console": "^5.4|^6.0|^7.0" + "symfony/console": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -9186,7 +9098,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/uid/tree/v6.4.3" + "source": "https://github.com/symfony/uid/tree/v7.0.7" }, "funding": [ { @@ -9202,38 +9114,36 @@ "type": "tidelift" } ], - "time": "2024-01-23T14:51:35+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.4.3", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "0435a08f69125535336177c29d56af3abc1f69da" + "reference": "d1627b66fd87c8b4d90cabe5671c29d575690924" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/0435a08f69125535336177c29d56af3abc1f69da", - "reference": "0435a08f69125535336177c29d56af3abc1f69da", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/d1627b66fd87c8b4d90cabe5671c29d575690924", + "reference": "d1627b66fd87c8b4d90cabe5671c29d575690924", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=8.2", "symfony/polyfill-mbstring": "~1.0" }, "conflict": { - "symfony/console": "<5.4" + "symfony/console": "<6.4" }, "require-dev": { "ext-iconv": "*", - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/error-handler": "^6.3|^7.0", - "symfony/http-kernel": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/uid": "^5.4|^6.0|^7.0", - "twig/twig": "^2.13|^3.0.4" + "symfony/console": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0", + "symfony/uid": "^6.4|^7.0", + "twig/twig": "^3.0.4" }, "bin": [ "Resources/bin/var-dump-server" @@ -9271,7 +9181,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.3" + "source": "https://github.com/symfony/var-dumper/tree/v7.0.7" }, "funding": [ { @@ -9287,20 +9197,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T14:53:30+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "theseer/tokenizer", - "version": "1.2.2", + "version": "1.2.3", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96" + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96", - "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", "shasum": "" }, "require": { @@ -9329,7 +9239,7 @@ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "support": { "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.2.2" + "source": "https://github.com/theseer/tokenizer/tree/1.2.3" }, "funding": [ { @@ -9337,7 +9247,7 @@ "type": "github" } ], - "time": "2023-11-20T00:12:19+00:00" + "time": "2024-03-03T12:36:25+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -9394,35 +9304,35 @@ }, { "name": "vinkla/hashids", - "version": "11.0.0", + "version": "12.0.0", "source": { "type": "git", "url": "https://github.com/vinkla/laravel-hashids.git", - "reference": "5fbdbf21c432a877c281f396dc65da39a910aed2" + "reference": "71e4be8347d8c77dd728b61c1ff3b53cb4941ef1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vinkla/laravel-hashids/zipball/5fbdbf21c432a877c281f396dc65da39a910aed2", - "reference": "5fbdbf21c432a877c281f396dc65da39a910aed2", + "url": "https://api.github.com/repos/vinkla/laravel-hashids/zipball/71e4be8347d8c77dd728b61c1ff3b53cb4941ef1", + "reference": "71e4be8347d8c77dd728b61c1ff3b53cb4941ef1", "shasum": "" }, "require": { "graham-campbell/manager": "^5.0", "hashids/hashids": "^5.0", - "illuminate/contracts": "^10.0", - "illuminate/support": "^10.0", - "php": "^8.1" + "illuminate/contracts": "^11.0", + "illuminate/support": "^11.0", + "php": "^8.2" }, "require-dev": { - "graham-campbell/analyzer": "^4.0", - "graham-campbell/testbench": "^6.0", - "mockery/mockery": "^1.5", + "graham-campbell/analyzer": "^4.1", + "graham-campbell/testbench": "^6.1", + "mockery/mockery": "^1.6.6", "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "11.0-dev" + "dev-master": "12.0-dev" }, "laravel": { "aliases": { @@ -9445,7 +9355,7 @@ "authors": [ { "name": "Vincent Klaiber", - "email": "hello@doubledip.se" + "homepage": "https://github.com/vinkla" } ], "description": "A Hashids bridge for Laravel", @@ -9455,9 +9365,9 @@ ], "support": { "issues": "https://github.com/vinkla/laravel-hashids/issues", - "source": "https://github.com/vinkla/laravel-hashids/tree/11.0.0" + "source": "https://github.com/vinkla/laravel-hashids/tree/12.0.0" }, - "time": "2023-02-26T18:30:57+00:00" + "time": "2024-02-05T08:07:21+00:00" }, { "name": "vlucas/phpdotenv", @@ -9679,48 +9589,48 @@ "packages-dev": [ { "name": "barryvdh/laravel-ide-helper", - "version": "v2.15.1", + "version": "v3.0.0", "source": { "type": "git", "url": "https://github.com/barryvdh/laravel-ide-helper.git", - "reference": "77831852bb7bc54f287246d32eb91274eaf87f8b" + "reference": "bc1d67f01ce8c77e3f97d48ba51fa1d81874f622" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/77831852bb7bc54f287246d32eb91274eaf87f8b", - "reference": "77831852bb7bc54f287246d32eb91274eaf87f8b", + "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/bc1d67f01ce8c77e3f97d48ba51fa1d81874f622", + "reference": "bc1d67f01ce8c77e3f97d48ba51fa1d81874f622", "shasum": "" }, "require": { - "barryvdh/reflection-docblock": "^2.0.6", + "barryvdh/reflection-docblock": "^2.1.1", "composer/class-map-generator": "^1.0", - "doctrine/dbal": "^2.6 || ^3.1.4", "ext-json": "*", - "illuminate/console": "^9 || ^10", - "illuminate/filesystem": "^9 || ^10", - "illuminate/support": "^9 || ^10", + "illuminate/console": "^10 || ^11", + "illuminate/database": "^10.38 || ^11", + "illuminate/filesystem": "^10 || ^11", + "illuminate/support": "^10 || ^11", "nikic/php-parser": "^4.18 || ^5", - "php": "^8.0", + "php": "^8.1", "phpdocumentor/type-resolver": "^1.1.0" }, "require-dev": { "ext-pdo_sqlite": "*", "friendsofphp/php-cs-fixer": "^3", - "illuminate/config": "^9 || ^10", - "illuminate/view": "^9 || ^10", + "illuminate/config": "^9 || ^10 || ^11", + "illuminate/view": "^9 || ^10 || ^11", "mockery/mockery": "^1.4", - "orchestra/testbench": "^7 || ^8", - "phpunit/phpunit": "^9", - "spatie/phpunit-snapshot-assertions": "^4", + "orchestra/testbench": "^8 || ^9", + "phpunit/phpunit": "^10.5", + "spatie/phpunit-snapshot-assertions": "^4 || ^5", "vimeo/psalm": "^5.4" }, "suggest": { - "illuminate/events": "Required for automatic helper generation (^6|^7|^8|^9|^10)." + "illuminate/events": "Required for automatic helper generation (^6|^7|^8|^9|^10|^11)." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.15-dev" + "dev-master": "3.0-dev" }, "laravel": { "providers": [ @@ -9757,7 +9667,7 @@ ], "support": { "issues": "https://github.com/barryvdh/laravel-ide-helper/issues", - "source": "https://github.com/barryvdh/laravel-ide-helper/tree/v2.15.1" + "source": "https://github.com/barryvdh/laravel-ide-helper/tree/v3.0.0" }, "funding": [ { @@ -9769,7 +9679,7 @@ "type": "github" } ], - "time": "2024-02-15T14:23:20+00:00" + "time": "2024-03-01T12:53:18+00:00" }, { "name": "barryvdh/reflection-docblock", @@ -9825,28 +9735,31 @@ }, { "name": "beyondcode/laravel-dump-server", - "version": "1.9.0", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/beyondcode/laravel-dump-server.git", - "reference": "1f2452617afc64e47b3cf49978beb7beeef084df" + "reference": "e0dff1b2c7caf49d07ca5cb331fc7c5f1e52c715" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/beyondcode/laravel-dump-server/zipball/1f2452617afc64e47b3cf49978beb7beeef084df", - "reference": "1f2452617afc64e47b3cf49978beb7beeef084df", + "url": "https://api.github.com/repos/beyondcode/laravel-dump-server/zipball/e0dff1b2c7caf49d07ca5cb331fc7c5f1e52c715", + "reference": "e0dff1b2c7caf49d07ca5cb331fc7c5f1e52c715", "shasum": "" }, "require": { - "illuminate/console": "5.6.*|5.7.*|5.8.*|^6.0|^7.0|^8.0|^9.0|^10.0", - "illuminate/http": "5.6.*|5.7.*|5.8.*|^6.0|^7.0|^8.0|^9.0|^10.0", - "illuminate/support": "5.6.*|5.7.*|5.8.*|^6.0|^7.0|^8.0|^9.0|^10.0", + "illuminate/console": "5.6.*|5.7.*|5.8.*|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "illuminate/http": "5.6.*|5.7.*|5.8.*|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "illuminate/support": "5.6.*|5.7.*|5.8.*|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", "php": ">=7.2.5", - "symfony/var-dumper": "^5.0|^6.0" + "symfony/var-dumper": "^5.0|^6.0|^7.0" + }, + "conflict": { + "spatie/laravel-ray": "*" }, "require-dev": { "larapack/dd": "^1.0", - "phpunit/phpunit": "^7.0|^9.3" + "phpunit/phpunit": "^7.0|^9.3|^10.5" }, "type": "library", "extra": { @@ -9884,22 +9797,22 @@ ], "support": { "issues": "https://github.com/beyondcode/laravel-dump-server/issues", - "source": "https://github.com/beyondcode/laravel-dump-server/tree/1.9.0" + "source": "https://github.com/beyondcode/laravel-dump-server/tree/2.0.0" }, - "time": "2023-02-15T10:29:26+00:00" + "time": "2024-04-23T12:02:38+00:00" }, { "name": "brianium/paratest", - "version": "v7.4.1", + "version": "v7.4.3", "source": { "type": "git", "url": "https://github.com/paratestphp/paratest.git", - "reference": "b2830e330011d59a799c0002e118f5b4bbdb9604" + "reference": "64fcfd0e28a6b8078a19dbf9127be2ee645b92ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paratestphp/paratest/zipball/b2830e330011d59a799c0002e118f5b4bbdb9604", - "reference": "b2830e330011d59a799c0002e118f5b4bbdb9604", + "url": "https://api.github.com/repos/paratestphp/paratest/zipball/64fcfd0e28a6b8078a19dbf9127be2ee645b92ec", + "reference": "64fcfd0e28a6b8078a19dbf9127be2ee645b92ec", "shasum": "" }, "require": { @@ -9907,13 +9820,13 @@ "ext-pcre": "*", "ext-reflection": "*", "ext-simplexml": "*", - "fidry/cpu-core-counter": "^1.0.0", + "fidry/cpu-core-counter": "^1.1.0", "jean85/pretty-package-versions": "^2.0.5", "php": "~8.2.0 || ~8.3.0", "phpunit/php-code-coverage": "^10.1.11 || ^11.0.0", "phpunit/php-file-iterator": "^4.1.0 || ^5.0.0", "phpunit/php-timer": "^6.0.0 || ^7.0.0", - "phpunit/phpunit": "^10.5.9 || ^11.0.2", + "phpunit/phpunit": "^10.5.9 || ^11.0.3", "sebastian/environment": "^6.0.1 || ^7.0.0", "symfony/console": "^6.4.3 || ^7.0.3", "symfony/process": "^6.4.3 || ^7.0.3" @@ -9922,11 +9835,11 @@ "doctrine/coding-standard": "^12.0.0", "ext-pcov": "*", "ext-posix": "*", - "phpstan/phpstan": "^1.10.57", + "phpstan/phpstan": "^1.10.58", "phpstan/phpstan-deprecation-rules": "^1.1.4", "phpstan/phpstan-phpunit": "^1.3.15", "phpstan/phpstan-strict-rules": "^1.5.2", - "squizlabs/php_codesniffer": "^3.8.1", + "squizlabs/php_codesniffer": "^3.9.0", "symfony/filesystem": "^6.4.3 || ^7.0.3" }, "bin": [ @@ -9968,7 +9881,7 @@ ], "support": { "issues": "https://github.com/paratestphp/paratest/issues", - "source": "https://github.com/paratestphp/paratest/tree/v7.4.1" + "source": "https://github.com/paratestphp/paratest/tree/v7.4.3" }, "funding": [ { @@ -9980,20 +9893,20 @@ "type": "paypal" } ], - "time": "2024-02-06T13:50:28+00:00" + "time": "2024-02-20T07:24:02+00:00" }, { "name": "composer/class-map-generator", - "version": "1.1.0", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/composer/class-map-generator.git", - "reference": "953cc4ea32e0c31f2185549c7d216d7921f03da9" + "reference": "8286a62d243312ed99b3eee20d5005c961adb311" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/class-map-generator/zipball/953cc4ea32e0c31f2185549c7d216d7921f03da9", - "reference": "953cc4ea32e0c31f2185549c7d216d7921f03da9", + "url": "https://api.github.com/repos/composer/class-map-generator/zipball/8286a62d243312ed99b3eee20d5005c961adb311", + "reference": "8286a62d243312ed99b3eee20d5005c961adb311", "shasum": "" }, "require": { @@ -10037,7 +9950,7 @@ ], "support": { "issues": "https://github.com/composer/class-map-generator/issues", - "source": "https://github.com/composer/class-map-generator/tree/1.1.0" + "source": "https://github.com/composer/class-map-generator/tree/1.1.1" }, "funding": [ { @@ -10053,20 +9966,20 @@ "type": "tidelift" } ], - "time": "2023-06-30T13:58:57+00:00" + "time": "2024-03-15T12:53:41+00:00" }, { "name": "composer/pcre", - "version": "3.1.1", + "version": "3.1.4", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9" + "reference": "04229f163664973f68f38f6f73d917799168ef24" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/00104306927c7a0919b4ced2aaa6782c1e61a3c9", - "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9", + "url": "https://api.github.com/repos/composer/pcre/zipball/04229f163664973f68f38f6f73d917799168ef24", + "reference": "04229f163664973f68f38f6f73d917799168ef24", "shasum": "" }, "require": { @@ -10108,7 +10021,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.1.1" + "source": "https://github.com/composer/pcre/tree/3.1.4" }, "funding": [ { @@ -10124,213 +10037,7 @@ "type": "tidelift" } ], - "time": "2023-10-11T07:11:09+00:00" - }, - { - "name": "doctrine/cache", - "version": "2.2.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/cache.git", - "reference": "1ca8f21980e770095a31456042471a57bc4c68fb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/1ca8f21980e770095a31456042471a57bc4c68fb", - "reference": "1ca8f21980e770095a31456042471a57bc4c68fb", - "shasum": "" - }, - "require": { - "php": "~7.1 || ^8.0" - }, - "conflict": { - "doctrine/common": ">2.2,<2.4" - }, - "require-dev": { - "cache/integration-tests": "dev-master", - "doctrine/coding-standard": "^9", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "psr/cache": "^1.0 || ^2.0 || ^3.0", - "symfony/cache": "^4.4 || ^5.4 || ^6", - "symfony/var-exporter": "^4.4 || ^5.4 || ^6" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.", - "homepage": "https://www.doctrine-project.org/projects/cache.html", - "keywords": [ - "abstraction", - "apcu", - "cache", - "caching", - "couchdb", - "memcached", - "php", - "redis", - "xcache" - ], - "support": { - "issues": "https://github.com/doctrine/cache/issues", - "source": "https://github.com/doctrine/cache/tree/2.2.0" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcache", - "type": "tidelift" - } - ], - "time": "2022-05-20T20:07:39+00:00" - }, - { - "name": "doctrine/dbal", - "version": "3.8.2", - "source": { - "type": "git", - "url": "https://github.com/doctrine/dbal.git", - "reference": "a19a1d05ca211f41089dffcc387733a6875196cb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/a19a1d05ca211f41089dffcc387733a6875196cb", - "reference": "a19a1d05ca211f41089dffcc387733a6875196cb", - "shasum": "" - }, - "require": { - "composer-runtime-api": "^2", - "doctrine/cache": "^1.11|^2.0", - "doctrine/deprecations": "^0.5.3|^1", - "doctrine/event-manager": "^1|^2", - "php": "^7.4 || ^8.0", - "psr/cache": "^1|^2|^3", - "psr/log": "^1|^2|^3" - }, - "require-dev": { - "doctrine/coding-standard": "12.0.0", - "fig/log-test": "^1", - "jetbrains/phpstorm-stubs": "2023.1", - "phpstan/phpstan": "1.10.57", - "phpstan/phpstan-strict-rules": "^1.5", - "phpunit/phpunit": "9.6.16", - "psalm/plugin-phpunit": "0.18.4", - "slevomat/coding-standard": "8.13.1", - "squizlabs/php_codesniffer": "3.8.1", - "symfony/cache": "^5.4|^6.0|^7.0", - "symfony/console": "^4.4|^5.4|^6.0|^7.0", - "vimeo/psalm": "4.30.0" - }, - "suggest": { - "symfony/console": "For helpful console commands such as SQL execution and import of files." - }, - "bin": [ - "bin/doctrine-dbal" - ], - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\DBAL\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - } - ], - "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.", - "homepage": "https://www.doctrine-project.org/projects/dbal.html", - "keywords": [ - "abstraction", - "database", - "db2", - "dbal", - "mariadb", - "mssql", - "mysql", - "oci8", - "oracle", - "pdo", - "pgsql", - "postgresql", - "queryobject", - "sasql", - "sql", - "sqlite", - "sqlserver", - "sqlsrv" - ], - "support": { - "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/3.8.2" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal", - "type": "tidelift" - } - ], - "time": "2024-02-12T18:36:36+00:00" + "time": "2024-05-27T13:40:54+00:00" }, { "name": "doctrine/deprecations", @@ -10379,97 +10086,6 @@ }, "time": "2024-01-30T19:34:25+00:00" }, - { - "name": "doctrine/event-manager", - "version": "2.0.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/event-manager.git", - "reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/event-manager/zipball/750671534e0241a7c50ea5b43f67e23eb5c96f32", - "reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32", - "shasum": "" - }, - "require": { - "php": "^8.1" - }, - "conflict": { - "doctrine/common": "<2.9" - }, - "require-dev": { - "doctrine/coding-standard": "^10", - "phpstan/phpstan": "^1.8.8", - "phpunit/phpunit": "^9.5", - "vimeo/psalm": "^4.28" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Common\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - }, - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - } - ], - "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.", - "homepage": "https://www.doctrine-project.org/projects/event-manager.html", - "keywords": [ - "event", - "event dispatcher", - "event manager", - "event system", - "events" - ], - "support": { - "issues": "https://github.com/doctrine/event-manager/issues", - "source": "https://github.com/doctrine/event-manager/tree/2.0.0" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fevent-manager", - "type": "tidelift" - } - ], - "time": "2022-10-12T20:59:15+00:00" - }, { "name": "fakerphp/faker", "version": "v1.23.1", @@ -10667,16 +10283,16 @@ }, { "name": "jean85/pretty-package-versions", - "version": "2.0.5", + "version": "2.0.6", "source": { "type": "git", "url": "https://github.com/Jean85/pretty-package-versions.git", - "reference": "ae547e455a3d8babd07b96966b17d7fd21d9c6af" + "reference": "f9fdd29ad8e6d024f52678b570e5593759b550b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/ae547e455a3d8babd07b96966b17d7fd21d9c6af", - "reference": "ae547e455a3d8babd07b96966b17d7fd21d9c6af", + "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/f9fdd29ad8e6d024f52678b570e5593759b550b4", + "reference": "f9fdd29ad8e6d024f52678b570e5593759b550b4", "shasum": "" }, "require": { @@ -10684,9 +10300,9 @@ "php": "^7.1|^8.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^2.17", + "friendsofphp/php-cs-fixer": "^3.2", "jean85/composer-provided-replaced-stub-package": "^1.0", - "phpstan/phpstan": "^0.12.66", + "phpstan/phpstan": "^1.4", "phpunit/phpunit": "^7.5|^8.5|^9.4", "vimeo/psalm": "^4.3" }, @@ -10720,22 +10336,22 @@ ], "support": { "issues": "https://github.com/Jean85/pretty-package-versions/issues", - "source": "https://github.com/Jean85/pretty-package-versions/tree/2.0.5" + "source": "https://github.com/Jean85/pretty-package-versions/tree/2.0.6" }, - "time": "2021-10-08T21:21:46+00:00" + "time": "2024-03-08T09:58:59+00:00" }, { "name": "laravel/pint", - "version": "v1.13.11", + "version": "v1.16.0", "source": { "type": "git", "url": "https://github.com/laravel/pint.git", - "reference": "60a163c3e7e3346a1dec96d3e6f02e6465452552" + "reference": "1b3a3dc5bc6a81ff52828ba7277621f1d49d6d98" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/pint/zipball/60a163c3e7e3346a1dec96d3e6f02e6465452552", - "reference": "60a163c3e7e3346a1dec96d3e6f02e6465452552", + "url": "https://api.github.com/repos/laravel/pint/zipball/1b3a3dc5bc6a81ff52828ba7277621f1d49d6d98", + "reference": "1b3a3dc5bc6a81ff52828ba7277621f1d49d6d98", "shasum": "" }, "require": { @@ -10746,13 +10362,13 @@ "php": "^8.1.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^3.49.0", - "illuminate/view": "^10.43.0", - "larastan/larastan": "^2.8.1", - "laravel-zero/framework": "^10.3.0", - "mockery/mockery": "^1.6.7", + "friendsofphp/php-cs-fixer": "^3.57.1", + "illuminate/view": "^10.48.10", + "larastan/larastan": "^2.9.6", + "laravel-zero/framework": "^10.4.0", + "mockery/mockery": "^1.6.12", "nunomaduro/termwind": "^1.15.1", - "pestphp/pest": "^2.33.6" + "pestphp/pest": "^2.34.7" }, "bin": [ "builds/pint" @@ -10788,20 +10404,20 @@ "issues": "https://github.com/laravel/pint/issues", "source": "https://github.com/laravel/pint" }, - "time": "2024-02-13T17:20:13+00:00" + "time": "2024-05-21T18:08:25+00:00" }, { "name": "laravel/sail", - "version": "v1.27.4", + "version": "v1.29.2", "source": { "type": "git", "url": "https://github.com/laravel/sail.git", - "reference": "3047e1a157fad968cc5f6e620d5cbe5c0867fffd" + "reference": "a8e4e749735ba2f091856eafeb3f99db8cd6b621" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sail/zipball/3047e1a157fad968cc5f6e620d5cbe5c0867fffd", - "reference": "3047e1a157fad968cc5f6e620d5cbe5c0867fffd", + "url": "https://api.github.com/repos/laravel/sail/zipball/a8e4e749735ba2f091856eafeb3f99db8cd6b621", + "reference": "a8e4e749735ba2f091856eafeb3f99db8cd6b621", "shasum": "" }, "require": { @@ -10809,6 +10425,7 @@ "illuminate/contracts": "^9.52.16|^10.0|^11.0", "illuminate/support": "^9.52.16|^10.0|^11.0", "php": "^8.0", + "symfony/console": "^6.0|^7.0", "symfony/yaml": "^6.0|^7.0" }, "require-dev": { @@ -10850,44 +10467,42 @@ "issues": "https://github.com/laravel/sail/issues", "source": "https://github.com/laravel/sail" }, - "time": "2024-02-08T15:24:21+00:00" + "time": "2024-05-16T21:39:11+00:00" }, { "name": "nunomaduro/collision", - "version": "v7.10.0", + "version": "v8.1.1", "source": { "type": "git", "url": "https://github.com/nunomaduro/collision.git", - "reference": "49ec67fa7b002712da8526678abd651c09f375b2" + "reference": "13e5d538b95a744d85f447a321ce10adb28e9af9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/49ec67fa7b002712da8526678abd651c09f375b2", - "reference": "49ec67fa7b002712da8526678abd651c09f375b2", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/13e5d538b95a744d85f447a321ce10adb28e9af9", + "reference": "13e5d538b95a744d85f447a321ce10adb28e9af9", "shasum": "" }, "require": { - "filp/whoops": "^2.15.3", - "nunomaduro/termwind": "^1.15.1", - "php": "^8.1.0", - "symfony/console": "^6.3.4" + "filp/whoops": "^2.15.4", + "nunomaduro/termwind": "^2.0.1", + "php": "^8.2.0", + "symfony/console": "^7.0.4" }, "conflict": { - "laravel/framework": ">=11.0.0" + "laravel/framework": "<11.0.0 || >=12.0.0", + "phpunit/phpunit": "<10.5.1 || >=12.0.0" }, "require-dev": { - "brianium/paratest": "^7.3.0", - "laravel/framework": "^10.28.0", - "laravel/pint": "^1.13.3", - "laravel/sail": "^1.25.0", - "laravel/sanctum": "^3.3.1", - "laravel/tinker": "^2.8.2", - "nunomaduro/larastan": "^2.6.4", - "orchestra/testbench-core": "^8.13.0", - "pestphp/pest": "^2.23.2", - "phpunit/phpunit": "^10.4.1", - "sebastian/environment": "^6.0.1", - "spatie/laravel-ignition": "^2.3.1" + "larastan/larastan": "^2.9.2", + "laravel/framework": "^11.0.0", + "laravel/pint": "^1.14.0", + "laravel/sail": "^1.28.2", + "laravel/sanctum": "^4.0.0", + "laravel/tinker": "^2.9.0", + "orchestra/testbench-core": "^9.0.0", + "pestphp/pest": "^2.34.1 || ^3.0.0", + "sebastian/environment": "^6.0.1 || ^7.0.0" }, "type": "library", "extra": { @@ -10895,6 +10510,9 @@ "providers": [ "NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider" ] + }, + "branch-alias": { + "dev-8.x": "8.x-dev" } }, "autoload": { @@ -10946,40 +10564,40 @@ "type": "patreon" } ], - "time": "2023-10-11T15:45:01+00:00" + "time": "2024-03-06T16:20:09+00:00" }, { "name": "pestphp/pest", - "version": "v2.34.0", + "version": "v2.34.7", "source": { "type": "git", "url": "https://github.com/pestphp/pest.git", - "reference": "602b696348efdf4da83c9719de3062462cc1d146" + "reference": "a7a3e4240e341d0fee1c54814ce18adc26ce5a76" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest/zipball/602b696348efdf4da83c9719de3062462cc1d146", - "reference": "602b696348efdf4da83c9719de3062462cc1d146", + "url": "https://api.github.com/repos/pestphp/pest/zipball/a7a3e4240e341d0fee1c54814ce18adc26ce5a76", + "reference": "a7a3e4240e341d0fee1c54814ce18adc26ce5a76", "shasum": "" }, "require": { "brianium/paratest": "^7.3.1", - "nunomaduro/collision": "^7.10.0|^8.1.0", - "nunomaduro/termwind": "^1.15.1|^2.0.0", + "nunomaduro/collision": "^7.10.0|^8.1.1", + "nunomaduro/termwind": "^1.15.1|^2.0.1", "pestphp/pest-plugin": "^2.1.1", "pestphp/pest-plugin-arch": "^2.7.0", "php": "^8.1.0", - "phpunit/phpunit": "^10.5.10" + "phpunit/phpunit": "^10.5.17" }, "conflict": { - "phpunit/phpunit": ">10.5.10", + "phpunit/phpunit": ">10.5.17", "sebastian/exporter": "<5.1.0", "webmozart/assert": "<1.11.0" }, "require-dev": { "pestphp/pest-dev-tools": "^2.16.0", - "pestphp/pest-plugin-type-coverage": "^2.8.0", - "symfony/process": "^6.4.0|^7.0.3" + "pestphp/pest-plugin-type-coverage": "^2.8.1", + "symfony/process": "^6.4.0|^7.0.4" }, "bin": [ "bin/pest" @@ -11042,7 +10660,7 @@ ], "support": { "issues": "https://github.com/pestphp/pest/issues", - "source": "https://github.com/pestphp/pest/tree/v2.34.0" + "source": "https://github.com/pestphp/pest/tree/v2.34.7" }, "funding": [ { @@ -11054,7 +10672,7 @@ "type": "github" } ], - "time": "2024-02-17T10:06:53+00:00" + "time": "2024-04-05T07:44:17+00:00" }, { "name": "pestphp/pest-plugin", @@ -11264,26 +10882,26 @@ }, { "name": "pestphp/pest-plugin-laravel", - "version": "v2.3.0", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/pestphp/pest-plugin-laravel.git", - "reference": "2f6ea6233bb74ec65d969ecdea56bdbd3d1e2f0e" + "reference": "53df51169a7f9595e06839cce638c73e59ace5e8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest-plugin-laravel/zipball/2f6ea6233bb74ec65d969ecdea56bdbd3d1e2f0e", - "reference": "2f6ea6233bb74ec65d969ecdea56bdbd3d1e2f0e", + "url": "https://api.github.com/repos/pestphp/pest-plugin-laravel/zipball/53df51169a7f9595e06839cce638c73e59ace5e8", + "reference": "53df51169a7f9595e06839cce638c73e59ace5e8", "shasum": "" }, "require": { - "laravel/framework": "^10.44.0|^11.0", - "pestphp/pest": "^2.33.6", + "laravel/framework": "^10.48.9|^11.5.0", + "pestphp/pest": "^2.34.7", "php": "^8.1.0" }, "require-dev": { - "laravel/dusk": "^7.12.3", - "orchestra/testbench": "^8.21.1|^9.0.0", + "laravel/dusk": "^7.13.0", + "orchestra/testbench": "^8.22.3|^9.0.4", "pestphp/pest-dev-tools": "^2.16.0" }, "type": "library", @@ -11322,7 +10940,7 @@ "unit" ], "support": { - "source": "https://github.com/pestphp/pest-plugin-laravel/tree/v2.3.0" + "source": "https://github.com/pestphp/pest-plugin-laravel/tree/v2.4.0" }, "funding": [ { @@ -11334,7 +10952,7 @@ "type": "github" } ], - "time": "2024-02-17T10:04:08+00:00" + "time": "2024-04-27T10:41:54+00:00" }, { "name": "phpdocumentor/reflection-common", @@ -11391,28 +11009,35 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "5.3.0", + "version": "5.4.1", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" + "reference": "9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c", + "reference": "9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c", "shasum": "" }, "require": { + "doctrine/deprecations": "^1.1", "ext-filter": "*", - "php": "^7.2 || ^8.0", + "php": "^7.4 || ^8.0", "phpdocumentor/reflection-common": "^2.2", - "phpdocumentor/type-resolver": "^1.3", + "phpdocumentor/type-resolver": "^1.7", + "phpstan/phpdoc-parser": "^1.7", "webmozart/assert": "^1.9.1" }, "require-dev": { - "mockery/mockery": "~1.3.2", - "psalm/phar": "^4.8" + "mockery/mockery": "~1.3.5", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-webmozart-assert": "^1.2", + "phpunit/phpunit": "^9.5", + "vimeo/psalm": "^5.13" }, "type": "library", "extra": { @@ -11436,33 +11061,33 @@ }, { "name": "Jaap van Otterdijk", - "email": "account@ijaap.nl" + "email": "opensource@ijaap.nl" } ], "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", "support": { "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0" + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.4.1" }, - "time": "2021-10-19T17:43:47+00:00" + "time": "2024-05-21T05:55:05+00:00" }, { "name": "phpdocumentor/type-resolver", - "version": "1.8.0", + "version": "1.8.2", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "fad452781b3d774e3337b0c0b245dd8e5a4455fc" + "reference": "153ae662783729388a584b4361f2545e4d841e3c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/fad452781b3d774e3337b0c0b245dd8e5a4455fc", - "reference": "fad452781b3d774e3337b0c0b245dd8e5a4455fc", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/153ae662783729388a584b4361f2545e4d841e3c", + "reference": "153ae662783729388a584b4361f2545e4d841e3c", "shasum": "" }, "require": { "doctrine/deprecations": "^1.0", - "php": "^7.4 || ^8.0", + "php": "^7.3 || ^8.0", "phpdocumentor/reflection-common": "^2.0", "phpstan/phpdoc-parser": "^1.13" }, @@ -11500,22 +11125,22 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.8.0" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.8.2" }, - "time": "2024-01-11T11:49:22+00:00" + "time": "2024-02-23T11:10:43+00:00" }, { "name": "phpstan/phpdoc-parser", - "version": "1.25.0", + "version": "1.29.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "bd84b629c8de41aa2ae82c067c955e06f1b00240" + "reference": "536889f2b340489d328f5ffb7b02bb6b183ddedc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/bd84b629c8de41aa2ae82c067c955e06f1b00240", - "reference": "bd84b629c8de41aa2ae82c067c955e06f1b00240", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/536889f2b340489d328f5ffb7b02bb6b183ddedc", + "reference": "536889f2b340489d328f5ffb7b02bb6b183ddedc", "shasum": "" }, "require": { @@ -11547,71 +11172,22 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.25.0" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.29.0" }, - "time": "2024-01-04T17:06:16+00:00" - }, - { - "name": "psr/cache", - "version": "3.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/cache.git", - "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", - "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", - "shasum": "" - }, - "require": { - "php": ">=8.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Cache\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for caching libraries", - "keywords": [ - "cache", - "psr", - "psr-6" - ], - "support": { - "source": "https://github.com/php-fig/cache/tree/3.0.0" - }, - "time": "2021-02-03T23:26:27+00:00" + "time": "2024-05-06T12:04:23+00:00" }, { "name": "spatie/backtrace", - "version": "1.5.3", + "version": "1.6.1", "source": { "type": "git", "url": "https://github.com/spatie/backtrace.git", - "reference": "483f76a82964a0431aa836b6ed0edde0c248e3ab" + "reference": "8373b9d51638292e3bfd736a9c19a654111b4a23" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/backtrace/zipball/483f76a82964a0431aa836b6ed0edde0c248e3ab", - "reference": "483f76a82964a0431aa836b6ed0edde0c248e3ab", + "url": "https://api.github.com/repos/spatie/backtrace/zipball/8373b9d51638292e3bfd736a9c19a654111b4a23", + "reference": "8373b9d51638292e3bfd736a9c19a654111b4a23", "shasum": "" }, "require": { @@ -11619,6 +11195,7 @@ }, "require-dev": { "ext-json": "*", + "laravel/serializable-closure": "^1.3", "phpunit/phpunit": "^9.3", "spatie/phpunit-snapshot-assertions": "^4.2", "symfony/var-dumper": "^5.1" @@ -11648,7 +11225,7 @@ "spatie" ], "support": { - "source": "https://github.com/spatie/backtrace/tree/1.5.3" + "source": "https://github.com/spatie/backtrace/tree/1.6.1" }, "funding": [ { @@ -11660,20 +11237,20 @@ "type": "other" } ], - "time": "2023-06-28T12:59:17+00:00" + "time": "2024-04-24T13:22:11+00:00" }, { "name": "spatie/flare-client-php", - "version": "1.4.4", + "version": "1.6.0", "source": { "type": "git", "url": "https://github.com/spatie/flare-client-php.git", - "reference": "17082e780752d346c2db12ef5d6bee8e835e399c" + "reference": "220a7c8745e9fa427d54099f47147c4b97fe6462" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/17082e780752d346c2db12ef5d6bee8e835e399c", - "reference": "17082e780752d346c2db12ef5d6bee8e835e399c", + "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/220a7c8745e9fa427d54099f47147c4b97fe6462", + "reference": "220a7c8745e9fa427d54099f47147c4b97fe6462", "shasum": "" }, "require": { @@ -11721,7 +11298,7 @@ ], "support": { "issues": "https://github.com/spatie/flare-client-php/issues", - "source": "https://github.com/spatie/flare-client-php/tree/1.4.4" + "source": "https://github.com/spatie/flare-client-php/tree/1.6.0" }, "funding": [ { @@ -11729,20 +11306,20 @@ "type": "github" } ], - "time": "2024-01-31T14:18:45+00:00" + "time": "2024-05-22T09:45:39+00:00" }, { "name": "spatie/ignition", - "version": "1.12.0", + "version": "1.14.2", "source": { "type": "git", "url": "https://github.com/spatie/ignition.git", - "reference": "5b6f801c605a593106b623e45ca41496a6e7d56d" + "reference": "5e11c11f675bb5251f061491a493e04a1a571532" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/ignition/zipball/5b6f801c605a593106b623e45ca41496a6e7d56d", - "reference": "5b6f801c605a593106b623e45ca41496a6e7d56d", + "url": "https://api.github.com/repos/spatie/ignition/zipball/5e11c11f675bb5251f061491a493e04a1a571532", + "reference": "5e11c11f675bb5251f061491a493e04a1a571532", "shasum": "" }, "require": { @@ -11812,20 +11389,20 @@ "type": "github" } ], - "time": "2024-01-03T15:49:39+00:00" + "time": "2024-05-29T08:10:20+00:00" }, { "name": "spatie/laravel-ignition", - "version": "2.4.2", + "version": "2.7.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-ignition.git", - "reference": "351504f4570e32908839fc5a2dc53bf77d02f85e" + "reference": "f52124d50122611e8a40f628cef5c19ff6cc5b57" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/351504f4570e32908839fc5a2dc53bf77d02f85e", - "reference": "351504f4570e32908839fc5a2dc53bf77d02f85e", + "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/f52124d50122611e8a40f628cef5c19ff6cc5b57", + "reference": "f52124d50122611e8a40f628cef5c19ff6cc5b57", "shasum": "" }, "require": { @@ -11834,8 +11411,8 @@ "ext-mbstring": "*", "illuminate/support": "^10.0|^11.0", "php": "^8.1", - "spatie/flare-client-php": "^1.3.5", - "spatie/ignition": "^1.9", + "spatie/flare-client-php": "^1.5", + "spatie/ignition": "^1.14", "symfony/console": "^6.2.3|^7.0", "symfony/var-dumper": "^6.2.3|^7.0" }, @@ -11843,11 +11420,11 @@ "livewire/livewire": "^2.11|^3.3.5", "mockery/mockery": "^1.5.1", "openai-php/client": "^0.8.1", - "orchestra/testbench": "^8.0|^9.0", - "pestphp/pest": "^2.30", - "phpstan/extension-installer": "^1.2", + "orchestra/testbench": "8.22.3|^9.0", + "pestphp/pest": "^2.34", + "phpstan/extension-installer": "^1.3.1", "phpstan/phpstan-deprecation-rules": "^1.1.1", - "phpstan/phpstan-phpunit": "^1.3.3", + "phpstan/phpstan-phpunit": "^1.3.16", "vlucas/phpdotenv": "^5.5" }, "suggest": { @@ -11904,20 +11481,20 @@ "type": "github" } ], - "time": "2024-02-09T16:08:40+00:00" + "time": "2024-05-02T13:42:49+00:00" }, { "name": "symfony/yaml", - "version": "v7.0.3", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "2d4fca631c00700597e9442a0b2451ce234513d3" + "reference": "0d3916ae69ea28b59d94b60c4f2b50f4e25adb5c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/2d4fca631c00700597e9442a0b2451ce234513d3", - "reference": "2d4fca631c00700597e9442a0b2451ce234513d3", + "url": "https://api.github.com/repos/symfony/yaml/zipball/0d3916ae69ea28b59d94b60c4f2b50f4e25adb5c", + "reference": "0d3916ae69ea28b59d94b60c4f2b50f4e25adb5c", "shasum": "" }, "require": { @@ -11959,7 +11536,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v7.0.3" + "source": "https://github.com/symfony/yaml/tree/v7.0.7" }, "funding": [ { @@ -11975,7 +11552,7 @@ "type": "tidelift" } ], - "time": "2024-01-23T15:02:46+00:00" + "time": "2024-04-28T11:44:19+00:00" }, { "name": "ta-tikoma/phpunit-architecture-test", @@ -12038,12 +11615,12 @@ } ], "aliases": [], - "minimum-stability": "stable", + "minimum-stability": "dev", "stability-flags": [], "prefer-stable": true, "prefer-lowest": false, "platform": { - "php": "^8.1", + "php": "^8.2", "ext-json": "*" }, "platform-dev": [], diff --git a/config/abilities.php b/config/abilities.php index f7558581..9e6a24b2 100644 --- a/config/abilities.php +++ b/config/abilities.php @@ -1,16 +1,16 @@ [ diff --git a/config/app.php b/config/app.php index 06989d8d..efd5f969 100644 --- a/config/app.php +++ b/config/app.php @@ -1,225 +1,14 @@ 'InvoiceShelf', - - /* - |-------------------------------------------------------------------------- - | Application Environment - |-------------------------------------------------------------------------- - | - | This value determines the "environment" your application is currently - | running in. This may determine how you prefer to configure various - | services your application utilizes. Set this in your ".env" file. - | - */ - - 'env' => env('APP_ENV', 'production'), - - /* - |-------------------------------------------------------------------------- - | Application Debug Mode - |-------------------------------------------------------------------------- - | - | When your application is in debug mode, detailed error messages with - | stack traces will be shown on every error that occurs within your - | application. If disabled, a simple generic error page is shown. - | - */ - - 'debug' => env('APP_DEBUG', false), - - /* - |-------------------------------------------------------------------------- - | Application URL - |-------------------------------------------------------------------------- - | - | This URL is used by the console to properly generate URLs when using - | the Artisan command line tool. You should set this to the root of - | your application so that it is used when running Artisan tasks. - | - */ - - 'url' => env('APP_URL', 'http://localhost'), - - /* - |-------------------------------------------------------------------------- - | Application Timezone - |-------------------------------------------------------------------------- - | - | Here you may specify the default timezone for your application, which - | will be used by the PHP date and date-time functions. We have gone - | ahead and set this to a sensible default for you out of the box. - | - */ - - 'timezone' => 'UTC', - - /* - |-------------------------------------------------------------------------- - | Application Locale Configuration - |-------------------------------------------------------------------------- - | - | The application locale determines the default locale that will be used - | by the translation service provider. You are free to set this value - | to any of the locales which will be supported by the application. - | - */ - - 'locale' => 'en', - - /* - |-------------------------------------------------------------------------- - | Application Fallback Locale - |-------------------------------------------------------------------------- - | - | The fallback locale determines the locale to use when the current one - | is not available. You may change the value to correspond to any of - | the language folders that are provided through your application. - | - */ - - 'fallback_locale' => 'en', - - /* - |-------------------------------------------------------------------------- - | Faker Locale - |-------------------------------------------------------------------------- - | - | This locale will be used by the Faker PHP library when generating fake - | data for your database seeds. For example, this will be used to get - | localized telephone numbers, street address information and more. - | - */ - 'faker_locale' => 'en_US', - - /* - |-------------------------------------------------------------------------- - | Encryption Key - |-------------------------------------------------------------------------- - | - | This key is used by the Illuminate encrypter service and should be set - | to a random, 32 character string, otherwise these encrypted strings - | will not be safe. Please do this before deploying an application! - | - */ - - 'key' => env('APP_KEY'), - - 'cipher' => 'AES-256-CBC', - - /* - |-------------------------------------------------------------------------- - | Autoloaded Service Providers - |-------------------------------------------------------------------------- - | - | The service providers listed here will be automatically loaded on the - | request to your application. Feel free to add your own services to - | this array to grant expanded functionality to your applications. - | - */ - - 'providers' => [ - - /* - * Laravel Framework Service Providers... - */ - Illuminate\Auth\AuthServiceProvider::class, - Illuminate\Broadcasting\BroadcastServiceProvider::class, - Illuminate\Bus\BusServiceProvider::class, - Illuminate\Cache\CacheServiceProvider::class, - Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class, - Illuminate\Cookie\CookieServiceProvider::class, - Illuminate\Database\DatabaseServiceProvider::class, - Illuminate\Encryption\EncryptionServiceProvider::class, - Illuminate\Filesystem\FilesystemServiceProvider::class, - Illuminate\Foundation\Providers\FoundationServiceProvider::class, - Illuminate\Hashing\HashServiceProvider::class, - Illuminate\Mail\MailServiceProvider::class, - Illuminate\Notifications\NotificationServiceProvider::class, - Illuminate\Pagination\PaginationServiceProvider::class, - Illuminate\Pipeline\PipelineServiceProvider::class, - Illuminate\Queue\QueueServiceProvider::class, - Illuminate\Redis\RedisServiceProvider::class, - Illuminate\Auth\Passwords\PasswordResetServiceProvider::class, - Illuminate\Session\SessionServiceProvider::class, - Illuminate\Translation\TranslationServiceProvider::class, - Illuminate\Validation\ValidationServiceProvider::class, - Illuminate\View\ViewServiceProvider::class, - Lavary\Menu\ServiceProvider::class, - - /* - * Application Service Providers... - */ - InvoiceShelf\Providers\AppServiceProvider::class, - InvoiceShelf\Providers\AuthServiceProvider::class, - InvoiceShelf\Providers\BroadcastServiceProvider::class, - InvoiceShelf\Providers\EventServiceProvider::class, - InvoiceShelf\Providers\RouteServiceProvider::class, - InvoiceShelf\Providers\DropboxServiceProvider::class, - InvoiceShelf\Providers\ViewServiceProvider::class, - ], - - /* - |-------------------------------------------------------------------------- - | Class Aliases - |-------------------------------------------------------------------------- - | - | This array of class aliases will be registered when this application - | is started. However, feel free to register as many as you wish as - | the aliases are "lazy" loaded so they don't hinder performance. - | - */ - - 'aliases' => [ - - 'App' => Illuminate\Support\Facades\App::class, - 'Artisan' => Illuminate\Support\Facades\Artisan::class, - 'Auth' => Illuminate\Support\Facades\Auth::class, - 'Blade' => Illuminate\Support\Facades\Blade::class, - 'Bus' => Illuminate\Support\Facades\Bus::class, - 'Cache' => Illuminate\Support\Facades\Cache::class, - 'Config' => Illuminate\Support\Facades\Config::class, - 'Cookie' => Illuminate\Support\Facades\Cookie::class, - 'Crypt' => Illuminate\Support\Facades\Crypt::class, - 'DB' => Illuminate\Support\Facades\DB::class, - 'Eloquent' => Illuminate\Database\Eloquent\Model::class, - 'Event' => Illuminate\Support\Facades\Event::class, - 'File' => Illuminate\Support\Facades\File::class, - 'Gate' => Illuminate\Support\Facades\Gate::class, - 'Hash' => Illuminate\Support\Facades\Hash::class, - 'Lang' => Illuminate\Support\Facades\Lang::class, - 'Log' => Illuminate\Support\Facades\Log::class, - 'Mail' => Illuminate\Support\Facades\Mail::class, - 'Notification' => Illuminate\Support\Facades\Notification::class, - 'Password' => Illuminate\Support\Facades\Password::class, - 'Queue' => Illuminate\Support\Facades\Queue::class, - 'Redirect' => Illuminate\Support\Facades\Redirect::class, - 'Redis' => Illuminate\Support\Facades\Redis::class, - 'Http' => Illuminate\Support\Facades\Http::class, - 'Request' => Illuminate\Support\Facades\Request::class, - 'Response' => Illuminate\Support\Facades\Response::class, - 'Route' => Illuminate\Support\Facades\Route::class, - 'Schema' => Illuminate\Support\Facades\Schema::class, - 'Session' => Illuminate\Support\Facades\Session::class, - 'Storage' => Illuminate\Support\Facades\Storage::class, - 'URL' => Illuminate\Support\Facades\URL::class, - 'Validator' => Illuminate\Support\Facades\Validator::class, - 'View' => Illuminate\Support\Facades\View::class, + 'aliases' => Facade::defaultAliases()->merge([ 'Flash' => Laracasts\Flash\Flash::class, - // 'JWTAuth' => Tymon\JWTAuth\Facades\JWTAuth::class, - 'Pusher' => Pusher\Pusher::class, 'Menu' => Lavary\Menu\Facade::class, - ], + 'Pusher' => Pusher\Pusher::class, + 'Redis' => Illuminate\Support\Facades\Redis::class, + ])->toArray(), + ]; diff --git a/config/auth.php b/config/auth.php index ae543eb2..703318b7 100644 --- a/config/auth.php +++ b/config/auth.php @@ -2,45 +2,7 @@ return [ - /* - |-------------------------------------------------------------------------- - | Authentication Defaults - |-------------------------------------------------------------------------- - | - | This option controls the default authentication "guard" and password - | reset options for your application. You may change these defaults - | as required, but they're a perfect start for most applications. - | - */ - - 'defaults' => [ - 'guard' => 'web', - 'passwords' => 'users', - ], - - /* - |-------------------------------------------------------------------------- - | Authentication Guards - |-------------------------------------------------------------------------- - | - | Next, you may define every authentication guard for your application. - | Of course, a great default configuration has been defined for you - | here which uses session storage and the Eloquent user provider. - | - | All authentication drivers have a user provider. This defines how the - | users are actually retrieved out of your database or other storage - | mechanisms used by this application to persist your user's data. - | - | Supported: "session", "token" - | - */ - 'guards' => [ - 'web' => [ - 'driver' => 'session', - 'provider' => 'users', - ], - 'api' => [ 'driver' => 'token', 'provider' => 'users', @@ -54,77 +16,20 @@ return [ ], ], - /* - |-------------------------------------------------------------------------- - | User Providers - |-------------------------------------------------------------------------- - | - | All authentication drivers have a user provider. This defines how the - | users are actually retrieved out of your database or other storage - | mechanisms used by this application to persist your user's data. - | - | If you have multiple user tables or models you may configure multiple - | sources which represent each model / table. These sources may then - | be assigned to any extra authentication guards you have defined. - | - | Supported: "database", "eloquent" - | - */ - 'providers' => [ - 'users' => [ - 'driver' => 'eloquent', - 'model' => \InvoiceShelf\Models\User::class, - ], - 'customers' => [ 'driver' => 'eloquent', - 'model' => \InvoiceShelf\Models\Customer::class, + 'model' => \App\Models\Customer::class, ], ], - /* - |-------------------------------------------------------------------------- - | Resetting Passwords - |-------------------------------------------------------------------------- - | - | You may specify multiple password reset configurations if you have more - | than one user table or model in the application and you want to have - | separate password reset settings based on the specific user types. - | - | The expire time is the number of minutes that the reset token should be - | considered valid. This security feature keeps tokens short-lived so - | they have less time to be guessed. You may change this as needed. - | - */ - 'passwords' => [ - 'users' => [ - 'provider' => 'users', - 'table' => 'password_resets', - 'expire' => 60, - 'throttle' => 60, - ], - 'customers' => [ 'provider' => 'customers', - 'table' => 'password_resets', + 'table' => 'password_reset_tokens', 'expire' => 60, 'throttle' => 60, ], ], - /* - |-------------------------------------------------------------------------- - | Password Confirmation Timeout - |-------------------------------------------------------------------------- - | - | Here you may define the amount of seconds before a password confirmation - | times out and the user is prompted to re-enter their password via the - | confirmation screen. By default, the timeout lasts for three hours. - | - */ - - 'password_timeout' => 10800, - ]; diff --git a/config/broadcasting.php b/config/broadcasting.php deleted file mode 100644 index 374f196e..00000000 --- a/config/broadcasting.php +++ /dev/null @@ -1,59 +0,0 @@ - env('BROADCAST_DRIVER', 'null'), - - /* - |-------------------------------------------------------------------------- - | Broadcast Connections - |-------------------------------------------------------------------------- - | - | Here you may define all of the broadcast connections that will be used - | to broadcast events to other systems or over websockets. Samples of - | each available type of connection are provided inside this array. - | - */ - - 'connections' => [ - - 'pusher' => [ - 'driver' => 'pusher', - 'key' => env('PUSHER_APP_KEY'), - 'secret' => env('PUSHER_APP_SECRET'), - 'app_id' => env('PUSHER_APP_ID'), - 'options' => [ - 'cluster' => 'ap2', - 'encrypted' => true, - ], - ], - - 'redis' => [ - 'driver' => 'redis', - 'connection' => 'default', - ], - - 'log' => [ - 'driver' => 'log', - ], - - 'null' => [ - 'driver' => 'null', - ], - - ], - -]; diff --git a/config/cache.php b/config/cache.php deleted file mode 100644 index 65c3bebb..00000000 --- a/config/cache.php +++ /dev/null @@ -1,93 +0,0 @@ - env('CACHE_DRIVER', 'file'), - - /* - |-------------------------------------------------------------------------- - | Cache Stores - |-------------------------------------------------------------------------- - | - | Here you may define all of the cache "stores" for your application as - | well as their drivers. You may even define multiple stores for the - | same cache driver to group types of items stored in your caches. - | - */ - - 'stores' => [ - - 'apc' => [ - 'driver' => 'apc', - ], - - 'array' => [ - 'driver' => 'array', - 'serialize' => false, - ], - - 'database' => [ - 'driver' => 'database', - 'table' => 'cache', - 'connection' => null, - ], - - 'file' => [ - 'driver' => 'file', - 'path' => storage_path('framework/cache/data'), - ], - - 'memcached' => [ - 'driver' => 'memcached', - 'persistent_id' => env('MEMCACHED_PERSISTENT_ID'), - 'sasl' => [ - env('MEMCACHED_USERNAME'), - env('MEMCACHED_PASSWORD'), - ], - 'options' => [ - // Memcached::OPT_CONNECT_TIMEOUT => 2000, - ], - 'servers' => [ - [ - 'host' => env('MEMCACHED_HOST', '127.0.0.1'), - 'port' => env('MEMCACHED_PORT', 11211), - 'weight' => 100, - ], - ], - ], - - 'redis' => [ - 'driver' => 'redis', - 'connection' => 'cache', - ], - - ], - - /* - |-------------------------------------------------------------------------- - | Cache Key Prefix - |-------------------------------------------------------------------------- - | - | When utilizing a RAM based store such as APC or Memcached, there might - | be other applications utilizing the same cache. So, we'll specify a - | value to get prefixed to all our keys so we can avoid collisions. - | - */ - - 'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache'), -]; diff --git a/config/cors.php b/config/cors.php deleted file mode 100644 index 558369dc..00000000 --- a/config/cors.php +++ /dev/null @@ -1,34 +0,0 @@ - ['api/*'], - - 'allowed_methods' => ['*'], - - 'allowed_origins' => ['*'], - - 'allowed_origins_patterns' => [], - - 'allowed_headers' => ['*'], - - 'exposed_headers' => [], - - 'max_age' => 0, - - 'supports_credentials' => false, - -]; diff --git a/config/database.php b/config/database.php index 1f971c87..7b7cab87 100644 --- a/config/database.php +++ b/config/database.php @@ -2,43 +2,7 @@ return [ - /* - |-------------------------------------------------------------------------- - | Default Database Connection Name - |-------------------------------------------------------------------------- - | - | Here you may specify which of the database connections below you wish - | to use as your default connection for all database work. Of course - | you may use many connections at once using the Database library. - | - */ - - 'default' => env('DB_CONNECTION', 'mysql'), - - /* - |-------------------------------------------------------------------------- - | Database Connections - |-------------------------------------------------------------------------- - | - | Here are each of the database connections setup for your application. - | Of course, examples of configuring each database platform that is - | supported by Laravel is shown below to make development simple. - | - | - | All database work in Laravel is done through the PHP PDO facilities - | so make sure you have the driver for your particular database of - | choice installed on your machine before you begin development. - | - */ - 'connections' => [ - - 'sqlite' => [ - 'driver' => 'sqlite', - 'database' => env('DB_DATABASE', database_path('database.sqlite')), - 'prefix' => '', - ], - 'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', '127.0.0.1'), @@ -68,44 +32,12 @@ return [ 'schema' => 'public', 'sslmode' => 'prefer', ], - - 'sqlsrv' => [ - 'driver' => 'sqlsrv', - 'host' => env('DB_HOST', 'localhost'), - 'port' => env('DB_PORT', '1433'), - 'database' => env('DB_DATABASE', 'forge'), - 'username' => env('DB_USERNAME', 'forge'), - 'password' => env('DB_PASSWORD', ''), - 'charset' => 'utf8', - 'prefix' => '', - 'prefix_indexes' => true, - ], - ], - /* - |-------------------------------------------------------------------------- - | Migration Repository Table - |-------------------------------------------------------------------------- - | - | This table keeps track of all the migrations that have already run for - | your application. Using this information, we can determine which of - | the migrations on disk haven't actually been run in the database. - | - */ - - 'migrations' => 'migrations', - - /* - |-------------------------------------------------------------------------- - | Redis Databases - |-------------------------------------------------------------------------- - | - | Redis is an open source, fast, and advanced key-value store that also - | provides a richer set of commands than a typical key-value systems - | such as APC or Memcached. Laravel makes it easy to dig right in. - | - */ + 'migrations' => [ + 'table' => 'migrations', + 'update_date_on_publish' => false, // disable to preserve original behavior for existing applications + ], 'redis' => [ diff --git a/config/filesystems.php b/config/filesystems.php index ededf290..2ffeec09 100644 --- a/config/filesystems.php +++ b/config/filesystems.php @@ -2,59 +2,9 @@ return [ - /* - |-------------------------------------------------------------------------- - | Default Filesystem Disk - |-------------------------------------------------------------------------- - | - | Here you may specify the default filesystem disk that should be used - | by the framework. The "local" disk, as well as a variety of cloud - | based disks are available to your application. Just store away! - | - */ - - 'default' => env('FILESYSTEM_DRIVER', 'local'), - - /* - |-------------------------------------------------------------------------- - | Default Cloud Filesystem Disk - |-------------------------------------------------------------------------- - | - | Many applications store files both locally and in the cloud. For this - | reason, you may specify a default "cloud" driver here. This driver - | will be bound as the Cloud disk implementation in the container. - | - */ - 'cloud' => env('FILESYSTEM_CLOUD', 's3'), - /* - |-------------------------------------------------------------------------- - | Filesystem Disks - |-------------------------------------------------------------------------- - | - | Here you may configure as many filesystem "disks" as you wish, and you - | may even configure multiple disks of the same driver. Defaults have - | been setup for each driver as an example of the required options. - | - | Supported Drivers: "local", "ftp", "s3" - | - */ - 'disks' => [ - - 'local' => [ - 'driver' => 'local', - 'root' => storage_path('app'), - ], - - 'public' => [ - 'driver' => 'local', - 'root' => storage_path('app/public'), - 'url' => env('APP_URL').'/storage', - 'visibility' => 'public', - ], - 's3' => [ 'driver' => 's3', 'key' => env('AWS_KEY'), @@ -105,22 +55,6 @@ return [ 'driver' => 'local', 'root' => resource_path('views'), ], - - ], - - /* - |-------------------------------------------------------------------------- - | Symbolic Links - |-------------------------------------------------------------------------- - | - | Here you may configure the symbolic links that will be created when the - | `storage:link` Artisan command is executed. The array keys should be - | the locations of the links and the values should be their targets. - | - */ - - 'links' => [ - public_path('storage') => storage_path('app/public'), ], ]; diff --git a/config/hashids.php b/config/hashids.php index 4942314c..b2ab92e3 100644 --- a/config/hashids.php +++ b/config/hashids.php @@ -9,12 +9,12 @@ * @see https://github.com/vinkla/laravel-hashids */ -use InvoiceShelf\Models\Company; -use InvoiceShelf\Models\EmailLog; -use InvoiceShelf\Models\Estimate; -use InvoiceShelf\Models\Invoice; -use InvoiceShelf\Models\Payment; -use InvoiceShelf\Models\Transaction; +use App\Models\Company; +use App\Models\EmailLog; +use App\Models\Estimate; +use App\Models\Invoice; +use App\Models\Payment; +use App\Models\Transaction; return [ diff --git a/config/hashing.php b/config/hashing.php deleted file mode 100644 index 00ed9e74..00000000 --- a/config/hashing.php +++ /dev/null @@ -1,45 +0,0 @@ - 'bcrypt', - /* - |-------------------------------------------------------------------------- - | Bcrypt Options - |-------------------------------------------------------------------------- - | - | Here you may specify the configuration options that should be used when - | passwords are hashed using the Bcrypt algorithm. This will allow you - | to control the amount of time it takes to hash the given password. - | - */ - 'bcrypt' => [ - 'rounds' => env('BCRYPT_ROUNDS', 10), - ], - /* - |-------------------------------------------------------------------------- - | Argon Options - |-------------------------------------------------------------------------- - | - | Here you may specify the configuration options that should be used when - | passwords are hashed using the Argon algorithm. These will allow you - | to control the amount of time it takes to hash the given password. - | - */ - 'argon' => [ - 'memory' => 1024, - 'threads' => 2, - 'time' => 2, - ], -]; diff --git a/config/installer.php b/config/installer.php index 2f8b8add..ba07b238 100755 --- a/config/installer.php +++ b/config/installer.php @@ -13,7 +13,7 @@ return [ | */ 'core' => [ - 'minPhpVersion' => '8.1.0', + 'minPhpVersion' => '8.2.0', ], 'final' => [ 'key' => true, diff --git a/config/invoiceshelf.php b/config/invoiceshelf.php index 0de993c1..75b29e94 100644 --- a/config/invoiceshelf.php +++ b/config/invoiceshelf.php @@ -1,23 +1,23 @@ '8.1.0', + 'min_php_version' => '8.2.0', /* * Minimum mysql version. diff --git a/config/logging.php b/config/logging.php deleted file mode 100644 index c179887f..00000000 --- a/config/logging.php +++ /dev/null @@ -1,80 +0,0 @@ - env('LOG_CHANNEL', 'stack'), - /* - |-------------------------------------------------------------------------- - | Log Channels - |-------------------------------------------------------------------------- - | - | Here you may configure the log channels for your application. Out of - | the box, Laravel uses the Monolog PHP logging library. This gives - | you a variety of powerful log handlers / formatters to utilize. - | - | Available Drivers: "single", "daily", "slack", "syslog", - | "errorlog", "monolog", - | "custom", "stack" - | - */ - 'channels' => [ - 'stack' => [ - 'driver' => 'stack', - 'channels' => ['daily'], - ], - 'single' => [ - 'driver' => 'single', - 'path' => storage_path('logs/laravel.log'), - 'level' => 'debug', - ], - 'daily' => [ - 'driver' => 'daily', - 'path' => storage_path('logs/laravel.log'), - 'level' => 'debug', - 'days' => 14, - ], - 'slack' => [ - 'driver' => 'slack', - 'url' => env('LOG_SLACK_WEBHOOK_URL'), - 'username' => 'Laravel Log', - 'emoji' => ':boom:', - 'level' => 'critical', - ], - 'papertrail' => [ - 'driver' => 'monolog', - 'level' => 'debug', - 'handler' => SyslogUdpHandler::class, - 'handler_with' => [ - 'host' => env('PAPERTRAIL_URL'), - 'port' => env('PAPERTRAIL_PORT'), - ], - ], - 'stderr' => [ - 'driver' => 'monolog', - 'handler' => StreamHandler::class, - 'with' => [ - 'stream' => 'php://stderr', - ], - ], - 'syslog' => [ - 'driver' => 'syslog', - 'level' => 'debug', - ], - 'errorlog' => [ - 'driver' => 'errorlog', - 'level' => 'debug', - ], - ], -]; diff --git a/config/mail.php b/config/mail.php index 62479798..49981d05 100644 --- a/config/mail.php +++ b/config/mail.php @@ -2,145 +2,20 @@ return [ - /* - |-------------------------------------------------------------------------- - | Mail Driver - |-------------------------------------------------------------------------- - | - | Laravel supports both SMTP and PHP's "mail" function as drivers for the - | sending of e-mail. You may specify which one you're using throughout - | your application here. By default, Laravel is setup for SMTP mail. - | - | Supported: "smtp", "mail", "sendmail", "mailgun", "mandrill", - | "ses", "sparkpost", "log" - | - */ - 'driver' => env('MAIL_DRIVER', 'smtp'), - /* - |-------------------------------------------------------------------------- - | SMTP Host Address - |-------------------------------------------------------------------------- - | - | Here you may provide the host address of the SMTP server used by your - | applications. A default option is provided that is compatible with - | the Mailgun mail service which will provide reliable deliveries. - | - */ - 'host' => env('MAIL_HOST', 'smtp.mailgun.org'), - /* - |-------------------------------------------------------------------------- - | SMTP Host Port - |-------------------------------------------------------------------------- - | - | This is the SMTP port used by your application to deliver e-mails to - | users of the application. Like the host we have set this value to - | stay compatible with the Mailgun e-mail application by default. - | - */ - 'port' => env('MAIL_PORT', 587), - /* - |-------------------------------------------------------------------------- - | Global "From" Address - |-------------------------------------------------------------------------- - | - | You may wish for all e-mails sent by your application to be sent from - | the same address. Here, you may specify a name and address that is - | used globally for all e-mails that are sent by your application. - | - */ - - 'from' => [ - 'address' => env('MAIL_FROM_ADDRESS', 'admin@invoiceshelf.com'), - 'name' => env('MAIL_FROM_NAME', 'InvoiceShelf'), - ], - - /* - |-------------------------------------------------------------------------- - | E-Mail Encryption Protocol - |-------------------------------------------------------------------------- - | - | Here you may specify the encryption protocol that should be used when - | the application send e-mail messages. A sensible default using the - | transport layer security protocol should provide great security. - | - */ - 'encryption' => env('MAIL_ENCRYPTION', 'tls'), - /* - |-------------------------------------------------------------------------- - | SMTP Server Username - |-------------------------------------------------------------------------- - | - | If your SMTP server requires a username for authentication, you should - | set it here. This will get used to authenticate with your server on - | connection. You may also set the "password" value below this one. - | - */ - 'username' => env('MAIL_USERNAME'), - /* - |-------------------------------------------------------------------------- - | SMTP Server Password - |-------------------------------------------------------------------------- - | - | Here you may set the password required by your SMTP server to send out - | messages from your application. This will be given to the server on - | connection so that the application will be able to send messages. - | - */ - 'password' => env('MAIL_PASSWORD'), - /* - |-------------------------------------------------------------------------- - | Sendmail System Path - |-------------------------------------------------------------------------- - | - | When using the "sendmail" driver to send e-mails, we will need to know - | the path to where Sendmail lives on this server. A default path has - | been provided here, which will work well on most of your systems. - | - */ - 'sendmail' => '/usr/sbin/sendmail -bs', - /* - |-------------------------------------------------------------------------- - | Markdown Mail Settings - |-------------------------------------------------------------------------- - | - | If you are using Markdown based email rendering, you may configure your - | theme and component paths here, allowing you to customize the design - | of the emails. Or, you may simply stick with the Laravel defaults! - | - */ - - 'markdown' => [ - 'theme' => 'default', - - 'paths' => [ - resource_path('views/vendor/mail'), - ], - ], - - /* - |-------------------------------------------------------------------------- - | Log Channel - |-------------------------------------------------------------------------- - | - | If you are using the "log" driver, you may specify the logging channel - | if you prefer to keep mail messages separate from other log entries - | for simpler reading. Otherwise, the default channel will be used. - | - */ - 'log_channel' => env('MAIL_LOG_CHANNEL'), + ]; diff --git a/config/media-library.php b/config/media-library.php index 093b431d..af60e00e 100644 --- a/config/media-library.php +++ b/config/media-library.php @@ -71,7 +71,7 @@ return [ /* * The class that contains the strategy for determining a media file's path. */ - 'path_generator' => \InvoiceShelf\Generators\CustomPathGenerator::class, + 'path_generator' => \App\Generators\CustomPathGenerator::class, /* * The class that contains the strategy for determining how to remove files. diff --git a/config/queue.php b/config/queue.php deleted file mode 100644 index cfc88c80..00000000 --- a/config/queue.php +++ /dev/null @@ -1,85 +0,0 @@ - env('QUEUE_CONNECTION', 'sync'), - - /* - |-------------------------------------------------------------------------- - | Queue Connections - |-------------------------------------------------------------------------- - | - | Here you may configure the connection information for each server that - | is used by your application. A default configuration has been added - | for each back-end shipped with Laravel. You are free to add more. - | - */ - - 'connections' => [ - - 'sync' => [ - 'driver' => 'sync', - ], - - 'database' => [ - 'driver' => 'database', - 'table' => 'jobs', - 'queue' => 'default', - 'retry_after' => 90, - ], - - 'beanstalkd' => [ - 'driver' => 'beanstalkd', - 'host' => 'localhost', - 'queue' => 'default', - 'retry_after' => 90, - ], - - 'sqs' => [ - 'driver' => 'sqs', - 'key' => 'your-public-key', - 'secret' => 'your-secret-key', - 'prefix' => 'https://sqs.us-east-1.amazonaws.com/your-account-id', - 'queue' => 'your-queue-name', - 'region' => 'us-east-1', - ], - - 'redis' => [ - 'driver' => 'redis', - 'connection' => 'default', - 'queue' => 'default', - 'retry_after' => 90, - ], - - ], - - /* - |-------------------------------------------------------------------------- - | Failed Queue Jobs - |-------------------------------------------------------------------------- - | - | These options configure the behavior of failed queue job logging so you - | can control which database and table are used to store the jobs that - | have failed. You may change them to any database / table you wish. - | - */ - - 'failed' => [ - 'database' => env('DB_CONNECTION', 'mysql'), - 'table' => 'failed_jobs', - ], - -]; diff --git a/config/sanctum.php b/config/sanctum.php index b2375c51..8c94e2a9 100644 --- a/config/sanctum.php +++ b/config/sanctum.php @@ -40,8 +40,9 @@ return [ */ 'middleware' => [ - 'verify_csrf_token' => InvoiceShelf\Http\Middleware\VerifyCsrfToken::class, - 'encrypt_cookies' => InvoiceShelf\Http\Middleware\EncryptCookies::class, + 'authenticate_session' => Laravel\Sanctum\Http\Middleware\AuthenticateSession::class, + 'encrypt_cookies' => Illuminate\Cookie\Middleware\EncryptCookies::class, + 'validate_csrf_token' => Illuminate\Foundation\Http\Middleware\ValidateCsrfToken::class, ], ]; diff --git a/config/services.php b/config/services.php index 9823d9c6..3fa966dd 100644 --- a/config/services.php +++ b/config/services.php @@ -2,30 +2,12 @@ return [ - /* - |-------------------------------------------------------------------------- - | Third Party Services - |-------------------------------------------------------------------------- - | - | This file is for storing the credentials for third party services such - | as Stripe, Mailgun, SparkPost and others. This file provides a sane - | default location for this type of information, allowing packages - | to have a conventional place to find your various credentials. - | - */ - 'mailgun' => [ 'domain' => env('MAILGUN_DOMAIN'), 'secret' => env('MAILGUN_SECRET'), 'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'), ], - 'ses' => [ - 'key' => env('SES_KEY'), - 'secret' => env('SES_SECRET'), - 'region' => 'us-east-1', - ], - 'sparkpost' => [ 'secret' => env('SPARKPOST_SECRET'), ], @@ -35,7 +17,7 @@ return [ ], 'stripe' => [ - 'model' => \InvoiceShelf\Models\User::class, + 'model' => \App\Models\User::class, 'key' => env('STRIPE_KEY'), 'secret' => env('STRIPE_SECRET'), 'webhook' => [ @@ -65,4 +47,5 @@ return [ 'cron_job' => [ 'auth_token' => env('CRON_JOB_AUTH_TOKEN', 0), ], + ]; diff --git a/config/session.php b/config/session.php deleted file mode 100644 index da692f3b..00000000 --- a/config/session.php +++ /dev/null @@ -1,199 +0,0 @@ - env('SESSION_DRIVER', 'file'), - - /* - |-------------------------------------------------------------------------- - | Session Lifetime - |-------------------------------------------------------------------------- - | - | Here you may specify the number of minutes that you wish the session - | to be allowed to remain idle before it expires. If you want them - | to immediately expire on the browser closing, set that option. - | - */ - - 'lifetime' => env('SESSION_LIFETIME', 120), - - 'expire_on_close' => false, - - /* - |-------------------------------------------------------------------------- - | Session Encryption - |-------------------------------------------------------------------------- - | - | This option allows you to easily specify that all of your session data - | should be encrypted before it is stored. All encryption will be run - | automatically by Laravel and you can use the Session like normal. - | - */ - - 'encrypt' => false, - - /* - |-------------------------------------------------------------------------- - | Session File Location - |-------------------------------------------------------------------------- - | - | When using the native session driver, we need a location where session - | files may be stored. A default has been set for you but a different - | location may be specified. This is only needed for file sessions. - | - */ - - 'files' => storage_path('framework/sessions'), - - /* - |-------------------------------------------------------------------------- - | Session Database Connection - |-------------------------------------------------------------------------- - | - | When using the "database" or "redis" session drivers, you may specify a - | connection that should be used to manage these sessions. This should - | correspond to a connection in your database configuration options. - | - */ - - 'connection' => env('SESSION_CONNECTION', null), - - /* - |-------------------------------------------------------------------------- - | Session Database Table - |-------------------------------------------------------------------------- - | - | When using the "database" session driver, you may specify the table we - | should use to manage the sessions. Of course, a sensible default is - | provided for you; however, you are free to change this as needed. - | - */ - - 'table' => 'sessions', - - /* - |-------------------------------------------------------------------------- - | Session Cache Store - |-------------------------------------------------------------------------- - | - | When using the "apc", "memcached", or "dynamodb" session drivers you may - | list a cache store that should be used for these sessions. This value - | must match with one of the application's configured cache "stores". - | - */ - - 'store' => env('SESSION_STORE', null), - - /* - |-------------------------------------------------------------------------- - | Session Sweeping Lottery - |-------------------------------------------------------------------------- - | - | Some session drivers must manually sweep their storage location to get - | rid of old sessions from storage. Here are the chances that it will - | happen on a given request. By default, the odds are 2 out of 100. - | - */ - - 'lottery' => [2, 100], - - /* - |-------------------------------------------------------------------------- - | Session Cookie Name - |-------------------------------------------------------------------------- - | - | Here you may change the name of the cookie used to identify a session - | instance by ID. The name specified here will get used every time a - | new session cookie is created by the framework for every driver. - | - */ - - 'cookie' => env( - 'SESSION_COOKIE', - Str::slug(env('APP_NAME', 'laravel'), '_').'_session' - ), - - /* - |-------------------------------------------------------------------------- - | Session Cookie Path - |-------------------------------------------------------------------------- - | - | The session cookie path determines the path for which the cookie will - | be regarded as available. Typically, this will be the root path of - | your application but you are free to change this when necessary. - | - */ - - 'path' => '/', - - /* - |-------------------------------------------------------------------------- - | Session Cookie Domain - |-------------------------------------------------------------------------- - | - | Here you may change the domain of the cookie used to identify a session - | in your application. This will determine which domains the cookie is - | available to in your application. A sensible default has been set. - | - */ - - 'domain' => env('SESSION_DOMAIN', null), - - /* - |-------------------------------------------------------------------------- - | HTTPS Only Cookies - |-------------------------------------------------------------------------- - | - | By setting this option to true, session cookies will only be sent back - | to the server if the browser has a HTTPS connection. This will keep - | the cookie from being sent to you if it can not be done securely. - | - */ - - 'secure' => env('SESSION_SECURE_COOKIE'), - - /* - |-------------------------------------------------------------------------- - | HTTP Access Only - |-------------------------------------------------------------------------- - | - | Setting this value to true will prevent JavaScript from accessing the - | value of the cookie and the cookie will only be accessible through - | the HTTP protocol. You are free to modify this option if needed. - | - */ - - 'http_only' => true, - - /* - |-------------------------------------------------------------------------- - | Same-Site Cookies - |-------------------------------------------------------------------------- - | - | This option determines how your cookies behave when cross-site requests - | take place, and can be used to mitigate CSRF attacks. By default, we - | will set this value to "lax" since this is a secure default value. - | - | Supported: "lax", "strict", "none", null - | - */ - - 'same_site' => 'lax', - -]; diff --git a/config/view.php b/config/view.php deleted file mode 100644 index 2acfd9cc..00000000 --- a/config/view.php +++ /dev/null @@ -1,33 +0,0 @@ - [ - resource_path('views'), - ], - - /* - |-------------------------------------------------------------------------- - | Compiled View Path - |-------------------------------------------------------------------------- - | - | This option determines where all the compiled Blade templates will be - | stored for your application. Typically, this is within the storage - | directory. However, as usual, you are free to change this value. - | - */ - - 'compiled' => realpath(storage_path('framework/views')), - -]; diff --git a/database/factories/AddressFactory.php b/database/factories/AddressFactory.php index 32802733..9ebdc1c5 100644 --- a/database/factories/AddressFactory.php +++ b/database/factories/AddressFactory.php @@ -2,10 +2,10 @@ namespace Database\Factories; +use App\Models\Address; +use App\Models\Customer; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\Address; -use InvoiceShelf\Models\Customer; -use InvoiceShelf\Models\User; class AddressFactory extends Factory { @@ -18,22 +18,20 @@ class AddressFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ - 'name' => $this->faker->name, - 'address_street_1' => $this->faker->streetAddress, - 'address_street_2' => $this->faker->streetAddress, - 'city' => $this->faker->city, - 'state' => $this->faker->state, + 'name' => $this->faker->name(), + 'address_street_1' => $this->faker->streetAddress(), + 'address_street_2' => $this->faker->streetAddress(), + 'city' => $this->faker->city(), + 'state' => $this->faker->state(), 'country_id' => 231, 'company_id' => User::find(1)->companies()->first()->id, - 'zip' => $this->faker->postcode, - 'phone' => $this->faker->phoneNumber, - 'fax' => $this->faker->phoneNumber, + 'zip' => $this->faker->postcode(), + 'phone' => $this->faker->phoneNumber(), + 'fax' => $this->faker->phoneNumber(), 'type' => $this->faker->randomElement([Address::BILLING_TYPE, Address::SHIPPING_TYPE]), 'user_id' => User::factory(), 'customer_id' => Customer::factory(), diff --git a/database/factories/CompanyFactory.php b/database/factories/CompanyFactory.php index b3e413b3..22eed9c2 100644 --- a/database/factories/CompanyFactory.php +++ b/database/factories/CompanyFactory.php @@ -2,9 +2,9 @@ namespace Database\Factories; +use App\Models\Company; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\Company; -use InvoiceShelf\Models\User; class CompanyFactory extends Factory { @@ -17,16 +17,14 @@ class CompanyFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ 'unique_hash' => str_random(20), 'name' => $this->faker->name(), 'owner_id' => User::where('role', 'super admin')->first()->id, - 'slug' => $this->faker->word, + 'slug' => $this->faker->word(), ]; } } diff --git a/database/factories/CompanySettingFactory.php b/database/factories/CompanySettingFactory.php index 554bbcb0..dcd290f0 100644 --- a/database/factories/CompanySettingFactory.php +++ b/database/factories/CompanySettingFactory.php @@ -2,9 +2,9 @@ namespace Database\Factories; +use App\Models\CompanySetting; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\CompanySetting; -use InvoiceShelf\Models\User; class CompanySettingFactory extends Factory { @@ -17,14 +17,12 @@ class CompanySettingFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ - 'option' => $this->faker->word, - 'value' => $this->faker->word, + 'option' => $this->faker->word(), + 'value' => $this->faker->word(), 'company_id' => User::find(1)->companies()->first()->id, ]; } diff --git a/database/factories/CustomFieldFactory.php b/database/factories/CustomFieldFactory.php index 03b52ec0..42103af2 100644 --- a/database/factories/CustomFieldFactory.php +++ b/database/factories/CustomFieldFactory.php @@ -2,9 +2,9 @@ namespace Database\Factories; +use App\Models\CustomField; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\CustomField; -use InvoiceShelf\Models\User; class CustomFieldFactory extends Factory { @@ -17,15 +17,13 @@ class CustomFieldFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ - 'name' => $this->faker->name, - 'label' => $this->faker->name, - 'order' => $this->faker->randomDigitNotNull, + 'name' => $this->faker->name(), + 'label' => $this->faker->name(), + 'order' => $this->faker->randomDigitNotNull(), 'is_required' => $this->faker->randomElement([true, false]), 'model_type' => $this->faker->randomElement(['Customer', 'Invoice', 'Estimate', 'Expense', 'Payment']), 'slug' => function (array $item) { diff --git a/database/factories/CustomFieldValueFactory.php b/database/factories/CustomFieldValueFactory.php index b50fed12..022a39d3 100644 --- a/database/factories/CustomFieldValueFactory.php +++ b/database/factories/CustomFieldValueFactory.php @@ -2,10 +2,10 @@ namespace Database\Factories; +use App\Models\CustomField; +use App\Models\CustomFieldValue; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\CustomField; -use InvoiceShelf\Models\CustomFieldValue; -use InvoiceShelf\Models\User; class CustomFieldValueFactory extends Factory { @@ -18,15 +18,13 @@ class CustomFieldValueFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ - 'custom_field_valuable_type' => $this->faker->name, + 'custom_field_valuable_type' => $this->faker->name(), 'custom_field_valuable_id' => 1, - 'type' => $this->faker->name, + 'type' => $this->faker->name(), 'custom_field_id' => CustomField::factory(), 'company_id' => User::find(1)->companies()->first()->id, ]; diff --git a/database/factories/CustomerFactory.php b/database/factories/CustomerFactory.php index 4823691d..14448ba3 100644 --- a/database/factories/CustomerFactory.php +++ b/database/factories/CustomerFactory.php @@ -2,11 +2,11 @@ namespace Database\Factories; +use App\Models\Currency; +use App\Models\Customer; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; use Illuminate\Support\Facades\Hash; -use InvoiceShelf\Models\Currency; -use InvoiceShelf\Models\Customer; -use InvoiceShelf\Models\User; class CustomerFactory extends Factory { @@ -19,20 +19,18 @@ class CustomerFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ - 'name' => $this->faker->name, - 'company_name' => $this->faker->company, - 'contact_name' => $this->faker->name, - 'prefix' => $this->faker->randomDigitNotNull, - 'website' => $this->faker->url, + 'name' => $this->faker->name(), + 'company_name' => $this->faker->company(), + 'contact_name' => $this->faker->name(), + 'prefix' => $this->faker->randomDigitNotNull(), + 'website' => $this->faker->url(), 'enable_portal' => true, - 'email' => $this->faker->unique()->safeEmail, - 'phone' => $this->faker->phoneNumber, + 'email' => $this->faker->unique()->safeEmail(), + 'phone' => $this->faker->phoneNumber(), 'company_id' => User::find(1)->companies()->first()->id, 'password' => Hash::make('secret'), 'currency_id' => Currency::find(1)->id, diff --git a/database/factories/EmailLogFactory.php b/database/factories/EmailLogFactory.php index 1efe9eee..73457224 100644 --- a/database/factories/EmailLogFactory.php +++ b/database/factories/EmailLogFactory.php @@ -2,11 +2,11 @@ namespace Database\Factories; +use App\Models\EmailLog; +use App\Models\Estimate; +use App\Models\Invoice; +use App\Models\Payment; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\EmailLog; -use InvoiceShelf\Models\Estimate; -use InvoiceShelf\Models\Invoice; -use InvoiceShelf\Models\Payment; class EmailLogFactory extends Factory { @@ -19,16 +19,14 @@ class EmailLogFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ - 'from' => $this->faker->unique()->safeEmail, - 'to' => $this->faker->unique()->safeEmail, - 'subject' => $this->faker->sentence, - 'body' => $this->faker->text, + 'from' => $this->faker->unique()->safeEmail(), + 'to' => $this->faker->unique()->safeEmail(), + 'subject' => $this->faker->sentence(), + 'body' => $this->faker->text(), 'mailable_type' => $this->faker->randomElement([Invoice::class, Estimate::class, Payment::class]), 'mailable_id' => function (array $log) { return $log['mailable_type']::factory(); diff --git a/database/factories/EstimateFactory.php b/database/factories/EstimateFactory.php index e41f7cf6..1cf84e70 100644 --- a/database/factories/EstimateFactory.php +++ b/database/factories/EstimateFactory.php @@ -2,12 +2,12 @@ namespace Database\Factories; +use App\Models\Currency; +use App\Models\Customer; +use App\Models\Estimate; +use App\Models\User; +use App\Services\SerialNumberFormatter; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\Currency; -use InvoiceShelf\Models\Customer; -use InvoiceShelf\Models\Estimate; -use InvoiceShelf\Models\User; -use InvoiceShelf\Services\SerialNumberFormatter; class EstimateFactory extends Factory { @@ -65,10 +65,8 @@ class EstimateFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { $sequenceNumber = (new SerialNumberFormatter()) ->setModel(new Estimate()) @@ -85,26 +83,26 @@ class EstimateFactory extends Factory 'company_id' => User::find(1)->companies()->first()->id, 'status' => Estimate::STATUS_DRAFT, 'template_name' => 'estimate1', - 'sub_total' => $this->faker->randomDigitNotNull, - 'total' => $this->faker->randomDigitNotNull, + 'sub_total' => $this->faker->randomDigitNotNull(), + 'total' => $this->faker->randomDigitNotNull(), 'discount_type' => $this->faker->randomElement(['percentage', 'fixed']), 'discount_val' => function (array $estimate) { - return $estimate['discount_type'] == 'percentage' ? $this->faker->numberBetween($min = 0, $max = 100) : $this->faker->randomDigitNotNull; + return $estimate['discount_type'] == 'percentage' ? $this->faker->numberBetween($min = 0, $max = 100) : $this->faker->randomDigitNotNull(); }, 'discount' => function (array $estimate) { return $estimate['discount_type'] == 'percentage' ? (($estimate['discount_val'] * $estimate['total']) / 100) : $estimate['discount_val']; }, 'tax_per_item' => 'YES', 'discount_per_item' => 'No', - 'tax' => $this->faker->randomDigitNotNull, + 'tax' => $this->faker->randomDigitNotNull(), 'notes' => $this->faker->text(80), 'unique_hash' => str_random(60), 'customer_id' => Customer::factory(), - 'exchange_rate' => $this->faker->randomDigitNotNull, - 'base_discount_val' => $this->faker->randomDigitNotNull, - 'base_sub_total' => $this->faker->randomDigitNotNull, - 'base_total' => $this->faker->randomDigitNotNull, - 'base_tax' => $this->faker->randomDigitNotNull, + 'exchange_rate' => $this->faker->randomDigitNotNull(), + 'base_discount_val' => $this->faker->randomDigitNotNull(), + 'base_sub_total' => $this->faker->randomDigitNotNull(), + 'base_total' => $this->faker->randomDigitNotNull(), + 'base_tax' => $this->faker->randomDigitNotNull(), 'currency_id' => Currency::find(1)->id, ]; } diff --git a/database/factories/EstimateItemFactory.php b/database/factories/EstimateItemFactory.php index 62cd5054..402a328e 100644 --- a/database/factories/EstimateItemFactory.php +++ b/database/factories/EstimateItemFactory.php @@ -2,11 +2,11 @@ namespace Database\Factories; +use App\Models\Estimate; +use App\Models\EstimateItem; +use App\Models\Item; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\Estimate; -use InvoiceShelf\Models\EstimateItem; -use InvoiceShelf\Models\Item; -use InvoiceShelf\Models\User; class EstimateItemFactory extends Factory { @@ -19,10 +19,8 @@ class EstimateItemFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ 'item_id' => Item::factory(), @@ -36,24 +34,24 @@ class EstimateItemFactory extends Factory return Item::find($item['item_id'])->price; }, 'estimate_id' => Estimate::factory(), - 'quantity' => $this->faker->randomDigitNotNull, + 'quantity' => $this->faker->randomDigitNotNull(), 'company_id' => User::find(1)->companies()->first()->id, - 'tax' => $this->faker->randomDigitNotNull, + 'tax' => $this->faker->randomDigitNotNull(), 'total' => function (array $item) { return $item['price'] * $item['quantity']; }, 'discount_type' => $this->faker->randomElement(['percentage', 'fixed']), 'discount_val' => function (array $estimate) { - return $estimate['discount_type'] == 'percentage' ? $this->faker->numberBetween($min = 0, $max = 100) : $this->faker->randomDigitNotNull; + return $estimate['discount_type'] == 'percentage' ? $this->faker->numberBetween($min = 0, $max = 100) : $this->faker->randomDigitNotNull(); }, 'discount' => function (array $estimate) { return $estimate['discount_type'] == 'percentage' ? (($estimate['discount_val'] * $estimate['total']) / 100) : $estimate['discount_val']; }, - 'exchange_rate' => $this->faker->randomDigitNotNull, - 'base_discount_val' => $this->faker->randomDigitNotNull, - 'base_price' => $this->faker->randomDigitNotNull, - 'base_total' => $this->faker->randomDigitNotNull, - 'base_tax' => $this->faker->randomDigitNotNull, + 'exchange_rate' => $this->faker->randomDigitNotNull(), + 'base_discount_val' => $this->faker->randomDigitNotNull(), + 'base_price' => $this->faker->randomDigitNotNull(), + 'base_total' => $this->faker->randomDigitNotNull(), + 'base_tax' => $this->faker->randomDigitNotNull(), ]; } } diff --git a/database/factories/ExchangeRateLogFactory.php b/database/factories/ExchangeRateLogFactory.php index 6eaa360c..ccbd87e2 100644 --- a/database/factories/ExchangeRateLogFactory.php +++ b/database/factories/ExchangeRateLogFactory.php @@ -2,10 +2,10 @@ namespace Database\Factories; +use App\Models\Currency; +use App\Models\ExchangeRateLog; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\Currency; -use InvoiceShelf\Models\ExchangeRateLog; -use InvoiceShelf\Models\User; class ExchangeRateLogFactory extends Factory { @@ -18,16 +18,14 @@ class ExchangeRateLogFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ 'company_id' => Currency::find(1)->id, 'base_currency_id' => User::find(1)->companies()->first()->id, 'currency_id' => Currency::find(4)->id, - 'exchange_rate' => $this->faker->randomDigitNotNull, + 'exchange_rate' => $this->faker->randomDigitNotNull(), ]; } } diff --git a/database/factories/ExchangeRateProviderFactory.php b/database/factories/ExchangeRateProviderFactory.php index 566f8289..3ee19fc8 100644 --- a/database/factories/ExchangeRateProviderFactory.php +++ b/database/factories/ExchangeRateProviderFactory.php @@ -2,8 +2,8 @@ namespace Database\Factories; +use App\Models\ExchangeRateProvider; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\ExchangeRateProvider; class ExchangeRateProviderFactory extends Factory { @@ -16,13 +16,11 @@ class ExchangeRateProviderFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ - 'driver' => $this->faker->word, + 'driver' => $this->faker->word(), 'key' => str_random(10), 'active' => $this->faker->randomElement([true, false]), ]; diff --git a/database/factories/ExpenseCategoryFactory.php b/database/factories/ExpenseCategoryFactory.php index 78fe6db6..64dde573 100644 --- a/database/factories/ExpenseCategoryFactory.php +++ b/database/factories/ExpenseCategoryFactory.php @@ -2,9 +2,9 @@ namespace Database\Factories; +use App\Models\ExpenseCategory; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\ExpenseCategory; -use InvoiceShelf\Models\User; class ExpenseCategoryFactory extends Factory { @@ -17,15 +17,13 @@ class ExpenseCategoryFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ - 'name' => $this->faker->word, + 'name' => $this->faker->word(), 'company_id' => User::find(1)->companies()->first()->id, - 'description' => $this->faker->text, + 'description' => $this->faker->text(), ]; } } diff --git a/database/factories/ExpenseFactory.php b/database/factories/ExpenseFactory.php index c1849121..4a13562e 100644 --- a/database/factories/ExpenseFactory.php +++ b/database/factories/ExpenseFactory.php @@ -2,12 +2,12 @@ namespace Database\Factories; +use App\Models\Currency; +use App\Models\Customer; +use App\Models\Expense; +use App\Models\ExpenseCategory; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\Currency; -use InvoiceShelf\Models\Customer; -use InvoiceShelf\Models\Expense; -use InvoiceShelf\Models\ExpenseCategory; -use InvoiceShelf\Models\User; class ExpenseFactory extends Factory { @@ -20,21 +20,19 @@ class ExpenseFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ 'expense_date' => $this->faker->date('Y-m-d', 'now'), 'expense_category_id' => ExpenseCategory::factory(), 'company_id' => User::find(1)->companies()->first()->id, - 'amount' => $this->faker->randomDigitNotNull, - 'notes' => $this->faker->text, + 'amount' => $this->faker->randomDigitNotNull(), + 'notes' => $this->faker->text(), 'attachment_receipt' => null, 'customer_id' => Customer::factory(), - 'exchange_rate' => $this->faker->randomDigitNotNull, - 'base_amount' => $this->faker->randomDigitNotNull, + 'exchange_rate' => $this->faker->randomDigitNotNull(), + 'base_amount' => $this->faker->randomDigitNotNull(), 'currency_id' => Currency::find(1)->id, ]; } diff --git a/database/factories/FileDiskFactory.php b/database/factories/FileDiskFactory.php index a83a54d6..50c053e5 100644 --- a/database/factories/FileDiskFactory.php +++ b/database/factories/FileDiskFactory.php @@ -2,8 +2,8 @@ namespace Database\Factories; +use App\Models\FileDisk; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\FileDisk; class FileDiskFactory extends Factory { @@ -16,13 +16,11 @@ class FileDiskFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ - 'name' => $this->faker->word, + 'name' => $this->faker->word(), 'driver' => 'local', 'set_as_default' => false, 'credentials' => [ diff --git a/database/factories/InvoiceFactory.php b/database/factories/InvoiceFactory.php index 7ecbb799..ac8fe416 100644 --- a/database/factories/InvoiceFactory.php +++ b/database/factories/InvoiceFactory.php @@ -2,13 +2,13 @@ namespace Database\Factories; +use App\Models\Currency; +use App\Models\Customer; +use App\Models\Invoice; +use App\Models\RecurringInvoice; +use App\Models\User; +use App\Services\SerialNumberFormatter; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\Currency; -use InvoiceShelf\Models\Customer; -use InvoiceShelf\Models\Invoice; -use InvoiceShelf\Models\RecurringInvoice; -use InvoiceShelf\Models\User; -use InvoiceShelf\Services\SerialNumberFormatter; class InvoiceFactory extends Factory { @@ -75,10 +75,8 @@ class InvoiceFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { $sequenceNumber = (new SerialNumberFormatter()) ->setModel(new Invoice()) @@ -98,16 +96,16 @@ class InvoiceFactory extends Factory 'discount_per_item' => 'NO', 'paid_status' => Invoice::STATUS_UNPAID, 'company_id' => User::find(1)->companies()->first()->id, - 'sub_total' => $this->faker->randomDigitNotNull, - 'total' => $this->faker->randomDigitNotNull, + 'sub_total' => $this->faker->randomDigitNotNull(), + 'total' => $this->faker->randomDigitNotNull(), 'discount_type' => $this->faker->randomElement(['percentage', 'fixed']), 'discount_val' => function (array $invoice) { - return $invoice['discount_type'] == 'percentage' ? $this->faker->numberBetween($min = 0, $max = 100) : $this->faker->randomDigitNotNull; + return $invoice['discount_type'] == 'percentage' ? $this->faker->numberBetween($min = 0, $max = 100) : $this->faker->randomDigitNotNull(); }, 'discount' => function (array $invoice) { return $invoice['discount_type'] == 'percentage' ? (($invoice['discount_val'] * $invoice['total']) / 100) : $invoice['discount_val']; }, - 'tax' => $this->faker->randomDigitNotNull, + 'tax' => $this->faker->randomDigitNotNull(), 'due_amount' => function (array $invoice) { return $invoice['total']; }, @@ -115,12 +113,12 @@ class InvoiceFactory extends Factory 'unique_hash' => str_random(60), 'customer_id' => Customer::factory(), 'recurring_invoice_id' => RecurringInvoice::factory(), - 'exchange_rate' => $this->faker->randomDigitNotNull, - 'base_discount_val' => $this->faker->randomDigitNotNull, - 'base_sub_total' => $this->faker->randomDigitNotNull, - 'base_total' => $this->faker->randomDigitNotNull, - 'base_tax' => $this->faker->randomDigitNotNull, - 'base_due_amount' => $this->faker->randomDigitNotNull, + 'exchange_rate' => $this->faker->randomDigitNotNull(), + 'base_discount_val' => $this->faker->randomDigitNotNull(), + 'base_sub_total' => $this->faker->randomDigitNotNull(), + 'base_total' => $this->faker->randomDigitNotNull(), + 'base_tax' => $this->faker->randomDigitNotNull(), + 'base_due_amount' => $this->faker->randomDigitNotNull(), 'currency_id' => Currency::find(1)->id, ]; } diff --git a/database/factories/InvoiceItemFactory.php b/database/factories/InvoiceItemFactory.php index 671635a9..d0f2d953 100644 --- a/database/factories/InvoiceItemFactory.php +++ b/database/factories/InvoiceItemFactory.php @@ -2,11 +2,11 @@ namespace Database\Factories; +use App\Models\InvoiceItem; +use App\Models\Item; +use App\Models\RecurringInvoice; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\InvoiceItem; -use InvoiceShelf\Models\Item; -use InvoiceShelf\Models\RecurringInvoice; -use InvoiceShelf\Models\User; class InvoiceItemFactory extends Factory { @@ -19,10 +19,8 @@ class InvoiceItemFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ 'item_id' => Item::factory(), @@ -36,24 +34,24 @@ class InvoiceItemFactory extends Factory return Item::find($item['item_id'])->price; }, 'company_id' => User::find(1)->companies()->first()->id, - 'quantity' => $this->faker->randomDigitNotNull, + 'quantity' => $this->faker->randomDigitNotNull(), 'total' => function (array $item) { return $item['price'] * $item['quantity']; }, 'discount_type' => $this->faker->randomElement(['percentage', 'fixed']), 'discount_val' => function (array $invoice) { - return $invoice['discount_type'] == 'percentage' ? $this->faker->numberBetween($min = 0, $max = 100) : $this->faker->randomDigitNotNull; + return $invoice['discount_type'] == 'percentage' ? $this->faker->numberBetween($min = 0, $max = 100) : $this->faker->randomDigitNotNull(); }, 'discount' => function (array $invoice) { return $invoice['discount_type'] == 'percentage' ? (($invoice['discount_val'] * $invoice['total']) / 100) : $invoice['discount_val']; }, - 'tax' => $this->faker->randomDigitNotNull, + 'tax' => $this->faker->randomDigitNotNull(), 'recurring_invoice_id' => RecurringInvoice::factory(), - 'exchange_rate' => $this->faker->randomDigitNotNull, - 'base_discount_val' => $this->faker->randomDigitNotNull, - 'base_price' => $this->faker->randomDigitNotNull, - 'base_total' => $this->faker->randomDigitNotNull, - 'base_tax' => $this->faker->randomDigitNotNull, + 'exchange_rate' => $this->faker->randomDigitNotNull(), + 'base_discount_val' => $this->faker->randomDigitNotNull(), + 'base_price' => $this->faker->randomDigitNotNull(), + 'base_total' => $this->faker->randomDigitNotNull(), + 'base_tax' => $this->faker->randomDigitNotNull(), ]; } } diff --git a/database/factories/ItemFactory.php b/database/factories/ItemFactory.php index ba715316..67b7ad87 100644 --- a/database/factories/ItemFactory.php +++ b/database/factories/ItemFactory.php @@ -2,11 +2,11 @@ namespace Database\Factories; +use App\Models\Currency; +use App\Models\Item; +use App\Models\Unit; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\Currency; -use InvoiceShelf\Models\Item; -use InvoiceShelf\Models\Unit; -use InvoiceShelf\Models\User; class ItemFactory extends Factory { @@ -19,16 +19,14 @@ class ItemFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ - 'name' => $this->faker->name, - 'description' => $this->faker->text, + 'name' => $this->faker->name(), + 'description' => $this->faker->text(), 'company_id' => User::find(1)->companies()->first()->id, - 'price' => $this->faker->randomDigitNotNull, + 'price' => $this->faker->randomDigitNotNull(), 'unit_id' => Unit::factory(), 'creator_id' => User::where('role', 'super admin')->first()->company_id, 'currency_id' => Currency::find(1)->id, diff --git a/database/factories/NoteFactory.php b/database/factories/NoteFactory.php index b3fcc3e3..8a557781 100644 --- a/database/factories/NoteFactory.php +++ b/database/factories/NoteFactory.php @@ -2,9 +2,9 @@ namespace Database\Factories; +use App\Models\Note; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\Note; -use InvoiceShelf\Models\User; class NoteFactory extends Factory { @@ -17,15 +17,13 @@ class NoteFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ 'type' => $this->faker->randomElement(['Invoice', 'Estimate', 'Payment']), - 'name' => $this->faker->word, - 'notes' => $this->faker->text, + 'name' => $this->faker->word(), + 'notes' => $this->faker->text(), 'company_id' => User::find(1)->companies()->first()->id, ]; } diff --git a/database/factories/PaymentFactory.php b/database/factories/PaymentFactory.php index eec4a029..d2a9744c 100644 --- a/database/factories/PaymentFactory.php +++ b/database/factories/PaymentFactory.php @@ -2,13 +2,13 @@ namespace Database\Factories; +use App\Models\Currency; +use App\Models\Customer; +use App\Models\Payment; +use App\Models\PaymentMethod; +use App\Models\User; +use App\Services\SerialNumberFormatter; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\Currency; -use InvoiceShelf\Models\Customer; -use InvoiceShelf\Models\Payment; -use InvoiceShelf\Models\PaymentMethod; -use InvoiceShelf\Models\User; -use InvoiceShelf\Services\SerialNumberFormatter; class PaymentFactory extends Factory { @@ -21,10 +21,8 @@ class PaymentFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { $sequenceNumber = (new SerialNumberFormatter()) ->setModel(new Payment()) @@ -35,14 +33,14 @@ class PaymentFactory extends Factory 'company_id' => User::find(1)->companies()->first()->id, 'payment_date' => $this->faker->date('Y-m-d', 'now'), 'notes' => $this->faker->text(80), - 'amount' => $this->faker->randomDigitNotNull, + 'amount' => $this->faker->randomDigitNotNull(), 'sequence_number' => $sequenceNumber->nextSequenceNumber, 'customer_sequence_number' => $sequenceNumber->nextCustomerSequenceNumber, 'payment_number' => $sequenceNumber->getNextNumber(), 'unique_hash' => str_random(60), 'payment_method_id' => PaymentMethod::find(1)->id, 'customer_id' => Customer::factory(), - 'base_amount' => $this->faker->randomDigitNotNull, + 'base_amount' => $this->faker->randomDigitNotNull(), 'currency_id' => Currency::find(1)->id, ]; } diff --git a/database/factories/PaymentMethodFactory.php b/database/factories/PaymentMethodFactory.php index f63f4753..f1c15631 100644 --- a/database/factories/PaymentMethodFactory.php +++ b/database/factories/PaymentMethodFactory.php @@ -2,9 +2,9 @@ namespace Database\Factories; +use App\Models\PaymentMethod; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\PaymentMethod; -use InvoiceShelf\Models\User; class PaymentMethodFactory extends Factory { @@ -17,13 +17,11 @@ class PaymentMethodFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ - 'name' => $this->faker->name, + 'name' => $this->faker->name(), 'company_id' => User::find(1)->companies()->first()->id, ]; } diff --git a/database/factories/RecurringInvoiceFactory.php b/database/factories/RecurringInvoiceFactory.php index 9f977e32..96304a6b 100644 --- a/database/factories/RecurringInvoiceFactory.php +++ b/database/factories/RecurringInvoiceFactory.php @@ -2,10 +2,10 @@ namespace Database\Factories; +use App\Models\Customer; +use App\Models\RecurringInvoice; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\Customer; -use InvoiceShelf\Models\RecurringInvoice; -use InvoiceShelf\Models\User; class RecurringInvoiceFactory extends Factory { @@ -18,10 +18,8 @@ class RecurringInvoiceFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ 'starts_at' => $this->faker->iso8601(), @@ -29,19 +27,19 @@ class RecurringInvoiceFactory extends Factory 'status' => $this->faker->randomElement(['COMPLETED', 'ON_HOLD', 'ACTIVE']), 'tax_per_item' => 'NO', 'discount_per_item' => 'NO', - 'sub_total' => $this->faker->randomDigitNotNull, - 'total' => $this->faker->randomDigitNotNull, - 'tax' => $this->faker->randomDigitNotNull, - 'due_amount' => $this->faker->randomDigitNotNull, - 'discount' => $this->faker->randomDigitNotNull, - 'discount_val' => $this->faker->randomDigitNotNull, + 'sub_total' => $this->faker->randomDigitNotNull(), + 'total' => $this->faker->randomDigitNotNull(), + 'tax' => $this->faker->randomDigitNotNull(), + 'due_amount' => $this->faker->randomDigitNotNull(), + 'discount' => $this->faker->randomDigitNotNull(), + 'discount_val' => $this->faker->randomDigitNotNull(), 'customer_id' => Customer::factory(), 'company_id' => User::find(1)->companies()->first()->id, 'frequency' => '* * 18 * *', 'limit_by' => $this->faker->randomElement(['NONE', 'COUNT', 'DATE']), - 'limit_count' => $this->faker->randomDigit, + 'limit_count' => $this->faker->randomDigit(), 'limit_date' => $this->faker->date(), - 'exchange_rate' => $this->faker->randomDigitNotNull, + 'exchange_rate' => $this->faker->randomDigitNotNull(), ]; } } diff --git a/database/factories/TaxFactory.php b/database/factories/TaxFactory.php index 6706779c..f93cb3a0 100644 --- a/database/factories/TaxFactory.php +++ b/database/factories/TaxFactory.php @@ -2,11 +2,11 @@ namespace Database\Factories; +use App\Models\Currency; +use App\Models\Tax; +use App\Models\TaxType; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\Currency; -use InvoiceShelf\Models\Tax; -use InvoiceShelf\Models\TaxType; -use InvoiceShelf\Models\User; class TaxFactory extends Factory { @@ -19,10 +19,8 @@ class TaxFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ 'tax_type_id' => TaxType::factory(), @@ -33,9 +31,9 @@ class TaxFactory extends Factory return TaxType::find($item['tax_type_id'])->name; }, 'company_id' => User::find(1)->companies()->first()->id, - 'amount' => $this->faker->randomDigitNotNull, - 'compound_tax' => $this->faker->randomDigitNotNull, - 'base_amount' => $this->faker->randomDigitNotNull, + 'amount' => $this->faker->randomDigitNotNull(), + 'compound_tax' => $this->faker->randomDigitNotNull(), + 'base_amount' => $this->faker->randomDigitNotNull(), 'currency_id' => Currency::where('name', 'US Dollar')->first()->id, ]; } diff --git a/database/factories/TaxTypeFactory.php b/database/factories/TaxTypeFactory.php index 1ad8f074..7af2321b 100644 --- a/database/factories/TaxTypeFactory.php +++ b/database/factories/TaxTypeFactory.php @@ -2,9 +2,9 @@ namespace Database\Factories; +use App\Models\TaxType; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\TaxType; -use InvoiceShelf\Models\User; class TaxTypeFactory extends Factory { @@ -17,16 +17,14 @@ class TaxTypeFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ - 'name' => $this->faker->word, + 'name' => $this->faker->word(), 'company_id' => User::find(1)->companies()->first()->id, 'percent' => $this->faker->numberBetween($min = 0, $max = 100), - 'description' => $this->faker->text, + 'description' => $this->faker->text(), 'compound_tax' => 0, 'collective_tax' => 0, ]; diff --git a/database/factories/UnitFactory.php b/database/factories/UnitFactory.php index 05fac5a7..f3be3466 100644 --- a/database/factories/UnitFactory.php +++ b/database/factories/UnitFactory.php @@ -2,9 +2,9 @@ namespace Database\Factories; +use App\Models\Unit; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\Unit; -use InvoiceShelf\Models\User; class UnitFactory extends Factory { @@ -17,13 +17,11 @@ class UnitFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ - 'name' => $this->faker->name, + 'name' => $this->faker->name(), 'company_id' => User::find(1)->companies()->first()->id, ]; } diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php index 7a7cca4e..92156f00 100644 --- a/database/factories/UserFactory.php +++ b/database/factories/UserFactory.php @@ -2,10 +2,10 @@ namespace Database\Factories; +use App\Models\Currency; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; use Illuminate\Support\Facades\Hash; -use InvoiceShelf\Models\Currency; -use InvoiceShelf\Models\User; class UserFactory extends Factory { @@ -18,19 +18,17 @@ class UserFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ - 'name' => $this->faker->name, - 'company_name' => $this->faker->company, - 'contact_name' => $this->faker->name, - 'website' => $this->faker->url, + 'name' => $this->faker->name(), + 'company_name' => $this->faker->company(), + 'contact_name' => $this->faker->name(), + 'website' => $this->faker->url(), 'enable_portal' => true, - 'email' => $this->faker->unique()->safeEmail, - 'phone' => $this->faker->phoneNumber, + 'email' => $this->faker->unique()->safeEmail(), + 'phone' => $this->faker->phoneNumber(), 'role' => 'super admin', 'password' => Hash::make('secret'), 'currency_id' => Currency::first()->id, diff --git a/database/migrations/2014_10_11_071840_create_companies_table.php b/database/migrations/2014_10_11_071840_create_companies_table.php index 8e948313..46ab5af6 100644 --- a/database/migrations/2014_10_11_071840_create_companies_table.php +++ b/database/migrations/2014_10_11_071840_create_companies_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateCompaniesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('companies', function (Blueprint $table) { $table->increments('id'); @@ -24,11 +22,9 @@ class CreateCompaniesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('companies'); } -} +}; diff --git a/database/migrations/2014_10_11_125754_create_currencies_table.php b/database/migrations/2014_10_11_125754_create_currencies_table.php index 200b4eea..466ef269 100644 --- a/database/migrations/2014_10_11_125754_create_currencies_table.php +++ b/database/migrations/2014_10_11_125754_create_currencies_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateCurrenciesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('currencies', function (Blueprint $table) { $table->increments('id'); @@ -28,11 +26,9 @@ class CreateCurrenciesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('currencies'); } -} +}; diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php index 13adfbf7..f2bda3ff 100644 --- a/database/migrations/2014_10_12_000000_create_users_table.php +++ b/database/migrations/2014_10_12_000000_create_users_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateUsersTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('users', function (Blueprint $table) { $table->increments('id'); @@ -38,11 +36,9 @@ class CreateUsersTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('users'); } -} +}; diff --git a/database/migrations/2014_10_12_100000_create_password_resets_table.php b/database/migrations/2014_10_12_100000_create_password_resets_table.php index 0ee0a36a..4f42fe69 100644 --- a/database/migrations/2014_10_12_100000_create_password_resets_table.php +++ b/database/migrations/2014_10_12_100000_create_password_resets_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreatePasswordResetsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('password_resets', function (Blueprint $table) { $table->string('email')->index(); @@ -22,11 +20,9 @@ class CreatePasswordResetsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('password_resets'); } -} +}; diff --git a/database/migrations/2016_05_13_060834_create_settings_table.php b/database/migrations/2016_05_13_060834_create_settings_table.php index 79a6fe46..e4db440e 100644 --- a/database/migrations/2016_05_13_060834_create_settings_table.php +++ b/database/migrations/2016_05_13_060834_create_settings_table.php @@ -3,14 +3,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; -class CreateSettingsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('settings', function (Blueprint $table) { $table->increments('id'); @@ -22,11 +20,9 @@ class CreateSettingsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::drop('settings'); } -} +}; diff --git a/database/migrations/2017_04_11_064308_create_units_table.php b/database/migrations/2017_04_11_064308_create_units_table.php index 2ce4ef33..8efa0b1d 100644 --- a/database/migrations/2017_04_11_064308_create_units_table.php +++ b/database/migrations/2017_04_11_064308_create_units_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateUnitsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { if (! Schema::hasTable('units')) { Schema::create('units', function (Blueprint $table) { @@ -26,11 +24,9 @@ class CreateUnitsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('units'); } -} +}; diff --git a/database/migrations/2017_04_11_081227_create_items_table.php b/database/migrations/2017_04_11_081227_create_items_table.php index ba912e21..cfc5123a 100644 --- a/database/migrations/2017_04_11_081227_create_items_table.php +++ b/database/migrations/2017_04_11_081227_create_items_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateItemsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('items', function (Blueprint $table) { $table->increments('id'); @@ -29,11 +27,9 @@ class CreateItemsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('items'); } -} +}; diff --git a/database/migrations/2017_04_12_090759_create_invoices_table.php b/database/migrations/2017_04_12_090759_create_invoices_table.php index 444313e9..f41afb56 100644 --- a/database/migrations/2017_04_12_090759_create_invoices_table.php +++ b/database/migrations/2017_04_12_090759_create_invoices_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateInvoicesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('invoices', function (Blueprint $table) { $table->increments('id'); @@ -44,11 +42,9 @@ class CreateInvoicesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('invoices'); } -} +}; diff --git a/database/migrations/2017_04_12_091015_create_invoice_items_table.php b/database/migrations/2017_04_12_091015_create_invoice_items_table.php index 4b5bcf24..3afd7989 100644 --- a/database/migrations/2017_04_12_091015_create_invoice_items_table.php +++ b/database/migrations/2017_04_12_091015_create_invoice_items_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateInvoiceItemsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('invoice_items', function (Blueprint $table) { $table->increments('id'); @@ -36,11 +34,9 @@ class CreateInvoiceItemsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('invoice_items'); } -} +}; diff --git a/database/migrations/2017_05_05_055609_create_estimates_table.php b/database/migrations/2017_05_05_055609_create_estimates_table.php index c3259e29..19feda13 100644 --- a/database/migrations/2017_05_05_055609_create_estimates_table.php +++ b/database/migrations/2017_05_05_055609_create_estimates_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateEstimatesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('estimates', function (Blueprint $table) { $table->increments('id'); @@ -40,11 +38,9 @@ class CreateEstimatesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('estimates'); } -} +}; diff --git a/database/migrations/2017_05_05_073927_create_notifications_table.php b/database/migrations/2017_05_05_073927_create_notifications_table.php index 9797596d..d7380322 100644 --- a/database/migrations/2017_05_05_073927_create_notifications_table.php +++ b/database/migrations/2017_05_05_073927_create_notifications_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateNotificationsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('notifications', function (Blueprint $table) { $table->uuid('id')->primary(); @@ -25,11 +23,9 @@ class CreateNotificationsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('notifications'); } -} +}; diff --git a/database/migrations/2017_05_06_173745_create_countries_table.php b/database/migrations/2017_05_06_173745_create_countries_table.php index fd6e7a5c..20e79dcf 100755 --- a/database/migrations/2017_05_06_173745_create_countries_table.php +++ b/database/migrations/2017_05_06_173745_create_countries_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateCountriesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('countries', function (Blueprint $table) { $table->engine = 'InnoDB'; @@ -24,11 +22,9 @@ class CreateCountriesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('countries'); } -} +}; diff --git a/database/migrations/2017_10_02_123501_create_estimate_items_table.php b/database/migrations/2017_10_02_123501_create_estimate_items_table.php index bddd5e3f..f685d6a6 100644 --- a/database/migrations/2017_10_02_123501_create_estimate_items_table.php +++ b/database/migrations/2017_10_02_123501_create_estimate_items_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateEstimateItemsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('estimate_items', function (Blueprint $table) { $table->increments('id'); @@ -36,11 +34,9 @@ class CreateEstimateItemsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('estimate_items'); } -} +}; diff --git a/database/migrations/2018_11_02_133825_create_ expense_categories_table.php b/database/migrations/2018_11_02_133825_create_ expense_categories_table.php index 90175227..c75e6496 100644 --- a/database/migrations/2018_11_02_133825_create_ expense_categories_table.php +++ b/database/migrations/2018_11_02_133825_create_ expense_categories_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateExpenseCategoriesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('expense_categories', function (Blueprint $table) { $table->increments('id'); @@ -25,11 +23,9 @@ class CreateExpenseCategoriesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('expense_categories'); } -} +}; diff --git a/database/migrations/2018_11_02_133956_create_expenses_table.php b/database/migrations/2018_11_02_133956_create_expenses_table.php index 1e738ce9..6846e59b 100644 --- a/database/migrations/2018_11_02_133956_create_expenses_table.php +++ b/database/migrations/2018_11_02_133956_create_expenses_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateExpensesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('expenses', function (Blueprint $table) { $table->increments('id'); @@ -29,11 +27,9 @@ class CreateExpensesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('expenses'); } -} +}; diff --git a/database/migrations/2019_08_30_072639_create_addresses_table.php b/database/migrations/2019_08_30_072639_create_addresses_table.php index c9fb5b22..51eb2567 100644 --- a/database/migrations/2019_08_30_072639_create_addresses_table.php +++ b/database/migrations/2019_08_30_072639_create_addresses_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateAddressesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('addresses', function (Blueprint $table) { $table->bigIncrements('id'); @@ -34,11 +32,9 @@ class CreateAddressesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('addresses'); } -} +}; diff --git a/database/migrations/2019_09_02_053155_create_payment_methods_table.php b/database/migrations/2019_09_02_053155_create_payment_methods_table.php index 43961fbb..949dc0f0 100644 --- a/database/migrations/2019_09_02_053155_create_payment_methods_table.php +++ b/database/migrations/2019_09_02_053155_create_payment_methods_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreatePaymentMethodsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { if (! Schema::hasTable('payment_methods')) { Schema::create('payment_methods', function (Blueprint $table) { @@ -26,11 +24,9 @@ class CreatePaymentMethodsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('payment_methods'); } -} +}; diff --git a/database/migrations/2019_09_03_135234_create_payments_table.php b/database/migrations/2019_09_03_135234_create_payments_table.php index 2ac1893b..57e523f0 100644 --- a/database/migrations/2019_09_03_135234_create_payments_table.php +++ b/database/migrations/2019_09_03_135234_create_payments_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreatePaymentsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('payments', function (Blueprint $table) { $table->bigIncrements('id'); @@ -34,11 +32,9 @@ class CreatePaymentsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('payments'); } -} +}; diff --git a/database/migrations/2019_09_14_120124_create_media_table.php b/database/migrations/2019_09_14_120124_create_media_table.php index d35782be..e6cceb31 100644 --- a/database/migrations/2019_09_14_120124_create_media_table.php +++ b/database/migrations/2019_09_14_120124_create_media_table.php @@ -4,12 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateMediaTable extends Migration +return new class extends Migration { /** * Run the migrations. */ - public function up() + public function up(): void { Schema::create('media', function (Blueprint $table) { $table->bigIncrements('id'); @@ -31,8 +31,8 @@ class CreateMediaTable extends Migration /** * Reverse the migrations. */ - public function down() + public function down(): void { Schema::dropIfExists('media'); } -} +}; diff --git a/database/migrations/2019_09_21_052540_create_tax_types_table.php b/database/migrations/2019_09_21_052540_create_tax_types_table.php index 0e2eb3c0..51327922 100644 --- a/database/migrations/2019_09_21_052540_create_tax_types_table.php +++ b/database/migrations/2019_09_21_052540_create_tax_types_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateTaxTypesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('tax_types', function (Blueprint $table) { $table->increments('id'); @@ -28,11 +26,9 @@ class CreateTaxTypesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('tax_types'); } -} +}; diff --git a/database/migrations/2019_09_21_052548_create_taxes_table.php b/database/migrations/2019_09_21_052548_create_taxes_table.php index dae0bfab..38877209 100644 --- a/database/migrations/2019_09_21_052548_create_taxes_table.php +++ b/database/migrations/2019_09_21_052548_create_taxes_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateTaxesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('taxes', function (Blueprint $table) { $table->increments('id'); @@ -39,11 +37,9 @@ class CreateTaxesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('taxes'); } -} +}; diff --git a/database/migrations/2019_09_26_145012_create_company_settings_table.php b/database/migrations/2019_09_26_145012_create_company_settings_table.php index ca030e36..d41172be 100644 --- a/database/migrations/2019_09_26_145012_create_company_settings_table.php +++ b/database/migrations/2019_09_26_145012_create_company_settings_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateCompanySettingsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('company_settings', function (Blueprint $table) { $table->increments('id'); @@ -25,11 +23,9 @@ class CreateCompanySettingsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('company_settings'); } -} +}; diff --git a/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php b/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php index 3ce00023..89927c68 100644 --- a/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php +++ b/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreatePersonalAccessTokensTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('personal_access_tokens', function (Blueprint $table) { $table->bigIncrements('id'); @@ -26,11 +24,9 @@ class CreatePersonalAccessTokensTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('personal_access_tokens'); } -} +}; diff --git a/database/migrations/2020_02_01_063235_create_custom_fields_table.php b/database/migrations/2020_02_01_063235_create_custom_fields_table.php index 480506a4..a53971d0 100644 --- a/database/migrations/2020_02_01_063235_create_custom_fields_table.php +++ b/database/migrations/2020_02_01_063235_create_custom_fields_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateCustomFieldsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('custom_fields', function (Blueprint $table) { $table->bigIncrements('id'); @@ -38,10 +36,8 @@ class CreateCustomFieldsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('custom_fields', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -50,4 +46,4 @@ class CreateCustomFieldsTable extends Migration }); Schema::dropIfExists('custom_fields'); } -} +}; diff --git a/database/migrations/2020_02_01_063509_create_custom_field_values_table.php b/database/migrations/2020_02_01_063509_create_custom_field_values_table.php index c8fc4c1e..a79e937a 100644 --- a/database/migrations/2020_02_01_063509_create_custom_field_values_table.php +++ b/database/migrations/2020_02_01_063509_create_custom_field_values_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateCustomFieldValuesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('custom_field_values', function (Blueprint $table) { $table->bigIncrements('id'); @@ -34,10 +32,8 @@ class CreateCustomFieldValuesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('custom_field_values', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -47,4 +43,4 @@ class CreateCustomFieldValuesTable extends Migration }); Schema::dropIfExists('custom_field_values'); } -} +}; diff --git a/database/migrations/2020_05_12_154129_add_user_id_to_expenses_table.php b/database/migrations/2020_05_12_154129_add_user_id_to_expenses_table.php index ddb4c8e0..3cd1b13c 100644 --- a/database/migrations/2020_05_12_154129_add_user_id_to_expenses_table.php +++ b/database/migrations/2020_05_12_154129_add_user_id_to_expenses_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddUserIdToExpensesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('expenses', function (Blueprint $table) { $table->integer('user_id')->unsigned()->nullable(); @@ -21,11 +19,9 @@ class AddUserIdToExpensesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { } -} +}; diff --git a/database/migrations/2020_09_07_103054_create_file_disks_table.php b/database/migrations/2020_09_07_103054_create_file_disks_table.php index b137fe67..16aeeff3 100644 --- a/database/migrations/2020_09_07_103054_create_file_disks_table.php +++ b/database/migrations/2020_09_07_103054_create_file_disks_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateFileDisksTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('file_disks', function (Blueprint $table) { $table->id(); @@ -26,11 +24,9 @@ class CreateFileDisksTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('file_disks'); } -} +}; diff --git a/database/migrations/2020_09_22_153617_add_columns_to_media_table.php b/database/migrations/2020_09_22_153617_add_columns_to_media_table.php index 2410fd97..4c18cc2b 100644 --- a/database/migrations/2020_09_22_153617_add_columns_to_media_table.php +++ b/database/migrations/2020_09_22_153617_add_columns_to_media_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddColumnsToMediaTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('media', function (Blueprint $table) { $table->uuid('uuid')->nullable(); @@ -21,14 +19,12 @@ class AddColumnsToMediaTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('media', function (Blueprint $table) { $table->dropColumn('uuid'); $table->dropColumn('conversions_disk'); }); } -} +}; diff --git a/database/migrations/2020_09_26_100951_create_user_settings_table.php b/database/migrations/2020_09_26_100951_create_user_settings_table.php index d59beffc..6d5e2a56 100644 --- a/database/migrations/2020_09_26_100951_create_user_settings_table.php +++ b/database/migrations/2020_09_26_100951_create_user_settings_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateUserSettingsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('user_settings', function (Blueprint $table) { $table->id(); @@ -25,11 +23,9 @@ class CreateUserSettingsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('user_settings'); } -} +}; diff --git a/database/migrations/2020_10_01_102913_add_company_to_addresses_table.php b/database/migrations/2020_10_01_102913_add_company_to_addresses_table.php index e9ce5a43..e93d350f 100644 --- a/database/migrations/2020_10_01_102913_add_company_to_addresses_table.php +++ b/database/migrations/2020_10_01_102913_add_company_to_addresses_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddCompanyToAddressesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('addresses', function (Blueprint $table) { $table->integer('user_id')->unsigned()->nullable()->change(); @@ -22,10 +20,8 @@ class AddCompanyToAddressesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('addresses', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -33,4 +29,4 @@ class AddCompanyToAddressesTable extends Migration } }); } -} +}; diff --git a/database/migrations/2020_10_17_074745_create_notes_table.php b/database/migrations/2020_10_17_074745_create_notes_table.php index 84888bb1..96bad1c2 100644 --- a/database/migrations/2020_10_17_074745_create_notes_table.php +++ b/database/migrations/2020_10_17_074745_create_notes_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateNotesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('notes', function (Blueprint $table) { $table->id(); @@ -24,11 +22,9 @@ class CreateNotesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('notes'); } -} +}; diff --git a/database/migrations/2020_10_24_091934_change_value_column_to_text_on_company_settings_table.php b/database/migrations/2020_10_24_091934_change_value_column_to_text_on_company_settings_table.php index 9b0f1c10..a971e91b 100644 --- a/database/migrations/2020_10_24_091934_change_value_column_to_text_on_company_settings_table.php +++ b/database/migrations/2020_10_24_091934_change_value_column_to_text_on_company_settings_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class ChangeValueColumnToTextOnCompanySettingsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('company_settings', function (Blueprint $table) { $table->text('value')->change(); @@ -20,13 +18,11 @@ class ChangeValueColumnToTextOnCompanySettingsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('company_settings', function (Blueprint $table) { $table->string('value')->change(); }); } -} +}; diff --git a/database/migrations/2020_11_23_050206_add_creator_in_invoices_table.php b/database/migrations/2020_11_23_050206_add_creator_in_invoices_table.php index e39625fa..59ed4f08 100644 --- a/database/migrations/2020_11_23_050206_add_creator_in_invoices_table.php +++ b/database/migrations/2020_11_23_050206_add_creator_in_invoices_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddCreatorInInvoicesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('invoices', function (Blueprint $table) { $table->unsignedInteger('creator_id')->nullable(); @@ -21,10 +19,8 @@ class AddCreatorInInvoicesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('invoices', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -32,4 +28,4 @@ class AddCreatorInInvoicesTable extends Migration } }); } -} +}; diff --git a/database/migrations/2020_11_23_050252_add_creator_in_estimates_table.php b/database/migrations/2020_11_23_050252_add_creator_in_estimates_table.php index 8287f50f..6398b33b 100644 --- a/database/migrations/2020_11_23_050252_add_creator_in_estimates_table.php +++ b/database/migrations/2020_11_23_050252_add_creator_in_estimates_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddCreatorInEstimatesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('estimates', function (Blueprint $table) { $table->unsignedInteger('creator_id')->nullable(); @@ -21,10 +19,8 @@ class AddCreatorInEstimatesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('estimates', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -32,4 +28,4 @@ class AddCreatorInEstimatesTable extends Migration } }); } -} +}; diff --git a/database/migrations/2020_11_23_050316_add_creator_in_payments_table.php b/database/migrations/2020_11_23_050316_add_creator_in_payments_table.php index 9f243340..818b2554 100644 --- a/database/migrations/2020_11_23_050316_add_creator_in_payments_table.php +++ b/database/migrations/2020_11_23_050316_add_creator_in_payments_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddCreatorInPaymentsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('payments', function (Blueprint $table) { $table->unsignedInteger('creator_id')->nullable(); @@ -21,10 +19,8 @@ class AddCreatorInPaymentsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('payments', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -32,4 +28,4 @@ class AddCreatorInPaymentsTable extends Migration } }); } -} +}; diff --git a/database/migrations/2020_11_23_050333_add_creator_in_expenses_table.php b/database/migrations/2020_11_23_050333_add_creator_in_expenses_table.php index 822c72d5..b9e1b789 100644 --- a/database/migrations/2020_11_23_050333_add_creator_in_expenses_table.php +++ b/database/migrations/2020_11_23_050333_add_creator_in_expenses_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddCreatorInExpensesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('expenses', function (Blueprint $table) { $table->unsignedInteger('creator_id')->nullable(); @@ -21,10 +19,8 @@ class AddCreatorInExpensesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('expenses', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -32,4 +28,4 @@ class AddCreatorInExpensesTable extends Migration } }); } -} +}; diff --git a/database/migrations/2020_11_23_050406_add_creator_in_items_table.php b/database/migrations/2020_11_23_050406_add_creator_in_items_table.php index 9287a482..c90f01ba 100644 --- a/database/migrations/2020_11_23_050406_add_creator_in_items_table.php +++ b/database/migrations/2020_11_23_050406_add_creator_in_items_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddCreatorInItemsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('items', function (Blueprint $table) { $table->unsignedInteger('creator_id')->nullable(); @@ -21,10 +19,8 @@ class AddCreatorInItemsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('items', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -32,4 +28,4 @@ class AddCreatorInItemsTable extends Migration } }); } -} +}; diff --git a/database/migrations/2020_11_23_065815_add_creator_in_users_table.php b/database/migrations/2020_11_23_065815_add_creator_in_users_table.php index a4925369..8699f456 100644 --- a/database/migrations/2020_11_23_065815_add_creator_in_users_table.php +++ b/database/migrations/2020_11_23_065815_add_creator_in_users_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddCreatorInUsersTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('users', function (Blueprint $table) { $table->unsignedInteger('creator_id')->nullable(); @@ -21,10 +19,8 @@ class AddCreatorInUsersTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('users', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -32,4 +28,4 @@ class AddCreatorInUsersTable extends Migration } }); } -} +}; diff --git a/database/migrations/2020_11_23_074154_create_email_logs_table.php b/database/migrations/2020_11_23_074154_create_email_logs_table.php index 89923cfb..93b52b5d 100644 --- a/database/migrations/2020_11_23_074154_create_email_logs_table.php +++ b/database/migrations/2020_11_23_074154_create_email_logs_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateEmailLogsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('email_logs', function (Blueprint $table) { $table->id(); @@ -27,11 +25,9 @@ class CreateEmailLogsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('email_logs'); } -} +}; diff --git a/database/migrations/2020_12_02_064933_update_crater_version_320.php b/database/migrations/2020_12_02_064933_update_crater_version_320.php index 8cbe22bf..02a0ad53 100644 --- a/database/migrations/2020_12_02_064933_update_crater_version_320.php +++ b/database/migrations/2020_12_02_064933_update_crater_version_320.php @@ -1,29 +1,25 @@ fileDiskSeed(); @@ -51,10 +49,8 @@ class UpdateCraterVersion400 extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { // } @@ -130,4 +126,4 @@ class UpdateCraterVersion400 extends Migration CompanySetting::setSettings($settings, $user->company_id); } -} +}; diff --git a/database/migrations/2020_12_08_065715_change_description_and_notes_column_type.php b/database/migrations/2020_12_08_065715_change_description_and_notes_column_type.php index a42967e3..ff43cae3 100644 --- a/database/migrations/2020_12_08_065715_change_description_and_notes_column_type.php +++ b/database/migrations/2020_12_08_065715_change_description_and_notes_column_type.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class ChangeDescriptionAndNotesColumnType extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('estimates', function (Blueprint $table) { $table->text('notes')->nullable()->change(); @@ -36,11 +34,9 @@ class ChangeDescriptionAndNotesColumnType extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { // } -} +}; diff --git a/database/migrations/2020_12_08_133131_update_crater_version_401.php b/database/migrations/2020_12_08_133131_update_crater_version_401.php index bd5286bb..cbdac711 100644 --- a/database/migrations/2020_12_08_133131_update_crater_version_401.php +++ b/database/migrations/2020_12_08_133131_update_crater_version_401.php @@ -1,27 +1,23 @@ string('template_name')->nullable(); @@ -20,13 +18,11 @@ class AddTemplateNameToInvoicesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('invoices', function (Blueprint $table) { $table->dropColumn('template_name'); }); } -} +}; diff --git a/database/migrations/2020_12_14_045310_add_template_name_to_estimates_table.php b/database/migrations/2020_12_14_045310_add_template_name_to_estimates_table.php index 0028d9c6..5c3a02e0 100644 --- a/database/migrations/2020_12_14_045310_add_template_name_to_estimates_table.php +++ b/database/migrations/2020_12_14_045310_add_template_name_to_estimates_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddTemplateNameToEstimatesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('estimates', function (Blueprint $table) { $table->string('template_name')->nullable(); @@ -20,13 +18,11 @@ class AddTemplateNameToEstimatesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('estimates', function (Blueprint $table) { $table->dropColumn('template_name'); }); } -} +}; diff --git a/database/migrations/2020_12_14_051450_remove_template_id_from_invoices_and_estimates_table.php b/database/migrations/2020_12_14_051450_remove_template_id_from_invoices_and_estimates_table.php index 097a17bb..e7c20f45 100644 --- a/database/migrations/2020_12_14_051450_remove_template_id_from_invoices_and_estimates_table.php +++ b/database/migrations/2020_12_14_051450_remove_template_id_from_invoices_and_estimates_table.php @@ -1,19 +1,17 @@ string('unit_name')->nullable()->after('quantity'); @@ -23,10 +21,8 @@ class AddUnitNameToPdf extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('invoice_items', function (Blueprint $table) { $table->dropColumn('unit_name'); @@ -35,4 +31,4 @@ class AddUnitNameToPdf extends Migration $table->dropColumn('unit_name'); }); } -} +}; diff --git a/database/migrations/2021_03_23_145012_add_number_length_setting.php b/database/migrations/2021_03_23_145012_add_number_length_setting.php index c9b2ae0b..cf630e30 100644 --- a/database/migrations/2021_03_23_145012_add_number_length_setting.php +++ b/database/migrations/2021_03_23_145012_add_number_length_setting.php @@ -1,17 +1,15 @@ first(); @@ -35,11 +33,9 @@ class AddNumberLengthSetting extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { // } -} +}; diff --git a/database/migrations/2021_05_05_063533_update_crater_version_410.php b/database/migrations/2021_05_05_063533_update_crater_version_410.php index 87fcc993..8ee8764e 100644 --- a/database/migrations/2021_05_05_063533_update_crater_version_410.php +++ b/database/migrations/2021_05_05_063533_update_crater_version_410.php @@ -1,27 +1,23 @@ id(); @@ -39,11 +37,9 @@ class CreateCustomersTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('customers'); } -} +}; diff --git a/database/migrations/2021_06_28_120010_add_customer_id_to_estimates_table.php b/database/migrations/2021_06_28_120010_add_customer_id_to_estimates_table.php index c2762011..2c94133a 100644 --- a/database/migrations/2021_06_28_120010_add_customer_id_to_estimates_table.php +++ b/database/migrations/2021_06_28_120010_add_customer_id_to_estimates_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddCustomerIdToEstimatesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('estimates', function (Blueprint $table) { $table->unsignedBigInteger('customer_id')->nullable(); @@ -21,10 +19,8 @@ class AddCustomerIdToEstimatesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('estimates', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -33,4 +29,4 @@ class AddCustomerIdToEstimatesTable extends Migration $table->dropColumn('customer_id'); }); } -} +}; diff --git a/database/migrations/2021_06_28_120133_add_customer_id_to_expenses_table.php b/database/migrations/2021_06_28_120133_add_customer_id_to_expenses_table.php index ebe905ca..8385413a 100644 --- a/database/migrations/2021_06_28_120133_add_customer_id_to_expenses_table.php +++ b/database/migrations/2021_06_28_120133_add_customer_id_to_expenses_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddCustomerIdToExpensesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('expenses', function (Blueprint $table) { $table->unsignedBigInteger('customer_id')->nullable(); @@ -20,13 +18,11 @@ class AddCustomerIdToExpensesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('expenses', function (Blueprint $table) { $table->dropColumn('customer_id'); }); } -} +}; diff --git a/database/migrations/2021_06_28_120208_add_customer_id_to_invoices_table.php b/database/migrations/2021_06_28_120208_add_customer_id_to_invoices_table.php index 5df3fb3b..17295fd7 100644 --- a/database/migrations/2021_06_28_120208_add_customer_id_to_invoices_table.php +++ b/database/migrations/2021_06_28_120208_add_customer_id_to_invoices_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddCustomerIdToInvoicesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('invoices', function (Blueprint $table) { $table->unsignedBigInteger('customer_id')->nullable(); @@ -21,10 +19,8 @@ class AddCustomerIdToInvoicesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('invoices', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -33,4 +29,4 @@ class AddCustomerIdToInvoicesTable extends Migration $table->dropColumn('customer_id'); }); } -} +}; diff --git a/database/migrations/2021_06_28_120231_add_customer_id_to_payments_table.php b/database/migrations/2021_06_28_120231_add_customer_id_to_payments_table.php index 31e2240b..07288d86 100644 --- a/database/migrations/2021_06_28_120231_add_customer_id_to_payments_table.php +++ b/database/migrations/2021_06_28_120231_add_customer_id_to_payments_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddCustomerIdToPaymentsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::disableForeignKeyConstraints(); Schema::table('payments', function (Blueprint $table) { @@ -24,10 +22,8 @@ class AddCustomerIdToPaymentsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('payments', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -36,4 +32,4 @@ class AddCustomerIdToPaymentsTable extends Migration $table->dropColumn('customer_id'); }); } -} +}; diff --git a/database/migrations/2021_06_29_052745_add_customer_id_to_addresses_table.php b/database/migrations/2021_06_29_052745_add_customer_id_to_addresses_table.php index ca435c4c..9070f826 100644 --- a/database/migrations/2021_06_29_052745_add_customer_id_to_addresses_table.php +++ b/database/migrations/2021_06_29_052745_add_customer_id_to_addresses_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddCustomerIdToAddressesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('addresses', function (Blueprint $table) { $table->unsignedBigInteger('customer_id')->nullable(); @@ -21,10 +19,8 @@ class AddCustomerIdToAddressesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('addresses', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -33,4 +29,4 @@ class AddCustomerIdToAddressesTable extends Migration $table->dropColumn('customer_id'); }); } -} +}; diff --git a/database/migrations/2021_06_30_062411_update_customer_id_in_all_tables.php b/database/migrations/2021_06_30_062411_update_customer_id_in_all_tables.php index 6e8977ca..eca3aed2 100644 --- a/database/migrations/2021_06_30_062411_update_customer_id_in_all_tables.php +++ b/database/migrations/2021_06_30_062411_update_customer_id_in_all_tables.php @@ -1,27 +1,25 @@ get(); @@ -58,9 +56,9 @@ class UpdateCustomerIdInAllTables extends Migration ]); CustomFieldValue::where('custom_field_valuable_id', $user->id) - ->where('custom_field_valuable_type', 'InvoiceShelf\Models\User') + ->where('custom_field_valuable_type', \App\Models\User::class) ->update([ - 'custom_field_valuable_type' => 'InvoiceShelf\Models\Customer', + 'custom_field_valuable_type' => \App\Models\Customer::class, 'custom_field_valuable_id' => $newCustomer->id, ]); } @@ -76,33 +74,35 @@ class UpdateCustomerIdInAllTables extends Migration } } - Schema::table('estimates', function (Blueprint $table) { - if (config('database.default') !== 'sqlite') { - $table->dropForeign(['user_id']); - } - $table->dropColumn('user_id'); - }); + if (config('database.default') !== 'sqlite') { + Schema::table('estimates', function (Blueprint $table) { + if (config('database.default') !== 'sqlite') { + $table->dropForeign(['user_id']); + } + $table->dropColumn('user_id'); + }); - Schema::table('expenses', function (Blueprint $table) { - if (config('database.default') !== 'sqlite') { - $table->dropForeign(['user_id']); - } - $table->dropColumn('user_id'); - }); + Schema::table('expenses', function (Blueprint $table) { + if (config('database.default') !== 'sqlite') { + $table->dropForeign(['user_id']); + } + $table->dropColumn('user_id'); + }); - Schema::table('invoices', function (Blueprint $table) { - if (config('database.default') !== 'sqlite') { - $table->dropForeign(['user_id']); - } - $table->dropColumn('user_id'); - }); + Schema::table('invoices', function (Blueprint $table) { + if (config('database.default') !== 'sqlite') { + $table->dropForeign(['user_id']); + } + $table->dropColumn('user_id'); + }); - Schema::table('payments', function (Blueprint $table) { - if (config('database.default') !== 'sqlite') { - $table->dropForeign(['user_id']); - } - $table->dropColumn('user_id'); - }); + Schema::table('payments', function (Blueprint $table) { + if (config('database.default') !== 'sqlite') { + $table->dropForeign(['user_id']); + } + $table->dropColumn('user_id'); + }); + } Schema::table('items', function (Blueprint $table) { $table->dropColumn('unit'); @@ -114,11 +114,9 @@ class UpdateCustomerIdInAllTables extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { // } -} +}; diff --git a/database/migrations/2021_07_01_060700_create_user_company_table.php b/database/migrations/2021_07_01_060700_create_user_company_table.php index 48013b6d..fe0a5f0e 100644 --- a/database/migrations/2021_07_01_060700_create_user_company_table.php +++ b/database/migrations/2021_07_01_060700_create_user_company_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateUserCompanyTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('user_company', function (Blueprint $table) { $table->id(); @@ -25,11 +23,9 @@ class CreateUserCompanyTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('user_company'); } -} +}; diff --git a/database/migrations/2021_07_05_100256_change_relationship_of_company.php b/database/migrations/2021_07_05_100256_change_relationship_of_company.php index 8f0e05fa..7de24069 100644 --- a/database/migrations/2021_07_05_100256_change_relationship_of_company.php +++ b/database/migrations/2021_07_05_100256_change_relationship_of_company.php @@ -1,18 +1,16 @@ dropForeign(['company_id']); - } - $table->dropColumn('company_id'); - }); + if (config('database.default') !== 'sqlite') { + Schema::table('users', function (Blueprint $table) { + if (config('database.default') !== 'sqlite') { + $table->dropForeign(['company_id']); + } + $table->dropColumn('company_id'); + }); + } + } /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { // } -} +}; diff --git a/database/migrations/2021_07_06_070204_add_owner_id_to_companies_table.php b/database/migrations/2021_07_06_070204_add_owner_id_to_companies_table.php index 9b82656a..b639ff4d 100644 --- a/database/migrations/2021_07_06_070204_add_owner_id_to_companies_table.php +++ b/database/migrations/2021_07_06_070204_add_owner_id_to_companies_table.php @@ -1,20 +1,18 @@ string('slug')->nullable(); @@ -45,10 +43,8 @@ class AddOwnerIdToCompaniesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('companies', function (Blueprint $table) { $table->dropColumn('slug'); @@ -57,4 +53,4 @@ class AddOwnerIdToCompaniesTable extends Migration } }); } -} +}; diff --git a/database/migrations/2021_07_08_110940_add_company_to_notes_table.php b/database/migrations/2021_07_08_110940_add_company_to_notes_table.php index 354a1bfb..1844a72c 100644 --- a/database/migrations/2021_07_08_110940_add_company_to_notes_table.php +++ b/database/migrations/2021_07_08_110940_add_company_to_notes_table.php @@ -1,19 +1,17 @@ unsignedInteger('company_id')->nullable(); @@ -33,10 +31,8 @@ class AddCompanyToNotesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('notes', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -44,4 +40,4 @@ class AddCompanyToNotesTable extends Migration } }); } -} +}; diff --git a/database/migrations/2021_07_09_063502_create_recurring_invoices_table.php b/database/migrations/2021_07_09_063502_create_recurring_invoices_table.php index 76baab0a..d9caa8b9 100644 --- a/database/migrations/2021_07_09_063502_create_recurring_invoices_table.php +++ b/database/migrations/2021_07_09_063502_create_recurring_invoices_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateRecurringInvoicesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('recurring_invoices', function (Blueprint $table) { $table->id(); @@ -49,11 +47,9 @@ class CreateRecurringInvoicesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('recurring_invoices'); } -} +}; diff --git a/database/migrations/2021_07_09_063712_add_recurring_invoice_id_to_invoices_table.php b/database/migrations/2021_07_09_063712_add_recurring_invoice_id_to_invoices_table.php index 45009746..13c63443 100644 --- a/database/migrations/2021_07_09_063712_add_recurring_invoice_id_to_invoices_table.php +++ b/database/migrations/2021_07_09_063712_add_recurring_invoice_id_to_invoices_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddRecurringInvoiceIdToInvoicesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('invoices', function (Blueprint $table) { $table->unsignedBigInteger('recurring_invoice_id')->nullable(); @@ -21,10 +19,8 @@ class AddRecurringInvoiceIdToInvoicesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('invoices', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -33,4 +29,4 @@ class AddRecurringInvoiceIdToInvoicesTable extends Migration $table->dropColumn('recurring_invoice_id'); }); } -} +}; diff --git a/database/migrations/2021_07_09_063755_add_recurring_invoice_id_to_invoice_items_table.php b/database/migrations/2021_07_09_063755_add_recurring_invoice_id_to_invoice_items_table.php index 094443e6..394655c2 100644 --- a/database/migrations/2021_07_09_063755_add_recurring_invoice_id_to_invoice_items_table.php +++ b/database/migrations/2021_07_09_063755_add_recurring_invoice_id_to_invoice_items_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddRecurringInvoiceIdToInvoiceItemsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('invoice_items', function (Blueprint $table) { $table->integer('invoice_id')->unsigned()->nullable()->change(); @@ -22,10 +20,8 @@ class AddRecurringInvoiceIdToInvoiceItemsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('invoice_items', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -34,4 +30,4 @@ class AddRecurringInvoiceIdToInvoiceItemsTable extends Migration $table->dropColumn('recurring_invoice_id'); }); } -} +}; diff --git a/database/migrations/2021_07_15_054753_make_due_date_optional_in_invoices_table.php b/database/migrations/2021_07_15_054753_make_due_date_optional_in_invoices_table.php index 0caf39ef..62cade65 100644 --- a/database/migrations/2021_07_15_054753_make_due_date_optional_in_invoices_table.php +++ b/database/migrations/2021_07_15_054753_make_due_date_optional_in_invoices_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class MakeDueDateOptionalInInvoicesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('invoices', function (Blueprint $table) { $table->date('due_date')->nullable()->change(); @@ -20,13 +18,11 @@ class MakeDueDateOptionalInInvoicesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('invoices', function (Blueprint $table) { // }); } -} +}; diff --git a/database/migrations/2021_07_15_054929_make_expiry_date_optional_estimates_table.php b/database/migrations/2021_07_15_054929_make_expiry_date_optional_estimates_table.php index 455e3c49..e130d44e 100644 --- a/database/migrations/2021_07_15_054929_make_expiry_date_optional_estimates_table.php +++ b/database/migrations/2021_07_15_054929_make_expiry_date_optional_estimates_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class MakeExpiryDateOptionalEstimatesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('estimates', function (Blueprint $table) { $table->date('expiry_date')->nullable()->change(); @@ -20,11 +18,9 @@ class MakeExpiryDateOptionalEstimatesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { // } -} +}; diff --git a/database/migrations/2021_07_16_072458_add_base_columns_into_invoices_table.php b/database/migrations/2021_07_16_072458_add_base_columns_into_invoices_table.php index 8554ab61..97be4f0a 100644 --- a/database/migrations/2021_07_16_072458_add_base_columns_into_invoices_table.php +++ b/database/migrations/2021_07_16_072458_add_base_columns_into_invoices_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddBaseColumnsIntoInvoicesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('invoices', function (Blueprint $table) { $table->decimal('exchange_rate', 19, 6)->nullable(); @@ -25,10 +23,8 @@ class AddBaseColumnsIntoInvoicesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('invoices', function (Blueprint $table) { $table->dropColumn([ @@ -41,4 +37,4 @@ class AddBaseColumnsIntoInvoicesTable extends Migration ]); }); } -} +}; diff --git a/database/migrations/2021_07_16_072925_add_base_columns_into_invoice_items_table.php b/database/migrations/2021_07_16_072925_add_base_columns_into_invoice_items_table.php index 32b6837a..22a0f9c5 100644 --- a/database/migrations/2021_07_16_072925_add_base_columns_into_invoice_items_table.php +++ b/database/migrations/2021_07_16_072925_add_base_columns_into_invoice_items_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddBaseColumnsIntoInvoiceItemsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('invoice_items', function (Blueprint $table) { $table->unsignedBigInteger('base_price')->nullable(); @@ -24,10 +22,8 @@ class AddBaseColumnsIntoInvoiceItemsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('invoice_items', function (Blueprint $table) { $table->dropColumn([ @@ -39,4 +35,4 @@ class AddBaseColumnsIntoInvoiceItemsTable extends Migration ]); }); } -} +}; diff --git a/database/migrations/2021_07_16_073040_add_base_columns_into_estimates_table.php b/database/migrations/2021_07_16_073040_add_base_columns_into_estimates_table.php index d08cb8e2..e225eb62 100644 --- a/database/migrations/2021_07_16_073040_add_base_columns_into_estimates_table.php +++ b/database/migrations/2021_07_16_073040_add_base_columns_into_estimates_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddBaseColumnsIntoEstimatesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('estimates', function (Blueprint $table) { $table->decimal('exchange_rate', 19, 6)->nullable(); @@ -24,10 +22,8 @@ class AddBaseColumnsIntoEstimatesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('estimates', function (Blueprint $table) { $table->dropColumn([ @@ -39,4 +35,4 @@ class AddBaseColumnsIntoEstimatesTable extends Migration ]); }); } -} +}; diff --git a/database/migrations/2021_07_16_073441_add_base_columns_into_estimate_items_table.php b/database/migrations/2021_07_16_073441_add_base_columns_into_estimate_items_table.php index ea6c3172..9ab8a7c1 100644 --- a/database/migrations/2021_07_16_073441_add_base_columns_into_estimate_items_table.php +++ b/database/migrations/2021_07_16_073441_add_base_columns_into_estimate_items_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddBaseColumnsIntoEstimateItemsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('estimate_items', function (Blueprint $table) { $table->decimal('exchange_rate', 19, 6)->nullable(); @@ -24,10 +22,8 @@ class AddBaseColumnsIntoEstimateItemsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('estimate_items', function (Blueprint $table) { $table->dropColumn([ @@ -39,4 +35,4 @@ class AddBaseColumnsIntoEstimateItemsTable extends Migration ]); }); } -} +}; diff --git a/database/migrations/2021_07_16_074810_add_base_column_into_payments_table.php b/database/migrations/2021_07_16_074810_add_base_column_into_payments_table.php index 18aa0f2d..22bf083b 100644 --- a/database/migrations/2021_07_16_074810_add_base_column_into_payments_table.php +++ b/database/migrations/2021_07_16_074810_add_base_column_into_payments_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddBaseColumnIntoPaymentsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('payments', function (Blueprint $table) { $table->decimal('exchange_rate', 19, 6)->nullable(); @@ -21,13 +19,11 @@ class AddBaseColumnIntoPaymentsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('payments', function (Blueprint $table) { $table->dropColumn('base_amount'); }); } -} +}; diff --git a/database/migrations/2021_07_16_075100_add_base_values_into_taxes_table.php b/database/migrations/2021_07_16_075100_add_base_values_into_taxes_table.php index 15ca8928..302675d5 100644 --- a/database/migrations/2021_07_16_075100_add_base_values_into_taxes_table.php +++ b/database/migrations/2021_07_16_075100_add_base_values_into_taxes_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddBaseValuesIntoTaxesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('taxes', function (Blueprint $table) { $table->decimal('exchange_rate', 19, 6)->nullable(); @@ -21,10 +19,8 @@ class AddBaseValuesIntoTaxesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('taxes', function (Blueprint $table) { $table->dropColumn([ @@ -33,4 +29,4 @@ class AddBaseValuesIntoTaxesTable extends Migration ]); }); } -} +}; diff --git a/database/migrations/2021_07_16_080253_add_currency_id_into_invoices_table.php b/database/migrations/2021_07_16_080253_add_currency_id_into_invoices_table.php index ab49fd0b..dde19c6f 100644 --- a/database/migrations/2021_07_16_080253_add_currency_id_into_invoices_table.php +++ b/database/migrations/2021_07_16_080253_add_currency_id_into_invoices_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddCurrencyIdIntoInvoicesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('invoices', function (Blueprint $table) { $table->unsignedInteger('currency_id')->nullable(); @@ -21,10 +19,8 @@ class AddCurrencyIdIntoInvoicesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('invoices', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -33,4 +29,4 @@ class AddCurrencyIdIntoInvoicesTable extends Migration $table->dropColumn('currency_id'); }); } -} +}; diff --git a/database/migrations/2021_07_16_080508_add_currency_id_into_payments_table.php b/database/migrations/2021_07_16_080508_add_currency_id_into_payments_table.php index b68ef26d..1938af28 100644 --- a/database/migrations/2021_07_16_080508_add_currency_id_into_payments_table.php +++ b/database/migrations/2021_07_16_080508_add_currency_id_into_payments_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddCurrencyIdIntoPaymentsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('payments', function (Blueprint $table) { $table->unsignedInteger('currency_id')->nullable(); @@ -21,10 +19,8 @@ class AddCurrencyIdIntoPaymentsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('payments', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -33,4 +29,4 @@ class AddCurrencyIdIntoPaymentsTable extends Migration $table->dropColumn('currency_id'); }); } -} +}; diff --git a/database/migrations/2021_07_16_080611_add_currency_id_into_items_table.php b/database/migrations/2021_07_16_080611_add_currency_id_into_items_table.php index f2a27429..f654316a 100644 --- a/database/migrations/2021_07_16_080611_add_currency_id_into_items_table.php +++ b/database/migrations/2021_07_16_080611_add_currency_id_into_items_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddCurrencyIdIntoItemsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('items', function (Blueprint $table) { $table->unsignedInteger('currency_id')->nullable(); @@ -21,10 +19,8 @@ class AddCurrencyIdIntoItemsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('items', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -33,4 +29,4 @@ class AddCurrencyIdIntoItemsTable extends Migration $table->dropColumn('currency_id'); }); } -} +}; diff --git a/database/migrations/2021_07_16_080702_add_currency_id_into_taxes_table.php b/database/migrations/2021_07_16_080702_add_currency_id_into_taxes_table.php index f21c0ad1..3570b9dc 100644 --- a/database/migrations/2021_07_16_080702_add_currency_id_into_taxes_table.php +++ b/database/migrations/2021_07_16_080702_add_currency_id_into_taxes_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddCurrencyIdIntoTaxesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('taxes', function (Blueprint $table) { $table->unsignedInteger('currency_id')->nullable(); @@ -21,10 +19,8 @@ class AddCurrencyIdIntoTaxesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('taxes', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -33,4 +29,4 @@ class AddCurrencyIdIntoTaxesTable extends Migration $table->dropColumn('currency_id'); }); } -} +}; diff --git a/database/migrations/2021_07_16_112429_add_currency_id_into_estimates_table.php b/database/migrations/2021_07_16_112429_add_currency_id_into_estimates_table.php index 17d6f115..d77452b8 100644 --- a/database/migrations/2021_07_16_112429_add_currency_id_into_estimates_table.php +++ b/database/migrations/2021_07_16_112429_add_currency_id_into_estimates_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddCurrencyIdIntoEstimatesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('estimates', function (Blueprint $table) { $table->unsignedInteger('currency_id')->nullable(); @@ -21,10 +19,8 @@ class AddCurrencyIdIntoEstimatesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('estimates', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -33,4 +29,4 @@ class AddCurrencyIdIntoEstimatesTable extends Migration $table->dropColumn('currency_id'); }); } -} +}; diff --git a/database/migrations/2021_08_05_103535_create_exchange_rate_logs_table.php b/database/migrations/2021_08_05_103535_create_exchange_rate_logs_table.php index c3dc9cf5..2f392b64 100644 --- a/database/migrations/2021_08_05_103535_create_exchange_rate_logs_table.php +++ b/database/migrations/2021_08_05_103535_create_exchange_rate_logs_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateExchangeRateLogsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('exchange_rate_logs', function (Blueprint $table) { $table->id(); @@ -28,11 +26,9 @@ class CreateExchangeRateLogsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('exchange_rate_logs'); } -} +}; diff --git a/database/migrations/2021_08_16_091413_add_tax_per_item_into_items_table.php b/database/migrations/2021_08_16_091413_add_tax_per_item_into_items_table.php index 34a259be..90e3215e 100644 --- a/database/migrations/2021_08_16_091413_add_tax_per_item_into_items_table.php +++ b/database/migrations/2021_08_16_091413_add_tax_per_item_into_items_table.php @@ -1,18 +1,16 @@ boolean('tax_per_item')->default(false); @@ -32,13 +30,11 @@ class AddTaxPerItemIntoItemsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('items', function (Blueprint $table) { $table->dropColumn('tax_per_item'); }); } -} +}; diff --git a/database/migrations/2021_08_19_063244_add_base_columns_to_expense_table.php b/database/migrations/2021_08_19_063244_add_base_columns_to_expense_table.php index 63c327db..599b13d7 100644 --- a/database/migrations/2021_08_19_063244_add_base_columns_to_expense_table.php +++ b/database/migrations/2021_08_19_063244_add_base_columns_to_expense_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddBaseColumnsToExpenseTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('expenses', function (Blueprint $table) { $table->decimal('exchange_rate', 19, 6)->nullable(); @@ -22,10 +20,8 @@ class AddBaseColumnsToExpenseTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('expenses', function (Blueprint $table) { $table->dropColumn([ @@ -35,4 +31,4 @@ class AddBaseColumnsToExpenseTable extends Migration ]); }); } -} +}; diff --git a/database/migrations/2021_09_28_081543_create_exchange_rate_providers_table.php b/database/migrations/2021_09_28_081543_create_exchange_rate_providers_table.php index 7a303d02..7c163614 100644 --- a/database/migrations/2021_09_28_081543_create_exchange_rate_providers_table.php +++ b/database/migrations/2021_09_28_081543_create_exchange_rate_providers_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateExchangeRateProvidersTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('exchange_rate_providers', function (Blueprint $table) { $table->id(); @@ -28,11 +26,9 @@ class CreateExchangeRateProvidersTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('exchange_rate_providers'); } -} +}; diff --git a/database/migrations/2021_09_28_130822_add_sequence_column.php b/database/migrations/2021_09_28_130822_add_sequence_column.php index 56518fdd..fe702b5b 100644 --- a/database/migrations/2021_09_28_130822_add_sequence_column.php +++ b/database/migrations/2021_09_28_130822_add_sequence_column.php @@ -1,19 +1,17 @@ string('prefix')->nullable()->after('id'); @@ -80,10 +78,8 @@ class AddSequenceColumn extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('invoices', function (Blueprint $table) { $table->dropColumn('sequence_number'); @@ -98,4 +94,4 @@ class AddSequenceColumn extends Migration $table->dropColumn('customer_sequence_number'); }); } -} +}; diff --git a/database/migrations/2021_10_06_100539_add_recurring_invoice_id_to_taxes_table.php b/database/migrations/2021_10_06_100539_add_recurring_invoice_id_to_taxes_table.php index 413f3fd6..aadbe96f 100644 --- a/database/migrations/2021_10_06_100539_add_recurring_invoice_id_to_taxes_table.php +++ b/database/migrations/2021_10_06_100539_add_recurring_invoice_id_to_taxes_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddRecurringInvoiceIdToTaxesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('taxes', function (Blueprint $table) { $table->unsignedBigInteger('recurring_invoice_id')->nullable(); @@ -21,10 +19,8 @@ class AddRecurringInvoiceIdToTaxesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('taxes', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -33,4 +29,4 @@ class AddRecurringInvoiceIdToTaxesTable extends Migration $table->dropColumn('recurring_invoice_id'); }); } -} +}; diff --git a/database/migrations/2021_11_13_051127_add_payment_method_to_expense_table.php b/database/migrations/2021_11_13_051127_add_payment_method_to_expense_table.php index 4208af90..423e8b29 100644 --- a/database/migrations/2021_11_13_051127_add_payment_method_to_expense_table.php +++ b/database/migrations/2021_11_13_051127_add_payment_method_to_expense_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddPaymentMethodToExpenseTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('expenses', function (Blueprint $table) { $table->integer('payment_method_id')->unsigned()->nullable(); @@ -21,10 +19,8 @@ class AddPaymentMethodToExpenseTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('expenses', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -33,4 +29,4 @@ class AddPaymentMethodToExpenseTable extends Migration $table->dropColumn('payment_method_id'); }); } -} +}; diff --git a/database/migrations/2021_11_13_114808_calculate_base_values_for_existing_data.php b/database/migrations/2021_11_13_114808_calculate_base_values_for_existing_data.php index 441ee8c2..acaf68fa 100644 --- a/database/migrations/2021_11_13_114808_calculate_base_values_for_existing_data.php +++ b/database/migrations/2021_11_13_114808_calculate_base_values_for_existing_data.php @@ -1,19 +1,17 @@ first(); @@ -134,11 +132,9 @@ class CalculateBaseValuesForExistingData extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { // } -} +}; diff --git a/database/migrations/2021_11_23_092111_add_new_company_settings.php b/database/migrations/2021_11_23_092111_add_new_company_settings.php index cc5df0ab..775d1a16 100644 --- a/database/migrations/2021_11_23_092111_add_new_company_settings.php +++ b/database/migrations/2021_11_23_092111_add_new_company_settings.php @@ -1,17 +1,15 @@ files('/app/pdf/invoice'); @@ -35,11 +33,9 @@ class MigrateTemplatesFromVersion4 extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { // } -} +}; diff --git a/database/migrations/2021_12_02_123007_update_crater_version_502.php b/database/migrations/2021_12_02_123007_update_crater_version_502.php index 07ee4380..f62017e1 100644 --- a/database/migrations/2021_12_02_123007_update_crater_version_502.php +++ b/database/migrations/2021_12_02_123007_update_crater_version_502.php @@ -1,27 +1,23 @@ id(); @@ -30,11 +28,9 @@ class CreateTransactionsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('transactions'); } -} +}; diff --git a/database/migrations/2021_12_04_123315_add_transaction_id_to_payments_table.php b/database/migrations/2021_12_04_123315_add_transaction_id_to_payments_table.php index 8267f16e..87537dc8 100644 --- a/database/migrations/2021_12_04_123315_add_transaction_id_to_payments_table.php +++ b/database/migrations/2021_12_04_123315_add_transaction_id_to_payments_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddTransactionIdToPaymentsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('payments', function (Blueprint $table) { $table->unsignedBigInteger('transaction_id')->nullable(); @@ -21,10 +19,8 @@ class AddTransactionIdToPaymentsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('payments', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -33,4 +29,4 @@ class AddTransactionIdToPaymentsTable extends Migration $table->dropColumn('transaction_id'); }); } -} +}; diff --git a/database/migrations/2021_12_04_123415_add_type_to_payment_methods_table.php b/database/migrations/2021_12_04_123415_add_type_to_payment_methods_table.php index cb374abe..587b9daa 100644 --- a/database/migrations/2021_12_04_123415_add_type_to_payment_methods_table.php +++ b/database/migrations/2021_12_04_123415_add_type_to_payment_methods_table.php @@ -1,18 +1,16 @@ string('driver')->nullable(); @@ -34,10 +32,8 @@ class AddTypeToPaymentMethodsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('payment_methods', function (Blueprint $table) { $table->dropColumn([ @@ -48,4 +44,4 @@ class AddTypeToPaymentMethodsTable extends Migration ]); }); } -} +}; diff --git a/database/migrations/2021_12_06_131201_update_crater_version_504.php b/database/migrations/2021_12_06_131201_update_crater_version_504.php index fc15e94a..2609ed46 100644 --- a/database/migrations/2021_12_06_131201_update_crater_version_504.php +++ b/database/migrations/2021_12_06_131201_update_crater_version_504.php @@ -1,27 +1,23 @@ first(); if ($user) { @@ -35,11 +33,9 @@ class CalculateBaseValuesForExpenses extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { // } -} +}; diff --git a/database/migrations/2021_12_09_062434_update_crater_version_505.php b/database/migrations/2021_12_09_062434_update_crater_version_505.php index e4e2ca19..7391ce75 100644 --- a/database/migrations/2021_12_09_062434_update_crater_version_505.php +++ b/database/migrations/2021_12_09_062434_update_crater_version_505.php @@ -1,27 +1,23 @@ dropUnique(['email']); @@ -20,11 +18,9 @@ class DropUniqueEmailOnCustomersTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { // } -} +}; diff --git a/database/migrations/2021_12_10_121739_update_creater_version_506.php b/database/migrations/2021_12_10_121739_update_creater_version_506.php index d83531a9..5a70461f 100644 --- a/database/migrations/2021_12_10_121739_update_creater_version_506.php +++ b/database/migrations/2021_12_10_121739_update_creater_version_506.php @@ -1,27 +1,23 @@ ', null)->get(); @@ -24,11 +22,9 @@ class CalculateBaseAmountOfPaymentsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { // } -} +}; diff --git a/database/migrations/2021_12_13_093701_add_fields_to_email_logs_table.php b/database/migrations/2021_12_13_093701_add_fields_to_email_logs_table.php index 5aa4904f..3a053d87 100644 --- a/database/migrations/2021_12_13_093701_add_fields_to_email_logs_table.php +++ b/database/migrations/2021_12_13_093701_add_fields_to_email_logs_table.php @@ -1,20 +1,18 @@ string('token')->unique()->nullable(); @@ -38,13 +36,11 @@ class AddFieldsToEmailLogsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('email_logs', function (Blueprint $table) { $table->dropColumn('token'); }); } -} +}; diff --git a/database/migrations/2021_12_15_053223_create_modules_table.php b/database/migrations/2021_12_15_053223_create_modules_table.php index af7360ac..ce2428a8 100644 --- a/database/migrations/2021_12_15_053223_create_modules_table.php +++ b/database/migrations/2021_12_15_053223_create_modules_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateModulesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('modules', function (Blueprint $table) { $table->id(); @@ -25,11 +23,9 @@ class CreateModulesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('modules'); } -} +}; diff --git a/database/migrations/2021_12_21_102521_change_enable_portal_field_of_customers_table.php b/database/migrations/2021_12_21_102521_change_enable_portal_field_of_customers_table.php index 4492d57d..2343c4b0 100644 --- a/database/migrations/2021_12_21_102521_change_enable_portal_field_of_customers_table.php +++ b/database/migrations/2021_12_21_102521_change_enable_portal_field_of_customers_table.php @@ -1,18 +1,16 @@ boolean('enable_portal')->default(false)->change(); @@ -30,11 +28,9 @@ class ChangeEnablePortalFieldOfCustomersTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { // } -} +}; diff --git a/database/migrations/2021_12_31_042453_add_type_to_tax_types_table.php b/database/migrations/2021_12_31_042453_add_type_to_tax_types_table.php index ae2c4882..aedcd531 100644 --- a/database/migrations/2021_12_31_042453_add_type_to_tax_types_table.php +++ b/database/migrations/2021_12_31_042453_add_type_to_tax_types_table.php @@ -1,18 +1,16 @@ enum('type', ['GENERAL', 'MODULE'])->default(TaxType::TYPE_GENERAL); @@ -30,13 +28,11 @@ class AddTypeToTaxTypesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('tax_types', function (Blueprint $table) { $table->dropColumn('type'); }); } -} +}; diff --git a/database/migrations/2022_01_05_101841_add_sales_tax_fields_to_invoices_table.php b/database/migrations/2022_01_05_101841_add_sales_tax_fields_to_invoices_table.php index 558d380e..46f2255e 100644 --- a/database/migrations/2022_01_05_101841_add_sales_tax_fields_to_invoices_table.php +++ b/database/migrations/2022_01_05_101841_add_sales_tax_fields_to_invoices_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddSalesTaxFieldsToInvoicesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('invoices', function (Blueprint $table) { $table->string('sales_tax_type')->nullable(); @@ -21,10 +19,8 @@ class AddSalesTaxFieldsToInvoicesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('invoices', function (Blueprint $table) { $table->dropColumn([ @@ -33,4 +29,4 @@ class AddSalesTaxFieldsToInvoicesTable extends Migration ]); }); } -} +}; diff --git a/database/migrations/2022_01_05_102538_add_sales_tax_fields_to_estimates_table.php b/database/migrations/2022_01_05_102538_add_sales_tax_fields_to_estimates_table.php index 8b5675e4..6f2f6835 100644 --- a/database/migrations/2022_01_05_102538_add_sales_tax_fields_to_estimates_table.php +++ b/database/migrations/2022_01_05_102538_add_sales_tax_fields_to_estimates_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddSalesTaxFieldsToEstimatesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('estimates', function (Blueprint $table) { $table->string('sales_tax_type')->nullable(); @@ -21,10 +19,8 @@ class AddSalesTaxFieldsToEstimatesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('estimates', function (Blueprint $table) { $table->dropColumn([ @@ -33,4 +29,4 @@ class AddSalesTaxFieldsToEstimatesTable extends Migration ]); }); } -} +}; diff --git a/database/migrations/2022_01_05_103607_add_sales_tax_fields_to_recurring_invoices_table.php b/database/migrations/2022_01_05_103607_add_sales_tax_fields_to_recurring_invoices_table.php index cbe6dc6d..49758d7f 100644 --- a/database/migrations/2022_01_05_103607_add_sales_tax_fields_to_recurring_invoices_table.php +++ b/database/migrations/2022_01_05_103607_add_sales_tax_fields_to_recurring_invoices_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddSalesTaxFieldsToRecurringInvoicesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('recurring_invoices', function (Blueprint $table) { $table->string('sales_tax_type')->nullable(); @@ -21,10 +19,8 @@ class AddSalesTaxFieldsToRecurringInvoicesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('recurring_invoices', function (Blueprint $table) { $table->dropColumn([ @@ -33,4 +29,4 @@ class AddSalesTaxFieldsToRecurringInvoicesTable extends Migration ]); }); } -} +}; diff --git a/database/migrations/2022_01_05_115423_update_crater_version_600.php b/database/migrations/2022_01_05_115423_update_crater_version_600.php index 66e08432..e00ad047 100644 --- a/database/migrations/2022_01_05_115423_update_crater_version_600.php +++ b/database/migrations/2022_01_05_115423_update_crater_version_600.php @@ -1,27 +1,23 @@ get(); @@ -25,11 +23,9 @@ class AddSlugToCompanies extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { // } -} +}; diff --git a/database/migrations/2022_01_12_132859_update_crater_version_601.php b/database/migrations/2022_01_12_132859_update_crater_version_601.php index 669d7824..1682eb46 100644 --- a/database/migrations/2022_01_12_132859_update_crater_version_601.php +++ b/database/migrations/2022_01_12_132859_update_crater_version_601.php @@ -1,27 +1,23 @@ string('value')->nullable()->change(); @@ -20,11 +18,9 @@ class UpdateValueColumnToNullableOnSettingsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { // } -} +}; diff --git a/database/migrations/2022_03_02_120210_add_overdue_to_invoices_table.php b/database/migrations/2022_03_02_120210_add_overdue_to_invoices_table.php index d43f6c0d..cf24295b 100644 --- a/database/migrations/2022_03_02_120210_add_overdue_to_invoices_table.php +++ b/database/migrations/2022_03_02_120210_add_overdue_to_invoices_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddOverdueToInvoicesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('invoices', function (Blueprint $table) { $table->boolean('overdue')->default(false); @@ -20,13 +18,11 @@ class AddOverdueToInvoicesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('invoices', function (Blueprint $table) { $table->dropColumn(['overdue']); }); } -} +}; diff --git a/database/migrations/2022_03_03_060121_crater_version_605.php b/database/migrations/2022_03_03_060121_crater_version_605.php index d408f1ae..7796cb51 100644 --- a/database/migrations/2022_03_03_060121_crater_version_605.php +++ b/database/migrations/2022_03_03_060121_crater_version_605.php @@ -1,27 +1,23 @@ get(); @@ -25,11 +23,9 @@ class ChangeOverDueStatusToSent extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { // } -} +}; diff --git a/database/migrations/2022_03_04_051438_calculate_base_values_for_invoice_items.php b/database/migrations/2022_03_04_051438_calculate_base_values_for_invoice_items.php index 62b64af6..9e8c7eb6 100644 --- a/database/migrations/2022_03_04_051438_calculate_base_values_for_invoice_items.php +++ b/database/migrations/2022_03_04_051438_calculate_base_values_for_invoice_items.php @@ -1,17 +1,15 @@ get(); @@ -28,11 +26,9 @@ class CalculateBaseValuesForInvoiceItems extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { // } -} +}; diff --git a/database/migrations/2022_03_06_070829_update_crater_version_606.php b/database/migrations/2022_03_06_070829_update_crater_version_606.php index 15af2bb2..59ec5f15 100644 --- a/database/migrations/2022_03_06_070829_update_crater_version_606.php +++ b/database/migrations/2022_03_06_070829_update_crater_version_606.php @@ -1,27 +1,23 @@ dropColumn('generated_conversions'); diff --git a/database/migrations/2024_02_04_005632_update_version_100.php b/database/migrations/2024_02_04_005632_update_version_100.php index fbdbbbea..db039810 100644 --- a/database/migrations/2024_02_04_005632_update_version_100.php +++ b/database/migrations/2024_02_04_005632_update_version_100.php @@ -1,7 +1,7 @@ bigInteger('amount')->change(); @@ -20,13 +18,11 @@ class TaxesAmountAsSigned extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('taxes', function (Blueprint $table) { $table->unsignedBigInteger('amount')->change(); }); } -} +}; diff --git a/database/migrations/2024_02_11_075831_update_version_110.php b/database/migrations/2024_02_11_075831_update_version_110.php index 69227518..fa65cb57 100644 --- a/database/migrations/2024_02_11_075831_update_version_110.php +++ b/database/migrations/2024_02_11_075831_update_version_110.php @@ -1,8 +1,8 @@ delete(); $countries = [ diff --git a/database/seeders/CurrenciesTableSeeder.php b/database/seeders/CurrenciesTableSeeder.php index b6cc6d98..aca775ca 100644 --- a/database/seeders/CurrenciesTableSeeder.php +++ b/database/seeders/CurrenciesTableSeeder.php @@ -2,17 +2,15 @@ namespace Database\Seeders; +use App\Models\Currency; use Illuminate\Database\Seeder; -use InvoiceShelf\Models\Currency; class CurrenciesTableSeeder extends Seeder { /** * Run the database seeds. - * - * @return void */ - public function run() + public function run(): void { $currencies = [ [ diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index 96eb3470..aa953ec7 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -8,10 +8,8 @@ class DatabaseSeeder extends Seeder { /** * Run the database seeds. - * - * @return void */ - public function run() + public function run(): void { $this->call(CurrenciesTableSeeder::class); $this->call(CountriesTableSeeder::class); diff --git a/database/seeders/DemoSeeder.php b/database/seeders/DemoSeeder.php index 8da0d714..dc30403a 100644 --- a/database/seeders/DemoSeeder.php +++ b/database/seeders/DemoSeeder.php @@ -2,20 +2,18 @@ namespace Database\Seeders; +use App\Models\Address; +use App\Models\Setting; +use App\Models\User; +use App\Space\InstallUtils; use Illuminate\Database\Seeder; -use InvoiceShelf\Models\Address; -use InvoiceShelf\Models\Setting; -use InvoiceShelf\Models\User; -use InvoiceShelf\Space\InstallUtils; class DemoSeeder extends Seeder { /** * Run the database seeds. - * - * @return void */ - public function run() + public function run(): void { $user = User::whereIs('super admin')->first(); diff --git a/database/seeders/UsersTableSeeder.php b/database/seeders/UsersTableSeeder.php index d5d602fe..99062ad7 100644 --- a/database/seeders/UsersTableSeeder.php +++ b/database/seeders/UsersTableSeeder.php @@ -2,10 +2,10 @@ namespace Database\Seeders; +use App\Models\Company; +use App\Models\Setting; +use App\Models\User; use Illuminate\Database\Seeder; -use InvoiceShelf\Models\Company; -use InvoiceShelf\Models\Setting; -use InvoiceShelf\Models\User; use Silber\Bouncer\BouncerFacade; use Vinkla\Hashids\Facades\Hashids; @@ -13,10 +13,8 @@ class UsersTableSeeder extends Seeder { /** * Run the database seeds. - * - * @return void */ - public function run() + public function run(): void { $user = User::create([ 'email' => 'admin@invoiceshelf.com', diff --git a/phpunit.xml b/phpunit.xml index ea3fbc78..fe0cdc21 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -9,15 +9,15 @@ - - - - - - - - - + + + + + + + + + diff --git a/public/index.php b/public/index.php index d99f5424..947d9896 100644 --- a/public/index.php +++ b/public/index.php @@ -1,62 +1,17 @@ - */ +use Illuminate\Http\Request; + define('LARAVEL_START', microtime(true)); -if (file_exists(__DIR__.'/../storage/framework/maintenance.php')) { - require __DIR__.'/../storage/framework/maintenance.php'; +// Determine if the application is in maintenance mode... +if (file_exists($maintenance = __DIR__.'/../storage/framework/maintenance.php')) { + require $maintenance; } -/* -|-------------------------------------------------------------------------- -| Register The Auto Loader -|-------------------------------------------------------------------------- -| -| Composer provides a convenient, automatically generated class loader for -| our application. We just need to utilize it! We'll simply require it -| into the script here so that we don't have to worry about manual -| loading any of our classes later on. It feels great to relax. -| -*/ - +// Register the Composer autoloader... require __DIR__.'/../vendor/autoload.php'; -/* -|-------------------------------------------------------------------------- -| Turn On The Lights -|-------------------------------------------------------------------------- -| -| We need to illuminate PHP development, so let us turn on the lights. -| This bootstraps the framework and gets it ready for use, then it -| will load up this application so that we can run it and send -| the responses back to the browser and delight our users. -| -*/ - -$app = require_once __DIR__.'/../bootstrap/app.php'; - -/* -|-------------------------------------------------------------------------- -| Run The Application -|-------------------------------------------------------------------------- -| -| Once we have the application, we can handle the incoming request -| through the kernel, and send the associated response back to -| the client's browser allowing them to enjoy the creative -| and wonderful application we have prepared for them. -| -*/ - -$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class); - -$response = $kernel->handle( - $request = Illuminate\Http\Request::capture() -); - -$response->send(); - -$kernel->terminate($request, $response); +// Bootstrap Laravel and handle the request... +(require_once __DIR__.'/../bootstrap/app.php') + ->handleRequest(Request::capture()); diff --git a/resources/views/app.blade.php b/resources/views/app.blade.php index b0e7c318..eb49297c 100644 --- a/resources/views/app.blade.php +++ b/resources/views/app.blade.php @@ -17,7 +17,7 @@ - @foreach(\InvoiceShelf\Services\Module\ModuleFacade::allStyles() as $name => $path) + @foreach(\App\Services\Module\ModuleFacade::allStyles() as $name => $path) @endforeach @@ -29,7 +29,7 @@ @if(isset($current_theme)) theme-{{ $current_theme }} @else theme-{{get_app_setting('admin_portal_theme') ?? 'invoiceshelf'}} @endif "> - @foreach (\InvoiceShelf\Services\Module\ModuleFacade::allScripts() as $name => $path) + @foreach (\App\Services\Module\ModuleFacade::allScripts() as $name => $path) @if (\Illuminate\Support\Str::startsWith($path, ['http://', 'https://'])) @else diff --git a/routes/api.php b/routes/api.php index 60938590..13d5caa3 100644 --- a/routes/api.php +++ b/routes/api.php @@ -1,111 +1,111 @@ group(function () { // Authentication & Password Reset //---------------------------------- - Route::group(['prefix' => 'auth'], function () { + Route::prefix('auth')->group(function () { Route::post('login', [AuthController::class, 'login']); Route::post('logout', [AuthController::class, 'logout'])->middleware('auth:sanctum'); @@ -467,7 +467,7 @@ Route::prefix('/v1')->group(function () { // Authentication & Password Reset //---------------------------------- - Route::group(['prefix' => 'auth'], function () { + Route::prefix('auth')->group(function () { // Send reset password mail Route::post('password/email', [AuthForgotPasswordController::class, 'sendResetLinkEmail']); diff --git a/routes/console.php b/routes/console.php index da55196d..b7f7af44 100644 --- a/routes/console.php +++ b/routes/console.php @@ -1,19 +1,29 @@ comment(Inspiring::quote()); -})->describe('Display an inspiring quote'); +})->purpose('Display an inspiring quote')->hourly(); + +if (InstallUtils::isDbCreated()) { + Schedule::command('check:invoices:status') + ->daily(); + + Schedule::command('check:estimates:status') + ->daily(); + + $recurringInvoices = RecurringInvoice::where('status', 'ACTIVE')->get(); + foreach ($recurringInvoices as $recurringInvoice) { + $timeZone = CompanySetting::getSetting('time_zone', $recurringInvoice->company_id); + + Schedule::call(function () use ($recurringInvoice) { + $recurringInvoice->generateInvoice(); + })->cron($recurringInvoice->frequency)->timezone($timeZone); + } +} diff --git a/routes/web.php b/routes/web.php index 2dd96277..44048b92 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,24 +1,24 @@ make(Kernel::class)->bootstrap(); - - return $app; - } -} diff --git a/tests/Feature/Admin/BackupTest.php b/tests/Feature/Admin/BackupTest.php index 0526fcfd..fcfd4b80 100644 --- a/tests/Feature/Admin/BackupTest.php +++ b/tests/Feature/Admin/BackupTest.php @@ -1,10 +1,10 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/CompanySettingTest.php b/tests/Unit/CompanySettingTest.php index fa5e5116..7a768b94 100644 --- a/tests/Unit/CompanySettingTest.php +++ b/tests/Unit/CompanySettingTest.php @@ -1,8 +1,8 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/CountryTest.php b/tests/Unit/CountryTest.php index a0393763..15901925 100644 --- a/tests/Unit/CountryTest.php +++ b/tests/Unit/CountryTest.php @@ -1,8 +1,8 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/CustomFieldTest.php b/tests/Unit/CustomFieldTest.php index f47193ac..bea128bc 100644 --- a/tests/Unit/CustomFieldTest.php +++ b/tests/Unit/CustomFieldTest.php @@ -1,7 +1,7 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/CustomFieldValueTest.php b/tests/Unit/CustomFieldValueTest.php index d6fdec79..94f5229e 100644 --- a/tests/Unit/CustomFieldValueTest.php +++ b/tests/Unit/CustomFieldValueTest.php @@ -1,7 +1,7 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/CustomerTest.php b/tests/Unit/CustomerTest.php index 1eecaad2..91402664 100644 --- a/tests/Unit/CustomerTest.php +++ b/tests/Unit/CustomerTest.php @@ -1,8 +1,8 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/EstimateItemTest.php b/tests/Unit/EstimateItemTest.php index 38bc6eae..49f15ebf 100644 --- a/tests/Unit/EstimateItemTest.php +++ b/tests/Unit/EstimateItemTest.php @@ -1,9 +1,9 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/EstimateTest.php b/tests/Unit/EstimateTest.php index 3bdd9bb7..deee3444 100644 --- a/tests/Unit/EstimateTest.php +++ b/tests/Unit/EstimateTest.php @@ -1,11 +1,11 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/ExchangeRateLogTest.php b/tests/Unit/ExchangeRateLogTest.php index 46612a59..c3bb434d 100644 --- a/tests/Unit/ExchangeRateLogTest.php +++ b/tests/Unit/ExchangeRateLogTest.php @@ -1,7 +1,7 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/ExpenseCategoryTest.php b/tests/Unit/ExpenseCategoryTest.php index d97ae60f..2232c36c 100644 --- a/tests/Unit/ExpenseCategoryTest.php +++ b/tests/Unit/ExpenseCategoryTest.php @@ -1,7 +1,7 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/ExpenseTest.php b/tests/Unit/ExpenseTest.php index 1389775c..8fc17d44 100644 --- a/tests/Unit/ExpenseTest.php +++ b/tests/Unit/ExpenseTest.php @@ -1,7 +1,7 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/InvoiceItemTest.php b/tests/Unit/InvoiceItemTest.php index 6e51d97f..eae41d04 100644 --- a/tests/Unit/InvoiceItemTest.php +++ b/tests/Unit/InvoiceItemTest.php @@ -1,9 +1,9 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/InvoiceTest.php b/tests/Unit/InvoiceTest.php index a0eb41a8..ad3b75c8 100644 --- a/tests/Unit/InvoiceTest.php +++ b/tests/Unit/InvoiceTest.php @@ -1,11 +1,11 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/ItemTest.php b/tests/Unit/ItemTest.php index 3a453ef4..47dbaf6b 100644 --- a/tests/Unit/ItemTest.php +++ b/tests/Unit/ItemTest.php @@ -1,11 +1,11 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/PaymentMethodTest.php b/tests/Unit/PaymentMethodTest.php index 42337954..a0aa7b6c 100644 --- a/tests/Unit/PaymentMethodTest.php +++ b/tests/Unit/PaymentMethodTest.php @@ -1,7 +1,7 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/PaymentTest.php b/tests/Unit/PaymentTest.php index c8214742..9d2bf577 100644 --- a/tests/Unit/PaymentTest.php +++ b/tests/Unit/PaymentTest.php @@ -1,7 +1,7 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/RecurringInvoiceTest.php b/tests/Unit/RecurringInvoiceTest.php index e3630f23..64d34652 100644 --- a/tests/Unit/RecurringInvoiceTest.php +++ b/tests/Unit/RecurringInvoiceTest.php @@ -1,7 +1,7 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/SettingTest.php b/tests/Unit/SettingTest.php index dadeb068..c433d626 100644 --- a/tests/Unit/SettingTest.php +++ b/tests/Unit/SettingTest.php @@ -1,7 +1,7 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/TaxTypeTest.php b/tests/Unit/TaxTypeTest.php index cb83dbff..8e002587 100644 --- a/tests/Unit/TaxTypeTest.php +++ b/tests/Unit/TaxTypeTest.php @@ -1,7 +1,7 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/UnitTest.php b/tests/Unit/UnitTest.php index 1d8220d0..88c77909 100644 --- a/tests/Unit/UnitTest.php +++ b/tests/Unit/UnitTest.php @@ -1,8 +1,8 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/yarn.lock b/yarn.lock index eadf7a4c..90fa1bee 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,135 +2,130 @@ # yarn lockfile v1 -"@aashutoshrathi/word-wrap@^1.2.3": - version "1.2.6" - resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" - integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== - "@alloc/quick-lru@^5.2.0": version "5.2.0" resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30" integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== -"@babel/parser@^7.23.6": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.9.tgz#7b903b6149b0f8fa7ad564af646c4c38a77fc44b" - integrity sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA== +"@babel/parser@^7.24.4": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.6.tgz#5e030f440c3c6c78d195528c3b688b101a365328" + integrity sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q== -"@esbuild/aix-ppc64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz#d1bc06aedb6936b3b6d313bf809a5a40387d2b7f" - integrity sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA== +"@esbuild/aix-ppc64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz#a70f4ac11c6a1dfc18b8bbb13284155d933b9537" + integrity sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g== -"@esbuild/android-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz#7ad65a36cfdb7e0d429c353e00f680d737c2aed4" - integrity sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA== +"@esbuild/android-arm64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz#db1c9202a5bc92ea04c7b6840f1bbe09ebf9e6b9" + integrity sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg== -"@esbuild/android-arm@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.12.tgz#b0c26536f37776162ca8bde25e42040c203f2824" - integrity sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w== +"@esbuild/android-arm@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.20.2.tgz#3b488c49aee9d491c2c8f98a909b785870d6e995" + integrity sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w== -"@esbuild/android-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.12.tgz#cb13e2211282012194d89bf3bfe7721273473b3d" - integrity sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew== +"@esbuild/android-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.20.2.tgz#3b1628029e5576249d2b2d766696e50768449f98" + integrity sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg== -"@esbuild/darwin-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz#cbee41e988020d4b516e9d9e44dd29200996275e" - integrity sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g== +"@esbuild/darwin-arm64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz#6e8517a045ddd86ae30c6608c8475ebc0c4000bb" + integrity sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA== -"@esbuild/darwin-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz#e37d9633246d52aecf491ee916ece709f9d5f4cd" - integrity sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A== +"@esbuild/darwin-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz#90ed098e1f9dd8a9381695b207e1cff45540a0d0" + integrity sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA== -"@esbuild/freebsd-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz#1ee4d8b682ed363b08af74d1ea2b2b4dbba76487" - integrity sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA== +"@esbuild/freebsd-arm64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz#d71502d1ee89a1130327e890364666c760a2a911" + integrity sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw== -"@esbuild/freebsd-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz#37a693553d42ff77cd7126764b535fb6cc28a11c" - integrity sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg== +"@esbuild/freebsd-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz#aa5ea58d9c1dd9af688b8b6f63ef0d3d60cea53c" + integrity sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw== -"@esbuild/linux-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz#be9b145985ec6c57470e0e051d887b09dddb2d4b" - integrity sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA== +"@esbuild/linux-arm64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz#055b63725df678379b0f6db9d0fa85463755b2e5" + integrity sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A== -"@esbuild/linux-arm@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz#207ecd982a8db95f7b5279207d0ff2331acf5eef" - integrity sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w== +"@esbuild/linux-arm@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz#76b3b98cb1f87936fbc37f073efabad49dcd889c" + integrity sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg== -"@esbuild/linux-ia32@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz#d0d86b5ca1562523dc284a6723293a52d5860601" - integrity sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA== +"@esbuild/linux-ia32@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz#c0e5e787c285264e5dfc7a79f04b8b4eefdad7fa" + integrity sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig== -"@esbuild/linux-loong64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz#9a37f87fec4b8408e682b528391fa22afd952299" - integrity sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA== +"@esbuild/linux-loong64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz#a6184e62bd7cdc63e0c0448b83801001653219c5" + integrity sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ== -"@esbuild/linux-mips64el@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz#4ddebd4e6eeba20b509d8e74c8e30d8ace0b89ec" - integrity sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w== +"@esbuild/linux-mips64el@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz#d08e39ce86f45ef8fc88549d29c62b8acf5649aa" + integrity sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA== -"@esbuild/linux-ppc64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz#adb67dadb73656849f63cd522f5ecb351dd8dee8" - integrity sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg== +"@esbuild/linux-ppc64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz#8d252f0b7756ffd6d1cbde5ea67ff8fd20437f20" + integrity sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg== -"@esbuild/linux-riscv64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz#11bc0698bf0a2abf8727f1c7ace2112612c15adf" - integrity sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg== +"@esbuild/linux-riscv64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz#19f6dcdb14409dae607f66ca1181dd4e9db81300" + integrity sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg== -"@esbuild/linux-s390x@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz#e86fb8ffba7c5c92ba91fc3b27ed5a70196c3cc8" - integrity sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg== +"@esbuild/linux-s390x@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz#3c830c90f1a5d7dd1473d5595ea4ebb920988685" + integrity sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ== -"@esbuild/linux-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz#5f37cfdc705aea687dfe5dfbec086a05acfe9c78" - integrity sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg== +"@esbuild/linux-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz#86eca35203afc0d9de0694c64ec0ab0a378f6fff" + integrity sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw== -"@esbuild/netbsd-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz#29da566a75324e0d0dd7e47519ba2f7ef168657b" - integrity sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA== +"@esbuild/netbsd-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz#e771c8eb0e0f6e1877ffd4220036b98aed5915e6" + integrity sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ== -"@esbuild/openbsd-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz#306c0acbdb5a99c95be98bdd1d47c916e7dc3ff0" - integrity sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw== +"@esbuild/openbsd-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz#9a795ae4b4e37e674f0f4d716f3e226dd7c39baf" + integrity sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ== -"@esbuild/sunos-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz#0933eaab9af8b9b2c930236f62aae3fc593faf30" - integrity sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA== +"@esbuild/sunos-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz#7df23b61a497b8ac189def6e25a95673caedb03f" + integrity sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w== -"@esbuild/win32-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz#773bdbaa1971b36db2f6560088639ccd1e6773ae" - integrity sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A== +"@esbuild/win32-arm64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz#f1ae5abf9ca052ae11c1bc806fb4c0f519bacf90" + integrity sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ== -"@esbuild/win32-ia32@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz#000516cad06354cc84a73f0943a4aa690ef6fd67" - integrity sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ== +"@esbuild/win32-ia32@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz#241fe62c34d8e8461cd708277813e1d0ba55ce23" + integrity sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ== -"@esbuild/win32-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz#c57c8afbb4054a3ab8317591a0b7320360b444ae" - integrity sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA== +"@esbuild/win32-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz#9c907b21e30a52db959ba4f80bb01a0cc403d5cc" + integrity sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ== "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" @@ -159,15 +154,15 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.56.0": - version "8.56.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b" - integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A== +"@eslint/js@8.57.0": + version "8.57.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f" + integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== "@headlessui/vue@^1.7.17": - version "1.7.17" - resolved "https://registry.yarnpkg.com/@headlessui/vue/-/vue-1.7.17.tgz#153a17432a0fa4b58ac55e16e0c883b66bec5f83" - integrity sha512-hmJChv8HzKorxd9F70RGnECAwZfkvmmwOqreuKLWY/19d5qbWnSdw+DNbuA/Uo6X5rb4U5B3NrT+qBKPmjhRqw== + version "1.7.22" + resolved "https://registry.yarnpkg.com/@headlessui/vue/-/vue-1.7.22.tgz#8d55a3a670c3d48beb660b7c47a7a8ff76caacfe" + integrity sha512-Hoffjoolq1rY+LOfJ+B/OvkhuBXXBFgd8oBlN+l1TApma2dB0En0ucFZrwQtb33SmcCqd32EQd0y07oziXWNYg== dependencies: "@tanstack/vue-virtual" "^3.0.0-beta.60" @@ -176,7 +171,7 @@ resolved "https://registry.yarnpkg.com/@heroicons/vue/-/vue-1.0.6.tgz#d8b90734b436eb5a87f40cc300b64a0fb0031f7f" integrity sha512-ng2YcCQrdoQWEFpw+ipFl2rZo8mZ56v0T5+MyfQQvNqfKChwgP6DMloZLW+rl17GEcHkE3H82UTAMKBKZr4+WA== -"@humanwhocodes/config-array@^0.11.13": +"@humanwhocodes/config-array@^0.11.14": version "0.11.14" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== @@ -191,30 +186,30 @@ integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== "@humanwhocodes/object-schema@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917" - integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== + version "2.0.3" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" + integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== -"@intlify/core-base@9.9.0": - version "9.9.0" - resolved "https://registry.yarnpkg.com/@intlify/core-base/-/core-base-9.9.0.tgz#edc55a5e3dbbf8dbbbf656529ed27832c4c4f522" - integrity sha512-C7UXPymDIOlMGSNjAhNLtKgzITc/8BjINK5gNKXg8GiWCTwL6n3MWr55czksxn8RM5wTMz0qcLOFT+adtaVQaA== +"@intlify/core-base@9.13.1": + version "9.13.1" + resolved "https://registry.yarnpkg.com/@intlify/core-base/-/core-base-9.13.1.tgz#bd1f38e665095993ef9b67aeeb794f3cabcb515d" + integrity sha512-+bcQRkJO9pcX8d0gel9ZNfrzU22sZFSA0WVhfXrf5jdJOS24a+Bp8pozuS9sBI9Hk/tGz83pgKfmqcn/Ci7/8w== dependencies: - "@intlify/message-compiler" "9.9.0" - "@intlify/shared" "9.9.0" + "@intlify/message-compiler" "9.13.1" + "@intlify/shared" "9.13.1" -"@intlify/message-compiler@9.9.0": - version "9.9.0" - resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-9.9.0.tgz#7952759329e7af0388afbce7a984820bbeff82eb" - integrity sha512-yDU/jdUm9KuhEzYfS+wuyja209yXgdl1XFhMlKtXEgSFTxz4COZQCRXXbbH8JrAjMsaJ7bdoPSLsKlY6mXG2iA== +"@intlify/message-compiler@9.13.1": + version "9.13.1" + resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-9.13.1.tgz#ff8129badf77db3fb648b8d3cceee87c8033ed0a" + integrity sha512-SKsVa4ajYGBVm7sHMXd5qX70O2XXjm55zdZB3VeMFCvQyvLew/dLvq3MqnaIsTMF1VkkOb9Ttr6tHcMlyPDL9w== dependencies: - "@intlify/shared" "9.9.0" + "@intlify/shared" "9.13.1" source-map-js "^1.0.2" -"@intlify/shared@9.9.0": - version "9.9.0" - resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.9.0.tgz#56907633c0f7b2d50f53269d31e88e7b24d39187" - integrity sha512-1ECUyAHRrzOJbOizyGufYP2yukqGrWXtkmTu4PcswVnWbkcjzk3YQGmJ0bLkM7JZ0ZYAaohLGdYvBYnTOGYJ9g== +"@intlify/shared@9.13.1": + version "9.13.1" + resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.13.1.tgz#202741d11ece1a9c7480bfd3f27afcf9cb8f72e4" + integrity sha512-u3b6BKGhE6j/JeRU6C/RL2FgyJfy6LakbtfeVF8fJXURpZZTzfh3e05J0bu0XPw447Q6/WUp3C4ajv4TMS4YsQ== "@isaacs/cliui@^8.0.2": version "8.0.2" @@ -229,33 +224,33 @@ wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" "@jridgewell/gen-mapping@^0.3.2": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" - integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== dependencies: - "@jridgewell/set-array" "^1.0.1" + "@jridgewell/set-array" "^1.2.1" "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" + "@jridgewell/trace-mapping" "^0.3.24" "@jridgewell/resolve-uri@^3.1.0": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" - integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== -"@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": version "1.4.15" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@jridgewell/trace-mapping@^0.3.9": - version "0.3.22" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz#72a621e5de59f5f1ef792d0793a82ee20f645e4c" - integrity sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw== +"@jridgewell/trace-mapping@^0.3.24": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== dependencies: "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" @@ -296,96 +291,85 @@ resolved "https://registry.yarnpkg.com/@remirror/core-constants/-/core-constants-2.0.2.tgz#f05eccdc69e3a65e7d524b52548f567904a11a1a" integrity sha512-dyHY+sMF0ihPus3O27ODd4+agdHMEmuRdyiZJ2CCWjPV5UFmn17ZbElvk6WOGVE4rdCJKZQCrPV2BcikOMLUGQ== -"@remirror/core-helpers@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@remirror/core-helpers/-/core-helpers-3.0.0.tgz#3a35c2346bc23ebc3cee585b7840b5567755c5f1" - integrity sha512-tusEgQJIqg4qKj6HSBUFcyRnWnziw3neh4T9wOmsPGHFC3w9kl5KSrDb9UAgE8uX6y32FnS7vJ955mWOl3n50A== - dependencies: - "@remirror/core-constants" "^2.0.2" - "@remirror/types" "^1.0.1" - "@types/object.omit" "^3.0.0" - "@types/object.pick" "^1.3.2" - "@types/throttle-debounce" "^2.1.0" - case-anything "^2.1.13" - dash-get "^1.0.2" - deepmerge "^4.3.1" - fast-deep-equal "^3.1.3" - make-error "^1.3.6" - object.omit "^3.0.0" - object.pick "^1.3.0" - throttle-debounce "^3.0.1" +"@rollup/rollup-android-arm-eabi@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz#bbd0e616b2078cd2d68afc9824d1fadb2f2ffd27" + integrity sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ== -"@remirror/types@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@remirror/types/-/types-1.0.1.tgz#768502497a0fbbc23338a1586b893f729310cf70" - integrity sha512-VlZQxwGnt1jtQ18D6JqdIF+uFZo525WEqrfp9BOc3COPpK4+AWCgdnAWL+ho6imWcoINlGjR/+3b6y5C1vBVEA== - dependencies: - type-fest "^2.19.0" +"@rollup/rollup-android-arm64@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz#97255ef6384c5f73f4800c0de91f5f6518e21203" + integrity sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA== -"@rollup/rollup-android-arm-eabi@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.6.tgz#66b8d9cb2b3a474d115500f9ebaf43e2126fe496" - integrity sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg== +"@rollup/rollup-darwin-arm64@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz#b6dd74e117510dfe94541646067b0545b42ff096" + integrity sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w== -"@rollup/rollup-android-arm64@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.6.tgz#46327d5b86420d2307946bec1535fdf00356e47d" - integrity sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw== +"@rollup/rollup-darwin-x64@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz#e07d76de1cec987673e7f3d48ccb8e106d42c05c" + integrity sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA== -"@rollup/rollup-darwin-arm64@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.6.tgz#166987224d2f8b1e2fd28ee90c447d52271d5e90" - integrity sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw== +"@rollup/rollup-linux-arm-gnueabihf@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz#9f1a6d218b560c9d75185af4b8bb42f9f24736b8" + integrity sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA== -"@rollup/rollup-darwin-x64@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.6.tgz#a2e6e096f74ccea6e2f174454c26aef6bcdd1274" - integrity sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog== +"@rollup/rollup-linux-arm-musleabihf@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz#53618b92e6ffb642c7b620e6e528446511330549" + integrity sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A== -"@rollup/rollup-linux-arm-gnueabihf@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.6.tgz#09fcd4c55a2d6160c5865fec708a8e5287f30515" - integrity sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ== +"@rollup/rollup-linux-arm64-gnu@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz#99a7ba5e719d4f053761a698f7b52291cefba577" + integrity sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw== -"@rollup/rollup-linux-arm64-gnu@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.6.tgz#19a3c0b6315c747ca9acf86e9b710cc2440f83c9" - integrity sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ== +"@rollup/rollup-linux-arm64-musl@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz#f53db99a45d9bc00ce94db8a35efa7c3c144a58c" + integrity sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ== -"@rollup/rollup-linux-arm64-musl@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.6.tgz#94aaf95fdaf2ad9335983a4552759f98e6b2e850" - integrity sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ== +"@rollup/rollup-linux-powerpc64le-gnu@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz#cbb0837408fe081ce3435cf3730e090febafc9bf" + integrity sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA== -"@rollup/rollup-linux-riscv64-gnu@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.6.tgz#160510e63f4b12618af4013bddf1761cf9fc9880" - integrity sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA== +"@rollup/rollup-linux-riscv64-gnu@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz#8ed09c1d1262ada4c38d791a28ae0fea28b80cc9" + integrity sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg== -"@rollup/rollup-linux-x64-gnu@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.6.tgz#5ac5d068ce0726bd0a96ca260d5bd93721c0cb98" - integrity sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw== +"@rollup/rollup-linux-s390x-gnu@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz#938138d3c8e0c96f022252a28441dcfb17afd7ec" + integrity sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg== -"@rollup/rollup-linux-x64-musl@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.6.tgz#bafa759ab43e8eab9edf242a8259ffb4f2a57a5d" - integrity sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ== +"@rollup/rollup-linux-x64-gnu@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz#1a7481137a54740bee1ded4ae5752450f155d942" + integrity sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w== -"@rollup/rollup-win32-arm64-msvc@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.6.tgz#1cc3416682e5a20d8f088f26657e6e47f8db468e" - integrity sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA== +"@rollup/rollup-linux-x64-musl@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz#f1186afc601ac4f4fc25fac4ca15ecbee3a1874d" + integrity sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg== -"@rollup/rollup-win32-ia32-msvc@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.6.tgz#7d2251e1aa5e8a1e47c86891fe4547a939503461" - integrity sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ== +"@rollup/rollup-win32-arm64-msvc@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz#ed6603e93636a96203c6915be4117245c1bd2daf" + integrity sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA== -"@rollup/rollup-win32-x64-msvc@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.6.tgz#2c1fb69e02a3f1506f52698cfdc3a8b6386df9a6" - integrity sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ== +"@rollup/rollup-win32-ia32-msvc@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz#14e0b404b1c25ebe6157a15edb9c46959ba74c54" + integrity sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg== + +"@rollup/rollup-win32-x64-msvc@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz#5d694d345ce36b6ecf657349e03eb87297e68da4" + integrity sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g== "@rvxlab/tailwind-plugin-ios-full-height@^1.1.0": version "1.1.0" @@ -410,197 +394,197 @@ mini-svg-data-uri "^1.2.3" "@tailwindcss/typography@^0.5.10": - version "0.5.10" - resolved "https://registry.yarnpkg.com/@tailwindcss/typography/-/typography-0.5.10.tgz#2abde4c6d5c797ab49cf47610830a301de4c1e0a" - integrity sha512-Pe8BuPJQJd3FfRnm6H0ulKIGoMEQS+Vq01R6M5aCrFB/ccR/shT+0kXLjouGC1gFLm9hopTFN+DMP0pfwRWzPw== + version "0.5.13" + resolved "https://registry.yarnpkg.com/@tailwindcss/typography/-/typography-0.5.13.tgz#cd788a4fa4d0ca2506e242d512f377b22c1f7932" + integrity sha512-ADGcJ8dX21dVVHIwTRgzrcunY6YY9uSlAHHGVKvkA+vLc5qLwEszvKts40lx7z0qc4clpjclwLeK5rVCV2P/uw== dependencies: lodash.castarray "^4.4.0" lodash.isplainobject "^4.0.6" lodash.merge "^4.6.2" postcss-selector-parser "6.0.10" -"@tanstack/virtual-core@3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@tanstack/virtual-core/-/virtual-core-3.0.0.tgz#637bee36f0cabf96a1d436887c90f138a7e9378b" - integrity sha512-SYXOBTjJb05rXa2vl55TTwO40A6wKu0R5i1qQwhJYNDIqaIGF7D0HsLw+pJAyi2OvntlEIVusx3xtbbgSUi6zg== +"@tanstack/virtual-core@3.5.0": + version "3.5.0" + resolved "https://registry.yarnpkg.com/@tanstack/virtual-core/-/virtual-core-3.5.0.tgz#108208d0f1d75271300bc5560cf9a85a1fa01e89" + integrity sha512-KnPRCkQTyqhanNC0K63GBG3wA8I+D1fQuVnAvcBF8f13akOKeQp1gSbu6f77zCxhEk727iV5oQnbHLYzHrECLg== "@tanstack/vue-virtual@^3.0.0-beta.60": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@tanstack/vue-virtual/-/vue-virtual-3.0.2.tgz#8f78b0ce20f8429b4529ca6bc2a89c6ab5547963" - integrity sha512-1iFpX+yZswHuf4wrA6GU9yJ/YzQ/8SacABwqghwCkcwrkZbOPLlRSdOAqZ1WQ50SftmfhZpaiZl2KmpV7cgfMQ== + version "3.5.0" + resolved "https://registry.yarnpkg.com/@tanstack/vue-virtual/-/vue-virtual-3.5.0.tgz#5794af3b2d0cc0331ba3f671fba8770e0abd4993" + integrity sha512-wvRQ8sFxn/NDr3WvI5XabhFovZ5MBmpEck2GHpTxYunmV63Ovpl30lRu6W5BPQo35a1GqDZ+Pvzlz6WDWRNqqw== dependencies: - "@tanstack/virtual-core" "3.0.0" + "@tanstack/virtual-core" "3.5.0" -"@tiptap/core@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/core/-/core-2.1.16.tgz#828dd34aa9f49574f1eb7b311c0d69b3a9aacf27" - integrity sha512-nKnV603UyzbcrqhCXTWxDN22Ujb4VNfmKkACms1JOMGo7BVARmMCp2nBsLW8fmgCxmf8AS0LXY63tU7ILWYc5g== +"@tiptap/core@^2.1.16", "@tiptap/core@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/core/-/core-2.4.0.tgz#6f8eee8beb5b89363582366b201ccc4798ac98a9" + integrity sha512-YJSahk8pkxpCs8SflCZfTnJpE7IPyUWIylfgXM2DefjRQa5DZ+c6sNY0s/zbxKYFQ6AuHVX40r9pCfcqHChGxQ== -"@tiptap/extension-blockquote@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-blockquote/-/extension-blockquote-2.1.16.tgz#79e77a4b3d479f02c1ff906a3fd262045925bf6f" - integrity sha512-1OMk8cBrL0VnbnzD3XHx7U4oMDCiXRR7Spfl9JqwC9pS4RosOUBySNxpEBwhSegB0pK6sd7m44qLqj00If+cHA== +"@tiptap/extension-blockquote@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-blockquote/-/extension-blockquote-2.4.0.tgz#0179076ea2fa12e41a198dad087b81d368653b8d" + integrity sha512-nJJy4KsPgQqWTTDOWzFRdjCfG5+QExfZj44dulgDFNh+E66xhamnbM70PklllXJgEcge7xmT5oKM0gKls5XgFw== -"@tiptap/extension-bold@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-bold/-/extension-bold-2.1.16.tgz#6c8cab89a4385fe3f4847fd95ead5355e3d890ab" - integrity sha512-gz2VrBkRRsGBiOHx1qB++VUfpuRdhJp6jlgNqqHFbIkjKr2NB+u7oiH5SbjlL4eG0wlam1QA4jAkXhZgdvkA4g== +"@tiptap/extension-bold@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-bold/-/extension-bold-2.4.0.tgz#b5ced2c3bf51f304890137dbdf394d58c01eb208" + integrity sha512-csnW6hMDEHoRfxcPRLSqeJn+j35Lgtt1YRiOwn7DlS66sAECGRuoGfCvQSPij0TCDp4VCR9if5Sf8EymhnQumQ== -"@tiptap/extension-bubble-menu@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.1.16.tgz#4997de2811ee96648d1b5ba2148bc223840f7db5" - integrity sha512-MwKCmu2kU7+Xln/BvlrolU2hCXgoCoTr4NXJ+3v8A9w7tIq8leADoWacfEee2t3VNnGdXw/Xjza+DAr77JWjGg== +"@tiptap/extension-bubble-menu@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.4.0.tgz#a079329318fc21407f9a3c9c3da6ef72cb0b4ab6" + integrity sha512-s99HmttUtpW3rScWq8rqk4+CGCwergNZbHLTkF6Rp6TSboMwfp+rwL5Q/JkcAG9KGLso1vGyXKbt1xHOvm8zMw== dependencies: tippy.js "^6.3.7" -"@tiptap/extension-bullet-list@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-bullet-list/-/extension-bullet-list-2.1.16.tgz#fabd6c024721e2424f256d00992f9ca414522a5d" - integrity sha512-Cheaep5JShO9TtRslrOObSVKtRQFKozou2ZWDas5sIeef/A/GWPfVTzusfBGE/ItHwZNaDXwJOoVnSUPT8ulfw== +"@tiptap/extension-bullet-list@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-bullet-list/-/extension-bullet-list-2.4.0.tgz#60eea05b5ac8c8e8d615c057559fddb95033abeb" + integrity sha512-9S5DLIvFRBoExvmZ+/ErpTvs4Wf1yOEs8WXlKYUCcZssK7brTFj99XDwpHFA29HKDwma5q9UHhr2OB2o0JYAdw== -"@tiptap/extension-code-block@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-code-block/-/extension-code-block-2.1.16.tgz#aa197def308d9baaaf52f79f55ef103e44d561ce" - integrity sha512-IspVmwg17Vx59W8lEIbVRIeMscJtRCdsif45CkzVv1uSHMl7tmrJh3n8vv/vrB+rnLasQrOEbEKNEqUL3eHlKQ== +"@tiptap/extension-code-block@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-code-block/-/extension-code-block-2.4.0.tgz#b7f1da4825677a2ea6b8e970a1197877551e5dc8" + integrity sha512-QWGdv1D56TBGbbJSj2cIiXGJEKguPiAl9ONzJ/Ql1ZksiQsYwx0YHriXX6TOC//T4VIf6NSClHEtwtxWBQ/Csg== -"@tiptap/extension-code@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-code/-/extension-code-2.1.16.tgz#2e98008001ac55e9a25a4fc1fd9eed639b6dc433" - integrity sha512-2+fVfh3qQORgMRSZ6hn+yW5/rLzlulCzMhdL07G0lWY8/eWEv3p9DCfgw9AOHrrHFim8/MVWyRkrkBM/yHX9FA== +"@tiptap/extension-code@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-code/-/extension-code-2.4.0.tgz#3a9fed3585bf49f445505c2e9ad71fd66e117304" + integrity sha512-wjhBukuiyJMq4cTcK3RBTzUPV24k5n1eEPlpmzku6ThwwkMdwynnMGMAmSF3fErh3AOyOUPoTTjgMYN2d10SJA== -"@tiptap/extension-document@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-document/-/extension-document-2.1.16.tgz#7e2ddf28ac32318aee439b6ee01c8c898be9be14" - integrity sha512-VSOrzGnpI9dJDffFn3ZjmPKYkH/YtYeDl6nqLu7TafRqyLMSEqxxxq/+Qs/7j8jbzq6osslY0sySckSulroIOg== +"@tiptap/extension-document@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-document/-/extension-document-2.4.0.tgz#a396b2cbcc8708aa2a0a41d0be481fda4b61c77b" + integrity sha512-3jRodQJZDGbXlRPERaloS+IERg/VwzpC1IO6YSJR9jVIsBO6xC29P3cKTQlg1XO7p6ZH/0ksK73VC5BzzTwoHg== -"@tiptap/extension-dropcursor@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-dropcursor/-/extension-dropcursor-2.1.16.tgz#6b7d3d3cb0375bba7499c6f9223562008ec983c5" - integrity sha512-voWEIAmxV3f9Q0gc3K89HRq8KFeOVtHJBRHYihZwxMnvq2aMIwdpCx0GbiCd4slQaBLd1ASJHz1uAigVhR2+uA== +"@tiptap/extension-dropcursor@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-dropcursor/-/extension-dropcursor-2.4.0.tgz#8f54908f84a4ab7d2d7de7fc0197511138445740" + integrity sha512-c46HoG2PEEpSZv5rmS5UX/lJ6/kP1iVO0Ax+6JrNfLEIiDULUoi20NqdjolEa38La2VhWvs+o20OviiTOKEE9g== -"@tiptap/extension-floating-menu@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-floating-menu/-/extension-floating-menu-2.1.16.tgz#1ee53b1244ff23653114fdc248d6856a2eaa7974" - integrity sha512-VBT4HBhkKr9S1VExyTb/qfQyZ5F0VJLasUoH8E4kdq3deCeifmTTIOukuXK5QbicFHVQmY2epeU6+w5c/bAcHQ== +"@tiptap/extension-floating-menu@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-floating-menu/-/extension-floating-menu-2.4.0.tgz#75c48b98d0f833251eab70f269ed186f48fc398e" + integrity sha512-vLb9v+htbHhXyty0oaXjT3VC8St4xuGSHWUB9GuAJAQ+NajIO6rBPbLUmm9qM0Eh2zico5mpSD1Qtn5FM6xYzg== dependencies: tippy.js "^6.3.7" -"@tiptap/extension-gapcursor@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-gapcursor/-/extension-gapcursor-2.1.16.tgz#6618458314bb69e1d43c1b9fc4858c8bcd2a5ac8" - integrity sha512-Bgjo0da0W1QOhtnT3NR7GHPmVBZykNRekNGsTA3+nxCjkqh1G32Jt58TBKP3vdLBaww3lhrii0SYVErlFgIJnA== +"@tiptap/extension-gapcursor@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-gapcursor/-/extension-gapcursor-2.4.0.tgz#2a738509d40f5f856492c11e32b10e4462f71216" + integrity sha512-F4y/0J2lseohkFUw9P2OpKhrJ6dHz69ZScABUvcHxjznJLd6+0Zt7014Lw5PA8/m2d/w0fX8LZQ88pZr4quZPQ== -"@tiptap/extension-hard-break@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-hard-break/-/extension-hard-break-2.1.16.tgz#532618d9607fc328c25ea486b64656b8f6841b04" - integrity sha512-H3Bk8Gu5pV7xH8TrzH0WAoXrJVEKsDA6Evyl7H7aCAMAvotQL0ehuuX88bjPMCSAvBXZE39wYnJCJshGbVx0BA== +"@tiptap/extension-hard-break@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-hard-break/-/extension-hard-break-2.4.0.tgz#b5bf5b065827280e450fba8f53d137654509d836" + integrity sha512-3+Z6zxevtHza5IsDBZ4lZqvNR3Kvdqwxq/QKCKu9UhJN1DUjsg/l1Jn2NilSQ3NYkBYh2yJjT8CMo9pQIu776g== -"@tiptap/extension-heading@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-heading/-/extension-heading-2.1.16.tgz#759f7d6bc48be6388f81252a81ef074bd3935b8a" - integrity sha512-vFQuAAnIxDwKjTV+ScSwIaeG4Uhm1cZddnbLTru1EJfIz9VvpHDZKEyL4ZJvWuKMAhCzlw54TQhBCVHqalXyaA== +"@tiptap/extension-heading@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-heading/-/extension-heading-2.4.0.tgz#16302ce691714244c3d3fa92d2db86a5c895a025" + integrity sha512-fYkyP/VMo7YHO76YVrUjd95Qeo0cubWn/Spavmwm1gLTHH/q7xMtbod2Z/F0wd6QHnc7+HGhO7XAjjKWDjldaw== -"@tiptap/extension-history@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-history/-/extension-history-2.1.16.tgz#22d130d5b8bd4133d43be3a32c6bb26b863e5710" - integrity sha512-9YHPf8Xqqp5CQy1hJonkBzROj0ZHR1ZaIk9IaLlAPTpdkrUDXV9SC7qp3lozQsMg4vmU3K6H5VQo4ADpnR00OQ== +"@tiptap/extension-history@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-history/-/extension-history-2.4.0.tgz#1dbf8410c091175627414d48a0d857232a8f4094" + integrity sha512-gr5qsKAXEVGr1Lyk1598F7drTaEtAxqZiuuSwTCzZzkiwgEQsWMWTWc9F8FlneCEaqe1aIYg6WKWlmYPaFwr0w== -"@tiptap/extension-horizontal-rule@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.1.16.tgz#484a5c29d4e708cefc50b05dccc4489e140a3fa1" - integrity sha512-Q+Zp0lJF7212YIuZnbMmn4KC1MZoZjQIuvSd+DOgCwKSeUcTXBbljDjOiN8yrY134r+A4fFM7KHTXWYqZGZQug== +"@tiptap/extension-horizontal-rule@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.4.0.tgz#7f27c0778004602686251af7e2f7a8461a3d77ba" + integrity sha512-yDgxy+YxagcEsBbdWvbQiXYxsv3noS1VTuGwc9G7ZK9xPmBHJ5y0agOkB7HskwsZvJHoaSqNRsh7oZTkf0VR3g== -"@tiptap/extension-italic@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-italic/-/extension-italic-2.1.16.tgz#742daedcc08cafe6a3252b9d29822e7d8ef70887" - integrity sha512-6mFGPBGxd2aICJ5Q3zYxuXO8slKoOP/PsSjEQn1bjs3h8Q3mPxHX290ePVp728o5F0myM9sxKSz2V6/VeuS/Yw== +"@tiptap/extension-italic@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-italic/-/extension-italic-2.4.0.tgz#42ab003e04e1e8d825f698914c0e80ac849144f1" + integrity sha512-aaW/L9q+KNHHK+X73MPloHeIsT191n3VLd3xm6uUcFDnUNvzYJ/q65/1ZicdtCaOLvTutxdrEvhbkrVREX6a8g== -"@tiptap/extension-list-item@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-list-item/-/extension-list-item-2.1.16.tgz#f098f58b027c498ce1bac8d2b8e9b85d04383818" - integrity sha512-RLUodzFispIe1adarCEzf+OfaGZna/WR/k/HqPnbflSiJ6/I2P5MqI+ELjGGvc53eanf3+KpsHlB2Pganp8sMA== +"@tiptap/extension-list-item@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-list-item/-/extension-list-item-2.4.0.tgz#a97a48850b81e94b9a60cc2aa16e515aa5311456" + integrity sha512-reUVUx+2cI2NIAqMZhlJ9uK/+zvRzm1GTmlU2Wvzwc7AwLN4yemj6mBDsmBLEXAKPvitfLh6EkeHaruOGymQtg== -"@tiptap/extension-ordered-list@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-ordered-list/-/extension-ordered-list-2.1.16.tgz#8c66157bfd5158a41f8678490e08c59cd305aa6a" - integrity sha512-6QLUm90wz2lfzWGV4fX5NOOFA8zKlcDBNrTeOd0V7H4fcafLmANqU/5o4LLNJmK8y8f1YAvmHr9xgciqggGJJA== +"@tiptap/extension-ordered-list@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-ordered-list/-/extension-ordered-list-2.4.0.tgz#6cf82e10d7e7f7cc44156d29b0b71a22dec31612" + integrity sha512-Zo0c9M0aowv+2+jExZiAvhCB83GZMjZsxywmuOrdUbq5EGYKb7q8hDyN3hkrktVHr9UPXdPAYTmLAHztTOHYRA== -"@tiptap/extension-paragraph@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-paragraph/-/extension-paragraph-2.1.16.tgz#736be2551343bedb71277eadc3544af7b28149bc" - integrity sha512-JwCKSFjBLd9xAmxLe7hf1h4AucDvkGTfDb/wA1jId64g+uf0/tm6RDjnk/QD+D2YzoLGFLjQm0GAdPXTmyTPdA== +"@tiptap/extension-paragraph@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-paragraph/-/extension-paragraph-2.4.0.tgz#5b9aea8775937b327bbe6754be12ae3144fb09ff" + integrity sha512-+yse0Ow67IRwcACd9K/CzBcxlpr9OFnmf0x9uqpaWt1eHck1sJnti6jrw5DVVkyEBHDh/cnkkV49gvctT/NyCw== -"@tiptap/extension-strike@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-strike/-/extension-strike-2.1.16.tgz#cde257906c9815fd90aa74d6f8ea7325881c1c8d" - integrity sha512-Z1hmBK1QWMMGDV2MJ3KBDiMuzcScjyx88cP5ln5G7626Zxeqywf84KF+2WyHBzJWfwMWpAouzwHKe9ld39Vu1w== +"@tiptap/extension-strike@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-strike/-/extension-strike-2.4.0.tgz#f09c4f51f7fed01c356026d7e8d8a1d1f2ac8f18" + integrity sha512-pE1uN/fQPOMS3i+zxPYMmPmI3keubnR6ivwM+KdXWOMnBiHl9N4cNpJgq1n2eUUGKLurC2qrQHpnVyGAwBS6Vg== "@tiptap/extension-text-align@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-text-align/-/extension-text-align-2.1.16.tgz#fc3575635849adb99f4ab4923b5b309ff7157ce0" - integrity sha512-iyRqOZGoUl/yd2TZ+tvuRRxOym0bbE6+BoImd9TrF2bpYLSMt3wc1IzN2+jRGPkTtTnFbKLiFoyNZyYYyaxzkA== + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-text-align/-/extension-text-align-2.4.0.tgz#15bda62a8f0d0feaede0632a15fb2d032ff81754" + integrity sha512-wpRe2OiLXTK4kTy4RZEPnPjFbK16kYHPAx1552hLXrOdyxbS7Sdbo+w4x7aGLLZZqZdudCFfkdtnqrc7PDVZdA== -"@tiptap/extension-text@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-text/-/extension-text-2.1.16.tgz#188d46545450f1b1969d70853f24ab14437827ec" - integrity sha512-XzSJmAj32uYpaL/9FX3tRSU52DwZ9w+3yEffIcSN9MSwioqLsSolXOz7TuJfW6lSTar1ml9UPlRqX4dpayUTDQ== +"@tiptap/extension-text@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/extension-text/-/extension-text-2.4.0.tgz#a3a5f45a9856d513e574f24e2c9b6028273f8eb3" + integrity sha512-LV0bvE+VowE8IgLca7pM8ll7quNH+AgEHRbSrsI3SHKDCYB9gTHMjWaAkgkUVaO1u0IfCrjnCLym/PqFKa+vvg== "@tiptap/pm@^2.0.0": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/pm/-/pm-2.1.16.tgz#1f43024e2660f2a9fe3057b71e57f0550f7d3387" - integrity sha512-yibLkjtgbBSnWCXbDyKM5kgIGLfMvfbRfFzb8T0uz4PI/L54o0a4fiWSW5Fg10B5+o+NAXW2wMxoId8/Tw91lQ== + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/pm/-/pm-2.4.0.tgz#f6fe81d24569da584658d2e8a3a378aea3619fb3" + integrity sha512-B1HMEqGS4MzIVXnpgRZDLm30mxDWj51LkBT/if1XD+hj5gm8B9Q0c84bhvODX6KIs+c6z+zsY9VkVu8w9Yfgxg== dependencies: - prosemirror-changeset "^2.2.0" - prosemirror-collab "^1.3.0" - prosemirror-commands "^1.3.1" - prosemirror-dropcursor "^1.5.0" - prosemirror-gapcursor "^1.3.1" - prosemirror-history "^1.3.0" - prosemirror-inputrules "^1.2.0" - prosemirror-keymap "^1.2.0" - prosemirror-markdown "^1.10.1" - prosemirror-menu "^1.2.1" - prosemirror-model "^1.18.1" - prosemirror-schema-basic "^1.2.0" - prosemirror-schema-list "^1.2.2" - prosemirror-state "^1.4.1" - prosemirror-tables "^1.3.0" - prosemirror-trailing-node "^2.0.2" - prosemirror-transform "^1.7.0" - prosemirror-view "^1.28.2" + prosemirror-changeset "^2.2.1" + prosemirror-collab "^1.3.1" + prosemirror-commands "^1.5.2" + prosemirror-dropcursor "^1.8.1" + prosemirror-gapcursor "^1.3.2" + prosemirror-history "^1.3.2" + prosemirror-inputrules "^1.3.0" + prosemirror-keymap "^1.2.2" + prosemirror-markdown "^1.12.0" + prosemirror-menu "^1.2.4" + prosemirror-model "^1.19.4" + prosemirror-schema-basic "^1.2.2" + prosemirror-schema-list "^1.3.0" + prosemirror-state "^1.4.3" + prosemirror-tables "^1.3.5" + prosemirror-trailing-node "^2.0.7" + prosemirror-transform "^1.8.0" + prosemirror-view "^1.32.7" "@tiptap/starter-kit@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/starter-kit/-/starter-kit-2.1.16.tgz#1da99d2b6de8a408c3be5aea86b7747454dff4fa" - integrity sha512-DudGvkNEB1IwfMAqBKCcT49BY275hKF6SwjTWN89cLvVBd2TBe4R6wWMNKDhwfR8fmXz/aXpGJWWO2AFimY3jg== + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/starter-kit/-/starter-kit-2.4.0.tgz#ad2c2d900af41e55eaaccafa92fd6b2acaebd97e" + integrity sha512-DYYzMZdTEnRn9oZhKOeRCcB+TjhNz5icLlvJKoHoOGL9kCbuUyEf8WRR2OSPckI0+KUIPJL3oHRqO4SqSdTjfg== dependencies: - "@tiptap/core" "^2.1.16" - "@tiptap/extension-blockquote" "^2.1.16" - "@tiptap/extension-bold" "^2.1.16" - "@tiptap/extension-bullet-list" "^2.1.16" - "@tiptap/extension-code" "^2.1.16" - "@tiptap/extension-code-block" "^2.1.16" - "@tiptap/extension-document" "^2.1.16" - "@tiptap/extension-dropcursor" "^2.1.16" - "@tiptap/extension-gapcursor" "^2.1.16" - "@tiptap/extension-hard-break" "^2.1.16" - "@tiptap/extension-heading" "^2.1.16" - "@tiptap/extension-history" "^2.1.16" - "@tiptap/extension-horizontal-rule" "^2.1.16" - "@tiptap/extension-italic" "^2.1.16" - "@tiptap/extension-list-item" "^2.1.16" - "@tiptap/extension-ordered-list" "^2.1.16" - "@tiptap/extension-paragraph" "^2.1.16" - "@tiptap/extension-strike" "^2.1.16" - "@tiptap/extension-text" "^2.1.16" + "@tiptap/core" "^2.4.0" + "@tiptap/extension-blockquote" "^2.4.0" + "@tiptap/extension-bold" "^2.4.0" + "@tiptap/extension-bullet-list" "^2.4.0" + "@tiptap/extension-code" "^2.4.0" + "@tiptap/extension-code-block" "^2.4.0" + "@tiptap/extension-document" "^2.4.0" + "@tiptap/extension-dropcursor" "^2.4.0" + "@tiptap/extension-gapcursor" "^2.4.0" + "@tiptap/extension-hard-break" "^2.4.0" + "@tiptap/extension-heading" "^2.4.0" + "@tiptap/extension-history" "^2.4.0" + "@tiptap/extension-horizontal-rule" "^2.4.0" + "@tiptap/extension-italic" "^2.4.0" + "@tiptap/extension-list-item" "^2.4.0" + "@tiptap/extension-ordered-list" "^2.4.0" + "@tiptap/extension-paragraph" "^2.4.0" + "@tiptap/extension-strike" "^2.4.0" + "@tiptap/extension-text" "^2.4.0" "@tiptap/vue-3@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/vue-3/-/vue-3-2.1.16.tgz#a2b63cd8492845aa0fc8fc2bb2f3134f124774d0" - integrity sha512-pvfIsBAyFeZVllnl38DFX8X11XMvFcT2/vViAtkDwJpX2W/m/nmxOSlEnqmOEzC+sbFqk7bhKpBVElaROV+U0w== + version "2.4.0" + resolved "https://registry.yarnpkg.com/@tiptap/vue-3/-/vue-3-2.4.0.tgz#906dc45167498e88b56b8390aabf658e8f1c2fc4" + integrity sha512-NCw1Y4ScIrMCKC9YlepUHSAB8jq/PQ2f+AbZKh5bY2t/kMSJYLCJVHq9NFzG4TQtktgMGWCcEQVcDJ7YNpsfxw== dependencies: - "@tiptap/extension-bubble-menu" "^2.1.16" - "@tiptap/extension-floating-menu" "^2.1.16" + "@tiptap/extension-bubble-menu" "^2.4.0" + "@tiptap/extension-floating-menu" "^2.4.0" "@types/estree@1.0.5": version "1.0.5" @@ -608,27 +592,12 @@ integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== "@types/node@^20.11.9": - version "20.11.9" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.9.tgz#959d436f20ce2ee3df897c3eaa0617c98fa70efb" - integrity sha512-CQXNuMoS/VcoAMISe5pm4JnEd1Br5jildbQEToEMQvutmv+EaQr90ry9raiudgpyDuqFiV9e4rnjSfLNq12M5w== + version "20.12.13" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.13.tgz#90ed3b8a4e52dd3c5dc5a42dde5b85b74ad8ed88" + integrity sha512-gBGeanV41c1L171rR7wjbMiEpEI/l5XFQdLLfhr/REwpgDy/4U8y89+i8kRiLzDyZdOkXh+cRaTetUnCYutoXA== dependencies: undici-types "~5.26.4" -"@types/object.omit@^3.0.0": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/object.omit/-/object.omit-3.0.3.tgz#cc52b1d9774c1619b5c6fc50229d087f01eabd68" - integrity sha512-xrq4bQTBGYY2cw+gV4PzoG2Lv3L0pjZ1uXStRRDQoATOYW1lCsFQHhQ+OkPhIcQoqLjAq7gYif7D14Qaa6Zbew== - -"@types/object.pick@^1.3.2": - version "1.3.4" - resolved "https://registry.yarnpkg.com/@types/object.pick/-/object.pick-1.3.4.tgz#1a38b6e69a35f36ec2dcc8b9f5ffd555c1c4d7fc" - integrity sha512-5PjwB0uP2XDp3nt5u5NJAG2DORHIRClPzWT/TTZhJ2Ekwe8M5bA9tvPdi9NO/n2uvu2/ictat8kgqvLfcIE1SA== - -"@types/throttle-debounce@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@types/throttle-debounce/-/throttle-debounce-2.1.0.tgz#1c3df624bfc4b62f992d3012b84c56d41eab3776" - integrity sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ== - "@types/web-bluetooth@^0.0.20": version "0.0.20" resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz#f066abfcd1cbe66267cdbbf0de010d8a41b41597" @@ -640,93 +609,93 @@ integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== "@vitejs/plugin-vue@^5.0.3": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.0.3.tgz#164b36653910d27c130cf6c945b4bd9bde5bcbee" - integrity sha512-b8S5dVS40rgHdDrw+DQi/xOM9ed+kSRZzfm1T74bMmBDCd8XO87NKlFYInzCtwvtWwXZvo1QxE2OSspTATWrbA== + version "5.0.5" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.0.5.tgz#e3dc11e427d4b818b7e3202766ad156e3d5e2eaa" + integrity sha512-LOjm7XeIimLBZyzinBQ6OSm3UBCNVCpLkxGC0oWmm2YPzVZoxMsdvNVimLTBzpAnR9hl/yn1SHGuRfe6/Td9rQ== -"@vue/compiler-core@3.4.15": - version "3.4.15" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.15.tgz#be20d1bbe19626052500b48969302cb6f396d36e" - integrity sha512-XcJQVOaxTKCnth1vCxEChteGuwG6wqnUHxAm1DO3gCz0+uXKaJNx8/digSz4dLALCy8n2lKq24jSUs8segoqIw== +"@vue/compiler-core@3.4.27": + version "3.4.27" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.27.tgz#e69060f4b61429fe57976aa5872cfa21389e4d91" + integrity sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg== dependencies: - "@babel/parser" "^7.23.6" - "@vue/shared" "3.4.15" + "@babel/parser" "^7.24.4" + "@vue/shared" "3.4.27" entities "^4.5.0" estree-walker "^2.0.2" - source-map-js "^1.0.2" + source-map-js "^1.2.0" -"@vue/compiler-dom@3.4.15": - version "3.4.15" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.15.tgz#753f5ed55f78d33dff04701fad4d76ff0cf81ee5" - integrity sha512-wox0aasVV74zoXyblarOM3AZQz/Z+OunYcIHe1OsGclCHt8RsRm04DObjefaI82u6XDzv+qGWZ24tIsRAIi5MQ== +"@vue/compiler-dom@3.4.27": + version "3.4.27" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz#d51d35f40d00ce235d7afc6ad8b09dfd92b1cc1c" + integrity sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw== dependencies: - "@vue/compiler-core" "3.4.15" - "@vue/shared" "3.4.15" + "@vue/compiler-core" "3.4.27" + "@vue/shared" "3.4.27" -"@vue/compiler-sfc@3.4.15", "@vue/compiler-sfc@^3.4.15": - version "3.4.15" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.15.tgz#4e5811e681955fcec886cebbec483f6ae463a64b" - integrity sha512-LCn5M6QpkpFsh3GQvs2mJUOAlBQcCco8D60Bcqmf3O3w5a+KWS5GvYbrrJBkgvL1BDnTp+e8q0lXCLgHhKguBA== +"@vue/compiler-sfc@3.4.27", "@vue/compiler-sfc@^3.4.15": + version "3.4.27" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.27.tgz#399cac1b75c6737bf5440dc9cf3c385bb2959701" + integrity sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA== dependencies: - "@babel/parser" "^7.23.6" - "@vue/compiler-core" "3.4.15" - "@vue/compiler-dom" "3.4.15" - "@vue/compiler-ssr" "3.4.15" - "@vue/shared" "3.4.15" + "@babel/parser" "^7.24.4" + "@vue/compiler-core" "3.4.27" + "@vue/compiler-dom" "3.4.27" + "@vue/compiler-ssr" "3.4.27" + "@vue/shared" "3.4.27" estree-walker "^2.0.2" - magic-string "^0.30.5" - postcss "^8.4.33" - source-map-js "^1.0.2" + magic-string "^0.30.10" + postcss "^8.4.38" + source-map-js "^1.2.0" -"@vue/compiler-ssr@3.4.15": - version "3.4.15" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.4.15.tgz#a910a5b89ba4f0a776e40b63d69bdae2f50616cf" - integrity sha512-1jdeQyiGznr8gjFDadVmOJqZiLNSsMa5ZgqavkPZ8O2wjHv0tVuAEsw5hTdUoUW4232vpBbL/wJhzVW/JwY1Uw== +"@vue/compiler-ssr@3.4.27": + version "3.4.27" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.4.27.tgz#2a8ecfef1cf448b09be633901a9c020360472e3d" + integrity sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw== dependencies: - "@vue/compiler-dom" "3.4.15" - "@vue/shared" "3.4.15" + "@vue/compiler-dom" "3.4.27" + "@vue/shared" "3.4.27" -"@vue/devtools-api@^6.5.0": - version "6.5.1" - resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.5.1.tgz#7f71f31e40973eeee65b9a64382b13593fdbd697" - integrity sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA== +"@vue/devtools-api@^6.5.0", "@vue/devtools-api@^6.5.1": + version "6.6.1" + resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.6.1.tgz#7c14346383751d9f6ad4bea0963245b30220ef83" + integrity sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA== -"@vue/reactivity@3.4.15": - version "3.4.15" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.4.15.tgz#ad9d9b83f5398d2e8660ad5cfc0f171e7679a9a1" - integrity sha512-55yJh2bsff20K5O84MxSvXKPHHt17I2EomHznvFiJCAZpJTNW8IuLj1xZWMLELRhBK3kkFV/1ErZGHJfah7i7w== +"@vue/reactivity@3.4.27": + version "3.4.27" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.4.27.tgz#6ece72331bf719953f5eaa95ec60b2b8d49e3791" + integrity sha512-kK0g4NknW6JX2yySLpsm2jlunZJl2/RJGZ0H9ddHdfBVHcNzxmQ0sS0b09ipmBoQpY8JM2KmUw+a6sO8Zo+zIA== dependencies: - "@vue/shared" "3.4.15" + "@vue/shared" "3.4.27" -"@vue/runtime-core@3.4.15": - version "3.4.15" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.4.15.tgz#f81e2fd2108ea41a6d5c61c2462b11dfb754fdf0" - integrity sha512-6E3by5m6v1AkW0McCeAyhHTw+3y17YCOKG0U0HDKDscV4Hs0kgNT5G+GCHak16jKgcCDHpI9xe5NKb8sdLCLdw== +"@vue/runtime-core@3.4.27": + version "3.4.27" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.4.27.tgz#1b6e1d71e4604ba7442dd25ed22e4a1fc6adbbda" + integrity sha512-7aYA9GEbOOdviqVvcuweTLe5Za4qBZkUY7SvET6vE8kyypxVgaT1ixHLg4urtOlrApdgcdgHoTZCUuTGap/5WA== dependencies: - "@vue/reactivity" "3.4.15" - "@vue/shared" "3.4.15" + "@vue/reactivity" "3.4.27" + "@vue/shared" "3.4.27" -"@vue/runtime-dom@3.4.15": - version "3.4.15" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.4.15.tgz#108ef86aa7334ead5d6b9c56a7d93679e1e45406" - integrity sha512-EVW8D6vfFVq3V/yDKNPBFkZKGMFSvZrUQmx196o/v2tHKdwWdiZjYUBS+0Ez3+ohRyF8Njwy/6FH5gYJ75liUw== +"@vue/runtime-dom@3.4.27": + version "3.4.27" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.4.27.tgz#fe8d1ce9bbe8921d5dd0ad5c10df0e04ef7a5ee7" + integrity sha512-ScOmP70/3NPM+TW9hvVAz6VWWtZJqkbdf7w6ySsws+EsqtHvkhxaWLecrTorFxsawelM5Ys9FnDEMt6BPBDS0Q== dependencies: - "@vue/runtime-core" "3.4.15" - "@vue/shared" "3.4.15" + "@vue/runtime-core" "3.4.27" + "@vue/shared" "3.4.27" csstype "^3.1.3" -"@vue/server-renderer@3.4.15": - version "3.4.15" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.4.15.tgz#34438f998e6f6370fac78883a75efe136631957f" - integrity sha512-3HYzaidu9cHjrT+qGUuDhFYvF/j643bHC6uUN9BgM11DVy+pM6ATsG6uPBLnkwOgs7BpJABReLmpL3ZPAsUaqw== +"@vue/server-renderer@3.4.27": + version "3.4.27" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.4.27.tgz#3306176f37e648ba665f97dda3ce705687be63d2" + integrity sha512-dlAMEuvmeA3rJsOMJ2J1kXU7o7pOxgsNHVr9K8hB3ImIkSuBrIdy0vF66h8gf8Tuinf1TK3mPAz2+2sqyf3KzA== dependencies: - "@vue/compiler-ssr" "3.4.15" - "@vue/shared" "3.4.15" + "@vue/compiler-ssr" "3.4.27" + "@vue/shared" "3.4.27" -"@vue/shared@3.4.15": - version "3.4.15" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.15.tgz#e7d2ea050c667480cb5e1a6df2ac13bcd03a8f30" - integrity sha512-KzfPTxVaWfB+eGcGdbSf4CWdaXcGDqckoeXUh7SB3fZdEtzPCK2Vq9B/lRRL3yutax/LWITz+SwvgyOxz5V75g== +"@vue/shared@3.4.27": + version "3.4.27" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.27.tgz#f05e3cd107d157354bb4ae7a7b5fc9cf73c63b50" + integrity sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA== "@vuelidate/components@^1.2.6": version "1.2.6" @@ -751,26 +720,26 @@ vue-demi "^0.13.11" "@vueuse/core@^10.7.2": - version "10.7.2" - resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-10.7.2.tgz#78917803a29a0bca1803a6521fdf7ff873f6e72c" - integrity sha512-AOyAL2rK0By62Hm+iqQn6Rbu8bfmbgaIMXcE3TSr7BdQ42wnSFlwIdPjInO62onYsEMK/yDMU8C6oGfDAtZ2qQ== + version "10.10.0" + resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-10.10.0.tgz#05a98d3c5674762455a2c552c915d461d83e6490" + integrity sha512-vexJ/YXYs2S42B783rI95lMt3GzEwkxzC8Hb0Ndpd8rD+p+Lk/Za4bd797Ym7yq4jXqdSyj3JLChunF/vyYjUw== dependencies: "@types/web-bluetooth" "^0.0.20" - "@vueuse/metadata" "10.7.2" - "@vueuse/shared" "10.7.2" - vue-demi ">=0.14.6" + "@vueuse/metadata" "10.10.0" + "@vueuse/shared" "10.10.0" + vue-demi ">=0.14.7" -"@vueuse/metadata@10.7.2": - version "10.7.2" - resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-10.7.2.tgz#ba0187ce138c287fd80301afc5b0d6a97e563633" - integrity sha512-kCWPb4J2KGrwLtn1eJwaJD742u1k5h6v/St5wFe8Quih90+k2a0JP8BS4Zp34XUuJqS2AxFYMb1wjUL8HfhWsQ== +"@vueuse/metadata@10.10.0": + version "10.10.0" + resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-10.10.0.tgz#53e61e9380670e342cbe6e03d852f3319308cb5b" + integrity sha512-UNAo2sTCAW5ge6OErPEHb5z7NEAg3XcO9Cj7OK45aZXfLLH1QkexDcZD77HBi5zvEiLOm1An+p/4b5K3Worpug== -"@vueuse/shared@10.7.2": - version "10.7.2" - resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-10.7.2.tgz#746441fbc08072371dd600a55883422c83fd0cab" - integrity sha512-qFbXoxS44pi2FkgFjPvF4h7c9oMDutpyBdcJdMYIMg9XyXli2meFMuaKn+UMgsClo//Th6+beeCgqweT/79BVA== +"@vueuse/shared@10.10.0": + version "10.10.0" + resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-10.10.0.tgz#93f7c2210151ff43c2c7677963f7aa3aef5d9896" + integrity sha512-2aW33Ac0Uk0U+9yo3Ypg9s5KcR42cuehRWl7vnUHadQyFvCktseyxxEPBi1Eiq4D2yBGACOnqLZpx1eMc7g5Og== dependencies: - vue-demi ">=0.14.6" + vue-demi ">=0.14.7" acorn-jsx@^5.3.2: version "5.3.2" @@ -792,11 +761,6 @@ ajv@^6.12.4: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== - ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" @@ -825,9 +789,9 @@ any-promise@^1.0.0: integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" @@ -848,12 +812,12 @@ asynckit@^0.4.0: integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== autoprefixer@^10.4.17: - version "10.4.17" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.17.tgz#35cd5695cbbe82f536a50fa025d561b01fdec8be" - integrity sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg== + version "10.4.19" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.19.tgz#ad25a856e82ee9d7898c59583c1afeb3fa65f89f" + integrity sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew== dependencies: - browserslist "^4.22.2" - caniuse-lite "^1.0.30001578" + browserslist "^4.23.0" + caniuse-lite "^1.0.30001599" fraction.js "^4.3.7" normalize-range "^0.1.2" picocolors "^1.0.0" @@ -873,9 +837,9 @@ balanced-match@^1.0.0: integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + version "2.3.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== boolbase@^1.0.0: version "1.0.0" @@ -897,20 +861,20 @@ brace-expansion@^2.0.1: dependencies: balanced-match "^1.0.0" -braces@^3.0.1, braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== +braces@^3.0.3, braces@~3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: - fill-range "^7.0.1" + fill-range "^7.1.1" -browserslist@^4.22.2: - version "4.22.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.3.tgz#299d11b7e947a6b843981392721169e27d60c5a6" - integrity sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A== +browserslist@^4.23.0: + version "4.23.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" + integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== dependencies: - caniuse-lite "^1.0.30001580" - electron-to-chromium "^1.4.648" + caniuse-lite "^1.0.30001587" + electron-to-chromium "^1.4.668" node-releases "^2.0.14" update-browserslist-db "^1.0.13" @@ -924,15 +888,10 @@ camelcase-css@^2.0.1: resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== -caniuse-lite@^1.0.30001578, caniuse-lite@^1.0.30001580: - version "1.0.30001581" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001581.tgz#0dfd4db9e94edbdca67d57348ebc070dece279f4" - integrity sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ== - -case-anything@^2.1.13: - version "2.1.13" - resolved "https://registry.yarnpkg.com/case-anything/-/case-anything-2.1.13.tgz#0cdc16278cb29a7fcdeb072400da3f342ba329e9" - integrity sha512-zlOQ80VrQ2Ue+ymH5OuM/DlDq64mEm+B9UTdHULv5osUMD6HalNTblf2b1u/m6QecjsnOkBpqVZ+XPwIVsy7Ng== +caniuse-lite@^1.0.30001587, caniuse-lite@^1.0.30001599: + version "1.0.30001625" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001625.tgz#ead1b155ea691d6a87938754d3cb119c24465b03" + integrity sha512-4KE9N2gcRH+HQhpeiRZXd+1niLB/XNLAhSy4z7fI8EzcbcPoAqjNInxVHTiTwWfTIV4w096XG8OtCOCQQKPv3w== chalk@^4.0.0: version "4.1.2" @@ -965,25 +924,10 @@ chartjs-color@^2.1.0: chartjs-color-string "^0.6.0" color-convert "^1.9.3" -"chokidar@>=3.0.0 <4.0.0": - version "3.5.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" - integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -chokidar@^3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.3: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== dependencies: anymatch "~3.1.2" braces "~3.0.2" @@ -1012,7 +956,7 @@ color-convert@^2.0.1: color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" @@ -1034,7 +978,7 @@ commander@^4.0.0: concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== crelt@^1.0.0: version "1.0.6" @@ -1067,27 +1011,17 @@ csstype@^3.1.3: resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== -dash-get@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/dash-get/-/dash-get-1.0.2.tgz#4c9e9ad5ef04c4bf9d3c9a451f6f7997298dcc7c" - integrity sha512-4FbVrHDwfOASx7uQVxeiCTo7ggSdYZbqs8lH+WU6ViypPlDbe9y6IP5VVUDQBv9DcnyaiPT5XT0UWHgJ64zLeQ== - debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + version "4.3.5" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.5.tgz#e83444eceb9fedd4a1da56d671ae2446a01a6e1e" + integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== dependencies: ms "2.1.2" deep-is@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= - -deepmerge@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" - integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== delayed-stream@~1.0.0: version "1.0.0" @@ -1116,10 +1050,10 @@ eastasianwidth@^0.2.0: resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== -electron-to-chromium@^1.4.648: - version "1.4.648" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.648.tgz#c7b46c9010752c37bb4322739d6d2dd82354fbe4" - integrity sha512-EmFMarXeqJp9cUKu/QEciEApn0S/xRcpZWuAm32U7NgoZCimjsilKXHRO9saeEW55eHZagIDg6XTUOv32w9pjg== +electron-to-chromium@^1.4.668: + version "1.4.787" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.787.tgz#3eedd0a3b8be2b9e96e21675d399786ad90b99ed" + integrity sha512-d0EFmtLPjctczO3LogReyM2pbBiiZbnsKnGF+cdZhsYzHm/A0GV7W94kqzLD8SN4O3f3iHlgLUChqghgyznvCQ== emoji-regex@^8.0.0: version "8.0.0" @@ -1136,39 +1070,39 @@ entities@^4.4.0, entities@^4.5.0: resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== -esbuild@^0.19.3: - version "0.19.12" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.12.tgz#dc82ee5dc79e82f5a5c3b4323a2a641827db3e04" - integrity sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg== +esbuild@^0.20.1: + version "0.20.2" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.20.2.tgz#9d6b2386561766ee6b5a55196c6d766d28c87ea1" + integrity sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g== optionalDependencies: - "@esbuild/aix-ppc64" "0.19.12" - "@esbuild/android-arm" "0.19.12" - "@esbuild/android-arm64" "0.19.12" - "@esbuild/android-x64" "0.19.12" - "@esbuild/darwin-arm64" "0.19.12" - "@esbuild/darwin-x64" "0.19.12" - "@esbuild/freebsd-arm64" "0.19.12" - "@esbuild/freebsd-x64" "0.19.12" - "@esbuild/linux-arm" "0.19.12" - "@esbuild/linux-arm64" "0.19.12" - "@esbuild/linux-ia32" "0.19.12" - "@esbuild/linux-loong64" "0.19.12" - "@esbuild/linux-mips64el" "0.19.12" - "@esbuild/linux-ppc64" "0.19.12" - "@esbuild/linux-riscv64" "0.19.12" - "@esbuild/linux-s390x" "0.19.12" - "@esbuild/linux-x64" "0.19.12" - "@esbuild/netbsd-x64" "0.19.12" - "@esbuild/openbsd-x64" "0.19.12" - "@esbuild/sunos-x64" "0.19.12" - "@esbuild/win32-arm64" "0.19.12" - "@esbuild/win32-ia32" "0.19.12" - "@esbuild/win32-x64" "0.19.12" + "@esbuild/aix-ppc64" "0.20.2" + "@esbuild/android-arm" "0.20.2" + "@esbuild/android-arm64" "0.20.2" + "@esbuild/android-x64" "0.20.2" + "@esbuild/darwin-arm64" "0.20.2" + "@esbuild/darwin-x64" "0.20.2" + "@esbuild/freebsd-arm64" "0.20.2" + "@esbuild/freebsd-x64" "0.20.2" + "@esbuild/linux-arm" "0.20.2" + "@esbuild/linux-arm64" "0.20.2" + "@esbuild/linux-ia32" "0.20.2" + "@esbuild/linux-loong64" "0.20.2" + "@esbuild/linux-mips64el" "0.20.2" + "@esbuild/linux-ppc64" "0.20.2" + "@esbuild/linux-riscv64" "0.20.2" + "@esbuild/linux-s390x" "0.20.2" + "@esbuild/linux-x64" "0.20.2" + "@esbuild/netbsd-x64" "0.20.2" + "@esbuild/openbsd-x64" "0.20.2" + "@esbuild/sunos-x64" "0.20.2" + "@esbuild/win32-arm64" "0.20.2" + "@esbuild/win32-ia32" "0.20.2" + "@esbuild/win32-x64" "0.20.2" -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== +escalade@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== escape-string-regexp@^4.0.0: version "4.0.0" @@ -1181,16 +1115,17 @@ eslint-config-prettier@^9.1.0: integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== eslint-plugin-vue@^9.20.1: - version "9.20.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.20.1.tgz#7ed78846898574b2cd26939f28b0b87798a7b528" - integrity sha512-GyCs8K3lkEvoyC1VV97GJhP1SvqsKCiWGHnbn0gVUYiUhaH2+nB+Dv1uekv1THFMPbBfYxukrzQdltw950k+LQ== + version "9.26.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.26.0.tgz#bf7f5cce62c8f878059b91edae44d22974133af5" + integrity sha512-eTvlxXgd4ijE1cdur850G6KalZqk65k1JKoOI2d1kT3hr8sPD07j1q98FRFdNnpxBELGPWxZmInxeHGF/GxtqQ== dependencies: "@eslint-community/eslint-utils" "^4.4.0" + globals "^13.24.0" natural-compare "^1.4.0" nth-check "^2.1.1" - postcss-selector-parser "^6.0.13" - semver "^7.5.4" - vue-eslint-parser "^9.4.0" + postcss-selector-parser "^6.0.15" + semver "^7.6.0" + vue-eslint-parser "^9.4.2" xml-name-validator "^4.0.0" eslint-scope@^7.1.1, eslint-scope@^7.2.2: @@ -1207,15 +1142,15 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4 integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== eslint@^8.56.0: - version "8.56.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.56.0.tgz#4957ce8da409dc0809f99ab07a1b94832ab74b15" - integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ== + version "8.57.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668" + integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" "@eslint/eslintrc" "^2.1.4" - "@eslint/js" "8.56.0" - "@humanwhocodes/config-array" "^0.11.13" + "@eslint/js" "8.57.0" + "@humanwhocodes/config-array" "^0.11.14" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" "@ungap/structured-clone" "^1.2.0" @@ -1259,14 +1194,7 @@ espree@^9.3.1, espree@^9.6.0, espree@^9.6.1: acorn-jsx "^5.3.2" eslint-visitor-keys "^3.4.1" -esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== - dependencies: - estraverse "^5.1.0" - -esquery@^1.4.2: +esquery@^1.4.0, esquery@^1.4.2: version "1.5.0" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== @@ -1281,9 +1209,9 @@ esrecurse@^4.3.0: estraverse "^5.2.0" estraverse@^5.1.0, estraverse@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" - integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== estree-walker@^2.0.2: version "2.0.2" @@ -1319,12 +1247,12 @@ fast-json-stable-stringify@^2.0.0: fast-levenshtein@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fastq@^1.6.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.12.0.tgz#ed7b6ab5d62393fb2cc591c853652a5c318bf794" - integrity sha512-VNX0QkHK3RsXVKr9KrlUv/FoTa0NdbYoHHl7uXHv2rzyHSlxjdNAKug2twd9luJxpcyNeAgf5iPPMutJO67Dfg== + version "1.17.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== dependencies: reusify "^1.0.4" @@ -1335,10 +1263,10 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: to-regex-range "^5.0.1" @@ -1351,11 +1279,12 @@ find-up@^5.0.0: path-exists "^4.0.0" flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + version "3.2.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" + integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== dependencies: - flatted "^3.1.0" + flatted "^3.2.9" + keyv "^4.5.3" rimraf "^3.0.2" flatpickr@^4.6.13: @@ -1363,15 +1292,15 @@ flatpickr@^4.6.13: resolved "https://registry.yarnpkg.com/flatpickr/-/flatpickr-4.6.13.tgz#8a029548187fd6e0d670908471e43abe9ad18d94" integrity sha512-97PMG/aywoYpB4IvbvUJi0RQi8vearvU0oov1WW3k0WZPBMrTQVqekSX5CjSG/M4Q3i6A/0FKXC7RyAoAUUSPw== -flatted@^3.1.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.2.tgz#64bfed5cb68fe3ca78b3eb214ad97b63bedce561" - integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA== +flatted@^3.2.9: + version "3.3.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" + integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== follow-redirects@^1.14.9: - version "1.15.5" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.5.tgz#54d4d6d062c0fa7d9d17feb008461550e3ba8020" - integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw== + version "1.15.6" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== foreground-child@^3.1.0: version "3.1.1" @@ -1398,14 +1327,9 @@ fraction.js@^4.3.7: fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -fsevents@~2.3.3: +fsevents@~2.3.2, fsevents@~2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== @@ -1430,29 +1354,29 @@ glob-parent@^6.0.2: is-glob "^4.0.3" glob@^10.3.10: - version "10.3.10" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" - integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== + version "10.4.1" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.1.tgz#0cfb01ab6a6b438177bfe6a58e2576f6efe909c2" + integrity sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw== dependencies: foreground-child "^3.1.0" - jackspeak "^2.3.5" - minimatch "^9.0.1" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - path-scurry "^1.10.1" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + path-scurry "^1.11.1" glob@^7.1.3: - version "7.1.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.4" + minimatch "^3.1.1" once "^1.3.0" path-is-absolute "^1.0.0" -globals@^13.19.0: +globals@^13.19.0, globals@^13.24.0: version "13.24.0" resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== @@ -1467,7 +1391,7 @@ graphemer@^1.4.0: guid@0.0.12: version "0.0.12" resolved "https://registry.yarnpkg.com/guid/-/guid-0.0.12.tgz#9137c52b185f7de12490b9bebcc1660b9025fe0c" - integrity sha1-kTfFKxhffeEkkLm+vMFmC5Al/gw= + integrity sha512-J0MCgzgJcvLarLGTeVIhXdQwqlEJ9rxmxc/X71GR4VR5V/BIQ9FFfzGL52qYKgREQI8qPevc1qFNwB/4VnBuRA== has-flag@^4.0.0: version "4.0.0" @@ -1475,21 +1399,21 @@ has-flag@^4.0.0: integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== hasown@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" - integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== dependencies: function-bind "^1.1.2" ignore@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" - integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== + version "5.3.1" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" + integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== immutable@^4.0.0: - version "4.3.5" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.5.tgz#f8b436e66d59f99760dc577f5c99a4fd2a5cc5a0" - integrity sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw== + version "4.3.6" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.6.tgz#6a05f7858213238e587fb83586ffa3b4b27f0447" + integrity sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ== import-fresh@^3.2.1: version "3.3.0" @@ -1502,12 +1426,12 @@ import-fresh@^3.2.1: imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" @@ -1536,31 +1460,17 @@ is-core-module@^2.13.0: dependencies: hasown "^2.0.0" -is-extendable@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-glob@^4.0.3: +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== @@ -1577,33 +1487,21 @@ is-path-inside@^3.0.3: resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== -is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== -isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== - -jackspeak@^2.3.5: - version "2.3.6" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" - integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== +jackspeak@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.1.2.tgz#eada67ea949c6b71de50f1b09c92a961897b90ab" + integrity sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ== dependencies: "@isaacs/cliui" "^8.0.2" optionalDependencies: "@pkgjs/parseargs" "^0.11.0" -jiti@^1.19.1: +jiti@^1.21.0: version "1.21.0" resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== @@ -1615,6 +1513,11 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -1623,12 +1526,19 @@ json-schema-traverse@^0.4.1: json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +keyv@^4.5.3: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" laravel-vite-plugin@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/laravel-vite-plugin/-/laravel-vite-plugin-1.0.1.tgz#b92d0c939ccd60879746b23282100131f753cec7" - integrity sha512-laLEZUnSskIDZtLb2FNRdcjsRUhh1VOVvapbVGVTeaBPJTCF/b6gbPiX2dZdcH1RKoOE0an7L+2gnInk6K33Zw== + version "1.0.4" + resolved "https://registry.yarnpkg.com/laravel-vite-plugin/-/laravel-vite-plugin-1.0.4.tgz#b9a516ed212aae55c19369984dc5d2f09276560c" + integrity sha512-dEj8Q/Fsn0kKbOQ55bl/NmyJL+dD6OxnVaM/nNByw5XV4b00ky6FzXKVuHLDr4BvSJKH1y6oaOcEG5wKpCZ5+A== dependencies: picocolors "^1.0.0" vite-plugin-full-reload "^1.1.0" @@ -1647,14 +1557,14 @@ lilconfig@^2.1.0: integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== lilconfig@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.0.0.tgz#f8067feb033b5b74dab4602a5f5029420be749bc" - integrity sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g== + version "3.1.1" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.1.tgz#9d8a246fa753106cfc205fd2d77042faca56e5e3" + integrity sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ== lines-and-columns@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" - integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== linkify-it@^5.0.0: version "5.0.0" @@ -1673,12 +1583,12 @@ locate-path@^6.0.0: lodash.castarray@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.castarray/-/lodash.castarray-4.4.0.tgz#c02513515e309daddd4c24c60cfddcf5976d9115" - integrity sha1-wCUTUV4wna3dTCTGDP3c9ZdtkRU= + integrity sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q== lodash.isplainobject@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" - integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== lodash.merge@^4.6.2: version "4.6.2" @@ -1690,41 +1600,29 @@ lodash@^4.17.21: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" +lru-cache@^10.2.0: + version "10.2.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.2.tgz#48206bc114c1252940c41b25b41af5b545aca878" + integrity sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ== -"lru-cache@^9.1.1 || ^10.0.0": - version "10.2.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3" - integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== - -magic-string@^0.30.5: - version "0.30.5" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9" - integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA== +magic-string@^0.30.10: + version "0.30.10" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.10.tgz#123d9c41a0cb5640c892b041d4cfb3bd0aa4b39e" + integrity sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ== dependencies: "@jridgewell/sourcemap-codec" "^1.4.15" -make-error@^1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - markdown-it@^14.0.0: - version "14.0.0" - resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-14.0.0.tgz#b4b2ddeb0f925e88d981f84c183b59bac9e3741b" - integrity sha512-seFjF0FIcPt4P9U39Bq1JYblX0KZCjDLFFQPHpL5AzHpqPEKtosxmdq/LTVZnjfH7tjt9BxStm+wXcDBNuYmzw== + version "14.1.0" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-14.1.0.tgz#3c3c5992883c633db4714ccb4d7b5935d98b7d45" + integrity sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg== dependencies: argparse "^2.0.1" entities "^4.4.0" linkify-it "^5.0.0" mdurl "^2.0.0" punycode.js "^2.3.1" - uc.micro "^2.0.0" + uc.micro "^2.1.0" maska@^2.1.11: version "2.1.11" @@ -1741,20 +1639,12 @@ merge2@^1.3.0: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -micromatch@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== +micromatch@^4.0.4, micromatch@^4.0.5: + version "4.0.7" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5" + integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q== dependencies: - braces "^3.0.1" - picomatch "^2.2.3" - -micromatch@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" + braces "^3.0.3" picomatch "^2.3.1" mime-db@1.52.0: @@ -1769,41 +1659,29 @@ mime-types@^2.1.12: dependencies: mime-db "1.52.0" -mini-svg-data-uri@^1.2.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/mini-svg-data-uri/-/mini-svg-data-uri-1.3.3.tgz#91d2c09f45e056e5e1043340b8b37ba7b50f4fac" - integrity sha512-+fA2oRcR1dJI/7ITmeQJDrYWks0wodlOz0pAEhKYJ2IVc1z0AnwJUsKY2fzFmPAM3Jo9J0rBx8JAA9QQSJ5PuA== - -mini-svg-data-uri@^1.4.4: +mini-svg-data-uri@^1.2.3, mini-svg-data-uri@^1.4.4: version "1.4.4" resolved "https://registry.yarnpkg.com/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz#8ab0aabcdf8c29ad5693ca595af19dd2ead09939" integrity sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg== -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^3.0.5, minimatch@^3.1.2: +minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minimatch@^9.0.1: - version "9.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== +minimatch@^9.0.4: + version "9.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51" + integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== dependencies: brace-expansion "^2.0.1" -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": - version "7.0.4" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" - integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== moment@^2.10.2, moment@^2.30.1: version "2.30.1" @@ -1832,7 +1710,7 @@ nanoid@^3.3.7: natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== node-releases@^2.0.14: version "2.0.14" @@ -1847,7 +1725,7 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: normalize-range@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== nth-check@^2.1.1: version "2.1.1" @@ -1866,38 +1744,24 @@ object-hash@^3.0.0: resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== -object.omit@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-3.0.0.tgz#0e3edc2fce2ba54df5577ff529f6d97bd8a522af" - integrity sha512-EO+BCv6LJfu+gBIF3ggLicFebFLN5zqzz/WWJlMFfkMyGth+oBkhxzDl0wx2W4GkLzuQs/FsSkXZb2IMWQqmBQ== - dependencies: - is-extendable "^1.0.0" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== - dependencies: - isobject "^3.0.1" - once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" optionator@^0.9.3: - version "0.9.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" - integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== + version "0.9.4" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" + integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== dependencies: - "@aashutoshrathi/word-wrap" "^1.2.3" deep-is "^0.1.3" fast-levenshtein "^2.0.6" levn "^0.4.1" prelude-ls "^1.2.1" type-check "^0.4.0" + word-wrap "^1.2.5" orderedmap@^2.0.0: version "2.1.1" @@ -1933,7 +1797,7 @@ path-exists@^4.0.0: path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^3.1.0: version "3.1.1" @@ -1945,12 +1809,12 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-scurry@^1.10.1: - version "1.10.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" - integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== +path-scurry@^1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== dependencies: - lru-cache "^9.1.1 || ^10.0.0" + lru-cache "^10.2.0" minipass "^5.0.0 || ^6.0.2 || ^7.0.0" path@^0.12.7: @@ -1961,17 +1825,12 @@ path@^0.12.7: process "^0.11.1" util "^0.10.3" -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== +picocolors@^1.0.0, picocolors@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" + integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== - -picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== @@ -2033,10 +1892,10 @@ postcss-selector-parser@6.0.10: cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.13: - version "6.0.15" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz#11cc2b21eebc0b99ea374ffb9887174855a01535" - integrity sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw== +postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.15: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz#49694cb4e7c649299fea510a29fa6577104bcf53" + integrity sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" @@ -2046,14 +1905,14 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.4.23, postcss@^8.4.32, postcss@^8.4.33: - version "8.4.33" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.33.tgz#1378e859c9f69bf6f638b990a0212f43e2aaa742" - integrity sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg== +postcss@^8.4.23, postcss@^8.4.33, postcss@^8.4.38: + version "8.4.38" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e" + integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== dependencies: nanoid "^3.3.7" picocolors "^1.0.0" - source-map-js "^1.0.2" + source-map-js "^1.2.0" prelude-ls@^1.2.1: version "1.2.1" @@ -2061,30 +1920,30 @@ prelude-ls@^1.2.1: integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prettier@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.4.tgz#4723cadeac2ce7c9227de758e5ff9b14e075f283" - integrity sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ== + version "3.2.5" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.5.tgz#e52bc3090586e824964a8813b09aba6233b28368" + integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A== process@^0.11.1: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== -prosemirror-changeset@^2.2.0: +prosemirror-changeset@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/prosemirror-changeset/-/prosemirror-changeset-2.2.1.tgz#dae94b63aec618fac7bb9061648e6e2a79988383" integrity sha512-J7msc6wbxB4ekDFj+n9gTW/jav/p53kdlivvuppHsrZXCaQdVgRghoZbSS3kwrRyAstRVQ4/+u5k7YfLgkkQvQ== dependencies: prosemirror-transform "^1.0.0" -prosemirror-collab@^1.3.0: +prosemirror-collab@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/prosemirror-collab/-/prosemirror-collab-1.3.1.tgz#0e8c91e76e009b53457eb3b3051fb68dad029a33" integrity sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ== dependencies: prosemirror-state "^1.0.0" -prosemirror-commands@^1.0.0, prosemirror-commands@^1.3.1: +prosemirror-commands@^1.0.0, prosemirror-commands@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/prosemirror-commands/-/prosemirror-commands-1.5.2.tgz#e94aeea52286f658cd984270de9b4c3fff580852" integrity sha512-hgLcPaakxH8tu6YvVAaILV2tXYsW3rAdDR8WNkeKGcgeMVQg3/TMhPdVoh7iAmfgVjZGtcOSjKiQaoeKjzd2mQ== @@ -2093,7 +1952,7 @@ prosemirror-commands@^1.0.0, prosemirror-commands@^1.3.1: prosemirror-state "^1.0.0" prosemirror-transform "^1.0.0" -prosemirror-dropcursor@^1.5.0: +prosemirror-dropcursor@^1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/prosemirror-dropcursor/-/prosemirror-dropcursor-1.8.1.tgz#49b9fb2f583e0d0f4021ff87db825faa2be2832d" integrity sha512-M30WJdJZLyXHi3N8vxN6Zh5O8ZBbQCz0gURTfPmTIBNQ5pxrdU7A58QkNqfa98YEjSAL1HUyyU34f6Pm5xBSGw== @@ -2102,7 +1961,7 @@ prosemirror-dropcursor@^1.5.0: prosemirror-transform "^1.1.0" prosemirror-view "^1.1.0" -prosemirror-gapcursor@^1.3.1: +prosemirror-gapcursor@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/prosemirror-gapcursor/-/prosemirror-gapcursor-1.3.2.tgz#5fa336b83789c6199a7341c9493587e249215cb4" integrity sha512-wtjswVBd2vaQRrnYZaBCbyDqr232Ed4p2QPtRIUK5FuqHYKGWkEwl08oQM4Tw7DOR0FsasARV5uJFvMZWxdNxQ== @@ -2112,25 +1971,25 @@ prosemirror-gapcursor@^1.3.1: prosemirror-state "^1.0.0" prosemirror-view "^1.0.0" -prosemirror-history@^1.0.0, prosemirror-history@^1.3.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/prosemirror-history/-/prosemirror-history-1.3.2.tgz#ce6ad7ab9db83e761aee716f3040d74738311b15" - integrity sha512-/zm0XoU/N/+u7i5zepjmZAEnpvjDtzoPWW6VmKptcAnPadN/SStsBjMImdCEbb3seiNTpveziPTIrXQbHLtU1g== +prosemirror-history@^1.0.0, prosemirror-history@^1.3.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/prosemirror-history/-/prosemirror-history-1.4.0.tgz#1edbce630aaf21b808e5a5cd798a09976ecb1827" + integrity sha512-UUiGzDVcqo1lovOPdi9YxxUps3oBFWAIYkXLu3Ot+JPv1qzVogRbcizxK3LhHmtaUxclohgiOVesRw5QSlMnbQ== dependencies: prosemirror-state "^1.2.2" prosemirror-transform "^1.0.0" prosemirror-view "^1.31.0" rope-sequence "^1.3.0" -prosemirror-inputrules@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/prosemirror-inputrules/-/prosemirror-inputrules-1.3.0.tgz#d43ce469ffe09a1b4cbac3f0ad367b0e4b504875" - integrity sha512-z1GRP2vhh5CihYMQYsJSa1cOwXb3SYxALXOIfAkX8nZserARtl9LiL+CEl+T+OFIsXc3mJIHKhbsmRzC0HDAXA== +prosemirror-inputrules@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/prosemirror-inputrules/-/prosemirror-inputrules-1.4.0.tgz#ef1519bb2cb0d1e0cec74bad1a97f1c1555068bb" + integrity sha512-6ygpPRuTJ2lcOXs9JkefieMst63wVJBgHZGl5QOytN7oSZs3Co/BYbc3Yx9zm9H37Bxw8kVzCnDsihsVsL4yEg== dependencies: prosemirror-state "^1.0.0" prosemirror-transform "^1.0.0" -prosemirror-keymap@^1.0.0, prosemirror-keymap@^1.1.2, prosemirror-keymap@^1.2.0: +prosemirror-keymap@^1.0.0, prosemirror-keymap@^1.1.2, prosemirror-keymap@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/prosemirror-keymap/-/prosemirror-keymap-1.2.2.tgz#14a54763a29c7b2704f561088ccf3384d14eb77e" integrity sha512-EAlXoksqC6Vbocqc0GtzCruZEzYgrn+iiGnNjsJsH4mrnIGex4qbLdWWNza3AW5W36ZRrlBID0eM6bdKH4OStQ== @@ -2138,15 +1997,15 @@ prosemirror-keymap@^1.0.0, prosemirror-keymap@^1.1.2, prosemirror-keymap@^1.2.0: prosemirror-state "^1.0.0" w3c-keyname "^2.2.0" -prosemirror-markdown@^1.10.1: - version "1.12.0" - resolved "https://registry.yarnpkg.com/prosemirror-markdown/-/prosemirror-markdown-1.12.0.tgz#d2de09d37897abf7adb6293d925ff132dac5b0a6" - integrity sha512-6F5HS8Z0HDYiS2VQDZzfZP6A0s/I0gbkJy8NCzzDMtcsz3qrfqyroMMeoSjAmOhDITyon11NbXSzztfKi+frSQ== +prosemirror-markdown@^1.12.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/prosemirror-markdown/-/prosemirror-markdown-1.13.0.tgz#67ebfa40af48a22d1e4ed6cad2e29851eb61e649" + integrity sha512-UziddX3ZYSYibgx8042hfGKmukq5Aljp2qoBiJRejD/8MH70siQNz5RB1TrdTPheqLMy4aCe4GYNF10/3lQS5g== dependencies: markdown-it "^14.0.0" - prosemirror-model "^1.0.0" + prosemirror-model "^1.20.0" -prosemirror-menu@^1.2.1: +prosemirror-menu@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/prosemirror-menu/-/prosemirror-menu-1.2.4.tgz#3cfdc7c06d10f9fbd1bce29082c498bd11a0a79a" integrity sha512-S/bXlc0ODQup6aiBbWVsX/eM+xJgCTAfMq/nLqaO5ID/am4wS0tTCIkzwytmao7ypEtjj39i7YbJjAgO20mIqA== @@ -2156,21 +2015,21 @@ prosemirror-menu@^1.2.1: prosemirror-history "^1.0.0" prosemirror-state "^1.0.0" -prosemirror-model@^1.0.0, prosemirror-model@^1.16.0, prosemirror-model@^1.18.1, prosemirror-model@^1.19.0, prosemirror-model@^1.8.1: - version "1.19.4" - resolved "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-1.19.4.tgz#e45e84480c97dd3922095dbe579e1c98c86c0704" - integrity sha512-RPmVXxUfOhyFdayHawjuZCxiROsm9L4FCUA6pWI+l7n2yCBsWy9VpdE1hpDHUS8Vad661YLY9AzqfjLhAKQ4iQ== +prosemirror-model@^1.0.0, prosemirror-model@^1.19.0, prosemirror-model@^1.19.4, prosemirror-model@^1.20.0, prosemirror-model@^1.21.0, prosemirror-model@^1.8.1: + version "1.21.0" + resolved "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-1.21.0.tgz#2d69ed04b4e7c441c3eb87c1c964fab4f9b217df" + integrity sha512-zLpS1mVCZLA7VTp82P+BfMiYVPcX1/z0Mf3gsjKZtzMWubwn2pN7CceMV0DycjlgE5JeXPR7UF4hJPbBV98oWA== dependencies: orderedmap "^2.0.0" -prosemirror-schema-basic@^1.2.0: +prosemirror-schema-basic@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/prosemirror-schema-basic/-/prosemirror-schema-basic-1.2.2.tgz#6695f5175e4628aab179bf62e5568628b9cfe6c7" integrity sha512-/dT4JFEGyO7QnNTe9UaKUhjDXbTNkiWTq/N4VpKaF79bBjSExVV2NXmJpcM7z/gD7mbqNjxbmWW5nf1iNSSGnw== dependencies: prosemirror-model "^1.19.0" -prosemirror-schema-list@^1.2.2: +prosemirror-schema-list@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/prosemirror-schema-list/-/prosemirror-schema-list-1.3.0.tgz#05374702cf35a3ba5e7ec31079e355a488d52519" integrity sha512-Hz/7gM4skaaYfRPNgr421CU4GSwotmEwBVvJh5ltGiffUJwm7C8GfN/Bc6DR1EKEp5pDKhODmdXXyi9uIsZl5A== @@ -2179,7 +2038,7 @@ prosemirror-schema-list@^1.2.2: prosemirror-state "^1.0.0" prosemirror-transform "^1.7.3" -prosemirror-state@^1.0.0, prosemirror-state@^1.2.2, prosemirror-state@^1.3.1, prosemirror-state@^1.4.1: +prosemirror-state@^1.0.0, prosemirror-state@^1.2.2, prosemirror-state@^1.3.1, prosemirror-state@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/prosemirror-state/-/prosemirror-state-1.4.3.tgz#94aecf3ffd54ec37e87aa7179d13508da181a080" integrity sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q== @@ -2188,10 +2047,10 @@ prosemirror-state@^1.0.0, prosemirror-state@^1.2.2, prosemirror-state@^1.3.1, pr prosemirror-transform "^1.0.0" prosemirror-view "^1.27.0" -prosemirror-tables@^1.3.0: - version "1.3.5" - resolved "https://registry.yarnpkg.com/prosemirror-tables/-/prosemirror-tables-1.3.5.tgz#80f03394f5b9991f9693bcb3a90b6dba6b16254d" - integrity sha512-JSZ2cCNlApu/ObAhdPyotrjBe2cimniniTpz60YXzbL0kZ+47nEYk2LWbfKU2lKpBkUNquta2PjteoNi4YCluQ== +prosemirror-tables@^1.3.5: + version "1.3.7" + resolved "https://registry.yarnpkg.com/prosemirror-tables/-/prosemirror-tables-1.3.7.tgz#9d296bd432d2bc7dca90f14e5c3b5c5f61277f7a" + integrity sha512-oEwX1wrziuxMtwFvdDWSFHVUWrFJWt929kVVfHvtTi8yvw+5ppxjXZkMG/fuTdFo+3DXyIPSKfid+Be1npKXDA== dependencies: prosemirror-keymap "^1.1.2" prosemirror-model "^1.8.1" @@ -2199,28 +2058,27 @@ prosemirror-tables@^1.3.0: prosemirror-transform "^1.2.1" prosemirror-view "^1.13.3" -prosemirror-trailing-node@^2.0.2: - version "2.0.7" - resolved "https://registry.yarnpkg.com/prosemirror-trailing-node/-/prosemirror-trailing-node-2.0.7.tgz#ba782a7929f18bcae650b1c7082a2d10443eab19" - integrity sha512-8zcZORYj/8WEwsGo6yVCRXFMOfBo0Ub3hCUvmoWIZYfMP26WqENU0mpEP27w7mt8buZWuGrydBewr0tOArPb1Q== +prosemirror-trailing-node@^2.0.7: + version "2.0.8" + resolved "https://registry.yarnpkg.com/prosemirror-trailing-node/-/prosemirror-trailing-node-2.0.8.tgz#233ddcbda72de06f9b5d758d2a65a8cac482ea10" + integrity sha512-ujRYhSuhQb1Jsarh1IHqb2KoSnRiD7wAMDGucP35DN7j5af6X7B18PfdPIrbwsPTqIAj0fyOvxbuPsWhNvylmA== dependencies: "@remirror/core-constants" "^2.0.2" - "@remirror/core-helpers" "^3.0.0" escape-string-regexp "^4.0.0" -prosemirror-transform@^1.0.0, prosemirror-transform@^1.1.0, prosemirror-transform@^1.2.1, prosemirror-transform@^1.7.0, prosemirror-transform@^1.7.3: - version "1.8.0" - resolved "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-1.8.0.tgz#a47c64a3c373c1bd0ff46e95be3210c8dda0cd11" - integrity sha512-BaSBsIMv52F1BVVMvOmp1yzD3u65uC3HTzCBQV1WDPqJRQ2LuHKcyfn0jwqodo8sR9vVzMzZyI+Dal5W9E6a9A== +prosemirror-transform@^1.0.0, prosemirror-transform@^1.1.0, prosemirror-transform@^1.2.1, prosemirror-transform@^1.7.3, prosemirror-transform@^1.8.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-1.9.0.tgz#81fd1fbd887929a95369e6dd3d240c23c19313f8" + integrity sha512-5UXkr1LIRx3jmpXXNKDhv8OyAOeLTGuXNwdVfg8x27uASna/wQkr9p6fD3eupGOi4PLJfbezxTyi/7fSJypXHg== dependencies: - prosemirror-model "^1.0.0" + prosemirror-model "^1.21.0" -prosemirror-view@^1.0.0, prosemirror-view@^1.1.0, prosemirror-view@^1.13.3, prosemirror-view@^1.27.0, prosemirror-view@^1.28.2, prosemirror-view@^1.31.0: - version "1.32.7" - resolved "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.32.7.tgz#b9c4e8471daeba79489befa59eaeaeb4cd2e2653" - integrity sha512-pvxiOoD4shW41X5bYDjRQk3DSG4fMqxh36yPMt7VYgU3dWRmqFzWJM/R6zeo1KtC8nyk717ZbQND3CC9VNeptw== +prosemirror-view@^1.0.0, prosemirror-view@^1.1.0, prosemirror-view@^1.13.3, prosemirror-view@^1.27.0, prosemirror-view@^1.31.0, prosemirror-view@^1.32.7: + version "1.33.7" + resolved "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.33.7.tgz#fd9841a79a4bc517914a57456370b941bd655729" + integrity sha512-jo6eMQCtPRwcrA2jISBCnm0Dd2B+szS08BU1Ay+XGiozHo5EZMHfLQE8R5nO4vb1spTH2RW1woZIYXRiQsuP8g== dependencies: - prosemirror-model "^1.16.0" + prosemirror-model "^1.20.0" prosemirror-state "^1.0.0" prosemirror-transform "^1.1.0" @@ -2230,9 +2088,9 @@ punycode.js@^2.3.1: integrity sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA== punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== queue-microtask@^1.2.2: version "1.2.3" @@ -2279,26 +2137,29 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" -rollup@^4.2.0: - version "4.9.6" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.9.6.tgz#4515facb0318ecca254a2ee1315e22e09efc50a0" - integrity sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg== +rollup@^4.13.0: + version "4.18.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.18.0.tgz#497f60f0c5308e4602cf41136339fbf87d5f5dda" + integrity sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg== dependencies: "@types/estree" "1.0.5" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.9.6" - "@rollup/rollup-android-arm64" "4.9.6" - "@rollup/rollup-darwin-arm64" "4.9.6" - "@rollup/rollup-darwin-x64" "4.9.6" - "@rollup/rollup-linux-arm-gnueabihf" "4.9.6" - "@rollup/rollup-linux-arm64-gnu" "4.9.6" - "@rollup/rollup-linux-arm64-musl" "4.9.6" - "@rollup/rollup-linux-riscv64-gnu" "4.9.6" - "@rollup/rollup-linux-x64-gnu" "4.9.6" - "@rollup/rollup-linux-x64-musl" "4.9.6" - "@rollup/rollup-win32-arm64-msvc" "4.9.6" - "@rollup/rollup-win32-ia32-msvc" "4.9.6" - "@rollup/rollup-win32-x64-msvc" "4.9.6" + "@rollup/rollup-android-arm-eabi" "4.18.0" + "@rollup/rollup-android-arm64" "4.18.0" + "@rollup/rollup-darwin-arm64" "4.18.0" + "@rollup/rollup-darwin-x64" "4.18.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.18.0" + "@rollup/rollup-linux-arm-musleabihf" "4.18.0" + "@rollup/rollup-linux-arm64-gnu" "4.18.0" + "@rollup/rollup-linux-arm64-musl" "4.18.0" + "@rollup/rollup-linux-powerpc64le-gnu" "4.18.0" + "@rollup/rollup-linux-riscv64-gnu" "4.18.0" + "@rollup/rollup-linux-s390x-gnu" "4.18.0" + "@rollup/rollup-linux-x64-gnu" "4.18.0" + "@rollup/rollup-linux-x64-musl" "4.18.0" + "@rollup/rollup-win32-arm64-msvc" "4.18.0" + "@rollup/rollup-win32-ia32-msvc" "4.18.0" + "@rollup/rollup-win32-x64-msvc" "4.18.0" fsevents "~2.3.2" rope-sequence@^1.3.0: @@ -2314,20 +2175,18 @@ run-parallel@^1.1.9: queue-microtask "^1.2.2" sass@^1.70.0: - version "1.70.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.70.0.tgz#761197419d97b5358cb25f9dd38c176a8a270a75" - integrity sha512-uUxNQ3zAHeAx5nRFskBnrWzDUJrrvpCPD5FNAoRvTi0WwremlheES3tg+56PaVtCs5QDRX5CBLxxKMDJMEa1WQ== + version "1.77.4" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.77.4.tgz#92059c7bfc56b827c56eb116778d157ec017a5cd" + integrity sha512-vcF3Ckow6g939GMA4PeU7b2K/9FALXk2KF9J87txdHzXbUF9XRQRwSxcAs/fGaTnJeBFd7UoV22j3lzMLdM0Pw== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" source-map-js ">=0.6.2 <2.0.0" -semver@^7.3.6, semver@^7.5.4: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - dependencies: - lru-cache "^6.0.0" +semver@^7.3.6, semver@^7.6.0: + version "7.6.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13" + integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== shebang-command@^2.0.0: version "2.0.0" @@ -2351,13 +2210,12 @@ sortablejs@1.14.0: resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.14.0.tgz#6d2e17ccbdb25f464734df621d4f35d4ab35b3d8" integrity sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w== -"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2, source-map-js@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" + integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== "string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0: - name string-width-cjs version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -2375,20 +2233,13 @@ string-width@^5.0.1, string-width@^5.1.2: emoji-regex "^9.2.2" strip-ansi "^7.0.1" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== - dependencies: - ansi-regex "^5.0.0" - strip-ansi@^7.0.1: version "7.1.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" @@ -2427,14 +2278,14 @@ supports-preserve-symlinks-flag@^1.0.0: integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== tailwind-scrollbar@^3.0.5: - version "3.0.5" - resolved "https://registry.yarnpkg.com/tailwind-scrollbar/-/tailwind-scrollbar-3.0.5.tgz#c904118f4f1a572edef93da2d436e1db8b93dd87" - integrity sha512-0ZwxTivevqq9BY9fRP9zDjHl7Tu+J5giBGbln+0O1R/7nHtBUKnjQcA1aTIhK7Oyjp6Uc/Dj6/dn8Dq58k5Uww== + version "3.1.0" + resolved "https://registry.yarnpkg.com/tailwind-scrollbar/-/tailwind-scrollbar-3.1.0.tgz#ff7596407b6da5209261d8ff03860ab9206a59e3" + integrity sha512-pmrtDIZeHyu2idTejfV59SbaJyvp1VRjYxAjZBH0jnyrPRo6HL1kD5Glz8VPagasqr6oAx6M05+Tuw429Z8jxg== tailwindcss@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.1.tgz#f512ca5d1dd4c9503c7d3d28a968f1ad8f5c839d" - integrity sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA== + version "3.4.3" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.3.tgz#be48f5283df77dfced705451319a5dffb8621519" + integrity sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A== dependencies: "@alloc/quick-lru" "^5.2.0" arg "^5.0.2" @@ -2444,7 +2295,7 @@ tailwindcss@^3.4.1: fast-glob "^3.3.0" glob-parent "^6.0.2" is-glob "^4.0.3" - jiti "^1.19.1" + jiti "^1.21.0" lilconfig "^2.1.0" micromatch "^4.0.5" normalize-path "^3.0.0" @@ -2462,7 +2313,7 @@ tailwindcss@^3.4.1: text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== thenify-all@^1.0.0: version "1.6.0" @@ -2478,11 +2329,6 @@ thenify-all@^1.0.0: dependencies: any-promise "^1.0.0" -throttle-debounce@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-3.0.1.tgz#32f94d84dfa894f786c9a1f290e7a645b6a19abb" - integrity sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg== - tippy.js@^6.3.7: version "6.3.7" resolved "https://registry.yarnpkg.com/tippy.js/-/tippy.js-6.3.7.tgz#8ccfb651d642010ed9a32ff29b0e9e19c5b8c61c" @@ -2514,15 +2360,10 @@ type-fest@^0.20.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -type-fest@^2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" - integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== - -uc.micro@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-2.0.0.tgz#84b3c335c12b1497fd9e80fcd3bfa7634c363ff1" - integrity sha512-DffL94LsNOccVn4hyfRe5rdKa273swqeA5DJpMOeFmEn1wCDc7nAbbB0gXlgBCL7TNzeTv6G7XVWzan7iJtfig== +uc.micro@^2.0.0, uc.micro@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-2.1.0.tgz#f8d3f7d0ec4c3dea35a7e3c8efa4cb8b45c9e7ee" + integrity sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A== undici-types@~5.26.4: version "5.26.5" @@ -2530,12 +2371,12 @@ undici-types@~5.26.4: integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== update-browserslist-db@^1.0.13: - version "1.0.13" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" - integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== + version "1.0.16" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz#f6d489ed90fb2f07d67784eb3f53d7891f736356" + integrity sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ== dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" + escalade "^3.1.2" + picocolors "^1.0.1" uri-js@^4.2.2: version "4.4.1" @@ -2547,7 +2388,7 @@ uri-js@^4.2.2: util-deprecate@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== util@^0.10.3: version "0.10.4" @@ -2578,27 +2419,27 @@ vite-plugin-full-reload@^1.1.0: picomatch "^2.3.1" vite@^5.0.0: - version "5.0.12" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.0.12.tgz#8a2ffd4da36c132aec4adafe05d7adde38333c47" - integrity sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w== + version "5.2.12" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.2.12.tgz#3536c93c58ba18edea4915a2ac573e6537409d97" + integrity sha512-/gC8GxzxMK5ntBwb48pR32GGhENnjtY30G4A0jemunsBkiEZFw60s8InGpN8gkhHEkjnRK1aSAxeQgwvFhUHAA== dependencies: - esbuild "^0.19.3" - postcss "^8.4.32" - rollup "^4.2.0" + esbuild "^0.20.1" + postcss "^8.4.38" + rollup "^4.13.0" optionalDependencies: fsevents "~2.3.3" -vue-demi@>=0.14.5, vue-demi@>=0.14.6: - version "0.14.6" - resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.6.tgz#dc706582851dc1cdc17a0054f4fec2eb6df74c92" - integrity sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w== +vue-demi@>=0.14.5, vue-demi@>=0.14.7: + version "0.14.8" + resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.8.tgz#00335e9317b45e4a68d3528aaf58e0cec3d5640a" + integrity sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q== vue-demi@^0.13.11: version "0.13.11" resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.13.11.tgz#7d90369bdae8974d87b1973564ad390182410d99" integrity sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A== -vue-eslint-parser@^9.4.0: +vue-eslint-parser@^9.4.2: version "9.4.2" resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.4.2.tgz#02ffcce82042b082292f2d1672514615f0d95b6d" integrity sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ== @@ -2612,19 +2453,19 @@ vue-eslint-parser@^9.4.0: semver "^7.3.6" vue-flatpickr-component@^11.0.3: - version "11.0.3" - resolved "https://registry.yarnpkg.com/vue-flatpickr-component/-/vue-flatpickr-component-11.0.3.tgz#774ec62156daa90efb8df5d540f1eaf5bcbb93f6" - integrity sha512-SYNW/lqK1q9gzr5kQpNDwnlgUIDnXJpG1AmoDxVyOYVtUD7mLaDU1w+MJLFI644NYtwh9NrCt5LpojlsjtbvqA== + version "11.0.5" + resolved "https://registry.yarnpkg.com/vue-flatpickr-component/-/vue-flatpickr-component-11.0.5.tgz#a9300718a7556cec2ed09c8eabb6e0c3de5114ca" + integrity sha512-Vfwg5uVU+sanKkkLzUGC5BUlWd5wlqAMq/UpQ6lI2BCZq0DDrXhOMX7hrevt8bEgglIq2QUv0K2Nl84Me/VnlA== dependencies: flatpickr "^4.6.13" vue-i18n@^9.9.0: - version "9.9.0" - resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-9.9.0.tgz#20d348fa7e37fc88e4c84f69781b2f1215c7769f" - integrity sha512-xQ5SxszUAqK5n84N+uUyHH/PiQl9xZ24FOxyAaNonmOQgXeN+rD9z/6DStOpOxNFQn4Cgcquot05gZc+CdOujA== + version "9.13.1" + resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-9.13.1.tgz#a292c8021b7be604ebfca5609ae1f8fafe5c36d7" + integrity sha512-mh0GIxx0wPtPlcB1q4k277y0iKgo25xmDPWioVVYanjPufDBpvu5ySTjP5wOrSvlYQ2m1xI+CFhGdauv/61uQg== dependencies: - "@intlify/core-base" "9.9.0" - "@intlify/shared" "9.9.0" + "@intlify/core-base" "9.13.1" + "@intlify/shared" "9.13.1" "@vue/devtools-api" "^6.5.0" vue-resize@^2.0.0-alpha.1: @@ -2633,22 +2474,22 @@ vue-resize@^2.0.0-alpha.1: integrity sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg== vue-router@^4.2.5: - version "4.2.5" - resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.2.5.tgz#b9e3e08f1bd9ea363fdd173032620bc50cf0e98a" - integrity sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw== + version "4.3.2" + resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.3.2.tgz#08096c7765dacc6832f58e35f7a081a8b34116a7" + integrity sha512-hKQJ1vDAZ5LVkKEnHhmm1f9pMiWIBNGF5AwU67PdH7TyXCj/a4hTccuUuYCAMgJK6rO/NVYtQIEN3yL8CECa7Q== dependencies: - "@vue/devtools-api" "^6.5.0" + "@vue/devtools-api" "^6.5.1" vue@^3.4: - version "3.4.15" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.4.15.tgz#91f979844ffca9239dff622ba4c79c5d5524b88c" - integrity sha512-jC0GH4KkWLWJOEQjOpkqU1bQsBwf4R1rsFtw5GQJbjHVKWDzO6P0nWWBTmjp1xSemAioDFj1jdaK1qa3DnMQoQ== + version "3.4.27" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.4.27.tgz#40b7d929d3e53f427f7f5945386234d2854cc2a1" + integrity sha512-8s/56uK6r01r1icG/aEOHqyMVxd1bkYcSe9j8HcKtr/xTOFWvnzIVTehNW+5Yt89f+DLBe4A569pnZLS5HzAMA== dependencies: - "@vue/compiler-dom" "3.4.15" - "@vue/compiler-sfc" "3.4.15" - "@vue/runtime-dom" "3.4.15" - "@vue/server-renderer" "3.4.15" - "@vue/shared" "3.4.15" + "@vue/compiler-dom" "3.4.27" + "@vue/compiler-sfc" "3.4.27" + "@vue/runtime-dom" "3.4.27" + "@vue/server-renderer" "3.4.27" + "@vue/shared" "3.4.27" vuedraggable@^4.1.0: version "4.1.0" @@ -2669,6 +2510,11 @@ which@^2.0.1: dependencies: isexe "^2.0.0" +word-wrap@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== + "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" @@ -2690,24 +2536,19 @@ wrap-ansi@^8.1.0: wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== xml-name-validator@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - yaml@^2.3.4: - version "2.3.4" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.4.tgz#53fc1d514be80aabf386dc6001eb29bf3b7523b2" - integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== + version "2.4.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.2.tgz#7a2b30f2243a5fc299e1f14ca58d475ed4bc5362" + integrity sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA== yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== \ No newline at end of file + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From 3b61440e1f710d590d5d6dc8903bc7a3dbebffd4 Mon Sep 17 00:00:00 2001 From: agencetwogether <53862310+agencetwogether@users.noreply.github.com> Date: Wed, 5 Jun 2024 12:07:46 +0200 Subject: [PATCH 02/50] Complete dashboard translations & small UI improvements (#69) * fix dropdown action Estimate Dashboard and fix translating full Dasboard page * Update app.php * fix locale in app.php config * Wizard install with translation, customer portal with translation, and fixing hardcoding strings to get translation * fixes asked to review * fixes pint --------- Co-authored-by: Max Co-authored-by: Darko Gjorgjijoski <5760249+gdarko@users.noreply.github.com> --- .../Customer/CustomerStatsController.php | 2 +- .../Admin/Dashboard/DashboardController.php | 2 +- .../Report/CustomerSalesReportController.php | 4 +- .../Admin/Report/ExpensesReportController.php | 4 +- .../Report/ItemSalesReportController.php | 4 +- .../Report/ProfitLossReportController.php | 4 +- .../Report/TaxSummaryReportController.php | 4 +- .../Customer/General/BootstrapController.php | 1 + .../V1/Installation/LanguagesController.php | 21 +++ .../OnboardingWizardController.php | 11 ++ app/Http/Resources/RoleResource.php | 2 +- app/Mail/EstimateViewedMail.php | 1 + app/Mail/InvoiceViewedMail.php | 1 + app/Models/Customer.php | 2 +- app/Models/Estimate.php | 4 +- app/Models/Expense.php | 4 +- app/Models/Invoice.php | 4 +- app/Models/Item.php | 2 +- app/Models/Payment.php | 4 +- app/Models/RecurringInvoice.php | 4 +- app/Space/DateFormatter.php | 2 +- app/Space/EnvironmentManager.php | 2 +- config/app.php | 2 +- config/invoiceshelf.php | 34 ++--- lang/en.json | 117 +++++++++++++-- lang/fr.json | 127 +++++++++++++++-- .../admin/components/CopyInputField.vue | 2 +- .../modal-components/CustomerModal.vue | 2 +- .../components/modal-components/NoteModal.vue | 10 +- .../modal-components/SendEstimateModal.vue | 4 +- .../modal-components/SendInvoiceModal.vue | 4 +- .../modal-components/SendPaymentModal.vue | 4 +- .../custom-fields/CustomFieldModal.vue | 14 +- .../scripts/admin/stores/installation.js | 29 ++++ .../scripts/admin/stores/recurring-invoice.js | 22 +-- .../scripts/admin/stub/recurring-invoice.js | 4 +- .../scripts/admin/views/customers/Create.vue | 2 +- .../customers/partials/CustomerChart.vue | 4 +- .../views/customers/partials/CustomerInfo.vue | 9 +- .../admin/views/dashboard/DashboardChart.vue | 5 +- .../admin/views/dashboard/DashboardStats.vue | 6 +- .../admin/views/dashboard/DashboardTable.vue | 2 +- .../scripts/admin/views/estimates/Index.vue | 15 +- .../scripts/admin/views/estimates/View.vue | 2 +- .../scripts/admin/views/expenses/Index.vue | 10 +- .../admin/views/installation/Installation.vue | 13 +- .../views/installation/Step0SetLanguage.vue | 85 +++++++++++ .../installation/Step3DatabaseConfig.vue | 8 ++ .../views/installation/Step4VerifyDomain.vue | 12 +- .../installation/Step8CompanyPreferences.vue | 10 +- .../scripts/admin/views/invoices/Index.vue | 22 ++- .../scripts/admin/views/invoices/View.vue | 2 +- .../scripts/admin/views/modules/Index.vue | 2 +- .../scripts/admin/views/payments/Create.vue | 2 +- .../scripts/admin/views/payments/Index.vue | 2 +- .../admin/views/recurring-invoices/Index.vue | 8 +- .../RecurringInvoiceCreateBasicFields.vue | 22 ++- .../recurring-invoices/partials/Invoices.vue | 7 +- .../partials/RecurringInvoiceViewSidebar.vue | 2 +- .../admin/views/reports/SalesReports.vue | 11 +- .../views/settings/CustomFieldsSetting.vue | 21 +++ .../admin/views/settings/FileDiskSetting.vue | 2 +- .../admin/views/settings/NotesSetting.vue | 16 +++ .../views/settings/PreferencesSetting.vue | 10 +- .../customization/NumberCustomizer.vue | 6 +- .../scripts/components/GlobalSearchBar.vue | 2 +- .../components/InvoiceInformationCard.vue | 2 +- .../base-select/BaseMultiselect.vue | 4 +- .../components/base/BaseDatePicker.vue | 133 ++++++++++++++++++ .../base/BaseEstimateStatusLabel.vue | 39 +++++ .../components/base/BaseFileUploader.vue | 6 +- .../base/BaseInvoiceStatusLabel.vue | 43 ++++++ .../base/BaseRecurringInvoiceStatusLabel.vue | 31 ++++ .../components/base/base-table/BaseTable.vue | 2 +- .../base/base-table/BaseTablePagination.vue | 12 +- .../layouts/partials/TheSiteHeader.vue | 6 +- resources/scripts/customer/stores/global.js | 8 +- .../views/dashboard/DashboardStats.vue | 6 +- .../views/dashboard/DashboardTable.vue | 4 +- .../customer/views/estimates/Index.vue | 16 +-- .../scripts/customer/views/estimates/View.vue | 2 +- .../scripts/customer/views/invoices/Index.vue | 14 +- .../scripts/customer/views/invoices/View.vue | 2 +- .../views/emails/send/estimate.blade.php | 2 +- resources/views/emails/send/invoice.blade.php | 2 +- resources/views/emails/send/payment.blade.php | 2 +- .../views/emails/viewed/estimate.blade.php | 7 +- .../views/emails/viewed/invoice.blade.php | 7 +- routes/api.php | 4 + 89 files changed, 925 insertions(+), 213 deletions(-) create mode 100755 app/Http/Controllers/V1/Installation/LanguagesController.php create mode 100644 resources/scripts/admin/views/installation/Step0SetLanguage.vue create mode 100644 resources/scripts/components/base/BaseEstimateStatusLabel.vue create mode 100644 resources/scripts/components/base/BaseInvoiceStatusLabel.vue create mode 100644 resources/scripts/components/base/BaseRecurringInvoiceStatusLabel.vue diff --git a/app/Http/Controllers/V1/Admin/Customer/CustomerStatsController.php b/app/Http/Controllers/V1/Admin/Customer/CustomerStatsController.php index 5fd034c5..f82aa001 100644 --- a/app/Http/Controllers/V1/Admin/Customer/CustomerStatsController.php +++ b/app/Http/Controllers/V1/Admin/Customer/CustomerStatsController.php @@ -88,7 +88,7 @@ class CustomerStatsController extends Controller ($receiptTotals[$i] - $expenseTotals[$i]) ); $i++; - array_push($months, $start->format('M')); + array_push($months, $start->translatedFormat('M')); $monthCounter++; $end->startOfMonth(); $start->addMonth()->startOfMonth(); diff --git a/app/Http/Controllers/V1/Admin/Dashboard/DashboardController.php b/app/Http/Controllers/V1/Admin/Dashboard/DashboardController.php index 23a47362..a0779312 100644 --- a/app/Http/Controllers/V1/Admin/Dashboard/DashboardController.php +++ b/app/Http/Controllers/V1/Admin/Dashboard/DashboardController.php @@ -91,7 +91,7 @@ class DashboardController extends Controller ($receipt_totals[$i] - $expense_totals[$i]) ); $i++; - array_push($months, $start->format('M')); + array_push($months, $start->translatedFormat('M')); $monthCounter++; $end->startOfMonth(); $start->addMonth()->startOfMonth(); diff --git a/app/Http/Controllers/V1/Admin/Report/CustomerSalesReportController.php b/app/Http/Controllers/V1/Admin/Report/CustomerSalesReportController.php index 94fd0596..a80ebf57 100644 --- a/app/Http/Controllers/V1/Admin/Report/CustomerSalesReportController.php +++ b/app/Http/Controllers/V1/Admin/Report/CustomerSalesReportController.php @@ -54,8 +54,8 @@ class CustomerSalesReportController extends Controller } $dateFormat = CompanySetting::getSetting('carbon_date_format', $company->id); - $from_date = Carbon::createFromFormat('Y-m-d', $request->from_date)->format($dateFormat); - $to_date = Carbon::createFromFormat('Y-m-d', $request->to_date)->format($dateFormat); + $from_date = Carbon::createFromFormat('Y-m-d', $request->from_date)->translatedFormat($dateFormat); + $to_date = Carbon::createFromFormat('Y-m-d', $request->to_date)->translatedFormat($dateFormat); $currency = Currency::findOrFail(CompanySetting::getSetting('currency', $company->id)); $colors = [ diff --git a/app/Http/Controllers/V1/Admin/Report/ExpensesReportController.php b/app/Http/Controllers/V1/Admin/Report/ExpensesReportController.php index 2ca998c1..fc1ad264 100644 --- a/app/Http/Controllers/V1/Admin/Report/ExpensesReportController.php +++ b/app/Http/Controllers/V1/Admin/Report/ExpensesReportController.php @@ -41,8 +41,8 @@ class ExpensesReportController extends Controller } $dateFormat = CompanySetting::getSetting('carbon_date_format', $company->id); - $from_date = Carbon::createFromFormat('Y-m-d', $request->from_date)->format($dateFormat); - $to_date = Carbon::createFromFormat('Y-m-d', $request->to_date)->format($dateFormat); + $from_date = Carbon::createFromFormat('Y-m-d', $request->from_date)->translatedFormat($dateFormat); + $to_date = Carbon::createFromFormat('Y-m-d', $request->to_date)->translatedFormat($dateFormat); $currency = Currency::findOrFail(CompanySetting::getSetting('currency', $company->id)); $colors = [ diff --git a/app/Http/Controllers/V1/Admin/Report/ItemSalesReportController.php b/app/Http/Controllers/V1/Admin/Report/ItemSalesReportController.php index 53c61014..684abe84 100644 --- a/app/Http/Controllers/V1/Admin/Report/ItemSalesReportController.php +++ b/app/Http/Controllers/V1/Admin/Report/ItemSalesReportController.php @@ -41,8 +41,8 @@ class ItemSalesReportController extends Controller } $dateFormat = CompanySetting::getSetting('carbon_date_format', $company->id); - $from_date = Carbon::createFromFormat('Y-m-d', $request->from_date)->format($dateFormat); - $to_date = Carbon::createFromFormat('Y-m-d', $request->to_date)->format($dateFormat); + $from_date = Carbon::createFromFormat('Y-m-d', $request->from_date)->translatedFormat($dateFormat); + $to_date = Carbon::createFromFormat('Y-m-d', $request->to_date)->translatedFormat($dateFormat); $currency = Currency::findOrFail(CompanySetting::getSetting('currency', $company->id)); $colors = [ diff --git a/app/Http/Controllers/V1/Admin/Report/ProfitLossReportController.php b/app/Http/Controllers/V1/Admin/Report/ProfitLossReportController.php index 16925e3f..a866b61c 100644 --- a/app/Http/Controllers/V1/Admin/Report/ProfitLossReportController.php +++ b/app/Http/Controllers/V1/Admin/Report/ProfitLossReportController.php @@ -47,8 +47,8 @@ class ProfitLossReportController extends Controller } $dateFormat = CompanySetting::getSetting('carbon_date_format', $company->id); - $from_date = Carbon::createFromFormat('Y-m-d', $request->from_date)->format($dateFormat); - $to_date = Carbon::createFromFormat('Y-m-d', $request->to_date)->format($dateFormat); + $from_date = Carbon::createFromFormat('Y-m-d', $request->from_date)->translatedFormat($dateFormat); + $to_date = Carbon::createFromFormat('Y-m-d', $request->to_date)->translatedFormat($dateFormat); $currency = Currency::findOrFail(CompanySetting::getSetting('currency', $company->id)); $colors = [ diff --git a/app/Http/Controllers/V1/Admin/Report/TaxSummaryReportController.php b/app/Http/Controllers/V1/Admin/Report/TaxSummaryReportController.php index a0c4c4a0..0e3a762d 100644 --- a/app/Http/Controllers/V1/Admin/Report/TaxSummaryReportController.php +++ b/app/Http/Controllers/V1/Admin/Report/TaxSummaryReportController.php @@ -42,8 +42,8 @@ class TaxSummaryReportController extends Controller } $dateFormat = CompanySetting::getSetting('carbon_date_format', $company->id); - $from_date = Carbon::createFromFormat('Y-m-d', $request->from_date)->format($dateFormat); - $to_date = Carbon::createFromFormat('Y-m-d', $request->to_date)->format($dateFormat); + $from_date = Carbon::createFromFormat('Y-m-d', $request->from_date)->translatedFormat($dateFormat); + $to_date = Carbon::createFromFormat('Y-m-d', $request->to_date)->translatedFormat($dateFormat); $currency = Currency::findOrFail(CompanySetting::getSetting('currency', $company->id)); $colors = [ diff --git a/app/Http/Controllers/V1/Customer/General/BootstrapController.php b/app/Http/Controllers/V1/Customer/General/BootstrapController.php index bfed72e7..f34f08ba 100644 --- a/app/Http/Controllers/V1/Customer/General/BootstrapController.php +++ b/app/Http/Controllers/V1/Customer/General/BootstrapController.php @@ -34,6 +34,7 @@ class BootstrapController extends Controller 'menu' => $menu, 'current_customer_currency' => Currency::find($customer->currency_id), 'modules' => Module::where('enabled', true)->pluck('name'), + 'current_company_language' => CompanySetting::getSetting('language', $customer->company_id), ]]); } } diff --git a/app/Http/Controllers/V1/Installation/LanguagesController.php b/app/Http/Controllers/V1/Installation/LanguagesController.php new file mode 100755 index 00000000..f6451616 --- /dev/null +++ b/app/Http/Controllers/V1/Installation/LanguagesController.php @@ -0,0 +1,21 @@ +json([ + 'languages' => config('invoiceshelf.languages'), + ]); + } +} diff --git a/app/Http/Controllers/V1/Installation/OnboardingWizardController.php b/app/Http/Controllers/V1/Installation/OnboardingWizardController.php index 20e278ec..9224fa8b 100644 --- a/app/Http/Controllers/V1/Installation/OnboardingWizardController.php +++ b/app/Http/Controllers/V1/Installation/OnboardingWizardController.php @@ -19,11 +19,13 @@ class OnboardingWizardController extends Controller if (! InstallUtils::dbMarkerExists()) { return response()->json([ 'profile_complete' => 0, + 'profile_language' => 'en', ]); } return response()->json([ 'profile_complete' => Setting::getSetting('profile_complete'), + 'profile_language' => Setting::getSetting('profile_language'), ]); } @@ -43,4 +45,13 @@ class OnboardingWizardController extends Controller 'profile_complete' => Setting::getSetting('profile_complete'), ]); } + + public function saveLanguage(Request $request) + { + Setting::setSetting('profile_language', $request->profile_language); + + return response()->json([ + 'profile_language' => Setting::getSetting('profile_language'), + ]); + } } diff --git a/app/Http/Resources/RoleResource.php b/app/Http/Resources/RoleResource.php index 9450a485..9aa0954c 100644 --- a/app/Http/Resources/RoleResource.php +++ b/app/Http/Resources/RoleResource.php @@ -29,6 +29,6 @@ class RoleResource extends JsonResource { $dateFormat = CompanySetting::getSetting('carbon_date_format', $this->scope); - return Carbon::parse($this->created_at)->format($dateFormat); + return Carbon::parse($this->created_at)->translatedFormat($dateFormat); } } diff --git a/app/Mail/EstimateViewedMail.php b/app/Mail/EstimateViewedMail.php index af816cde..b9e1bfe9 100644 --- a/app/Mail/EstimateViewedMail.php +++ b/app/Mail/EstimateViewedMail.php @@ -31,6 +31,7 @@ class EstimateViewedMail extends Mailable public function build() { return $this->from(config('mail.from.address'), config('mail.from.name')) + ->subject(__('notification_view_estimate')) ->markdown('emails.viewed.estimate', ['data', $this->data]); } } diff --git a/app/Mail/InvoiceViewedMail.php b/app/Mail/InvoiceViewedMail.php index 40ee0eef..a43b8662 100644 --- a/app/Mail/InvoiceViewedMail.php +++ b/app/Mail/InvoiceViewedMail.php @@ -31,6 +31,7 @@ class InvoiceViewedMail extends Mailable public function build() { return $this->from(config('mail.from.address'), config('mail.from.name')) + ->subject(__('notification_view_invoice')) ->markdown('emails.viewed.invoice', ['data', $this->data]); } } diff --git a/app/Models/Customer.php b/app/Models/Customer.php index 101efdd8..47eb2d65 100644 --- a/app/Models/Customer.php +++ b/app/Models/Customer.php @@ -54,7 +54,7 @@ class Customer extends Authenticatable implements HasMedia { $dateFormat = CompanySetting::getSetting('carbon_date_format', $this->company_id); - return Carbon::parse($this->created_at)->format($dateFormat); + return Carbon::parse($this->created_at)->translatedFormat($dateFormat); } public function setPasswordAttribute($value) diff --git a/app/Models/Estimate.php b/app/Models/Estimate.php index 43d8684e..395fee5b 100644 --- a/app/Models/Estimate.php +++ b/app/Models/Estimate.php @@ -112,14 +112,14 @@ class Estimate extends Model implements HasMedia { $dateFormat = CompanySetting::getSetting('carbon_date_format', $this->company_id); - return Carbon::parse($this->expiry_date)->format($dateFormat); + return Carbon::parse($this->expiry_date)->translatedFormat($dateFormat); } public function getFormattedEstimateDateAttribute($value) { $dateFormat = CompanySetting::getSetting('carbon_date_format', $this->company_id); - return Carbon::parse($this->estimate_date)->format($dateFormat); + return Carbon::parse($this->estimate_date)->translatedFormat($dateFormat); } public function scopeEstimatesBetween($query, $start, $end) diff --git a/app/Models/Expense.php b/app/Models/Expense.php index c7d297bc..ef46b514 100644 --- a/app/Models/Expense.php +++ b/app/Models/Expense.php @@ -72,14 +72,14 @@ class Expense extends Model implements HasMedia { $dateFormat = CompanySetting::getSetting('carbon_date_format', $this->company_id); - return Carbon::parse($this->expense_date)->format($dateFormat); + return Carbon::parse($this->expense_date)->translatedFormat($dateFormat); } public function getFormattedCreatedAtAttribute($value) { $dateFormat = CompanySetting::getSetting('carbon_date_format', $this->company_id); - return Carbon::parse($this->created_at)->format($dateFormat); + return Carbon::parse($this->created_at)->translatedFormat($dateFormat); } public function getReceiptUrlAttribute($value) diff --git a/app/Models/Invoice.php b/app/Models/Invoice.php index 84e0361a..7bcc754f 100644 --- a/app/Models/Invoice.php +++ b/app/Models/Invoice.php @@ -189,14 +189,14 @@ class Invoice extends Model implements HasMedia { $dateFormat = CompanySetting::getSetting('carbon_date_format', $this->company_id); - return Carbon::parse($this->due_date)->format($dateFormat); + return Carbon::parse($this->due_date)->translatedFormat($dateFormat); } public function getFormattedInvoiceDateAttribute($value) { $dateFormat = CompanySetting::getSetting('carbon_date_format', $this->company_id); - return Carbon::parse($this->invoice_date)->format($dateFormat); + return Carbon::parse($this->invoice_date)->translatedFormat($dateFormat); } public function scopeWhereStatus($query, $status) diff --git a/app/Models/Item.php b/app/Models/Item.php index 9be3b144..a73b62b4 100644 --- a/app/Models/Item.php +++ b/app/Models/Item.php @@ -111,7 +111,7 @@ class Item extends Model { $dateFormat = CompanySetting::getSetting('carbon_date_format', request()->header('company')); - return Carbon::parse($this->created_at)->format($dateFormat); + return Carbon::parse($this->created_at)->translatedFormat($dateFormat); } public function taxes(): HasMany diff --git a/app/Models/Payment.php b/app/Models/Payment.php index 423f6964..be7cb407 100644 --- a/app/Models/Payment.php +++ b/app/Models/Payment.php @@ -74,14 +74,14 @@ class Payment extends Model implements HasMedia { $dateFormat = CompanySetting::getSetting('carbon_date_format', $this->company_id); - return Carbon::parse($this->created_at)->format($dateFormat); + return Carbon::parse($this->created_at)->translatedFormat($dateFormat); } public function getFormattedPaymentDateAttribute($value) { $dateFormat = CompanySetting::getSetting('carbon_date_format', $this->company_id); - return Carbon::parse($this->payment_date)->format($dateFormat); + return Carbon::parse($this->payment_date)->translatedFormat($dateFormat); } public function getPaymentPdfUrlAttribute() diff --git a/app/Models/RecurringInvoice.php b/app/Models/RecurringInvoice.php index 8afbeed9..6e71f619 100644 --- a/app/Models/RecurringInvoice.php +++ b/app/Models/RecurringInvoice.php @@ -57,14 +57,14 @@ class RecurringInvoice extends Model { $dateFormat = CompanySetting::getSetting('carbon_date_format', $this->company_id); - return Carbon::parse($this->starts_at)->format($dateFormat); + return Carbon::parse($this->starts_at)->translatedFormat($dateFormat); } public function getFormattedNextInvoiceAtAttribute() { $dateFormat = CompanySetting::getSetting('carbon_date_format', $this->company_id); - return Carbon::parse($this->next_invoice_at)->format($dateFormat); + return Carbon::parse($this->next_invoice_at)->translatedFormat($dateFormat); } public function getFormattedLimitDateAttribute() diff --git a/app/Space/DateFormatter.php b/app/Space/DateFormatter.php index b3b58ecd..7510b83d 100644 --- a/app/Space/DateFormatter.php +++ b/app/Space/DateFormatter.php @@ -47,7 +47,7 @@ class DateFormatter foreach (static::$formats as $format) { $new[] = [ - 'display_date' => Carbon::now()->format($format['carbon_format']), + 'display_date' => Carbon::now()->translatedFormat($format['carbon_format']), 'carbon_format_value' => $format['carbon_format'], 'moment_format_value' => $format['moment_format'], ]; diff --git a/app/Space/EnvironmentManager.php b/app/Space/EnvironmentManager.php index df87732b..571251ca 100755 --- a/app/Space/EnvironmentManager.php +++ b/app/Space/EnvironmentManager.php @@ -103,9 +103,9 @@ class EnvironmentManager */ public function saveDatabaseVariables(DatabaseEnvironmentRequest $request) { - $dbEnv = [ 'APP_URL' => $request->get('app_url'), + 'APP_LOCALE' => $request->get('app_locale'), 'DB_CONNECTION' => $request->get('database_connection'), 'SANCTUM_STATEFUL_DOMAINS' => $request->get('app_domain'), 'SESSION_DOMAIN' => explode(':', $request->get('app_domain'))[0], diff --git a/config/app.php b/config/app.php index efd5f969..b17b818c 100644 --- a/config/app.php +++ b/config/app.php @@ -11,4 +11,4 @@ return [ 'Redis' => Illuminate\Support\Facades\Redis::class, ])->toArray(), -]; +]; \ No newline at end of file diff --git a/config/invoiceshelf.php b/config/invoiceshelf.php index 75b29e94..e3305d38 100644 --- a/config/invoiceshelf.php +++ b/config/invoiceshelf.php @@ -78,18 +78,18 @@ return [ * List of Fiscal Years */ 'fiscal_years' => [ - ['key' => 'january-december', 'value' => '1-12'], - ['key' => 'february-january', 'value' => '2-1'], - ['key' => 'march-february', 'value' => '3-2'], - ['key' => 'april-march', 'value' => '4-3'], - ['key' => 'may-april', 'value' => '5-4'], - ['key' => 'june-may', 'value' => '6-5'], - ['key' => 'july-june', 'value' => '7-6'], - ['key' => 'august-july', 'value' => '8-7'], - ['key' => 'september-august', 'value' => '9-8'], - ['key' => 'october-september', 'value' => '10-9'], - ['key' => 'november-october', 'value' => '11-10'], - ['key' => 'december-november', 'value' => '12-11'], + ['key' => 'settings.preferences.fiscal_years.january_december', 'value' => '1-12'], + ['key' => 'settings.preferences.fiscal_years.february_january', 'value' => '2-1'], + ['key' => 'settings.preferences.fiscal_years.march_february', 'value' => '3-2'], + ['key' => 'settings.preferences.fiscal_years.april_march', 'value' => '4-3'], + ['key' => 'settings.preferences.fiscal_years.may_april', 'value' => '5-4'], + ['key' => 'settings.preferences.fiscal_years.june_may', 'value' => '6-5'], + ['key' => 'settings.preferences.fiscal_years.july_june', 'value' => '7-6'], + ['key' => 'settings.preferences.fiscal_years.august_july', 'value' => '8-7'], + ['key' => 'settings.preferences.fiscal_years.september_august', 'value' => '9-8'], + ['key' => 'settings.preferences.fiscal_years.october_september', 'value' => '10-9'], + ['key' => 'settings.preferences.fiscal_years.november_october', 'value' => '11-10'], + ['key' => 'settings.preferences.fiscal_years.december_november', 'value' => '12-11'], ], /* @@ -408,7 +408,7 @@ return [ */ 'customer_menu' => [ [ - 'title' => 'Dashboard', + 'title' => 'navigation.dashboard', 'link' => '/customer/dashboard', 'icon' => '', 'name' => '', @@ -418,7 +418,7 @@ return [ 'model' => '', ], [ - 'title' => 'Invoices', + 'title' => 'navigation.invoices', 'link' => '/customer/invoices', 'icon' => '', 'name' => '', @@ -428,7 +428,7 @@ return [ 'model' => '', ], [ - 'title' => 'Estimates', + 'title' => 'navigation.estimates', 'link' => '/customer/estimates', 'icon' => '', 'name' => '', @@ -438,7 +438,7 @@ return [ 'model' => '', ], [ - 'title' => 'Payments', + 'title' => 'navigation.payments', 'link' => '/customer/payments', 'icon' => '', 'name' => '', @@ -448,7 +448,7 @@ return [ 'model' => '', ], [ - 'title' => 'Settings', + 'title' => 'navigation.settings', 'link' => '/customer/settings', 'icon' => '', 'name' => '', diff --git a/lang/en.json b/lang/en.json index 9e042c29..3162e19e 100644 --- a/lang/en.json +++ b/lang/en.json @@ -100,16 +100,35 @@ "pay_invoice": "Pay Invoice", "login_successfully": "Logged in successfully!", "logged_out_successfully": "Logged out successfully", - "mark_as_default": "Mark as default" + "mark_as_default": "Mark as default", + "no_data_found": "No data found", + "pagination": { + "previous": "Previous", + "next": "Next", + "showing": "Showing", + "to": "to", + "of": "of", + "results": "results" + }, + "file_upload": { + "drag_a_file": "Drag a file here or", + "browse": "browse", + "to_choose": "to choose a file" + }, + "multiselect": { + "the_list_is_empty": "The list is empty", + "no_results_found": "No results found" + }, + "copy_to_clipboard": "Copy to Clipboard" }, "dashboard": { "select_year": "Select year", "cards": { "due_amount": "Amount Due", - "customers": "Customers", - "invoices": "Invoices", - "estimates": "Estimates", - "payments": "Payments" + "customers": "Customer | Customers", + "invoices": "Invoice | Invoices", + "estimates": "Estimate | Estimates", + "payments": "Payment | Payments" }, "chart_info": { "total_sales": "Sales", @@ -548,7 +567,18 @@ "hour": "Hour", "day_month": "Day of month", "month": "Month", - "day_week": "Day of week" + "day_week": "Day of week", + "every_minute": "Every Minute", + "every_30_minute": "Every 30 Minute", + "every_hour": "Every Hour", + "every_2_hour": "Every 2 Hour", + "every_day_at_midnight": "Every day at midnight", + "every_week": "Every Week", + "every_15_days_at_midnight": "Every 15 days at midnight", + "on_the_first_day_of_every_month_at_midnight": "On the first day of every month at 00:00", + "every_6_month": "Every 6 Month", + "every_year_on_the_first_day_of_january_at_midnight": "Every year on the first day of january at 00:00", + "custom": "Custom" }, "confirm_delete": "You will not be able to recover this Invoice | You will not be able to recover these Invoices", "created_message": "Recurring Invoice created successfully", @@ -557,7 +587,12 @@ "marked_as_sent_message": "Recurring Invoice marked as sent successfully", "user_email_does_not_exist": "User email does not exist", "something_went_wrong": "something went wrong", - "invalid_due_amount_message": "Total Recurring Invoice amount cannot be less than total paid amount for this Recurring Invoice. Please update the invoice or delete the associated payments to continue." + "invalid_due_amount_message": "Total Recurring Invoice amount cannot be less than total paid amount for this Recurring Invoice. Please update the invoice or delete the associated payments to continue.", + "limit": { + "none": "None", + "date": "Date", + "count": "Count" + } }, "payments": { "title": "Payments", @@ -595,7 +630,8 @@ "created_message": "Payment created successfully", "updated_message": "Payment updated successfully", "deleted_message": "Payment deleted successfully | Payments deleted successfully", - "invalid_amount_message": "Payment amount is invalid" + "invalid_amount_message": "Payment amount is invalid", + "amount_due": "Due Amount" }, "expenses": { "title": "Expenses", @@ -700,7 +736,8 @@ "installed": "Installed", "no_modules_installed": "No Modules Installed Yet!", "disable_warning": "All the settings for this particular will be reverted.", - "what_you_get": "What you get" + "what_you_get": "What you get", + "sign_up_and_get_token": "Sign up & Get Token" }, "users": { "title": "Users", @@ -752,7 +789,11 @@ "date_range": "Select Date Range", "to_date": "To Date", "from_date": "From Date", - "report_type": "Report Type" + "report_type": "Report Type", + "sort": { + "by_customer": "By Customer", + "by_item": "By Item" + } }, "taxes": { "taxes": "Taxes", @@ -920,7 +961,14 @@ "added_message": "Custom Field added successfully", "press_enter_to_add": "Press enter to add new option", "model_in_use": "Cannot update model for fields which are already in use.", - "type_in_use": "Cannot update type for fields which are already in use." + "type_in_use": "Cannot update type for fields which are already in use.", + "model_type": { + "customer": "Customer", + "invoice": "Invoice", + "estimate": "Estimate", + "expense": "Expense", + "payment": "Payment" + } }, "customization": { "customization": "customization", @@ -1041,7 +1089,12 @@ "note_updated": "Note Updated successfully", "note_confirm_delete": "You will not be able to recover this Note", "already_in_use": "Note is already in use", - "deleted_message": "Note deleted successfully" + "deleted_message": "Note deleted successfully", + "types": { + "estimate": "Estimate", + "invoice": "Invoice", + "payment": "Payment" + } } }, "account_settings": { @@ -1196,7 +1249,21 @@ "on_hold": "On Hold", "update_status": "Update Status", "completed": "Completed", - "company_currency_unchangeable": "Company currency cannot be changed" + "company_currency_unchangeable": "Company currency cannot be changed", + "fiscal_years": { + "january_december": "January - December", + "february_january": "February - January", + "march_february": "March - February", + "april_march": "April - March", + "may_april": "May - April", + "june_may": "June - May", + "july_june": "July - June", + "august_july": "August - July", + "september_august": "September - August", + "october_september": "October - September", + "november_october": "November - October", + "december_november": "December - November" + } }, "update_app": { "title": "Update App", @@ -1355,6 +1422,10 @@ "next": "Next", "continue": "Continue", "skip": "Skip", + "install_language": { + "title": "Choose your language", + "description": "Select language wizard to install InvoiceShelf" + }, "database": { "database": "Site URL & Database", "connection": "Database Connection", @@ -1381,7 +1452,14 @@ "verify_now": "Verify Now", "success": "Domain Verify Successfully.", "failed": "Domain verification failed. Please enter valid domain name.", - "verify_and_continue": "Verify And Continue" + "verify_and_continue": "Verify And Continue", + "notes": { + "notes" : "Notes:", + "not_contain" : "App domain should not contain", + "or" : "or", + "in_front": "in front of the domain.", + "if_you": "If you're accessing the website on a different port, please mention the port. For example:" + } }, "mail": { "host": "Mail Host", @@ -1532,5 +1610,14 @@ "pdf_received_from": "Received from:", "pdf_tax_label": "Tax", "pdf_tax_id": "Tax-ID", - "pdf_vat_id": "VAT-ID" + "pdf_vat_id": "VAT-ID", + "mail_thanks": "Thanks", + "mail_view_estimate":"View Estimate", + "mail_viewed_estimate": ":name viewed this Estimate.", + "mail_view_invoice": "View Invoice", + "mail_viewed_invoice": ":name viewed this Invoice.", + "mail_view_payment": "View Payment", + "notification_view_estimate": "[Notification] Estimate viewed", + "notification_view_invoice": "[Notification] Invoice viewed", + "You have received a new invoice from {COMPANY_NAME}.
Please download using the button below:": "You have received a new invoice from {COMPANY_NAME}.
Please download using the button below:" } diff --git a/lang/fr.json b/lang/fr.json index 28410ad1..d0bf8983 100644 --- a/lang/fr.json +++ b/lang/fr.json @@ -100,16 +100,35 @@ "pay_invoice": "Payer facture", "login_successfully": "Identifié avec succès!", "logged_out_successfully": "Déconnecté avec succès", - "mark_as_default": "Marquer par défaut" + "mark_as_default": "Marquer par défaut", + "no_data_found": "Aucune donnée pour le moment", + "pagination": { + "previous": "Précédent", + "next": "Suivant", + "showing": "Affichage de", + "to": "à", + "of": "sur", + "results": "résultats" + }, + "file_upload": { + "drag_a_file": "Déposez un fichier ici ou", + "browse": "parcourez", + "to_choose": "pour choisir un fichier" + }, + "multiselect": { + "the_list_is_empty": "La liste est vide", + "no_results_found": "Aucun résultat" + }, + "copy_to_clipboard": "Copier dans le presse-papier" }, "dashboard": { "select_year": "Sélectionnez l'année", "cards": { "due_amount": "Encours clients", - "customers": "Clients", - "invoices": "Factures", - "estimates": "Devis", - "payments": "Paiements" + "customers": "Client | Clients", + "invoices": "Facture | Factures", + "estimates": "Devis | Devis", + "payments": "Paiement | Paiements" }, "chart_info": { "total_sales": "Ventes", @@ -548,7 +567,18 @@ "hour": "Heure", "day_month": "Jour du mois", "month": "Mois", - "day_week": "Jour de la semaine" + "day_week": "Jour de la semaine", + "every_minute": "Toutes les minutes", + "every_30_minute": "Toutes les 30 minutes", + "every_hour": "Toutes les heures", + "every_2_hour": "Toutes les 2 heures", + "every_day_at_midnight": "Tous les jours à minuit", + "every_week": "Toutes les semaines", + "every_15_days_at_midnight": "Tous les 15 jours à minuit", + "on_the_first_day_of_every_month_at_midnight": "Au premier jour du mois à minuit", + "every_6_month": "Tous les 6 mois", + "every_year_on_the_first_day_of_january_at_midnight": "Tous les ans, au premier janvier à minuit", + "custom": "Personnalisée" }, "confirm_delete": "Vous ne pourrez pas récupérer cette facture | Vous ne pourrez pas récupérer ces factures", "created_message": "Facture récurrente créée", @@ -557,7 +587,12 @@ "marked_as_sent_message": "Facture récurrente envoyée", "user_email_does_not_exist": "L'email de l'utilisateur n'existe pas", "something_went_wrong": "une erreur s’est produite", - "invalid_due_amount_message": "Le montant total de la facture récurrente ne peut pas être inférieur au montant total payé pour cette facture récurrente. Veuillez mettre à jour la facture ou supprimer les paiements associés pour continuer." + "invalid_due_amount_message": "Le montant total de la facture récurrente ne peut pas être inférieur au montant total payé pour cette facture récurrente. Veuillez mettre à jour la facture ou supprimer les paiements associés pour continuer.", + "limit": { + "none": "Aucun", + "date": "Date", + "count": "Nombre" + } }, "payments": { "title": "Paiements", @@ -595,7 +630,8 @@ "created_message": "Paiement créé", "updated_message": "Paiement mis à jour", "deleted_message": "Paiement supprimé | Paiements supprimés", - "invalid_amount_message": "Le montant du paiement est invalide" + "invalid_amount_message": "Le montant du paiement est invalide", + "amount_due": "Montant dû" }, "expenses": { "title": "Dépenses", @@ -700,7 +736,8 @@ "installed": "Installé", "no_modules_installed": "Aucun module installé !", "disable_warning": "Tous les paramètres de ce module seront réinitialisés.", - "what_you_get": "Ce que vous obtenez" + "what_you_get": "Ce que vous obtenez", + "sign_up_and_get_token": "Inscrivez-vous et obtenez votre Jeton" }, "users": { "title": "Utilisateurs", @@ -752,7 +789,11 @@ "date_range": "Période", "to_date": "Au", "from_date": "Du", - "report_type": "Trier" + "report_type": "Trier", + "sort": { + "by_customer": "Par Client", + "by_item": "Par Article" + } }, "taxes": { "taxes": "Taxes", @@ -863,6 +904,8 @@ "company_info": { "company_info": "Coordonnées de la société", "company_name": "Nom", + "tax_id": "Numéro d'identification fiscale", + "vat_id": "Numéro d'identification TVA", "company_logo": "Logo", "section_description": "Saisissez ici les coordonnées de votre entreprise qui s'afficheront sur tous vos documents.", "phone": "Téléphone", @@ -918,7 +961,14 @@ "added_message": "Champ personnalisé ajouté", "press_enter_to_add": "Appuyez sur Entrée pour ajouter une nouvelle option", "model_in_use": "Impossible de mettre à jour le modèle pour les champs qui sont déjà utilisés.", - "type_in_use": "Impossible de mettre à jour le type des champs déjà utilisés." + "type_in_use": "Impossible de mettre à jour le type des champs déjà utilisés.", + "model_type": { + "customer": "Client", + "invoice": "Facture", + "estimate": "Devis", + "expense": "Dépense", + "payment": "Paiement" + } }, "customization": { "customization": "Personnalisation", @@ -1039,7 +1089,12 @@ "note_updated": "Note de bas de page mise à jour", "note_confirm_delete": "Vous ne pourrez pas récupérer cette note de bas de page", "already_in_use": "La note de bas de page est déjà utilisée", - "deleted_message": "Note de bas de page supprimée" + "deleted_message": "Note de bas de page supprimée", + "types": { + "estimate": "Devis", + "invoice": "Facture", + "payment": "Paiement" + } } }, "account_settings": { @@ -1194,7 +1249,21 @@ "on_hold": "En attente", "update_status": "Mettre à jour le statut", "completed": "Terminé", - "company_currency_unchangeable": "La devise de la société ne peut pas être modifiée" + "company_currency_unchangeable": "La devise de la société ne peut pas être modifiée", + "fiscal_years": { + "january_december": "Janvier - Décembre", + "february_january": "Février - Janvier", + "march_february": "Mars - Février", + "april_march": "Avril - Mars", + "may_april": "Mai - Avril", + "june_may": "Juin - Mai", + "july_june": "Juillet - Juin", + "august_july": "Aout - Juillet", + "september_august": "Septembre - Aout", + "october_september": "Octobre - Septembre", + "november_october": "Novembre - Octobre", + "december_november": "Décembre - Novembre" + } }, "update_app": { "title": "Mise à jour", @@ -1267,6 +1336,12 @@ "aws_region": "Région AWS", "aws_bucket": "Bucket", "aws_root": "Répertoire", + "s3_endpoint": "S3 Endpoint", + "s3_key": "S3 Key", + "s3_secret": "S3 Secret", + "s3_region": "S3 Region", + "s3_bucket": "S3 Bucket", + "s3_root": "S3 Root", "do_spaces_type": "Type", "do_spaces_key": "Key", "do_spaces_secret": "Secret", @@ -1347,6 +1422,10 @@ "next": "Suivant", "continue": "Poursuivre", "skip": "Ignorer", + "install_language": { + "title": "Choix de la langue", + "description": "Sélectionner la langue de l'assistant pour installer InvoiceShelf" + }, "database": { "database": "URL du site et base de données", "connection": "Connexion à la base de données", @@ -1373,7 +1452,14 @@ "verify_now": "Vérifier maintenant", "success": "Vérification du domaine réussie.", "failed": "La vérification du domaine a échoué. Veuillez entrer un nom de domaine valide.", - "verify_and_continue": "Vérifier et continuer" + "verify_and_continue": "Vérifier et continuer", + "notes": { + "notes" : "Notes :", + "not_contain" : "Le domaine de l'application ne doit pas contenir", + "or" : "ou", + "in_front": "devant le domaine.", + "if_you": "Si vous accédez au site Web sur un autre port, veuillez mentionner le port. Par exemple :" + } }, "mail": { "host": "Serveur email", @@ -1522,5 +1608,16 @@ "pdf_bill_to": "Facturer à", "pdf_ship_to": "Expédier à", "pdf_received_from": "Reçu de :", - "pdf_tax_label": "Taxe" + "pdf_tax_label": "Taxe", + "pdf_tax_id": "Tax-ID", + "pdf_vat_id": "VAT-ID", + "mail_thanks": "Merci", + "mail_view_estimate":"Voir le Devis", + "mail_viewed_estimate": ":name a consulté ce Devis.", + "mail_view_invoice": "Voir la Facture", + "mail_viewed_invoice": ":name a consulté cette Facture.", + "mail_view_payment": "Voir le Paiement", + "notification_view_estimate": "[Notification] Un Devis a été consulté", + "notification_view_invoice": "[Notification] Une Facture a été consultée", + "You have received a new invoice from {COMPANY_NAME}.
Please download using the button below:": "Vous avez reçu une nouvelle facture de {COMPANY_NAME}.
Vous pouvez la télécharger en cliquant sur le bouton :" } diff --git a/resources/scripts/admin/components/CopyInputField.vue b/resources/scripts/admin/components/CopyInputField.vue index 851a0bc4..a4995820 100644 --- a/resources/scripts/admin/components/CopyInputField.vue +++ b/resources/scripts/admin/components/CopyInputField.vue @@ -26,7 +26,7 @@ {{ token }} @@ -122,7 +122,11 @@ const route = useRoute() const { t } = useI18n() let isSaving = ref(false) -const types = reactive(['Invoice', 'Estimate', 'Payment']) +const types = reactive([ + {label: t('settings.customization.notes.types.invoice'), value: 'Invoice'}, + {label: t('settings.customization.notes.types.estimate'), value: 'Estimate'}, + {label: t('settings.customization.notes.types.payment'), value: 'Payment'} +]) let fields = ref(['customer', 'customerCustom']) const modalActive = computed(() => { @@ -164,7 +168,7 @@ watch( onMounted(() => { if (route.name === 'estimates.create') { noteStore.currentNote.type = 'Estimate' - } else if (route.name === 'invoices.create') { + } else if (route.name === 'invoices.create' || route.name === 'recurring-invoices.create') { noteStore.currentNote.type = 'Invoice' } else { noteStore.currentNote.type = 'Payment' diff --git a/resources/scripts/admin/components/modal-components/SendEstimateModal.vue b/resources/scripts/admin/components/modal-components/SendEstimateModal.vue index 795cdfeb..bbdecd82 100644 --- a/resources/scripts/admin/components/modal-components/SendEstimateModal.vue +++ b/resources/scripts/admin/components/modal-components/SendEstimateModal.vue @@ -96,7 +96,7 @@ @click="cancelPreview" > - Edit + {{ $t('general.edit') }} Yes - No + {{ $t('general.yes') }} + {{ $t('general.no') }}

{{ field.default_answer }} diff --git a/resources/scripts/admin/views/dashboard/DashboardChart.vue b/resources/scripts/admin/views/dashboard/DashboardChart.vue index cb7e0c07..c2302e9f 100644 --- a/resources/scripts/admin/views/dashboard/DashboardChart.vue +++ b/resources/scripts/admin/views/dashboard/DashboardChart.vue @@ -156,13 +156,16 @@ import LineChart from '@/scripts/admin/components/charts/LineChart.vue' import ChartPlaceholder from './DashboardChartPlaceholder.vue' import abilities from '@/scripts/admin/stub/abilities' import { useUserStore } from '@/scripts/admin/stores/user' +import { useI18n } from 'vue-i18n' const dashboardStore = useDashboardStore() const companyStore = useCompanyStore() +const { t } = useI18n() const utils = inject('utils') const userStore = useUserStore() -const years = ref(['This year', 'Previous year']) +const years = ref( [{label: t('dateRange.this_year'), value: 'This year'}, {label: t( 'dateRange.previous_year'), value: + 'Previous year'}]) const selectedYear = ref('This year') watch( diff --git a/resources/scripts/admin/views/dashboard/DashboardStats.vue b/resources/scripts/admin/views/dashboard/DashboardStats.vue index e54b3af6..6c392c35 100644 --- a/resources/scripts/admin/views/dashboard/DashboardStats.vue +++ b/resources/scripts/admin/views/dashboard/DashboardStats.vue @@ -21,7 +21,7 @@ :icon-component="CustomerIcon" :loading="!dashboardStore.isDashboardDataLoaded" route="/admin/customers" - :label="$t('dashboard.cards.customers')" + :label="(dashboardStore.stats.totalCustomerCount <= 1 ? $t('dashboard.cards.customers', 1) : $t('dashboard.cards.customers', 2))" > {{ dashboardStore.stats.totalCustomerCount }} @@ -32,7 +32,7 @@ :icon-component="InvoiceIcon" :loading="!dashboardStore.isDashboardDataLoaded" route="/admin/invoices" - :label="$t('dashboard.cards.invoices')" + :label="(dashboardStore.stats.totalInvoiceCount <= 1 ? $t('dashboard.cards.invoices', 1) : $t('dashboard.cards.invoices', 2))" > {{ dashboardStore.stats.totalInvoiceCount }} @@ -43,7 +43,7 @@ :icon-component="EstimateIcon" :loading="!dashboardStore.isDashboardDataLoaded" route="/admin/estimates" - :label="$t('dashboard.cards.estimates')" + :label="(dashboardStore.stats.totalEstimateCount <= 1 ? $t( 'dashboard.cards.estimates', 1) : $t('dashboard.cards.estimates', 2))" > {{ dashboardStore.stats.totalEstimateCount }} diff --git a/resources/scripts/admin/views/dashboard/DashboardTable.vue b/resources/scripts/admin/views/dashboard/DashboardTable.vue index 0decb6a5..136526a7 100644 --- a/resources/scripts/admin/views/dashboard/DashboardTable.vue +++ b/resources/scripts/admin/views/dashboard/DashboardTable.vue @@ -95,7 +95,7 @@ v-if="hasAtleastOneEstimateAbility()" #cell-actions="{ row }" > - + diff --git a/resources/scripts/admin/views/estimates/Index.vue b/resources/scripts/admin/views/estimates/Index.vue index 90c729aa..7ab9ca83 100644 --- a/resources/scripts/admin/views/estimates/Index.vue +++ b/resources/scripts/admin/views/estimates/Index.vue @@ -216,7 +216,7 @@ @@ -249,6 +249,7 @@ import abilities from '@/scripts/admin/stub/abilities' import ObservatoryIcon from '@/scripts/components/icons/empty/ObservatoryIcon.vue' import EstimateDropDown from '@/scripts/admin/components/dropdowns/EstimateIndexDropdown.vue' import SendEstimateModal from '@/scripts/admin/components/modal-components/SendEstimateModal.vue' +import BaseEstimateStatusLabel from "@/scripts/components/base/BaseEstimateStatusLabel.vue"; const estimateStore = useEstimateStore() const dialogStore = useDialogStore() @@ -258,12 +259,12 @@ const tableComponent = ref(null) const { t } = useI18n() const showFilters = ref(false) const status = ref([ - 'DRAFT', - 'SENT', - 'VIEWED', - 'EXPIRED', - 'ACCEPTED', - 'REJECTED', + {label: t('estimates.draft'), value: 'DRAFT'}, + {label: t('estimates.sent'), value: 'SENT'}, + {label: t('estimates.viewed'), value: 'VIEWED'}, + {label: t('estimates.expired'), value: 'EXPIRED'}, + {label: t('estimates.accepted'), value: 'ACCEPTED'}, + {label: t('estimates.rejected'), value: 'REJECTED'}, ]) const isRequestOngoing = ref(true) diff --git a/resources/scripts/admin/views/estimates/View.vue b/resources/scripts/admin/views/estimates/View.vue index a4d0f799..74def49d 100644 --- a/resources/scripts/admin/views/estimates/View.vue +++ b/resources/scripts/admin/views/estimates/View.vue @@ -212,7 +212,7 @@ :status="estimate.status" class="px-1 text-xs" > - {{ estimate.status }} + diff --git a/resources/scripts/admin/views/expenses/Index.vue b/resources/scripts/admin/views/expenses/Index.vue index 364844de..8bd61972 100644 --- a/resources/scripts/admin/views/expenses/Index.vue +++ b/resources/scripts/admin/views/expenses/Index.vue @@ -278,19 +278,19 @@ const expenseColumns = computed(() => { }, { key: 'expense_date', - label: 'Date', + label: t('expenses.date'), thClass: 'extra', tdClass: 'font-medium text-gray-900', }, { key: 'name', - label: 'Category', + label: t('expenses.category'), thClass: 'extra', tdClass: 'cursor-pointer font-medium text-primary-500', }, - { key: 'user_name', label: 'Customer' }, - { key: 'notes', label: 'Note' }, - { key: 'amount', label: 'Amount' }, + { key: 'user_name', label: t('expenses.customer') }, + { key: 'notes', label: t('expenses.note') }, + { key: 'amount', label: t('expenses.amount') }, { key: 'actions', sortable: false, diff --git a/resources/scripts/admin/views/installation/Installation.vue b/resources/scripts/admin/views/installation/Installation.vue index 7a776bfb..af539165 100644 --- a/resources/scripts/admin/views/installation/Installation.vue +++ b/resources/scripts/admin/views/installation/Installation.vue @@ -9,7 +9,7 @@ /> @@ -20,6 +20,7 @@ + + diff --git a/resources/scripts/admin/views/installation/Step3DatabaseConfig.vue b/resources/scripts/admin/views/installation/Step3DatabaseConfig.vue index e4b938b6..b2a86821 100644 --- a/resources/scripts/admin/views/installation/Step3DatabaseConfig.vue +++ b/resources/scripts/admin/views/installation/Step3DatabaseConfig.vue @@ -36,11 +36,13 @@ export default { const database_connection = ref('mysql') const isSaving = ref(false) const { t } = useI18n() + const { global } = window.i18n const notificationStore = useNotificationStore() const installationStore = useInstallationStore() const databaseData = computed(() => { + installationStore.currentDataBaseData.app_locale = global.locale.value return installationStore.currentDataBaseData }) @@ -75,6 +77,12 @@ export default { emit('next', 3) + let language = { + profile_language: global.locale.value, + } + await installationStore.addInstallationLanguage(language) + + notificationStore.showNotification({ type: 'success', message: t('wizard.success.' + res.data.success), diff --git a/resources/scripts/admin/views/installation/Step4VerifyDomain.vue b/resources/scripts/admin/views/installation/Step4VerifyDomain.vue index fd7084da..ec48d085 100644 --- a/resources/scripts/admin/views/installation/Step4VerifyDomain.vue +++ b/resources/scripts/admin/views/installation/Step4VerifyDomain.vue @@ -18,17 +18,15 @@ -

Notes:

+

{{ $t('wizard.verify_domain.notes.notes') }}

  • - App domain should not contain - https:// or - http in front of - the domain. + {{ $t('wizard.verify_domain.notes.not_contain') }} + https:// {{ $t('wizard.verify_domain.notes.or') }} + http {{ $t('wizard.verify_domain.notes.in_front') }}
  • - If you're accessing the website on a different port, please mention the - port. For example: + {{ $t('wizard.verify_domain.notes.if_you') }} localhost:8080
diff --git a/resources/scripts/admin/views/installation/Step8CompanyPreferences.vue b/resources/scripts/admin/views/installation/Step8CompanyPreferences.vue index d372e367..0066bc19 100644 --- a/resources/scripts/admin/views/installation/Step8CompanyPreferences.vue +++ b/resources/scripts/admin/views/installation/Step8CompanyPreferences.vue @@ -115,7 +115,7 @@ { + return globalStore.fiscalYears.map((item) => { + return Object.assign({}, item, { + key: t(item.key), + }) + }) +}) + const options = reactive([ { title: tm('settings.customization.invoices.allow'), diff --git a/resources/scripts/admin/views/invoices/Index.vue b/resources/scripts/admin/views/invoices/Index.vue index 5a5e28f9..dfa8d9de 100644 --- a/resources/scripts/admin/views/invoices/Index.vue +++ b/resources/scripts/admin/views/invoices/Index.vue @@ -225,7 +225,7 @@ @@ -249,7 +249,7 @@ :status="row.data.paid_status" class="px-1 py-0.5 ml-2" > - {{ row.data.paid_status }} + @@ -277,6 +277,7 @@ import { debouncedWatch } from '@vueuse/core' import MoonwalkerIcon from '@/scripts/components/icons/empty/MoonwalkerIcon.vue' import InvoiceDropdown from '@/scripts/admin/components/dropdowns/InvoiceIndexDropdown.vue' import SendInvoiceModal from '@/scripts/admin/components/modal-components/SendInvoiceModal.vue' +import BaseInvoiceStatusLabel from "@/scripts/components/base/BaseInvoiceStatusLabel.vue"; // Stores const invoiceStore = useInvoiceStore() const dialogStore = useDialogStore() @@ -291,12 +292,21 @@ const showFilters = ref(false) const status = ref([ { - label: 'Status', - options: ['DRAFT', 'DUE', 'SENT', 'VIEWED', 'COMPLETED'], + label: t('invoices.status'), + options: [ + {label: t('general.draft'), value: 'DRAFT'}, + {label: t('general.due'), value: 'DUE'}, + {label: t('general.sent'), value: 'SENT'}, + {label: t('invoices.viewed'), value: 'VIEWED'}, + {label: t('invoices.completed'), value: 'COMPLETED'} + ], }, { - label: 'Paid Status', - options: ['UNPAID', 'PAID', 'PARTIALLY_PAID'], + label: t('invoices.paid_status'), + options: [ + {label: t('invoices.unpaid'), value: 'UNPAID'}, + {label: t('invoices.paid'), value: 'PAID'}, + {label: t('invoices.partially_paid'), value: 'PARTIALLY_PAID'}], }, , ]) diff --git a/resources/scripts/admin/views/invoices/View.vue b/resources/scripts/admin/views/invoices/View.vue index 6e282934..891e3d6f 100644 --- a/resources/scripts/admin/views/invoices/View.vue +++ b/resources/scripts/admin/views/invoices/View.vue @@ -454,7 +454,7 @@ onSearched = debounce(onSearched, 500) :status="invoice.status" class="px-1 text-xs" > - {{ invoice.status }} + diff --git a/resources/scripts/admin/views/modules/Index.vue b/resources/scripts/admin/views/modules/Index.vue index 1b587686..b7552913 100644 --- a/resources/scripts/admin/views/modules/Index.vue +++ b/resources/scripts/admin/views/modules/Index.vue @@ -101,7 +101,7 @@ target="_blank" > - Sign up & Get Token + {{ $t('modules.sign_up_and_get_token') }} diff --git a/resources/scripts/admin/views/payments/Create.vue b/resources/scripts/admin/views/payments/Create.vue index 27ab0422..5716203e 100644 --- a/resources/scripts/admin/views/payments/Create.vue +++ b/resources/scripts/admin/views/payments/Create.vue @@ -99,7 +99,7 @@ :label="$t('payments.invoice')" :help-text=" selectedInvoice - ? `Due Amount: ${ + ? `${t('payments.amount_due')}: ${ paymentStore.currentPayment.maxPayableAmount / 100 }` : '' diff --git a/resources/scripts/admin/views/payments/Index.vue b/resources/scripts/admin/views/payments/Index.vue index d7ea568e..9c62f2ce 100644 --- a/resources/scripts/admin/views/payments/Index.vue +++ b/resources/scripts/admin/views/payments/Index.vue @@ -251,7 +251,7 @@ const paymentColumns = computed(() => { { key: 'payment_number', label: t('payments.payment_number') }, { key: 'name', label: t('payments.customer') }, { key: 'payment_mode', label: t('payments.payment_mode') }, - { key: 'invoice_number', label: t('invoices.invoice_number') }, + { key: 'invoice_number', label: t('payments.invoice') }, { key: 'amount', label: t('payments.amount') }, { key: 'actions', diff --git a/resources/scripts/admin/views/recurring-invoices/Index.vue b/resources/scripts/admin/views/recurring-invoices/Index.vue index 322bd0b4..0e8420f9 100644 --- a/resources/scripts/admin/views/recurring-invoices/Index.vue +++ b/resources/scripts/admin/views/recurring-invoices/Index.vue @@ -230,7 +230,7 @@ :status="row.data.status" class="px-3 py-1" > - {{ row.data.status }} + @@ -276,7 +276,11 @@ const userStore = useUserStore() const table = ref(null) const { t } = useI18n() const showFilters = ref(false) -const statusList = ref(['ACTIVE', 'ON_HOLD', 'ALL']) +const statusList = ref([ + {label: t('recurring_invoices.active'), value: 'ACTIVE'}, + {label: t('recurring_invoices.on_hold'), value: 'ON_HOLD'}, + {label: t('recurring_invoices.all'), value: 'ALL'} +]) const isRequestOngoing = ref(true) const activeTab = ref('recurring-invoices.all') const router = useRouter() diff --git a/resources/scripts/admin/views/recurring-invoices/create/RecurringInvoiceCreateBasicFields.vue b/resources/scripts/admin/views/recurring-invoices/create/RecurringInvoiceCreateBasicFields.vue index d0eb6a81..d21c556d 100644 --- a/resources/scripts/admin/views/recurring-invoices/create/RecurringInvoiceCreateBasicFields.vue +++ b/resources/scripts/admin/views/recurring-invoices/create/RecurringInvoiceCreateBasicFields.vue @@ -129,7 +129,7 @@ :invalid="v.status.$error" :placeholder="$t('recurring_invoices.select_a_status')" value-prop="value" - label="value" + label="key" /> @@ -186,6 +186,7 @@ import { useDebounceFn } from '@vueuse/core' import { useRecurringInvoiceStore } from '@/scripts/admin/stores/recurring-invoice' import { computed, onMounted, reactive, ref, watch } from 'vue' import { useRoute } from 'vue-router' +import { useI18n } from 'vue-i18n' import ExchangeRateConverter from '@/scripts/admin/components/estimate-invoice-common/ExchangeRateConverter.vue' @@ -207,13 +208,14 @@ const props = defineProps({ const route = useRoute() const recurringInvoiceStore = useRecurringInvoiceStore() const globalStore = useGlobalStore() +const { t } = useI18n() const isLoadingNextDate = ref(false) const limits = reactive([ - { label: 'None', value: 'NONE' }, - { label: 'Date', value: 'DATE' }, - { label: 'Count', value: 'COUNT' }, + { label: t('recurring_invoices.limit.none'), value: 'NONE' }, + { label: t('recurring_invoices.limit.date'), value: 'DATE' }, + { label: t('recurring_invoices.limit.count'), value: 'COUNT' }, ]) const isCustomFrequency = computed(() => { @@ -226,9 +228,17 @@ const isCustomFrequency = computed(() => { const getStatusOptions = computed(() => { if (props.isEdit) { - return globalStore.config.recurring_invoice_status.update_status + return globalStore.config.recurring_invoice_status.update_status.map((item) => { + return Object.assign({}, item, { + key: t(item.key), + }) + }) } - return globalStore.config.recurring_invoice_status.create_status + return globalStore.config.recurring_invoice_status.create_status.map((item) => { + return Object.assign({}, item, { + key: t(item.key), + }) + }) }) watch( diff --git a/resources/scripts/admin/views/recurring-invoices/partials/Invoices.vue b/resources/scripts/admin/views/recurring-invoices/partials/Invoices.vue index fb2b7bdc..fa997aa3 100644 --- a/resources/scripts/admin/views/recurring-invoices/partials/Invoices.vue +++ b/resources/scripts/admin/views/recurring-invoices/partials/Invoices.vue @@ -27,10 +27,15 @@ /> + + + diff --git a/resources/scripts/admin/views/recurring-invoices/partials/RecurringInvoiceViewSidebar.vue b/resources/scripts/admin/views/recurring-invoices/partials/RecurringInvoiceViewSidebar.vue index 42445324..8e37b5f1 100644 --- a/resources/scripts/admin/views/recurring-invoices/partials/RecurringInvoiceViewSidebar.vue +++ b/resources/scripts/admin/views/recurring-invoices/partials/RecurringInvoiceViewSidebar.vue @@ -293,7 +293,7 @@ onSearched = debounce(onSearched, 500) :status="invoice.status" class="px-1 text-xs" > - {{ invoice.status }} + diff --git a/resources/scripts/admin/views/reports/SalesReports.vue b/resources/scripts/admin/views/reports/SalesReports.vue index d73c78a4..4fed5772 100644 --- a/resources/scripts/admin/views/reports/SalesReports.vue +++ b/resources/scripts/admin/views/reports/SalesReports.vue @@ -156,7 +156,16 @@ const dateRange = reactive([ ]) const selectedRange = ref(dateRange[2]) -const reportTypes = ref(['By Customer', 'By Item']) +const reportTypes = ref([ + { + label: t('reports.sales.sort.by_customer'), + value: 'By Customer' + }, + { + label: t('reports.sales.sort.by_item'), + value: 'By Item' + } +]) const selectedType = ref('By Customer') let range = ref(new Date()) let url = ref(null) diff --git a/resources/scripts/admin/views/settings/CustomFieldsSetting.vue b/resources/scripts/admin/views/settings/CustomFieldsSetting.vue index 1cad62b0..016d37f9 100644 --- a/resources/scripts/admin/views/settings/CustomFieldsSetting.vue +++ b/resources/scripts/admin/views/settings/CustomFieldsSetting.vue @@ -30,6 +30,10 @@ ({{ row.data.slug }}) + + diff --git a/resources/scripts/admin/views/settings/NotesSetting.vue b/resources/scripts/admin/views/settings/NotesSetting.vue index c6026cdc..320e3d5b 100644 --- a/resources/scripts/admin/views/settings/NotesSetting.vue +++ b/resources/scripts/admin/views/settings/NotesSetting.vue @@ -31,6 +31,9 @@ :load-data="refreshTable" /> + @@ -113,4 +116,17 @@ async function openNoteSelectModal() { async function refreshTable() { table.value && table.value.refresh() } + +function getLabelNote(type) { + switch (type) { + case 'Estimate': + return t('settings.customization.notes.types.estimate') + case 'Invoice': + return t('settings.customization.notes.types.invoice') + case 'Payment': + return t('settings.customization.notes.types.payment') + default: + return type + } +} diff --git a/resources/scripts/admin/views/settings/PreferencesSetting.vue b/resources/scripts/admin/views/settings/PreferencesSetting.vue index 3c7c9ebb..717d81cc 100644 --- a/resources/scripts/admin/views/settings/PreferencesSetting.vue +++ b/resources/scripts/admin/views/settings/PreferencesSetting.vue @@ -95,7 +95,7 @@ { }) }) +const fiscalYearsList = computed(() => { + return globalStore.config.fiscal_years.map((item) => { + return Object.assign({}, item, { + key: t(item.key), + }) + }) +}) + watch( () => settingsForm.carbon_date_format, (val) => { diff --git a/resources/scripts/admin/views/settings/customization/NumberCustomizer.vue b/resources/scripts/admin/views/settings/customization/NumberCustomizer.vue index 7cab418a..5d74f306 100644 --- a/resources/scripts/admin/views/settings/customization/NumberCustomizer.vue +++ b/resources/scripts/admin/views/settings/customization/NumberCustomizer.vue @@ -43,7 +43,7 @@ border-t border-b border-gray-200 border-solid " > - Component + {{ $t('settings.customization.component') }} - Parameter + {{ $t('settings.customization.Parameter') }} - Remove + {{ $t('general.remove') }} @@ -160,7 +160,13 @@ const route = useRoute() const table = ref(null) let isFetchingInitialData = ref(true) let showFilters = ref(false) -const status = ref(['DRAFT', 'DUE', 'SENT', 'VIEWED', 'COMPLETED']) +const status = ref([ + {label: t('general.draft'), value: 'DRAFT'}, + {label: t('general.due'), value: 'DUE'}, + {label: t('general.sent'), value: 'SENT'}, + {label: t('invoices.viewed'), value: 'VIEWED'}, + {label: t('invoices.completed'), value: 'COMPLETED'} +]) const filters = reactive({ status: '', from_date: '', @@ -247,7 +253,7 @@ function toggleFilter() { async function fetchData({ page, sort }) { let data = { - status: filters.status, + status: filters.status.value, invoice_number: filters.invoice_number, from_date: filters.from_date, to_date: filters.to_date, diff --git a/resources/scripts/customer/views/invoices/View.vue b/resources/scripts/customer/views/invoices/View.vue index 28442aea..f8161127 100644 --- a/resources/scripts/customer/views/invoices/View.vue +++ b/resources/scripts/customer/views/invoices/View.vue @@ -175,7 +175,7 @@ {{ invoice.invoice_number }} - {{ invoice.status }} + diff --git a/resources/views/emails/send/estimate.blade.php b/resources/views/emails/send/estimate.blade.php index 8e82bdc3..d066a250 100644 --- a/resources/views/emails/send/estimate.blade.php +++ b/resources/views/emails/send/estimate.blade.php @@ -19,7 +19,7 @@ {!! $data['body'] !!} @if(!$data['attach']['data']) @component('mail::button', ['url' => $data['url']]) - View Estimate + @lang('mail_view_estimate') @endcomponent @endif @endcomponent diff --git a/resources/views/emails/send/invoice.blade.php b/resources/views/emails/send/invoice.blade.php index 53e2dce2..c1a3a7e5 100644 --- a/resources/views/emails/send/invoice.blade.php +++ b/resources/views/emails/send/invoice.blade.php @@ -19,7 +19,7 @@ {!! $data['body'] !!} @if(!$data['attach']['data']) @component('mail::button', ['url' => $data['url']]) - View Invoice + @lang('mail_view_invoice') @endcomponent @endif @endcomponent diff --git a/resources/views/emails/send/payment.blade.php b/resources/views/emails/send/payment.blade.php index 4670542d..1e411a17 100644 --- a/resources/views/emails/send/payment.blade.php +++ b/resources/views/emails/send/payment.blade.php @@ -19,7 +19,7 @@ {!! $data['body'] !!} @if(!$data['attach']['data']) @component('mail::button', ['url' => $data['url']]) - View Payment + @lang('mail_view_payment') @endcomponent @endif @endcomponent diff --git a/resources/views/emails/viewed/estimate.blade.php b/resources/views/emails/viewed/estimate.blade.php index 5bfd6588..787872a3 100644 --- a/resources/views/emails/viewed/estimate.blade.php +++ b/resources/views/emails/viewed/estimate.blade.php @@ -1,10 +1,9 @@ @component('mail::message') -{{ $data['user']['name'] }} viewed this Estimate. +@lang('mail_viewed_estimate', ['name' => $data['user']['name']]) -@component('mail::button', ['url' => url('/admin/estimates/'.$data['estimate']['id'].'/view')]) -View Estimate +@component('mail::button', ['url' => url('/admin/estimates/'.$data['estimate']['id'].'/view')])@lang('mail_view_estimate') @endcomponent -Thanks,
+@lang('mail_thanks'),
{{ config('app.name') }} @endcomponent diff --git a/resources/views/emails/viewed/invoice.blade.php b/resources/views/emails/viewed/invoice.blade.php index 9a28139b..02554fc3 100644 --- a/resources/views/emails/viewed/invoice.blade.php +++ b/resources/views/emails/viewed/invoice.blade.php @@ -1,10 +1,9 @@ @component('mail::message') -{{ $data['user']['name'] }} viewed this Invoice. +@lang('mail_viewed_invoice', ['name' => $data['user']['name']]) -@component('mail::button', ['url' => url('/admin/invoices/'.$data['invoice']['id'].'/view')]) -View Invoice +@component('mail::button', ['url' => url('/admin/invoices/'.$data['invoice']['id'].'/view')])@lang('mail_view_invoice') @endcomponent -Thanks,
+@lang('mail_thanks'),
{{ config('app.name') }} @endcomponent diff --git a/routes/api.php b/routes/api.php index 13d5caa3..19c9b4a8 100644 --- a/routes/api.php +++ b/routes/api.php @@ -164,6 +164,10 @@ Route::prefix('/v1')->group(function () { Route::post('/wizard-step', [OnboardingWizardController::class, 'updateStep']); + Route::post('/wizard-language', [OnboardingWizardController::class, 'saveLanguage']); + + Route::get('/languages', [LanguagesController::class, 'languages']); + Route::get('/requirements', [RequirementsController::class, 'requirements']); Route::get('/permissions', [FilePermissionsController::class, 'permissions']); From 96e2f6cf0f0ec9de8f102f9d631da843c06a44f4 Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Wed, 5 Jun 2024 12:09:04 +0200 Subject: [PATCH 03/50] Run pint --- config/app.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/app.php b/config/app.php index b17b818c..efd5f969 100644 --- a/config/app.php +++ b/config/app.php @@ -11,4 +11,4 @@ return [ 'Redis' => Illuminate\Support\Facades\Redis::class, ])->toArray(), -]; \ No newline at end of file +]; From bf5a8cdb2801117e7d3ff2384256d270c6a2f53c Mon Sep 17 00:00:00 2001 From: mchev Date: Wed, 5 Jun 2024 12:16:09 +0200 Subject: [PATCH 04/50] Increasing base total validation limit for IDR currency (#98) --- app/Http/Requests/EstimatesRequest.php | 2 +- app/Http/Requests/InvoicesRequest.php | 2 +- app/Http/Requests/RecurringInvoiceRequest.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/Http/Requests/EstimatesRequest.php b/app/Http/Requests/EstimatesRequest.php index 5dad66bb..52dbbda5 100644 --- a/app/Http/Requests/EstimatesRequest.php +++ b/app/Http/Requests/EstimatesRequest.php @@ -55,7 +55,7 @@ class EstimatesRequest extends FormRequest 'total' => [ 'integer', 'numeric', - 'max:99999999', + 'max:999999999999', 'required', ], 'tax' => [ diff --git a/app/Http/Requests/InvoicesRequest.php b/app/Http/Requests/InvoicesRequest.php index d4d84221..0a37a81a 100644 --- a/app/Http/Requests/InvoicesRequest.php +++ b/app/Http/Requests/InvoicesRequest.php @@ -55,7 +55,7 @@ class InvoicesRequest extends FormRequest 'total' => [ 'integer', 'numeric', - 'max:99999999', + 'max:999999999999', 'required', ], 'tax' => [ diff --git a/app/Http/Requests/RecurringInvoiceRequest.php b/app/Http/Requests/RecurringInvoiceRequest.php index 82fb3ea8..aef4ee1f 100644 --- a/app/Http/Requests/RecurringInvoiceRequest.php +++ b/app/Http/Requests/RecurringInvoiceRequest.php @@ -53,7 +53,7 @@ class RecurringInvoiceRequest extends FormRequest 'total' => [ 'integer', 'numeric', - 'max:99999999', + 'max:999999999999', 'required', ], 'tax' => [ From 592a537379a6e0120b38807c36fdbd5c2056c35c Mon Sep 17 00:00:00 2001 From: mchev Date: Wed, 5 Jun 2024 14:36:32 +0200 Subject: [PATCH 05/50] Replace fixed text length with css line-clamp (#96) --- .../scripts/admin/views/customers/Index.vue | 2 -- .../partials/CustomerViewSidebar.vue | 2 -- .../scripts/admin/views/estimates/Index.vue | 2 +- .../scripts/admin/views/estimates/View.vue | 1 - .../scripts/admin/views/expenses/Index.vue | 1 - .../scripts/admin/views/invoices/Index.vue | 2 +- .../scripts/admin/views/invoices/View.vue | 1 - resources/scripts/admin/views/items/Index.vue | 2 +- .../views/modules/partials/ModuleCard.vue | 1 - .../scripts/admin/views/payments/Index.vue | 2 +- .../scripts/admin/views/payments/View.vue | 1 - .../admin/views/recurring-invoices/Index.vue | 2 -- .../partials/RecurringInvoiceViewSidebar.vue | 1 - .../base/BaseCustomerSelectPopup.vue | 3 --- .../scripts/components/base/BaseText.vue | 22 ++++++++++++------- 15 files changed, 18 insertions(+), 27 deletions(-) diff --git a/resources/scripts/admin/views/customers/Index.vue b/resources/scripts/admin/views/customers/Index.vue index 3244656c..3fa8046f 100644 --- a/resources/scripts/admin/views/customers/Index.vue +++ b/resources/scripts/admin/views/customers/Index.vue @@ -152,13 +152,11 @@ diff --git a/resources/scripts/admin/views/customers/partials/CustomerViewSidebar.vue b/resources/scripts/admin/views/customers/partials/CustomerViewSidebar.vue index e76e5d5a..9d4af790 100644 --- a/resources/scripts/admin/views/customers/partials/CustomerViewSidebar.vue +++ b/resources/scripts/admin/views/customers/partials/CustomerViewSidebar.vue @@ -133,7 +133,6 @@
- + diff --git a/resources/scripts/admin/views/invoices/Index.vue b/resources/scripts/admin/views/invoices/Index.vue index dfa8d9de..5995abe2 100644 --- a/resources/scripts/admin/views/invoices/Index.vue +++ b/resources/scripts/admin/views/invoices/Index.vue @@ -196,7 +196,7 @@ diff --git a/resources/scripts/admin/views/invoices/View.vue b/resources/scripts/admin/views/invoices/View.vue index 891e3d6f..2e1656a2 100644 --- a/resources/scripts/admin/views/invoices/View.vue +++ b/resources/scripts/admin/views/invoices/View.vue @@ -423,7 +423,6 @@ onSearched = debounce(onSearched, 500)
- {{ row.data.name }} + diff --git a/resources/scripts/admin/views/modules/partials/ModuleCard.vue b/resources/scripts/admin/views/modules/partials/ModuleCard.vue index 8e670dc6..14f838db 100644 --- a/resources/scripts/admin/views/modules/partials/ModuleCard.vue +++ b/resources/scripts/admin/views/modules/partials/ModuleCard.vue @@ -86,7 +86,6 @@
- From 14c599ed4f5842c236606a42b6026bbc8db0ea6b Mon Sep 17 00:00:00 2001 From: mchev Date: Wed, 5 Jun 2024 15:10:36 +0200 Subject: [PATCH 06/50] Allow decimals on items quantities (#94) * Allow decimals on items quantities #80 * Updating all requests validation * Revert discount_val --- app/Http/Requests/EstimatesRequest.php | 2 +- app/Http/Requests/InvoicesRequest.php | 2 +- app/Http/Requests/RecurringInvoiceRequest.php | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/app/Http/Requests/EstimatesRequest.php b/app/Http/Requests/EstimatesRequest.php index 52dbbda5..3c3dd45b 100644 --- a/app/Http/Requests/EstimatesRequest.php +++ b/app/Http/Requests/EstimatesRequest.php @@ -79,7 +79,7 @@ class EstimatesRequest extends FormRequest 'required', ], 'items.*.quantity' => [ - 'integer', + 'numeric', 'required', ], 'items.*.price' => [ diff --git a/app/Http/Requests/InvoicesRequest.php b/app/Http/Requests/InvoicesRequest.php index 0a37a81a..f2e65814 100644 --- a/app/Http/Requests/InvoicesRequest.php +++ b/app/Http/Requests/InvoicesRequest.php @@ -79,7 +79,7 @@ class InvoicesRequest extends FormRequest 'required', ], 'items.*.quantity' => [ - 'integer', + 'numeric', 'required', ], 'items.*.price' => [ diff --git a/app/Http/Requests/RecurringInvoiceRequest.php b/app/Http/Requests/RecurringInvoiceRequest.php index aef4ee1f..f9792832 100644 --- a/app/Http/Requests/RecurringInvoiceRequest.php +++ b/app/Http/Requests/RecurringInvoiceRequest.php @@ -52,7 +52,6 @@ class RecurringInvoiceRequest extends FormRequest ], 'total' => [ 'integer', - 'numeric', 'max:999999999999', 'required', ], From bb8258036a00f15c8e1df227986ca3243485c0bd Mon Sep 17 00:00:00 2001 From: mchev Date: Thu, 6 Jun 2024 12:16:41 +0200 Subject: [PATCH 07/50] Clone estimates (#97) * Clone estimates * Clone estimate test feature * Resolve namespace * Fix string to int for Carbon * Fix homes routes and default queue key * Move dropdown item below View and use the propper translation key --- .env.example | 2 +- .../Estimate/CloneEstimateController.php | 131 ++++++++++++++++++ app/Providers/AppServiceProvider.php | 11 +- lang/ar.json | 3 + lang/cs.json | 3 + lang/de.json | 3 + lang/el.json | 3 + lang/en.json | 3 + lang/es.json | 3 + lang/fr.json | 3 + lang/it.json | 3 + lang/ja.json | 3 + lang/ko.json | 3 + lang/lv.json | 3 + lang/nl.json | 3 + lang/pl.json | 3 + lang/pt-br.json | 3 + lang/sk.json | 3 + lang/sr.json | 3 + lang/sv.json | 3 + lang/th.json | 3 + .../dropdowns/EstimateIndexDropdown.vue | 32 +++++ resources/scripts/admin/stores/estimate.js | 19 +++ routes/api.php | 3 + tests/Feature/Admin/EstimateTest.php | 12 ++ 25 files changed, 262 insertions(+), 2 deletions(-) create mode 100644 app/Http/Controllers/V1/Admin/Estimate/CloneEstimateController.php diff --git a/.env.example b/.env.example index d54053ff..839da9ec 100644 --- a/.env.example +++ b/.env.example @@ -23,7 +23,7 @@ DB_PASSWORD="invoiceshelf" BROADCAST_CONNECTION=log CACHE_STORE=file -QUEUE_DRIVER=sync +QUEUE_CONNECTION=sync SESSION_DRIVER=cookie SESSION_LIFETIME=1440 SESSION_ENCRYPT=false diff --git a/app/Http/Controllers/V1/Admin/Estimate/CloneEstimateController.php b/app/Http/Controllers/V1/Admin/Estimate/CloneEstimateController.php new file mode 100644 index 00000000..0f35f7a8 --- /dev/null +++ b/app/Http/Controllers/V1/Admin/Estimate/CloneEstimateController.php @@ -0,0 +1,131 @@ +authorize('create', Estimate::class); + + $date = Carbon::now(); + + $serial = (new SerialNumberFormatter()) + ->setModel($estimate) + ->setCompany($estimate->company_id) + ->setCustomer($estimate->customer_id) + ->setNextNumbers(); + + $due_date = null; + $dueDateEnabled = CompanySetting::getSetting( + 'estimate_set_expiry_date_automatically', + $request->header('company') + ); + + if ($dueDateEnabled === 'YES') { + $dueDateDays = intval(CompanySetting::getSetting( + 'estimate_expiry_date_days', + $request->header('company') + )); + $due_date = Carbon::now()->addDays($dueDateDays)->format('Y-m-d'); + } + + $exchange_rate = $estimate->exchange_rate; + + $newEstimate = Estimate::create([ + 'estimate_date' => $date->format('Y-m-d'), + 'expiry_date' => $due_date, + 'estimate_number' => $serial->getNextNumber(), + 'sequence_number' => $serial->nextSequenceNumber, + 'customer_sequence_number' => $serial->nextCustomerSequenceNumber, + 'reference_number' => $estimate->reference_number, + 'customer_id' => $estimate->customer_id, + 'company_id' => $request->header('company'), + 'template_name' => $estimate->template_name, + 'status' => Estimate::STATUS_DRAFT, + 'sub_total' => $estimate->sub_total, + 'discount' => $estimate->discount, + 'discount_type' => $estimate->discount_type, + 'discount_val' => $estimate->discount_val, + 'total' => $estimate->total, + 'due_amount' => $estimate->total, + 'tax_per_item' => $estimate->tax_per_item, + 'discount_per_item' => $estimate->discount_per_item, + 'tax' => $estimate->tax, + 'notes' => $estimate->notes, + 'exchange_rate' => $exchange_rate, + 'base_total' => $estimate->total * $exchange_rate, + 'base_discount_val' => $estimate->discount_val * $exchange_rate, + 'base_sub_total' => $estimate->sub_total * $exchange_rate, + 'base_tax' => $estimate->tax * $exchange_rate, + 'base_due_amount' => $estimate->total * $exchange_rate, + 'currency_id' => $estimate->currency_id, + 'sales_tax_type' => $estimate->sales_tax_type, + 'sales_tax_address_type' => $estimate->sales_tax_address_type, + ]); + + $newEstimate->unique_hash = Hashids::connection(Estimate::class)->encode($newEstimate->id); + $newEstimate->save(); + $estimate->load('items.taxes'); + + $estimateItems = $estimate->items->toArray(); + + foreach ($estimateItems as $estimateItem) { + $estimateItem['company_id'] = $request->header('company'); + $estimateItem['name'] = $estimateItem['name']; + $estimateItem['exchange_rate'] = $exchange_rate; + $estimateItem['base_price'] = $estimateItem['price'] * $exchange_rate; + $estimateItem['base_discount_val'] = $estimateItem['discount_val'] * $exchange_rate; + $estimateItem['base_tax'] = $estimateItem['tax'] * $exchange_rate; + $estimateItem['base_total'] = $estimateItem['total'] * $exchange_rate; + + $item = $newEstimate->items()->create($estimateItem); + + if (array_key_exists('taxes', $estimateItem) && $estimateItem['taxes']) { + foreach ($estimateItem['taxes'] as $tax) { + $tax['company_id'] = $request->header('company'); + + if ($tax['amount']) { + $item->taxes()->create($tax); + } + } + } + } + + if ($estimate->taxes) { + foreach ($estimate->taxes->toArray() as $tax) { + $tax['company_id'] = $request->header('company'); + $newEstimate->taxes()->create($tax); + } + } + + if ($estimate->fields()->exists()) { + $customFields = []; + + foreach ($estimate->fields as $data) { + $customFields[] = [ + 'id' => $data->custom_field_id, + 'value' => $data->defaultAnswer, + ]; + } + + $newEstimate->addCustomFields($customFields); + } + + return new EstimateResource($newEstimate); + } +} diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index d4eb3eb3..f140cb13 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -35,7 +35,16 @@ class AppServiceProvider extends ServiceProvider * * @var string */ - public const HOME = '/home'; + public const HOME = '/admin/dashboard'; + + /** + * The path to the "customer home" route for your application. + * + * This is used by Laravel authentication to redirect customers after login. + * + * @var string + */ + public const CUSTOMER_HOME = '/customer/dashboard'; /** * Bootstrap any application services. diff --git a/lang/ar.json b/lang/ar.json index 9c9749ff..c6ed2909 100644 --- a/lang/ar.json +++ b/lang/ar.json @@ -304,6 +304,9 @@ "record_payment": "تسجيل مدفوات", "add_estimate": "إضافة تقدير", "save_estimate": "حفظ التقدير", + "cloned_successfully": "تم استنساخ العرض بنجاح", + "clone_estimate": "استنساخ العرض", + "confirm_clone": "سيتم استنساخ هذا العرض إلى عرض جديد", "confirm_conversion": "هل تريد تحويل هذا التقدير إلى فاتورة؟", "conversion_message": "تم إنشاء الفاتورة بنجاح", "confirm_send_estimate": "سيتم إرسال هذا التقدير بالبريد الإلكتروني إلى العميل", diff --git a/lang/cs.json b/lang/cs.json index c7577fa6..64c9c9bb 100644 --- a/lang/cs.json +++ b/lang/cs.json @@ -304,6 +304,9 @@ "record_payment": "Zaznamenat platbu", "add_estimate": "Přidat nabídku", "save_estimate": "Uložit nabídku", + "cloned_successfully": "Devis úspěšně zkopírován", + "clone_estimate": "Klonovat devis", + "confirm_clone": "Tento devis bude zkopírován do nového devisu", "confirm_conversion": "Tento odhad bude použit k vytvoření nové faktury.", "conversion_message": "Faktura byla úspěšně vytvořena", "confirm_send_estimate": "Tento odhad bude zaslán e-mailem zákazníkovi", diff --git a/lang/de.json b/lang/de.json index 985fc411..f57caec7 100644 --- a/lang/de.json +++ b/lang/de.json @@ -304,6 +304,9 @@ "record_payment": "Zahlung erfassen", "add_estimate": "Angebote hinzufügen", "save_estimate": "Angebot speichern", + "cloned_successfully": "Angebot erfolgreich geklont", + "clone_estimate": "Angebot klonen", + "confirm_clone": "Dieses Angebot wird in ein neues Angebot kopiert", "confirm_conversion": "Dieses Angebot wird verwendet, um eine neue Rechnung zu erstellen.", "conversion_message": "Rechnung erfolgreich erstellt", "confirm_send_estimate": "Das Angebot wird per E-Mail an den Kunden gesendet", diff --git a/lang/el.json b/lang/el.json index 73216823..12375cf9 100644 --- a/lang/el.json +++ b/lang/el.json @@ -304,6 +304,9 @@ "record_payment": "Καταγραφή Πληρωμής", "add_estimate": "Νέα Εκτίμηση", "save_estimate": "Νέα Εκτίμηση", + "cloned_successfully": "Η προσφορά κλωνοποιήθηκε με επιτυχία", + "clone_estimate": "Κλωνοποίηση προσφοράς", + "confirm_clone": "Αυτή η προσφορά θα κλωνοποιηθεί σε μια νέα προσφορά", "confirm_conversion": "Αυτή η εκτίμηση θα χρησιμοποιηθεί για τη δημιουργία ενός νέου τιμολογίου.", "conversion_message": "Το τιμολόγιο κλωνοποιήθηκε επιτυχώς", "confirm_send_estimate": "Αυτό το τιμολόγιο θα αποσταλεί μέσω email στον πελάτη", diff --git a/lang/en.json b/lang/en.json index 3162e19e..fc7d30f9 100644 --- a/lang/en.json +++ b/lang/en.json @@ -323,6 +323,9 @@ "record_payment": "Record Payment", "add_estimate": "Add Estimate", "save_estimate": "Save Estimate", + "cloned_successfully": "Estimate cloned successfully", + "clone_estimate": "Clone Estimate", + "confirm_clone": "This Estimate will be cloned into a new Estimate", "confirm_conversion": "This estimate will be used to create a new Invoice.", "conversion_message": "Invoice created successful", "confirm_send_estimate": "This estimate will be sent via email to the customer", diff --git a/lang/es.json b/lang/es.json index 0800673d..5b547018 100644 --- a/lang/es.json +++ b/lang/es.json @@ -304,6 +304,9 @@ "record_payment": "Registro de pago", "add_estimate": "Agregar presupuesto", "save_estimate": "Guardar presupuesto", + "cloned_successfully": "Presupuesto clonado con éxito", + "clone_estimate": "Clonar presupuesto", + "confirm_clone": "Este presupuesto será clonado en un nuevo presupuesto", "confirm_conversion": "¿Quiere convertir este presupuesto en una factura?", "conversion_message": "Conversión exitosa", "confirm_send_estimate": "Este presupuesto se enviará por correo electrónico al cliente", diff --git a/lang/fr.json b/lang/fr.json index d0bf8983..c544e72e 100644 --- a/lang/fr.json +++ b/lang/fr.json @@ -323,6 +323,9 @@ "record_payment": "Enregistrer un paiement", "add_estimate": "Nouveau devis", "save_estimate": "Enregistrer", + "cloned_successfully": "Devis dupliqué avec succès", + "clone_estimate": "Dupliquer le devis", + "confirm_clone": "Ce devis sera dupliqué dans un nouveau devis", "confirm_conversion": "Ce devis sera utilisé pour créer une nouvelle facture.", "conversion_message": "Conversion réussie", "confirm_send_estimate": "Ce devis sera envoyée par email au client", diff --git a/lang/it.json b/lang/it.json index 02df0b52..3ddaef01 100644 --- a/lang/it.json +++ b/lang/it.json @@ -304,6 +304,9 @@ "record_payment": "Registra Pagamento", "add_estimate": "Aggiungi Preventivo", "save_estimate": "Salva Preventivo", + "cloned_successfully": "Preventivo clonato con successo", + "clone_estimate": "Clonare preventivo", + "confirm_clone": "Questo preventivo sarà clonato in un nuovo preventivo", "confirm_conversion": "Questo preventivo verrà usato per generare una nuova fattura.", "conversion_message": "Fattura creata", "confirm_send_estimate": "Questo preventivo verrà inviato al cliente via mail", diff --git a/lang/ja.json b/lang/ja.json index 7a232d10..d57ac936 100644 --- a/lang/ja.json +++ b/lang/ja.json @@ -304,6 +304,9 @@ "record_payment": "Record Payment", "add_estimate": "Add Estimate", "save_estimate": "Save Estimate", + "cloned_successfully": "見積もりが正常にクローンされました", + "clone_estimate": "見積もりをクローン", + "confirm_clone": "この見積もりは新しい見積もりにクローンされます", "confirm_conversion": "This estimate will be used to create a new Invoice.", "conversion_message": "Invoice created successful", "confirm_send_estimate": "This estimate will be sent via email to the customer", diff --git a/lang/ko.json b/lang/ko.json index c2625302..b34c19f0 100644 --- a/lang/ko.json +++ b/lang/ko.json @@ -258,6 +258,9 @@ "record_payment": "기록 지불", "add_estimate": "견적 추가", "save_estimate": "견적 저장", + "cloned_successfully": "견적이 성공적으로 복제되었습니다", + "clone_estimate": "견적 복제", + "confirm_clone": "이 견적은 새로운 견적으로 복제될 것입니다", "confirm_conversion": "이 견적은 새 인보이스를 만드는 데 사용됩니다.", "conversion_message": "인보이스가 성공적으로 생성되었습니다.", "confirm_send_estimate": "이 견적은 이메일을 통해 고객에게 전송됩니다.", diff --git a/lang/lv.json b/lang/lv.json index c0f43e82..45b393c6 100644 --- a/lang/lv.json +++ b/lang/lv.json @@ -304,6 +304,9 @@ "record_payment": "Izveidot maksājumu", "add_estimate": "Pievienot aprēķinu", "save_estimate": "Saglabāt aprēķinu", + "cloned_successfully": "Piedāvājums veiksmīgi klonēts", + "clone_estimate": "Klonēt piedāvājumu", + "confirm_clone": "Šis piedāvājums tiks klonēts jaunā piedāvājumā", "confirm_conversion": "Šis aprēķins tiks izmantots, lai izveidotu jaunu rēķinu.", "conversion_message": "Rēķins izveidots veiksmīgi", "confirm_send_estimate": "Šis aprēķins tiks nosūtīts klientam e-pastā", diff --git a/lang/nl.json b/lang/nl.json index ab77bc9b..97ea6b37 100644 --- a/lang/nl.json +++ b/lang/nl.json @@ -304,6 +304,9 @@ "record_payment": "Betaling registreren", "add_estimate": "Offerte toevoegen", "save_estimate": "Bewaar offerte", + "cloned_successfully": "Offerte succesvol gekloond", + "clone_estimate": "Offerte klonen", + "confirm_clone": "Deze offerte zal worden gekopieerd naar een nieuwe offerte", "confirm_conversion": "Deze offerte wordt gebruikt om een nieuwe factuur te maken.", "conversion_message": "Factuur gemaakt", "confirm_send_estimate": "Deze offerte wordt via e-mail naar de klant gestuurd", diff --git a/lang/pl.json b/lang/pl.json index 56f5183d..9c070f2b 100644 --- a/lang/pl.json +++ b/lang/pl.json @@ -304,6 +304,9 @@ "record_payment": "Zarejestruj płatność", "add_estimate": "Dodaj ofertę", "save_estimate": "Zapisz ofertę", + "cloned_successfully": "Oferta została pomyślnie sklonowana", + "clone_estimate": "Sklonuj ofertę", + "confirm_clone": "Ta oferta zostanie sklonowana do nowej oferty", "confirm_conversion": "Ta oferta zostanie użyta do utworzenia nowej faktury.", "conversion_message": "Faktura została utworzona pomyślnie", "confirm_send_estimate": "Ta oferta zostanie wysłana pocztą elektroniczną do kontrahenta", diff --git a/lang/pt-br.json b/lang/pt-br.json index a666641e..4a394d62 100644 --- a/lang/pt-br.json +++ b/lang/pt-br.json @@ -237,6 +237,9 @@ "record_payment": "Registro de pago", "add_estimate": "Adicionar orçamento", "save_estimate": "Salvar Orçamento", + "cloned_successfully": "Orçamento clonado com sucesso", + "clone_estimate": "Clonar orçamento", + "confirm_clone": "Este orçamento será clonado em um novo orçamento", "confirm_conversion": "Deseja converter este orçamento em uma fatura?", "conversion_message": "Converção realizada com sucesso", "confirm_send_estimate": "Este orçamento será enviado por email ao cliente", diff --git a/lang/sk.json b/lang/sk.json index 812763aa..308540f9 100644 --- a/lang/sk.json +++ b/lang/sk.json @@ -304,6 +304,9 @@ "record_payment": "Zaznamenať Platbu", "add_estimate": "Vytvoriť Cenový odhad", "save_estimate": "Uložiť Cenový odhad", + "cloned_successfully": "Ponuka úspešne skopírovaná", + "clone_estimate": "Klonovať ponuku", + "confirm_clone": "Táto ponuka bude skopírovaná do novej ponuky", "confirm_conversion": "Tento cenový odhad bude použitý k vytvoreniu novej Faktúry.", "conversion_message": "Faktúra úspešne vytvorená", "confirm_send_estimate": "Tento Cenový odhad bude odoslaný zákazníkovi prostredníctvom e-mailu", diff --git a/lang/sr.json b/lang/sr.json index 1b4e762e..af1a37f6 100644 --- a/lang/sr.json +++ b/lang/sr.json @@ -304,6 +304,9 @@ "record_payment": "Unesi uplatu", "add_estimate": "Dodaj Profakturu", "save_estimate": "Sačuvaj Profakturu", + "cloned_successfully": "Ponuda uspešno klonirana", + "clone_estimate": "Kloniraj ponudu", + "confirm_clone": "Ova ponuda će biti klonirana u novu ponudu", "confirm_conversion": "Detalji ove Profakture će biti iskorišćeni za pravljenje Fakture.", "conversion_message": "Faktura uspešno kreirana", "confirm_send_estimate": "Ova Profaktura će biti poslata putem Email-a klijentu", diff --git a/lang/sv.json b/lang/sv.json index 92d79a6e..434bf9e2 100644 --- a/lang/sv.json +++ b/lang/sv.json @@ -304,6 +304,9 @@ "record_payment": "Registrera betalning", "add_estimate": "Lägg till kostnadsförslag", "save_estimate": "Spara kostnadsförslag", + "cloned_successfully": "Offert klonades framgångsrikt", + "clone_estimate": "Klona offert", + "confirm_clone": "Denna offert kommer att klonas till en ny offert", "confirm_conversion": "Detta kostnadsförslag används för att skapa ny faktura.", "conversion_message": "Faktura skapades", "confirm_send_estimate": "Detta kostnadsförslag skickas via epost till kund", diff --git a/lang/th.json b/lang/th.json index 32449b09..6ae04fe6 100644 --- a/lang/th.json +++ b/lang/th.json @@ -303,6 +303,9 @@ "record_payment": "บันทึกการชำระเงิน", "add_estimate": "เพิ่มค่าใบเสนอราคา", "save_estimate": "บันทึกใบเสนอราคา", + "cloned_successfully": "โคลนข้อเสนอสำเร็จ", + "clone_estimate": "โคลนข้อเสนอ", + "confirm_clone": "ข้อเสนอนี้จะถูกโคลนเป็นข้อเสนอใหม่", "confirm_conversion": "ใบเสนอราคานี้จะใช้ในการสร้างใบวางบิลใหม่", "conversion_message": "ใบวางบิลที่สร้างเสร็จสมบูรณ์", "confirm_send_estimate": "ใบเสนอราคานี้จะถูกส่งผ่านทางอีเมลถึงลูกค้า", diff --git a/resources/scripts/admin/components/dropdowns/EstimateIndexDropdown.vue b/resources/scripts/admin/components/dropdowns/EstimateIndexDropdown.vue index 15bb3ceb..e9549c06 100644 --- a/resources/scripts/admin/components/dropdowns/EstimateIndexDropdown.vue +++ b/resources/scripts/admin/components/dropdowns/EstimateIndexDropdown.vue @@ -62,6 +62,18 @@ + + + + {{ $t('estimates.clone_estimate') }} + + { + if (res) { + estimateStore.cloneEstimate(data).then((res) => { + router.push(`/admin/estimates/${res.data.data.id}/edit`) + }) + } + }) +} diff --git a/resources/scripts/admin/stores/estimate.js b/resources/scripts/admin/stores/estimate.js index 5384249b..e017e170 100644 --- a/resources/scripts/admin/stores/estimate.js +++ b/resources/scripts/admin/stores/estimate.js @@ -329,6 +329,25 @@ export const useEstimateStore = (useWindow = false) => { }) }, + cloneEstimate(data) { + return new Promise((resolve, reject) => { + axios + .post(`/api/v1/estimates/${data.id}/clone`, data) + .then((response) => { + const notificationStore = useNotificationStore() + notificationStore.showNotification({ + type: 'success', + message: global.t('estimates.cloned_successfully'), + }) + resolve(response) + }) + .catch((err) => { + handleError(err) + reject(err) + }) + }) + }, + markAsAccepted(data) { return new Promise((resolve, reject) => { axios diff --git a/routes/api.php b/routes/api.php index 19c9b4a8..41738328 100644 --- a/routes/api.php +++ b/routes/api.php @@ -12,6 +12,7 @@ use App\Http\Controllers\V1\Admin\Customer\CustomerStatsController; use App\Http\Controllers\V1\Admin\CustomField\CustomFieldsController; use App\Http\Controllers\V1\Admin\Dashboard\DashboardController; use App\Http\Controllers\V1\Admin\Estimate\ChangeEstimateStatusController; +use App\Http\Controllers\V1\Admin\Estimate\CloneEstimateController; use App\Http\Controllers\V1\Admin\Estimate\ConvertEstimateController; use App\Http\Controllers\V1\Admin\Estimate\EstimatesController; use App\Http\Controllers\V1\Admin\Estimate\EstimateTemplatesController; @@ -285,6 +286,8 @@ Route::prefix('/v1')->group(function () { Route::post('/estimates/{estimate}/send', SendEstimateController::class); + Route::post('/estimates/{estimate}/clone', CloneEstimateController::class); + Route::post('/estimates/{estimate}/status', ChangeEstimateStatusController::class); Route::post('/estimates/{estimate}/convert-to-invoice', ConvertEstimateController::class); diff --git a/tests/Feature/Admin/EstimateTest.php b/tests/Feature/Admin/EstimateTest.php index 7c9863c2..9d1d504a 100644 --- a/tests/Feature/Admin/EstimateTest.php +++ b/tests/Feature/Admin/EstimateTest.php @@ -65,6 +65,18 @@ test('create estimate', function () { ]); }); +test('clone estimate', function () { + + $estimate = Estimate::factory()->create(); + + $beforeCount = Estimate::count(); + + $response = $this->post("/api/v1/estimates/{$estimate->id}/clone"); + + $this->assertDatabaseCount('estimates', $beforeCount + 1); + +}); + test('store validates using a form request', function () { $this->assertActionUsesFormRequest( EstimatesController::class, From a0bf6f7f5921b51307be38f6b6dabb64a41b37d9 Mon Sep 17 00:00:00 2001 From: mchev Date: Fri, 7 Jun 2024 12:10:57 +0200 Subject: [PATCH 08/50] Replacing model_type in database (#100) * Replacing model_type in database * Also update old Crater namespace --- ...4_06_05_155321_update_stored_namespace.php | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 database/migrations/2024_06_05_155321_update_stored_namespace.php diff --git a/database/migrations/2024_06_05_155321_update_stored_namespace.php b/database/migrations/2024_06_05_155321_update_stored_namespace.php new file mode 100644 index 00000000..372ed7a1 --- /dev/null +++ b/database/migrations/2024_06_05_155321_update_stored_namespace.php @@ -0,0 +1,44 @@ +replaceModelTypes('InvoiceShelf', 'App'); + $this->replaceModelTypes('Crater', 'App'); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + $this->replaceModelTypes('App', 'InvoiceShelf'); + } + + /** + * Replace model types in the specified tables. + */ + private function replaceModelTypes(string $from, string $to): void + { + $mappings = [ + 'media' => 'model_type', + 'email_logs' => 'mailable_type', + 'notifications' => 'notifiable_type', + 'personal_access_tokens' => 'tokenable_type', + 'custom_field_values' => 'custom_field_valuable_type', + 'abilities' => 'entity_type', + 'assigned_roles' => 'entity_type', + ]; + + foreach ($mappings as $table => $column) { + DB::table($table)->update([$column => DB::raw("REPLACE($column, '$from', '$to')")]); + } + } +}; From 210f735e401ae35366b76768c2b70f5e8ff23fee Mon Sep 17 00:00:00 2001 From: mchev Date: Sun, 16 Jun 2024 21:35:55 +0200 Subject: [PATCH 09/50] Adding new field to update #107 --- .../migrations/2024_06_05_155321_update_stored_namespace.php | 1 + 1 file changed, 1 insertion(+) diff --git a/database/migrations/2024_06_05_155321_update_stored_namespace.php b/database/migrations/2024_06_05_155321_update_stored_namespace.php index 372ed7a1..754ece90 100644 --- a/database/migrations/2024_06_05_155321_update_stored_namespace.php +++ b/database/migrations/2024_06_05_155321_update_stored_namespace.php @@ -32,6 +32,7 @@ return new class extends Migration 'email_logs' => 'mailable_type', 'notifications' => 'notifiable_type', 'personal_access_tokens' => 'tokenable_type', + 'custom_fields' => 'model_type', 'custom_field_values' => 'custom_field_valuable_type', 'abilities' => 'entity_type', 'assigned_roles' => 'entity_type', From 680e105f1bcc22bf7f09e8242ed581f072cd901e Mon Sep 17 00:00:00 2001 From: mchev Date: Sun, 16 Jun 2024 21:58:16 +0200 Subject: [PATCH 10/50] Fix CompanySetting not imported in BootstrapController --- app/Http/Controllers/V1/Customer/General/BootstrapController.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/Http/Controllers/V1/Customer/General/BootstrapController.php b/app/Http/Controllers/V1/Customer/General/BootstrapController.php index f34f08ba..43a17b06 100644 --- a/app/Http/Controllers/V1/Customer/General/BootstrapController.php +++ b/app/Http/Controllers/V1/Customer/General/BootstrapController.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers\V1\Customer\General; use App\Http\Controllers\Controller; use App\Http\Resources\Customer\CustomerResource; +use App\Models\CompanySetting; use App\Models\Currency; use App\Models\Module; use Illuminate\Http\Request; From 9fcf3792c714ae1faff0f28f31de6f5b1a81e2e0 Mon Sep 17 00:00:00 2001 From: mchev Date: Tue, 25 Jun 2024 19:44:23 +0200 Subject: [PATCH 11/50] Translate recurring invoice subject (#110) * Translate recurring invoice subject --- .env.example | 2 +- app/Models/RecurringInvoice.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.env.example b/.env.example index 839da9ec..3ed97406 100644 --- a/.env.example +++ b/.env.example @@ -54,4 +54,4 @@ SESSION_DOMAIN=invoiceshelf.test TRUSTED_PROXIES="*" CRON_JOB_AUTH_TOKEN="" -LOG_STACK=single \ No newline at end of file +LOG_STACK=single diff --git a/app/Models/RecurringInvoice.php b/app/Models/RecurringInvoice.php index 6e71f619..70b7a4ed 100644 --- a/app/Models/RecurringInvoice.php +++ b/app/Models/RecurringInvoice.php @@ -314,7 +314,7 @@ class RecurringInvoice extends Model ->setCustomer($this->customer_id) ->setNextNumbers(); - $days = CompanySetting::getSetting('invoice_due_date_days', $this->company_id); + $days = intval(CompanySetting::getSetting('invoice_due_date_days', $this->company_id)); if (! $days || $days == 'null') { $days = 7; @@ -381,7 +381,7 @@ class RecurringInvoice extends Model 'body' => CompanySetting::getSetting('invoice_mail_body', $this->company_id), 'from' => config('mail.from.address'), 'to' => $this->customer->email, - 'subject' => 'New Invoice', + 'subject' => trans('invoices')['new_invoice'], 'invoice' => $invoice->toArray(), 'customer' => $invoice->customer->toArray(), 'company' => Company::find($invoice->company_id), From 24ba33fd02a6ff778bdda48bbde0c2184d1bbf7d Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Wed, 5 Jun 2024 14:11:26 +0200 Subject: [PATCH 12/50] Update /installation/languages controller namespace --- app/Http/Controllers/V1/Installation/LanguagesController.php | 4 ++-- routes/api.php | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/V1/Installation/LanguagesController.php b/app/Http/Controllers/V1/Installation/LanguagesController.php index f6451616..3302f46e 100755 --- a/app/Http/Controllers/V1/Installation/LanguagesController.php +++ b/app/Http/Controllers/V1/Installation/LanguagesController.php @@ -1,9 +1,9 @@ Date: Thu, 11 Jul 2024 13:37:31 +0200 Subject: [PATCH 13/50] Remove duplicate SESSION_DOMAIN --- .env.example | 2 -- 1 file changed, 2 deletions(-) diff --git a/.env.example b/.env.example index 3ed97406..fd621229 100644 --- a/.env.example +++ b/.env.example @@ -49,8 +49,6 @@ PUSHER_KEY= PUSHER_SECRET= SANCTUM_STATEFUL_DOMAINS=invoiceshelf.test -SESSION_DOMAIN=invoiceshelf.test - TRUSTED_PROXIES="*" CRON_JOB_AUTH_TOKEN="" From de126465a84d13b020419ea89481229f03fcb5f2 Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Thu, 11 Jul 2024 13:42:43 +0200 Subject: [PATCH 14/50] Update code style (pint) --- app/Http/Controllers/V1/Installation/LanguagesController.php | 2 +- routes/api.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/V1/Installation/LanguagesController.php b/app/Http/Controllers/V1/Installation/LanguagesController.php index 3302f46e..ecdbd528 100755 --- a/app/Http/Controllers/V1/Installation/LanguagesController.php +++ b/app/Http/Controllers/V1/Installation/LanguagesController.php @@ -2,8 +2,8 @@ namespace App\Http\Controllers\V1\Installation; -use Illuminate\Http\JsonResponse; use App\Http\Controllers\Controller; +use Illuminate\Http\JsonResponse; class LanguagesController extends Controller { diff --git a/routes/api.php b/routes/api.php index 27e26541..6146bda2 100644 --- a/routes/api.php +++ b/routes/api.php @@ -102,11 +102,11 @@ use App\Http\Controllers\V1\Installation\AppDomainController; use App\Http\Controllers\V1\Installation\DatabaseConfigurationController; use App\Http\Controllers\V1\Installation\FilePermissionsController; use App\Http\Controllers\V1\Installation\FinishController; +use App\Http\Controllers\V1\Installation\LanguagesController; use App\Http\Controllers\V1\Installation\LoginController; use App\Http\Controllers\V1\Installation\OnboardingWizardController; use App\Http\Controllers\V1\Installation\RequirementsController; use App\Http\Controllers\V1\Webhook\CronJobController; -use App\Http\Controllers\V1\Installation\LanguagesController; use Illuminate\Support\Facades\Route; /* From 33076dc2400eb244b380c2f3e8555ba0a8b67324 Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Thu, 11 Jul 2024 14:10:40 +0200 Subject: [PATCH 15/50] Update makefile --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 9ab43124..cd8f8edd 100644 --- a/Makefile +++ b/Makefile @@ -33,10 +33,10 @@ dist-gen: clean composer npm-build @cp -r artisan InvoiceShelf @cp -r composer.json InvoiceShelf @cp -r composer.lock InvoiceShelf - @cp -r server.php InvoiceShelf @cp -r LICENSE InvoiceShelf @cp -r readme.md InvoiceShelf @cp -r SECURITY.md InvoiceShelf + @cp -r server.php InvoiceShelf @touch InvoiceShelf/storage/logs/laravel.log dist-clean: dist-gen From 9c0d79bf599672ef5de93929d4830763a50f5dba Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Fri, 12 Jul 2024 03:08:07 +0200 Subject: [PATCH 16/50] Add app version --- Makefile | 1 + version.md | 1 + 2 files changed, 2 insertions(+) create mode 100644 version.md diff --git a/Makefile b/Makefile index cd8f8edd..de45ca6c 100644 --- a/Makefile +++ b/Makefile @@ -29,6 +29,7 @@ dist-gen: clean composer npm-build @cp -r routes InvoiceShelf @cp -r storage InvoiceShelf @cp -r vendor InvoiceShelf 2> /dev/null || true + @cp -r version.md InvoiceShelf @cp -r .env.example InvoiceShelf @cp -r artisan InvoiceShelf @cp -r composer.json InvoiceShelf diff --git a/version.md b/version.md new file mode 100644 index 00000000..fbffcdf9 --- /dev/null +++ b/version.md @@ -0,0 +1 @@ +2.0.0-alpha From 53866f721ca0f93302b84e6477fcc977c338af29 Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Fri, 12 Jul 2024 12:37:04 +0200 Subject: [PATCH 17/50] Require dbal as dependency for migrations that changing columns --- composer.json | 15 +-- composer.lock | 255 ++++++++++++++++++++++++++++++++++++++++---------- 2 files changed, 214 insertions(+), 56 deletions(-) diff --git a/composer.json b/composer.json index efa865de..0ae907d5 100644 --- a/composer.json +++ b/composer.json @@ -9,18 +9,19 @@ "type": "project", "require": { "php": "^8.2", - "guzzlehttp/guzzle": "^7.2", - "laravel/framework": "^11.3", - "laravel/sanctum": "^4.0", - "laravel/tinker": "^2.9", - "laravel/helpers": "^1.7", - "laravel/ui": "^4.4", "ext-json": "*", "aws/aws-sdk-php": "^3.297", "barryvdh/laravel-dompdf": "^2.1", - "invoiceshelf/modules": "^1.0.0", + "doctrine/dbal": "^4.0", "dragonmantank/cron-expression": "^3.3", + "guzzlehttp/guzzle": "^7.2", + "invoiceshelf/modules": "^1.0.0", "jasonmccreary/laravel-test-assertions": "^2.4", + "laravel/framework": "^11.3", + "laravel/helpers": "^1.7", + "laravel/sanctum": "^4.0", + "laravel/tinker": "^2.9", + "laravel/ui": "^4.4", "lavary/laravel-menu": "^1.8", "league/flysystem-aws-s3-v3": "^3.23", "predis/predis": "^2.2", diff --git a/composer.lock b/composer.lock index 5c5cc1bd..6f07a957 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "10c8183e49825e0ddc742ca39d86c700", + "content-hash": "a96e45a5108f14dbf0665b22ac55de66", "packages": [ { "name": "aws/aws-crt-php", @@ -436,6 +436,161 @@ }, "time": "2022-10-27T11:44:00+00:00" }, + { + "name": "doctrine/dbal", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/doctrine/dbal.git", + "reference": "50fda19f80724b55ff770bb4ff352407008e63c5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/50fda19f80724b55ff770bb4ff352407008e63c5", + "reference": "50fda19f80724b55ff770bb4ff352407008e63c5", + "shasum": "" + }, + "require": { + "doctrine/deprecations": "^0.5.3|^1", + "php": "^8.1", + "psr/cache": "^1|^2|^3", + "psr/log": "^1|^2|^3" + }, + "require-dev": { + "doctrine/coding-standard": "12.0.0", + "fig/log-test": "^1", + "jetbrains/phpstorm-stubs": "2023.2", + "phpstan/phpstan": "1.11.5", + "phpstan/phpstan-phpunit": "1.4.0", + "phpstan/phpstan-strict-rules": "^1.6", + "phpunit/phpunit": "10.5.22", + "psalm/plugin-phpunit": "0.19.0", + "slevomat/coding-standard": "8.13.1", + "squizlabs/php_codesniffer": "3.10.1", + "symfony/cache": "^6.3.8|^7.0", + "symfony/console": "^5.4|^6.3|^7.0", + "vimeo/psalm": "5.24.0" + }, + "suggest": { + "symfony/console": "For helpful console commands such as SQL execution and import of files." + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\DBAL\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + } + ], + "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.", + "homepage": "https://www.doctrine-project.org/projects/dbal.html", + "keywords": [ + "abstraction", + "database", + "db2", + "dbal", + "mariadb", + "mssql", + "mysql", + "oci8", + "oracle", + "pdo", + "pgsql", + "postgresql", + "queryobject", + "sasql", + "sql", + "sqlite", + "sqlserver", + "sqlsrv" + ], + "support": { + "issues": "https://github.com/doctrine/dbal/issues", + "source": "https://github.com/doctrine/dbal/tree/4.0.4" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal", + "type": "tidelift" + } + ], + "time": "2024-06-19T11:57:23+00:00" + }, + { + "name": "doctrine/deprecations", + "version": "1.1.3", + "source": { + "type": "git", + "url": "https://github.com/doctrine/deprecations.git", + "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", + "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9", + "phpstan/phpstan": "1.4.10 || 1.10.15", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "psalm/plugin-phpunit": "0.18.4", + "psr/log": "^1 || ^2 || ^3", + "vimeo/psalm": "4.30.0 || 5.12.0" + }, + "suggest": { + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", + "homepage": "https://www.doctrine-project.org/", + "support": { + "issues": "https://github.com/doctrine/deprecations/issues", + "source": "https://github.com/doctrine/deprecations/tree/1.1.3" + }, + "time": "2024-01-30T19:34:25+00:00" + }, { "name": "doctrine/inflector", "version": "2.0.10", @@ -4392,6 +4547,55 @@ ], "time": "2023-09-13T16:42:03+00:00" }, + { + "name": "psr/cache", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/cache.git", + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "support": { + "source": "https://github.com/php-fig/cache/tree/3.0.0" + }, + "time": "2021-02-03T23:26:27+00:00" + }, { "name": "psr/clock", "version": "1.0.0", @@ -10039,53 +10243,6 @@ ], "time": "2024-05-27T13:40:54+00:00" }, - { - "name": "doctrine/deprecations", - "version": "1.1.3", - "source": { - "type": "git", - "url": "https://github.com/doctrine/deprecations.git", - "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", - "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^9", - "phpstan/phpstan": "1.4.10 || 1.10.15", - "phpstan/phpstan-phpunit": "^1.0", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "psalm/plugin-phpunit": "0.18.4", - "psr/log": "^1 || ^2 || ^3", - "vimeo/psalm": "4.30.0 || 5.12.0" - }, - "suggest": { - "psr/log": "Allows logging deprecations via PSR-3 logger implementation" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", - "homepage": "https://www.doctrine-project.org/", - "support": { - "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/1.1.3" - }, - "time": "2024-01-30T19:34:25+00:00" - }, { "name": "fakerphp/faker", "version": "v1.23.1", @@ -11624,5 +11781,5 @@ "ext-json": "*" }, "platform-dev": [], - "plugin-api-version": "2.6.0" + "plugin-api-version": "2.2.0" } From a907f8c932df1d1dd8afef8825e00d035b9c4cce Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Fri, 12 Jul 2024 17:13:54 +0200 Subject: [PATCH 18/50] Set the default database to be SQLite --- .env.example | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.env.example b/.env.example index fd621229..48dc79fd 100644 --- a/.env.example +++ b/.env.example @@ -14,12 +14,12 @@ APP_MAINTENANCE_STORE=database BCRYPT_ROUNDS=12 -DB_CONNECTION=mysql -DB_HOST=db -DB_PORT=3306 -DB_DATABASE=invoiceshelf -DB_USERNAME=invoiceshelf -DB_PASSWORD="invoiceshelf" +DB_CONNECTION=sqlite +DB_HOST= +DB_PORT= +DB_DATABASE= +DB_USERNAME= +DB_PASSWORD= BROADCAST_CONNECTION=log CACHE_STORE=file From ad9d08c43c850f6215221f6a10a228da7fec50c4 Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Sat, 13 Jul 2024 15:12:54 +0200 Subject: [PATCH 19/50] Create empty SQLite database if it doesn't exist --- app/Space/EnvironmentManager.php | 43 +++++++++++++++++++------------ database/stubs/sqlite.empty.db | Bin 0 -> 4096 bytes 2 files changed, 27 insertions(+), 16 deletions(-) create mode 100644 database/stubs/sqlite.empty.db diff --git a/app/Space/EnvironmentManager.php b/app/Space/EnvironmentManager.php index 571251ca..981b0b67 100755 --- a/app/Space/EnvironmentManager.php +++ b/app/Space/EnvironmentManager.php @@ -46,7 +46,7 @@ class EnvironmentManager */ public function updateEnv(array $data) { - if (empty($data) || ! is_array($data) || ! is_file($this->envPath)) { + if (empty($data) || !is_array($data) || !is_file($this->envPath)) { return false; } @@ -62,14 +62,14 @@ class EnvironmentManager // Check if new or old key if ($entry[0] == $data_key) { - $env[$env_key] = $data_key.'='.$this->encode($data_value); + $env[$env_key] = $data_key . '=' . $this->encode($data_value); $updated = true; } } // Lets create if not available - if (! $updated) { - $env[] = $data_key.'='.$this->encode($data_value); + if (!$updated) { + $env[] = $data_key . '=' . $this->encode($data_value); } } @@ -88,8 +88,8 @@ class EnvironmentManager private function encode($str) { - if ((strpos($str, ' ') !== false || preg_match('/'.preg_quote('^\'£$%^&*()}{@#~?><,@|-=-_+-¬', '/').'/', $str)) && ($str[0] != '"' || $str[strlen($str) - 1] != '"')) { - $str = '"'.$str.'"'; + if ((strpos($str, ' ') !== false || preg_match('/' . preg_quote('^\'£$%^&*()}{@#~?><,@|-=-_+-¬', '/') . '/', $str)) && ($str[0] != '"' || $str[strlen($str) - 1] != '"')) { + $str = '"' . $str . '"'; } return $str; @@ -111,15 +111,26 @@ class EnvironmentManager 'SESSION_DOMAIN' => explode(':', $request->get('app_domain'))[0], ]; - if ($request->has('database_username') && $request->has('database_password')) { - $dbEnv['DB_HOST'] = $request->get('database_hostname'); - $dbEnv['DB_PORT'] = $request->get('database_port'); - $dbEnv['DB_DATABASE'] = $request->get('database_name'); - $dbEnv['DB_USERNAME'] = $request->get('database_username'); - $dbEnv['DB_PASSWORD'] = $request->get('database_password'); - + if ($dbEnv['DB_CONNECTION'] != 'sqlite') { + if ($request->has('database_username') && $request->has('database_password')) { + $dbEnv['DB_HOST'] = $request->get('database_hostname'); + $dbEnv['DB_PORT'] = $request->get('database_port'); + $dbEnv['DB_DATABASE'] = $request->get('database_name'); + $dbEnv['DB_USERNAME'] = $request->get('database_username'); + $dbEnv['DB_PASSWORD'] = $request->get('database_password'); + } } else { $dbEnv['DB_DATABASE'] = $request->get('database_name'); + if (!empty($dbEnv['DB_DATABASE'])) { + $sqlite_path = $dbEnv['DB_DATABASE']; + } else { + $sqlite_path = database_path('database.sqlite'); + } + // Create empty SQLite database if it doesn't exist. + if (!file_exists($sqlite_path)) { + copy(database_path('stubs/sqlite.empty.db'), $sqlite_path); + $dbEnv['DB_DATABASE'] = $sqlite_path; + } } try { @@ -165,7 +176,7 @@ class EnvironmentManager 'database' => $request->get('database_name'), ]); - if ($request->has('database_username') && $request->has('database_password')) { + if ($connection !== 'sqlite' && $request->has('database_username') && $request->has('database_password')) { $connectionArray = array_merge($connectionArray, [ 'username' => $request->get('database_username'), 'password' => $request->get('database_password'), @@ -212,7 +223,7 @@ class EnvironmentManager /** * Returns the mail configuration * - * @param MailEnvironmentRequest $request + * @param MailEnvironmentRequest $request * @return array */ private function getMailConfiguration($request) @@ -419,7 +430,7 @@ class EnvironmentManager if ($parts_line[0] != $parts_last[0]) { $formatted .= $this->delimiter; } - $formatted .= $current.$this->delimiter; + $formatted .= $current . $this->delimiter; $previous = $current; } diff --git a/database/stubs/sqlite.empty.db b/database/stubs/sqlite.empty.db new file mode 100644 index 0000000000000000000000000000000000000000..2e2372f9ff7023084588d5f97a2e933dd23eea7f GIT binary patch literal 4096 zcmWFz^vNtqRY=P(%1ta$FlG>7U}R))P*7lCU|@t|AO!{>KB<6_L9eWn7o Date: Sat, 13 Jul 2024 15:18:10 +0200 Subject: [PATCH 20/50] Add sqlite3 validation --- app/Space/EnvironmentManager.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/app/Space/EnvironmentManager.php b/app/Space/EnvironmentManager.php index 981b0b67..6bfc4164 100755 --- a/app/Space/EnvironmentManager.php +++ b/app/Space/EnvironmentManager.php @@ -120,6 +120,20 @@ class EnvironmentManager $dbEnv['DB_PASSWORD'] = $request->get('database_password'); } } else { + // Laravel 11 requires SQLite at least v3.35.0 + // https://laravel.com/docs/11.x/database#introduction + if (extension_loaded('sqlite3') && class_exists('\SQLite3') && method_exists('\SQLite3', 'version')) { + $version = \SQLite3::version(); + if (!empty($version['versionString']) && version_compare($version['versionString'], '3.35.0', '<')) { + return [ + 'error_message' => sprintf('The minimum SQLite version is %s. Your current SQLite version is %s which is not supported. Please upgrade SQLite and retry.', '3.35.0', $version['versionString']), + ]; + } + } else { + return [ + 'error_message' => sprintf('SQLite3 is not present. Please install SQLite >=%s and retry.', '3.35.0'), + ]; + } $dbEnv['DB_DATABASE'] = $request->get('database_name'); if (!empty($dbEnv['DB_DATABASE'])) { $sqlite_path = $dbEnv['DB_DATABASE']; From 429a8ae8261881acf6f74983a168d6feba9971d6 Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Sat, 13 Jul 2024 15:18:30 +0200 Subject: [PATCH 21/50] Add sqlite3 into the php requirements --- config/installer.php | 1 + 1 file changed, 1 insertion(+) diff --git a/config/installer.php b/config/installer.php index ba07b238..cf584139 100755 --- a/config/installer.php +++ b/config/installer.php @@ -31,6 +31,7 @@ return [ 'fileinfo', 'zip', 'curl', + 'sqlite3', ], 'apache' => [ 'mod_rewrite', From e212714c6375d0ebf5887fda835ffabbe4e81e12 Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Sat, 13 Jul 2024 15:19:00 +0200 Subject: [PATCH 22/50] Pint --- app/Space/EnvironmentManager.php | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/app/Space/EnvironmentManager.php b/app/Space/EnvironmentManager.php index 6bfc4164..17b6bd1f 100755 --- a/app/Space/EnvironmentManager.php +++ b/app/Space/EnvironmentManager.php @@ -46,7 +46,7 @@ class EnvironmentManager */ public function updateEnv(array $data) { - if (empty($data) || !is_array($data) || !is_file($this->envPath)) { + if (empty($data) || ! is_array($data) || ! is_file($this->envPath)) { return false; } @@ -62,14 +62,14 @@ class EnvironmentManager // Check if new or old key if ($entry[0] == $data_key) { - $env[$env_key] = $data_key . '=' . $this->encode($data_value); + $env[$env_key] = $data_key.'='.$this->encode($data_value); $updated = true; } } // Lets create if not available - if (!$updated) { - $env[] = $data_key . '=' . $this->encode($data_value); + if (! $updated) { + $env[] = $data_key.'='.$this->encode($data_value); } } @@ -88,8 +88,8 @@ class EnvironmentManager private function encode($str) { - if ((strpos($str, ' ') !== false || preg_match('/' . preg_quote('^\'£$%^&*()}{@#~?><,@|-=-_+-¬', '/') . '/', $str)) && ($str[0] != '"' || $str[strlen($str) - 1] != '"')) { - $str = '"' . $str . '"'; + if ((strpos($str, ' ') !== false || preg_match('/'.preg_quote('^\'£$%^&*()}{@#~?><,@|-=-_+-¬', '/').'/', $str)) && ($str[0] != '"' || $str[strlen($str) - 1] != '"')) { + $str = '"'.$str.'"'; } return $str; @@ -124,7 +124,7 @@ class EnvironmentManager // https://laravel.com/docs/11.x/database#introduction if (extension_loaded('sqlite3') && class_exists('\SQLite3') && method_exists('\SQLite3', 'version')) { $version = \SQLite3::version(); - if (!empty($version['versionString']) && version_compare($version['versionString'], '3.35.0', '<')) { + if (! empty($version['versionString']) && version_compare($version['versionString'], '3.35.0', '<')) { return [ 'error_message' => sprintf('The minimum SQLite version is %s. Your current SQLite version is %s which is not supported. Please upgrade SQLite and retry.', '3.35.0', $version['versionString']), ]; @@ -135,13 +135,13 @@ class EnvironmentManager ]; } $dbEnv['DB_DATABASE'] = $request->get('database_name'); - if (!empty($dbEnv['DB_DATABASE'])) { + if (! empty($dbEnv['DB_DATABASE'])) { $sqlite_path = $dbEnv['DB_DATABASE']; } else { $sqlite_path = database_path('database.sqlite'); } // Create empty SQLite database if it doesn't exist. - if (!file_exists($sqlite_path)) { + if (! file_exists($sqlite_path)) { copy(database_path('stubs/sqlite.empty.db'), $sqlite_path); $dbEnv['DB_DATABASE'] = $sqlite_path; } @@ -237,7 +237,7 @@ class EnvironmentManager /** * Returns the mail configuration * - * @param MailEnvironmentRequest $request + * @param MailEnvironmentRequest $request * @return array */ private function getMailConfiguration($request) @@ -444,7 +444,7 @@ class EnvironmentManager if ($parts_line[0] != $parts_last[0]) { $formatted .= $this->delimiter; } - $formatted .= $current . $this->delimiter; + $formatted .= $current.$this->delimiter; $previous = $current; } From a866187f71d5aa507c641c3797e2f32c2e103edd Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Wed, 17 Jul 2024 11:32:42 +0200 Subject: [PATCH 23/50] Add default cache and queue configs --- config/cache.php | 5 +++++ config/queue.php | 5 +++++ 2 files changed, 10 insertions(+) create mode 100644 config/cache.php create mode 100644 config/queue.php diff --git a/config/cache.php b/config/cache.php new file mode 100644 index 00000000..a70ab8e5 --- /dev/null +++ b/config/cache.php @@ -0,0 +1,5 @@ + env('CACHE_STORE', 'file'), +]; diff --git a/config/queue.php b/config/queue.php new file mode 100644 index 00000000..e8ff285f --- /dev/null +++ b/config/queue.php @@ -0,0 +1,5 @@ + env('QUEUE_CONNECTION', 'sync'), +]; From c8439d859d190d2525674feeef876bf1fc69a550 Mon Sep 17 00:00:00 2001 From: mchev Date: Wed, 17 Jul 2024 12:06:04 +0200 Subject: [PATCH 24/50] Add cache and queue tables migrations (#121) * Add cache and queue tables migrations --- .../2024_07_17_113642_create_cache_table.php | 35 +++++++++++++++++++ .../2024_07_17_113702_create_jobs_table.php | 32 +++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 database/migrations/2024_07_17_113642_create_cache_table.php create mode 100644 database/migrations/2024_07_17_113702_create_jobs_table.php diff --git a/database/migrations/2024_07_17_113642_create_cache_table.php b/database/migrations/2024_07_17_113642_create_cache_table.php new file mode 100644 index 00000000..b9c106be --- /dev/null +++ b/database/migrations/2024_07_17_113642_create_cache_table.php @@ -0,0 +1,35 @@ +string('key')->primary(); + $table->mediumText('value'); + $table->integer('expiration'); + }); + + Schema::create('cache_locks', function (Blueprint $table) { + $table->string('key')->primary(); + $table->string('owner'); + $table->integer('expiration'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('cache'); + Schema::dropIfExists('cache_locks'); + } +}; diff --git a/database/migrations/2024_07_17_113702_create_jobs_table.php b/database/migrations/2024_07_17_113702_create_jobs_table.php new file mode 100644 index 00000000..6098d9b1 --- /dev/null +++ b/database/migrations/2024_07_17_113702_create_jobs_table.php @@ -0,0 +1,32 @@ +bigIncrements('id'); + $table->string('queue')->index(); + $table->longText('payload'); + $table->unsignedTinyInteger('attempts'); + $table->unsignedInteger('reserved_at')->nullable(); + $table->unsignedInteger('available_at'); + $table->unsignedInteger('created_at'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('jobs'); + } +}; From 532a044bb97ee704c6d277d5af37467045eaa2a3 Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Thu, 18 Jul 2024 09:00:00 +0200 Subject: [PATCH 25/50] Add APP_NAME in .env.example --- .env.example | 1 + 1 file changed, 1 insertion(+) diff --git a/.env.example b/.env.example index 48dc79fd..281aedff 100644 --- a/.env.example +++ b/.env.example @@ -1,6 +1,7 @@ APP_ENV=production APP_KEY=base64:kgk/4DW1vEVy7aEvet5FPp5un6PIGe/so8H0mvoUtW0= APP_DEBUG=true +APP_NAME="InvoiceShelf" APP_LOG_LEVEL=debug APP_TIMEZONE=UTC APP_URL=http://invoiceshelf.test From 19bf467068ab36296904ed6b9c7c406227570325 Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Sun, 21 Jul 2024 10:42:00 +0200 Subject: [PATCH 26/50] Add "none" as choice for MAIL_ENCRYPTION settings/install that translates to =NULL --- .../V1/Admin/Settings/MailConfigurationController.php | 2 +- app/Space/EnvironmentManager.php | 2 +- .../admin/views/installation/mail-driver/SmtpMailDriver.vue | 2 +- .../scripts/admin/views/settings/mail-driver/SmtpMailDriver.vue | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/V1/Admin/Settings/MailConfigurationController.php b/app/Http/Controllers/V1/Admin/Settings/MailConfigurationController.php index 335dd2a0..9b47211e 100755 --- a/app/Http/Controllers/V1/Admin/Settings/MailConfigurationController.php +++ b/app/Http/Controllers/V1/Admin/Settings/MailConfigurationController.php @@ -50,7 +50,7 @@ class MailConfigurationController extends Controller 'mail_port' => config('mail.port'), 'mail_username' => config('mail.username'), 'mail_password' => config('mail.password'), - 'mail_encryption' => config('mail.encryption'), + 'mail_encryption' => is_null(config('mail.encryption')) ? 'none' : config('mail.encryption'), 'from_name' => config('mail.from.name'), 'from_mail' => config('mail.from.address'), 'mail_mailgun_endpoint' => config('services.mailgun.endpoint'), diff --git a/app/Space/EnvironmentManager.php b/app/Space/EnvironmentManager.php index 17b6bd1f..5795b922 100755 --- a/app/Space/EnvironmentManager.php +++ b/app/Space/EnvironmentManager.php @@ -255,7 +255,7 @@ class EnvironmentManager 'MAIL_PORT' => $request->get('mail_port'), 'MAIL_USERNAME' => $request->get('mail_username'), 'MAIL_PASSWORD' => $request->get('mail_password'), - 'MAIL_ENCRYPTION' => $request->get('mail_encryption'), + 'MAIL_ENCRYPTION' => $request->get('mail_encryption') !== 'none' ? $request->get('mail_encryption') : 'null', 'MAIL_FROM_ADDRESS' => $request->get('from_mail'), 'MAIL_FROM_NAME' => $request->get('from_name'), ]; diff --git a/resources/scripts/admin/views/installation/mail-driver/SmtpMailDriver.vue b/resources/scripts/admin/views/installation/mail-driver/SmtpMailDriver.vue index d5860f12..0833a0a3 100644 --- a/resources/scripts/admin/views/installation/mail-driver/SmtpMailDriver.vue +++ b/resources/scripts/admin/views/installation/mail-driver/SmtpMailDriver.vue @@ -200,7 +200,7 @@ const props = defineProps({ const emit = defineEmits(['submit-data', 'on-change-driver']) let isShowPassword = ref(false) -const encryptions = reactive(['tls', 'ssl', 'starttls']) +const encryptions = reactive(['none', 'tls', 'ssl', 'starttls']) const { t } = useI18n() const mailDriverStore = useMailDriverStore() diff --git a/resources/scripts/admin/views/settings/mail-driver/SmtpMailDriver.vue b/resources/scripts/admin/views/settings/mail-driver/SmtpMailDriver.vue index dbb947f2..d781aed9 100644 --- a/resources/scripts/admin/views/settings/mail-driver/SmtpMailDriver.vue +++ b/resources/scripts/admin/views/settings/mail-driver/SmtpMailDriver.vue @@ -211,7 +211,7 @@ const mailDriverStore = useMailDriverStore() const { t } = useI18n() let isShowPassword = ref(false) -const encryptions = reactive(['tls', 'ssl', 'starttls']) +const encryptions = reactive(['none','tls', 'ssl', 'starttls']) const getInputType = computed(() => { if (isShowPassword.value) { From f9864540840ec328b3f108058f1599797a4f223c Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Sun, 28 Jul 2024 17:22:40 +0200 Subject: [PATCH 27/50] Set backup to point to the default database connection --- config/backup.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/backup.php b/config/backup.php index d8a14550..d4aa361c 100644 --- a/config/backup.php +++ b/config/backup.php @@ -74,7 +74,7 @@ return [ * For a complete list of available customization options, see https://github.com/spatie/db-dumper */ 'databases' => [ - 'mysql', + env( 'DB_CONNECTION', 'mysql' ) ], ], From 310d05eab14fc97df8c2334b73646dea8f8c7781 Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Sun, 28 Jul 2024 17:24:44 +0200 Subject: [PATCH 28/50] Set backup to point to the default database connection --- config/backup.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/backup.php b/config/backup.php index d4aa361c..1ff51ad4 100644 --- a/config/backup.php +++ b/config/backup.php @@ -74,7 +74,7 @@ return [ * For a complete list of available customization options, see https://github.com/spatie/db-dumper */ 'databases' => [ - env( 'DB_CONNECTION', 'mysql' ) + env('DB_CONNECTION', 'mysql'), ], ], From 9df5b306a271d32a5321cf0630c4c56a86da8c0e Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Sun, 28 Jul 2024 17:24:57 +0200 Subject: [PATCH 29/50] Make artisan file executable --- artisan | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 artisan diff --git a/artisan b/artisan old mode 100644 new mode 100755 From 45ff9c89a87423849b81dc54f49eaa1ca7a7934d Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Sun, 28 Jul 2024 17:25:32 +0200 Subject: [PATCH 30/50] Add development environment --- .dev/README.md | 143 +++ .dev/adminer/Dockerfile | 14 + .dev/docker-compose.mysql.yml | 68 ++ .dev/docker-compose.pgsql.yml | 67 ++ .dev/docker-compose.yml | 52 + .dev/nginx/conf.d/dev.conf | 22 + .dev/php/Dockerfile | 60 + .dev/php/entrypoint.sh | 12 + .dev/php/php.ini | 1974 +++++++++++++++++++++++++++++++++ 9 files changed, 2412 insertions(+) create mode 100644 .dev/README.md create mode 100644 .dev/adminer/Dockerfile create mode 100644 .dev/docker-compose.mysql.yml create mode 100644 .dev/docker-compose.pgsql.yml create mode 100644 .dev/docker-compose.yml create mode 100644 .dev/nginx/conf.d/dev.conf create mode 100644 .dev/php/Dockerfile create mode 100755 .dev/php/entrypoint.sh create mode 100644 .dev/php/php.ini diff --git a/.dev/README.md b/.dev/README.md new file mode 100644 index 00000000..0a85e8fb --- /dev/null +++ b/.dev/README.md @@ -0,0 +1,143 @@ +# InvoiceShelf Development Environment + +This is dockerized development environment that allows developers to easily get started to develop InvoiceShelf. + +This development environment is **NOT MEANT TO BE USED IN PRODUCTION** and is preconfigured with all the needed tools that InvoiceShelf requires for development purposes. It works on Windows, Linux and MacOS. + +For production grade docker image, please refer to [InvoiceShelf/docker](https://github.com/InvoiceShelf/docker) and [InvoiceShelf on DockerHub](https://hub.docker.com/r/invoiceshelf/invoiceshelf). + +## How to set up + +### 1. Hosts configuration + +We use `invoiceshelf.test` domain for local development within this environment and you need to adhere to it. + +For that purpose you need to edit your OS hosts file or DNS server and add the following line to make the local domain name available on your system. + +``` +127.0.0.1 invoiceshelf.test +``` + +#### 1.1. Windows + +The hosts file on Windows is located at `C:\Windows\system32\drivers\etc\hosts`. + +You need to launch Notepad as administrator, open the file through **File > Open**, add the line from above and save the file. + +#### 1.2. Linux and MacOS + +The hosts file on Linux and Mac is located at `/etc/hosts`. + +You need to open the file using your favorite editor as sudo/root, add the line from above and save the file. + +### 2. FileSystem configuration (Linux/MacOS Only) + +If you are using Linux or MacOS operating system, you need to make sure that **USERID** and **GRPID** environment variables are always matching your current session user. Those two variables are required to set up the filesystem permissions correctly on Linux and Mac. + +You can run it one time, every time before starting as follows: + +``` +export USRID=$(id -u) && export GRPID=$(id -g) +``` + +or you can append this to your .zshrc/.bashrc by running this command in your terminal: + +``` +grep -qxF 'export USRID=$(id -u) GRPID=$(id -g)' ~/.${SHELL##*/}rc || echo 'export USRID=$(id -u) GRPID=$(id -g)' >> ~/.${SHELL##*/}rc +``` +this will append the `export` line to your rc file and run it on each terminal session. + +### 3. Clone the project + +Clone the InvoiceShelf project directly from origin or swap the git url with your forked url: + +```bash +git clone git@github.com:InvoiceShelf/InvoiceShelf.git +``` + +## Development Workflow + +### 1. Spinning Up + +To **spin up** the environment, run docker compose as follows: + +**Important**: If you are on Linux/MacOS and didn't added the `export` line to your .zshrc/.bashrc file, you need to repeat `step 2` before spining up, otherwise you will face permissions issue. + +``` +docker compose -f .dev/docker-compose.yml up +``` + +### 2. Spinning Down + +To **spin down** the environment, run docker compose as follows: + +``` +docker compose -f .dev/docker-compose.yml down +``` + +### 2. Working with binaries + +To correctly run `composer`, `artisan`, `pint`, `pest` or other binaries within this project, you must ssh into the container as follows: + +``` +docker exec -it --user invoiceshelf invoiceshelf-dev-php /bin/bash +``` + +In the `/home/invoiceshelf/app` directory you can find the application root and run the commands from there. + +## What is included + +### 1. Web Server + +This dockerized environment uses PHP-FPM and NGINX together to serve the website `invoiceshelf.test` + +Both NGINX and PHP-FPM are configured with optimal settings for development. Please don't use this in production. + +### 2. Databases + +This dockerized environment comes with support for all three databases that InvoiceShelf suppots: MySQL, PostgreSQL and SQLite. + +The setup parameters/credentials for each of the supported databases are as follows. + +| | MySQL | PostgreSQL | SQLite | +|---|---|---|---| +| **DB_USER** | invoiceshelf | invoiceshelf | Not applicable | +| **DB_PASS** | invoiceshelf | invoiceshelf | Not applicable | +| **DB_NAME** | invoiceshelf | invoiceshelf | /home/invoiceshelf/database/database.sqlite | +| **DB_HOST** | db-mysql | db-pgsql | Not applicable | +| **DB_PORT** | 3036 | 5432 | Not applicable | + +**Note:** The only required field for SQLite is **DB_NAME**. + +### 3. Adminer + +Adminer is UI tool for viewing the database contents and executing queries. + +It supports MySQL, PostgreSQL, SQLite. + +#### MySQL/PostgresSQL + +To log into the MySQL or PostgresSQL, use the database information specified in the above section (2. Databases) + +#### SQLite + +To log into the SQLite, use the following credentials: + +| KEY | VALUE | +|---|---| +| **USER** | admin | +| **PASS** | admin | +| **NAME** | /database.sqlite | + + + + + + + + + + + + + diff --git a/.dev/adminer/Dockerfile b/.dev/adminer/Dockerfile new file mode 100644 index 00000000..e858b2a2 --- /dev/null +++ b/.dev/adminer/Dockerfile @@ -0,0 +1,14 @@ +FROM adminer:latest + +USER root + +RUN set -x && \ + apt update && \ + apt install curl -y && \ + cd /var/www/html/plugins-enabled && \ + curl -O https://gist.githubusercontent.com/gdarko/00af6e9a754f09c3f81cd3c606c33311/raw/d5f6a30f00edecf30a5d380340d9dae79a3b7352/login-password-less.php + +USER adminer +CMD [ "php", "-S", "[::]:8080", "-t", "/var/www/html" ] + +EXPOSE 8080 diff --git a/.dev/docker-compose.mysql.yml b/.dev/docker-compose.mysql.yml new file mode 100644 index 00000000..d4ffe692 --- /dev/null +++ b/.dev/docker-compose.mysql.yml @@ -0,0 +1,68 @@ +services: + php-fpm: + container_name: invoiceshelf-dev-php + build: + context: . + dockerfile: php/Dockerfile + args: + - UID=${USRID:-1000} + - GID=${GRPID:-1000} + volumes: + - ../:/home/invoiceshelf/app + networks: + - invoiceshelf-dev + + nginx: + container_name: invoiceshelf-dev-nginx + image: nginx:stable + ports: + - '80:80' + volumes: + - ./nginx/conf.d/dev.conf:/etc/nginx/conf.d/dev.conf + - ../:/home/invoiceshelf/app + networks: + - invoiceshelf-dev + + db: + image: mariadb:10.9 + container_name: invoiceshelf-dev-mysql + environment: + MYSQL_ROOT_PASSWORD: invoiceshelf + MYSQL_DATABASE: invoiceshelf + MYSQL_USER: invoiceshelf + MYSQL_PASSWORD: invoiceshelf + ports: + - "3306:3306" + volumes: + - invoiceshelf-dev-mysql:/var/lib/mysql + networks: + - invoiceshelf-dev + + adminer: + container_name: invoiceshelf-dev-adminer + build: + context: . + dockerfile: adminer/Dockerfile + environment: + ADMINER_PLUGINS: tables-filter + ADMINER_DESIGN: konya + ports: + - '8089:8080' + networks: + - invoiceshelf-dev + + mail: + container_name: invoiceshelf-dev-mailpit + image: axllent/mailpit:latest + restart: always + ports: + - 1025:1025 + - 8025:8025 + networks: + - invoiceshelf-dev + +networks: + invoiceshelf-dev: + +volumes: + invoiceshelf-dev-mysql: diff --git a/.dev/docker-compose.pgsql.yml b/.dev/docker-compose.pgsql.yml new file mode 100644 index 00000000..8799c493 --- /dev/null +++ b/.dev/docker-compose.pgsql.yml @@ -0,0 +1,67 @@ +services: + php-fpm: + container_name: invoiceshelf-dev-php + build: + context: . + dockerfile: php/Dockerfile + args: + - UID=${USRID:-1000} + - GID=${GRPID:-1000} + volumes: + - ../:/home/invoiceshelf/app + networks: + - invoiceshelf-dev + + nginx: + container_name: invoiceshelf-dev-nginx + image: nginx:stable + ports: + - '80:80' + volumes: + - ./nginx/conf.d/dev.conf:/etc/nginx/conf.d/dev.conf + - ../:/home/invoiceshelf/app + networks: + - invoiceshelf-dev + + db: + image: postgres:15 + container_name: invoiceshelf-dev-pgsql + environment: + - POSTGRES_PASSWORD=invoiceshelf + - POSTGRES_USER=invoiceshelf + - POSTGRES_DB=invoiceshelf + ports: + - 5432:5432 + volumes: + - invoiceshelf-dev-pgsql:/var/lib/postgresql/data + networks: + - invoiceshelf-dev + + adminer: + container_name: invoiceshelf-dev-adminer + build: + context: . + dockerfile: adminer/Dockerfile + environment: + ADMINER_PLUGINS: tables-filter + ADMINER_DESIGN: konya + ports: + - '54320:8080' + networks: + - invoiceshelf-dev + + mail: + container_name: invoiceshelf-dev-mailpit + image: axllent/mailpit:latest + restart: always + ports: + - 1025:1025 + - 8025:8025 + networks: + - invoiceshelf-dev + +networks: + invoiceshelf-dev: + +volumes: + invoiceshelf-dev-pgsql: diff --git a/.dev/docker-compose.yml b/.dev/docker-compose.yml new file mode 100644 index 00000000..913a9a55 --- /dev/null +++ b/.dev/docker-compose.yml @@ -0,0 +1,52 @@ +services: + php-fpm: + container_name: invoiceshelf-dev-php + build: + context: . + dockerfile: php/Dockerfile + args: + - UID=${USRID:-1000} + - GID=${GRPID:-1000} + volumes: + - ../:/home/invoiceshelf/app + networks: + - invoiceshelf-dev + + nginx: + container_name: invoiceshelf-dev-nginx + image: nginx:stable + ports: + - '80:80' + volumes: + - ./nginx/conf.d/dev.conf:/etc/nginx/conf.d/dev.conf + - ../:/home/invoiceshelf/app + networks: + - invoiceshelf-dev + + adminer: + container_name: invoiceshelf-dev-adminer + build: + context: . + dockerfile: adminer/Dockerfile + environment: + ADMINER_PLUGINS: tables-filter + ADMINER_DESIGN: konya + volumes: + - ../database/database.sqlite:/database.sqlite + ports: + - '54320:8080' + networks: + - invoiceshelf-dev + + mail: + container_name: invoiceshelf-dev-mailpit + image: axllent/mailpit:latest + restart: always + ports: + - 1025:1025 + - 8025:8025 + networks: + - invoiceshelf-dev + +networks: + invoiceshelf-dev: diff --git a/.dev/nginx/conf.d/dev.conf b/.dev/nginx/conf.d/dev.conf new file mode 100644 index 00000000..2def2a74 --- /dev/null +++ b/.dev/nginx/conf.d/dev.conf @@ -0,0 +1,22 @@ +server { + listen 80; + + root /home/invoiceshelf/app/public; + index index.php; + + error_log /var/log/nginx/dev-error.log; + access_log /var/log/nginx/dev-access.log; + + server_name invoiceshelf.test; + + location / { + try_files $uri $uri/ /index.php?$query_string; + } + + location ~ \.php$ { + fastcgi_pass php-fpm:9000; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; + include fastcgi_params; + } +} diff --git a/.dev/php/Dockerfile b/.dev/php/Dockerfile new file mode 100644 index 00000000..fa2ea445 --- /dev/null +++ b/.dev/php/Dockerfile @@ -0,0 +1,60 @@ +FROM php:8.3-fpm-bookworm + +ARG UID +ARG GID + +ENV UID=${UID} +ENV GID=${GID} + +USER root + +# Create user/group +RUN addgroup --gid ${GID} --system invoiceshelf && \ + adduser --gid ${GID} --system --disabled-password --shell /bin/sh -u ${UID} --home /home/invoiceshelf invoiceshelf && \ + sed -i "s/user = www-data/user = invoiceshelf/g" /usr/local/etc/php-fpm.d/www.conf && \ + sed -i "s/group = www-data/group = invoiceshelf/g" /usr/local/etc/php-fpm.d/www.conf + +# Install Composer +RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer + +# install dependencies +RUN apt update && apt install -y \ + libpng-dev \ + zlib1g-dev \ + libxml2-dev \ + libzip-dev \ + libonig-dev \ + libpq-dev \ + sqlite3 \ + postgresql-client \ + mariadb-client \ + zip \ + curl \ + unzip \ + webp \ + && docker-php-ext-configure gd \ + && docker-php-ext-install -j$(nproc) gd \ + && docker-php-ext-install bcmath \ + && docker-php-ext-install mbstring \ + && docker-php-ext-install mysqli \ + && docker-php-ext-install pdo_mysql \ + && docker-php-ext-configure pgsql -with-pgsql=/usr/local/pgsql \ + && docker-php-ext-install pgsql \ + && docker-php-ext-install pdo_pgsql \ + && docker-php-ext-install zip \ + && docker-php-ext-install xml \ + && docker-php-source delete + +# Clear cache +RUN apt-get clean && rm -rf /var/lib/apt/lists/* + +# Set workdir +WORKDIR /home/invoiceshelf/app + +# Copy Files +COPY /php/entrypoint.sh / + +# Entrypoint +ENTRYPOINT ["/entrypoint.sh"] + +CMD ["php-fpm"] diff --git a/.dev/php/entrypoint.sh b/.dev/php/entrypoint.sh new file mode 100755 index 00000000..23e59fc1 --- /dev/null +++ b/.dev/php/entrypoint.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +echo "############################################" +echo "### InvoiceShelf Development Environment ###" +echo "############################################" + +chown -R ${UID}:${GID} /home/invoiceshelf/app +chmod +x /home/invoiceshelf/app/artisan + +cd /home/invoiceshelf/app && php artisan storage:link + +exec $@ diff --git a/.dev/php/php.ini b/.dev/php/php.ini new file mode 100644 index 00000000..88d49d94 --- /dev/null +++ b/.dev/php/php.ini @@ -0,0 +1,1974 @@ +[PHP] + +;;;;;;;;;;;;;;;;;;; +; About php.ini ; +;;;;;;;;;;;;;;;;;;; +; PHP's initialization file, generally called php.ini, is responsible for +; configuring many of the aspects of PHP's behavior. + +; PHP attempts to find and load this configuration from a number of locations. +; The following is a summary of its search order: +; 1. SAPI module specific location. +; 2. The PHPRC environment variable. +; 3. A number of predefined registry keys on Windows +; 4. Current working directory (except CLI) +; 5. The web server's directory (for SAPI modules), or directory of PHP +; (otherwise in Windows) +; 6. The directory from the --with-config-file-path compile time option, or the +; Windows directory (usually C:\windows) +; See the PHP docs for more specific information. +; https://php.net/configuration.file + +; The syntax of the file is extremely simple. Whitespace and lines +; beginning with a semicolon are silently ignored (as you probably guessed). +; Section headers (e.g. [Foo]) are also silently ignored, even though +; they might mean something in the future. + +; Directives following the section heading [PATH=/www/mysite] only +; apply to PHP files in the /www/mysite directory. Directives +; following the section heading [HOST=www.example.com] only apply to +; PHP files served from www.example.com. Directives set in these +; special sections cannot be overridden by user-defined INI files or +; at runtime. Currently, [PATH=] and [HOST=] sections only work under +; CGI/FastCGI. +; https://php.net/ini.sections + +; Directives are specified using the following syntax: +; directive = value +; Directive names are *case sensitive* - foo=bar is different from FOO=bar. +; Directives are variables used to configure PHP or PHP extensions. +; There is no name validation. If PHP can't find an expected +; directive because it is not set or is mistyped, a default value will be used. + +; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one +; of the INI constants (On, Off, True, False, Yes, No and None) or an expression +; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a +; previously set variable or directive (e.g. ${foo}) + +; Expressions in the INI file are limited to bitwise operators and parentheses: +; | bitwise OR +; ^ bitwise XOR +; & bitwise AND +; ~ bitwise NOT +; ! boolean NOT + +; Boolean flags can be turned on using the values 1, On, True or Yes. +; They can be turned off using the values 0, Off, False or No. + +; An empty string can be denoted by simply not writing anything after the equal +; sign, or by using the None keyword: + +; foo = ; sets foo to an empty string +; foo = None ; sets foo to an empty string +; foo = "None" ; sets foo to the string 'None' + +; If you use constants in your value, and these constants belong to a +; dynamically loaded extension (either a PHP extension or a Zend extension), +; you may only use these constants *after* the line that loads the extension. + +;;;;;;;;;;;;;;;;;;; +; About this file ; +;;;;;;;;;;;;;;;;;;; +; PHP comes packaged with two INI files. One that is recommended to be used +; in production environments and one that is recommended to be used in +; development environments. + +; php.ini-production contains settings which hold security, performance and +; best practices at its core. But please be aware, these settings may break +; compatibility with older or less security-conscious applications. We +; recommending using the production ini in production and testing environments. + +; php.ini-development is very similar to its production variant, except it is +; much more verbose when it comes to errors. We recommend using the +; development version only in development environments, as errors shown to +; application users can inadvertently leak otherwise secure information. + +; This is the php.ini-production INI file. + +;;;;;;;;;;;;;;;;;;; +; Quick Reference ; +;;;;;;;;;;;;;;;;;;; + +; The following are all the settings which are different in either the production +; or development versions of the INIs with respect to PHP's default behavior. +; Please see the actual settings later in the document for more details as to why +; we recommend these changes in PHP's behavior. + +; display_errors +; Default Value: On +; Development Value: On +; Production Value: Off + +; display_startup_errors +; Default Value: On +; Development Value: On +; Production Value: Off + +; error_reporting +; Default Value: E_ALL +; Development Value: E_ALL +; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT + +; log_errors +; Default Value: Off +; Development Value: On +; Production Value: On + +; max_input_time +; Default Value: -1 (Unlimited) +; Development Value: 60 (60 seconds) +; Production Value: 60 (60 seconds) + +; output_buffering +; Default Value: Off +; Development Value: 4096 +; Production Value: 4096 + +; register_argc_argv +; Default Value: On +; Development Value: Off +; Production Value: Off + +; request_order +; Default Value: None +; Development Value: "GP" +; Production Value: "GP" + +; session.gc_divisor +; Default Value: 100 +; Development Value: 1000 +; Production Value: 1000 + +; session.sid_bits_per_character +; Default Value: 4 +; Development Value: 5 +; Production Value: 5 + +; short_open_tag +; Default Value: On +; Development Value: Off +; Production Value: Off + +; variables_order +; Default Value: "EGPCS" +; Development Value: "GPCS" +; Production Value: "GPCS" + +; zend.exception_ignore_args +; Default Value: Off +; Development Value: Off +; Production Value: On + +; zend.exception_string_param_max_len +; Default Value: 15 +; Development Value: 15 +; Production Value: 0 + +;;;;;;;;;;;;;;;;;;;; +; php.ini Options ; +;;;;;;;;;;;;;;;;;;;; +; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" +;user_ini.filename = ".user.ini" + +; To disable this feature set this option to an empty value +;user_ini.filename = + +; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) +;user_ini.cache_ttl = 300 + +;;;;;;;;;;;;;;;;;;;; +; Language Options ; +;;;;;;;;;;;;;;;;;;;; + +; Enable the PHP scripting language engine under Apache. +; https://php.net/engine +engine = On + +; This directive determines whether or not PHP will recognize code between +; tags as PHP source which should be processed as such. It is +; generally recommended that should be used and that this feature +; should be disabled, as enabling it may result in issues when generating XML +; documents, however this remains supported for backward compatibility reasons. +; Note that this directive does not control the would work. +; https://php.net/syntax-highlighting +;highlight.string = #DD0000 +;highlight.comment = #FF9900 +;highlight.keyword = #007700 +;highlight.default = #0000BB +;highlight.html = #000000 + +; If enabled, the request will be allowed to complete even if the user aborts +; the request. Consider enabling it if executing long requests, which may end up +; being interrupted by the user or a browser timing out. PHP's default behavior +; is to disable this feature. +; https://php.net/ignore-user-abort +;ignore_user_abort = On + +; Determines the size of the realpath cache to be used by PHP. This value should +; be increased on systems where PHP opens many files to reflect the quantity of +; the file operations performed. +; Note: if open_basedir is set, the cache is disabled +; https://php.net/realpath-cache-size +;realpath_cache_size = 4096k + +; Duration of time, in seconds for which to cache realpath information for a given +; file or directory. For systems with rarely changing files, consider increasing this +; value. +; https://php.net/realpath-cache-ttl +;realpath_cache_ttl = 120 + +; Enables or disables the circular reference collector. +; https://php.net/zend.enable-gc +zend.enable_gc = On + +; If enabled, scripts may be written in encodings that are incompatible with +; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such +; encodings. To use this feature, mbstring extension must be enabled. +;zend.multibyte = Off + +; Allows to set the default encoding for the scripts. This value will be used +; unless "declare(encoding=...)" directive appears at the top of the script. +; Only affects if zend.multibyte is set. +;zend.script_encoding = + +; Allows to include or exclude arguments from stack traces generated for exceptions. +; In production, it is recommended to turn this setting on to prohibit the output +; of sensitive information in stack traces +; Default Value: Off +; Development Value: Off +; Production Value: On +zend.exception_ignore_args = On + +; Allows setting the maximum string length in an argument of a stringified stack trace +; to a value between 0 and 1000000. +; This has no effect when zend.exception_ignore_args is enabled. +; Default Value: 15 +; Development Value: 15 +; Production Value: 0 +; In production, it is recommended to set this to 0 to reduce the output +; of sensitive information in stack traces. +zend.exception_string_param_max_len = 0 + +;;;;;;;;;;;;;;;;; +; Miscellaneous ; +;;;;;;;;;;;;;;;;; + +; Decides whether PHP may expose the fact that it is installed on the server +; (e.g. by adding its signature to the Web server header). It is no security +; threat in any way, but it makes it possible to determine whether you use PHP +; on your server or not. +; https://php.net/expose-php +expose_php = On + +;;;;;;;;;;;;;;;;;;; +; Resource Limits ; +;;;;;;;;;;;;;;;;;;; + +; Maximum execution time of each script, in seconds +; https://php.net/max-execution-time +; Note: This directive is hardcoded to 0 for the CLI SAPI +max_execution_time = 90 + +; Maximum amount of time each script may spend parsing request data. It's a good +; idea to limit this time on productions servers in order to eliminate unexpectedly +; long running scripts. +; Note: This directive is hardcoded to -1 for the CLI SAPI +; Default Value: -1 (Unlimited) +; Development Value: 60 (60 seconds) +; Production Value: 60 (60 seconds) +; https://php.net/max-input-time +max_input_time = 60 + +; Maximum input variable nesting level +; https://php.net/max-input-nesting-level +;max_input_nesting_level = 64 + +; How many GET/POST/COOKIE input variables may be accepted +;max_input_vars = 1000 + +; How many multipart body parts (combined input variable and file uploads) may +; be accepted. +; Default Value: -1 (Sum of max_input_vars and max_file_uploads) +;max_multipart_body_parts = 1500 + +; Maximum amount of memory a script may consume +; https://php.net/memory-limit +memory_limit = 512M + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Error handling and logging ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +; This directive informs PHP of which errors, warnings and notices you would like +; it to take action for. The recommended way of setting values for this +; directive is through the use of the error level constants and bitwise +; operators. The error level constants are below here for convenience as well as +; some common settings and their meanings. +; By default, PHP is set to take action on all errors, notices and warnings EXCEPT +; those related to E_NOTICE and E_STRICT, which together cover best practices and +; recommended coding standards in PHP. For performance reasons, this is the +; recommend error reporting setting. Your production server shouldn't be wasting +; resources complaining about best practices and coding standards. That's what +; development servers and development settings are for. +; Note: The php.ini-development file has this setting as E_ALL. This +; means it pretty much reports everything which is exactly what you want during +; development and early testing. +; +; Error Level Constants: +; E_ALL - All errors and warnings +; E_ERROR - fatal run-time errors +; E_RECOVERABLE_ERROR - almost fatal run-time errors +; E_WARNING - run-time warnings (non-fatal errors) +; E_PARSE - compile-time parse errors +; E_NOTICE - run-time notices (these are warnings which often result +; from a bug in your code, but it's possible that it was +; intentional (e.g., using an uninitialized variable and +; relying on the fact it is automatically initialized to an +; empty string) +; E_STRICT - run-time notices, enable to have PHP suggest changes +; to your code which will ensure the best interoperability +; and forward compatibility of your code +; E_CORE_ERROR - fatal errors that occur during PHP's initial startup +; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's +; initial startup +; E_COMPILE_ERROR - fatal compile-time errors +; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) +; E_USER_ERROR - user-generated error message +; E_USER_WARNING - user-generated warning message +; E_USER_NOTICE - user-generated notice message +; E_DEPRECATED - warn about code that will not work in future versions +; of PHP +; E_USER_DEPRECATED - user-generated deprecation warnings +; +; Common Values: +; E_ALL (Show all errors, warnings and notices including coding standards.) +; E_ALL & ~E_NOTICE (Show all errors, except for notices) +; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) +; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) +; Default Value: E_ALL +; Development Value: E_ALL +; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT +; https://php.net/error-reporting +error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT + +; This directive controls whether or not and where PHP will output errors, +; notices and warnings too. Error output is very useful during development, but +; it could be very dangerous in production environments. Depending on the code +; which is triggering the error, sensitive information could potentially leak +; out of your application such as database usernames and passwords or worse. +; For production environments, we recommend logging errors rather than +; sending them to STDOUT. +; Possible Values: +; Off = Do not display any errors +; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) +; On or stdout = Display errors to STDOUT +; Default Value: On +; Development Value: On +; Production Value: Off +; https://php.net/display-errors +display_errors = Off + +; The display of errors which occur during PHP's startup sequence are handled +; separately from display_errors. We strongly recommend you set this to 'off' +; for production servers to avoid leaking configuration details. +; Default Value: On +; Development Value: On +; Production Value: Off +; https://php.net/display-startup-errors +display_startup_errors = Off + +; Besides displaying errors, PHP can also log errors to locations such as a +; server-specific log, STDERR, or a location specified by the error_log +; directive found below. While errors should not be displayed on productions +; servers they should still be monitored and logging is a great way to do that. +; Default Value: Off +; Development Value: On +; Production Value: On +; https://php.net/log-errors +log_errors = On + +; Do not log repeated messages. Repeated errors must occur in same file on same +; line unless ignore_repeated_source is set true. +; https://php.net/ignore-repeated-errors +ignore_repeated_errors = Off + +; Ignore source of message when ignoring repeated messages. When this setting +; is On you will not log errors with repeated messages from different files or +; source lines. +; https://php.net/ignore-repeated-source +ignore_repeated_source = Off + +; If this parameter is set to Off, then memory leaks will not be shown (on +; stdout or in the log). This is only effective in a debug compile, and if +; error reporting includes E_WARNING in the allowed list +; https://php.net/report-memleaks +report_memleaks = On + +; This setting is off by default. +;report_zend_debug = 0 + +; Turn off normal error reporting and emit XML-RPC error XML +; https://php.net/xmlrpc-errors +;xmlrpc_errors = 0 + +; An XML-RPC faultCode +;xmlrpc_error_number = 0 + +; When PHP displays or logs an error, it has the capability of formatting the +; error message as HTML for easier reading. This directive controls whether +; the error message is formatted as HTML or not. +; Note: This directive is hardcoded to Off for the CLI SAPI +; https://php.net/html-errors +;html_errors = On + +; If html_errors is set to On *and* docref_root is not empty, then PHP +; produces clickable error messages that direct to a page describing the error +; or function causing the error in detail. +; You can download a copy of the PHP manual from https://php.net/docs +; and change docref_root to the base URL of your local copy including the +; leading '/'. You must also specify the file extension being used including +; the dot. PHP's default behavior is to leave these settings empty, in which +; case no links to documentation are generated. +; Note: Never use this feature for production boxes. +; https://php.net/docref-root +; Examples +;docref_root = "/phpmanual/" + +; https://php.net/docref-ext +;docref_ext = .html + +; String to output before an error message. PHP's default behavior is to leave +; this setting blank. +; https://php.net/error-prepend-string +; Example: +;error_prepend_string = "" + +; String to output after an error message. PHP's default behavior is to leave +; this setting blank. +; https://php.net/error-append-string +; Example: +;error_append_string = "" + +; Log errors to specified file. PHP's default behavior is to leave this value +; empty. +; https://php.net/error-log +; Example: +;error_log = php_errors.log +; Log errors to syslog (Event Log on Windows). +;error_log = syslog + +; The syslog ident is a string which is prepended to every message logged +; to syslog. Only used when error_log is set to syslog. +;syslog.ident = php + +; The syslog facility is used to specify what type of program is logging +; the message. Only used when error_log is set to syslog. +;syslog.facility = user + +; Set this to disable filtering control characters (the default). +; Some loggers only accept NVT-ASCII, others accept anything that's not +; control characters. If your logger accepts everything, then no filtering +; is needed at all. +; Allowed values are: +; ascii (all printable ASCII characters and NL) +; no-ctrl (all characters except control characters) +; all (all characters) +; raw (like "all", but messages are not split at newlines) +; https://php.net/syslog.filter +;syslog.filter = ascii + +;windows.show_crt_warning +; Default value: 0 +; Development value: 0 +; Production value: 0 + +;;;;;;;;;;;;;;;;; +; Data Handling ; +;;;;;;;;;;;;;;;;; + +; The separator used in PHP generated URLs to separate arguments. +; PHP's default setting is "&". +; https://php.net/arg-separator.output +; Example: +;arg_separator.output = "&" + +; List of separator(s) used by PHP to parse input URLs into variables. +; PHP's default setting is "&". +; NOTE: Every character in this directive is considered as separator! +; https://php.net/arg-separator.input +; Example: +;arg_separator.input = ";&" + +; This directive determines which super global arrays are registered when PHP +; starts up. G,P,C,E & S are abbreviations for the following respective super +; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty +; paid for the registration of these arrays and because ENV is not as commonly +; used as the others, ENV is not recommended on productions servers. You +; can still get access to the environment variables through getenv() should you +; need to. +; Default Value: "EGPCS" +; Development Value: "GPCS" +; Production Value: "GPCS"; +; https://php.net/variables-order +variables_order = "GPCS" + +; This directive determines which super global data (G,P & C) should be +; registered into the super global array REQUEST. If so, it also determines +; the order in which that data is registered. The values for this directive +; are specified in the same manner as the variables_order directive, +; EXCEPT one. Leaving this value empty will cause PHP to use the value set +; in the variables_order directive. It does not mean it will leave the super +; globals array REQUEST empty. +; Default Value: None +; Development Value: "GP" +; Production Value: "GP" +; https://php.net/request-order +request_order = "GP" + +; This directive determines whether PHP registers $argv & $argc each time it +; runs. $argv contains an array of all the arguments passed to PHP when a script +; is invoked. $argc contains an integer representing the number of arguments +; that were passed when the script was invoked. These arrays are extremely +; useful when running scripts from the command line. When this directive is +; enabled, registering these variables consumes CPU cycles and memory each time +; a script is executed. For performance reasons, this feature should be disabled +; on production servers. +; Note: This directive is hardcoded to On for the CLI SAPI +; Default Value: On +; Development Value: Off +; Production Value: Off +; https://php.net/register-argc-argv +register_argc_argv = Off + +; When enabled, the ENV, REQUEST and SERVER variables are created when they're +; first used (Just In Time) instead of when the script starts. If these +; variables are not used within a script, having this directive on will result +; in a performance gain. The PHP directive register_argc_argv must be disabled +; for this directive to have any effect. +; https://php.net/auto-globals-jit +auto_globals_jit = On + +; Whether PHP will read the POST data. +; This option is enabled by default. +; Most likely, you won't want to disable this option globally. It causes $_POST +; and $_FILES to always be empty; the only way you will be able to read the +; POST data will be through the php://input stream wrapper. This can be useful +; to proxy requests or to process the POST data in a memory efficient fashion. +; https://php.net/enable-post-data-reading +;enable_post_data_reading = Off + +; Maximum size of POST data that PHP will accept. +; Its value may be 0 to disable the limit. It is ignored if POST data reading +; is disabled through enable_post_data_reading. +; https://php.net/post-max-size +post_max_size = 128M + +; Automatically add files before PHP document. +; https://php.net/auto-prepend-file +auto_prepend_file = + +; Automatically add files after PHP document. +; https://php.net/auto-append-file +auto_append_file = + +; By default, PHP will output a media type using the Content-Type header. To +; disable this, simply set it to be empty. +; +; PHP's built-in default media type is set to text/html. +; https://php.net/default-mimetype +default_mimetype = "text/html" + +; PHP's default character set is set to UTF-8. +; https://php.net/default-charset +default_charset = "UTF-8" + +; PHP internal character encoding is set to empty. +; If empty, default_charset is used. +; https://php.net/internal-encoding +;internal_encoding = + +; PHP input character encoding is set to empty. +; If empty, default_charset is used. +; https://php.net/input-encoding +;input_encoding = + +; PHP output character encoding is set to empty. +; If empty, default_charset is used. +; See also output_buffer. +; https://php.net/output-encoding +;output_encoding = + +;;;;;;;;;;;;;;;;;;;;;;;;; +; Paths and Directories ; +;;;;;;;;;;;;;;;;;;;;;;;;; + +; UNIX: "/path1:/path2" +;include_path = ".:/php/includes" +; +; Windows: "\path1;\path2" +;include_path = ".;c:\php\includes" +; +; PHP's default setting for include_path is ".;/path/to/php/pear" +; https://php.net/include-path + +; The root of the PHP pages, used only if nonempty. +; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root +; if you are running php as a CGI under any web server (other than IIS) +; see documentation for security issues. The alternate is to use the +; cgi.force_redirect configuration below +; https://php.net/doc-root +doc_root = + +; The directory under which PHP opens the script using /~username used only +; if nonempty. +; https://php.net/user-dir +user_dir = + +; Directory in which the loadable extensions (modules) reside. +; https://php.net/extension-dir +;extension_dir = "./" +; On windows: +;extension_dir = "ext" + +; Directory where the temporary files should be placed. +; Defaults to the system default (see sys_get_temp_dir) +;sys_temp_dir = "/tmp" + +; Whether or not to enable the dl() function. The dl() function does NOT work +; properly in multithreaded servers, such as IIS or Zeus, and is automatically +; disabled on them. +; https://php.net/enable-dl +enable_dl = Off + +; cgi.force_redirect is necessary to provide security running PHP as a CGI under +; most web servers. Left undefined, PHP turns this on by default. You can +; turn it off here AT YOUR OWN RISK +; **You CAN safely turn this off for IIS, in fact, you MUST.** +; https://php.net/cgi.force-redirect +;cgi.force_redirect = 1 + +; if cgi.nph is enabled it will force cgi to always sent Status: 200 with +; every request. PHP's default behavior is to disable this feature. +;cgi.nph = 1 + +; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape +; (iPlanet) web servers, you MAY need to set an environment variable name that PHP +; will look for to know it is OK to continue execution. Setting this variable MAY +; cause security issues, KNOW WHAT YOU ARE DOING FIRST. +; https://php.net/cgi.redirect-status-env +;cgi.redirect_status_env = + +; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's +; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok +; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting +; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting +; of zero causes PHP to behave as before. Default is 1. You should fix your scripts +; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. +; https://php.net/cgi.fix-pathinfo +;cgi.fix_pathinfo=1 + +; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside +; of the web tree and people will not be able to circumvent .htaccess security. +;cgi.discard_path=1 + +; FastCGI under IIS supports the ability to impersonate +; security tokens of the calling client. This allows IIS to define the +; security context that the request runs under. mod_fastcgi under Apache +; does not currently support this feature (03/17/2002) +; Set to 1 if running under IIS. Default is zero. +; https://php.net/fastcgi.impersonate +;fastcgi.impersonate = 1 + +; Disable logging through FastCGI connection. PHP's default behavior is to enable +; this feature. +;fastcgi.logging = 0 + +; cgi.rfc2616_headers configuration option tells PHP what type of headers to +; use when sending HTTP response code. If set to 0, PHP sends Status: header that +; is supported by Apache. When this option is set to 1, PHP will send +; RFC2616 compliant header. +; Default is zero. +; https://php.net/cgi.rfc2616-headers +;cgi.rfc2616_headers = 0 + +; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! +; (shebang) at the top of the running script. This line might be needed if the +; script support running both as stand-alone script and via PHP CGI<. PHP in CGI +; mode skips this line and ignores its content if this directive is turned on. +; https://php.net/cgi.check-shebang-line +;cgi.check_shebang_line=1 + +;;;;;;;;;;;;;;;; +; File Uploads ; +;;;;;;;;;;;;;;;; + +; Whether to allow HTTP file uploads. +; https://php.net/file-uploads +file_uploads = On + +; Temporary directory for HTTP uploaded files (will use system default if not +; specified). +; https://php.net/upload-tmp-dir +;upload_tmp_dir = + +; Maximum allowed size for uploaded files. +; https://php.net/upload-max-filesize +upload_max_filesize = 64M + +; Maximum number of files that can be uploaded via a single request +max_file_uploads = 20 + +;;;;;;;;;;;;;;;;;; +; Fopen wrappers ; +;;;;;;;;;;;;;;;;;; + +; Whether to allow the treatment of URLs (like http:// or ftp://) as files. +; https://php.net/allow-url-fopen +allow_url_fopen = On + +; Whether to allow include/require to open URLs (like https:// or ftp://) as files. +; https://php.net/allow-url-include +allow_url_include = Off + +; Define the anonymous ftp password (your email address). PHP's default setting +; for this is empty. +; https://php.net/from +;from="john@doe.com" + +; Define the User-Agent string. PHP's default setting for this is empty. +; https://php.net/user-agent +;user_agent="PHP" + +; Default timeout for socket based streams (seconds) +; https://php.net/default-socket-timeout +default_socket_timeout = 60 + +; If your scripts have to deal with files from Macintosh systems, +; or you are running on a Mac and need to deal with files from +; unix or win32 systems, setting this flag will cause PHP to +; automatically detect the EOL character in those files so that +; fgets() and file() will work regardless of the source of the file. +; https://php.net/auto-detect-line-endings +;auto_detect_line_endings = Off + +;;;;;;;;;;;;;;;;;;;;;; +; Dynamic Extensions ; +;;;;;;;;;;;;;;;;;;;;;; + +; If you wish to have an extension loaded automatically, use the following +; syntax: +; +; extension=modulename +; +; For example: +; +; extension=mysqli +; +; When the extension library to load is not located in the default extension +; directory, You may specify an absolute path to the library file: +; +; extension=/path/to/extension/mysqli.so +; +; Note : The syntax used in previous PHP versions ('extension=.so' and +; 'extension='php_.dll') is supported for legacy reasons and may be +; deprecated in a future PHP major version. So, when it is possible, please +; move to the new ('extension=) syntax. +; +; Notes for Windows environments : +; +; - Many DLL files are located in the ext/ +; extension folders as well as the separate PECL DLL download. +; Be sure to appropriately set the extension_dir directive. +; +;extension=bz2 + +; The ldap extension must be before curl if OpenSSL 1.0.2 and OpenLDAP is used +; otherwise it results in segfault when unloading after using SASL. +; See https://github.com/php/php-src/issues/8620 for more info. +;extension=ldap + +;extension=curl +;extension=ffi +;extension=ftp +;extension=fileinfo +;extension=gd +;extension=gettext +;extension=gmp +;extension=intl +;extension=imap +;extension=mbstring +;extension=exif ; Must be after mbstring as it depends on it +;extension=mysqli +;extension=oci8_12c ; Use with Oracle Database 12c Instant Client +;extension=oci8_19 ; Use with Oracle Database 19 Instant Client +;extension=odbc +;extension=openssl +;extension=pdo_firebird +;extension=pdo_mysql +;extension=pdo_oci +;extension=pdo_odbc +;extension=pdo_pgsql +;extension=pdo_sqlite +;extension=pgsql +;extension=shmop + +; The MIBS data available in the PHP distribution must be installed. +; See https://www.php.net/manual/en/snmp.installation.php +;extension=snmp + +;extension=soap +;extension=sockets +;extension=sodium +;extension=sqlite3 +;extension=tidy +;extension=xsl +;extension=zip + +;zend_extension=opcache + +;;;;;;;;;;;;;;;;;;; +; Module Settings ; +;;;;;;;;;;;;;;;;;;; + +[CLI Server] +; Whether the CLI web server uses ANSI color coding in its terminal output. +cli_server.color = On + +[Date] +; Defines the default timezone used by the date functions +; https://php.net/date.timezone +;date.timezone = + +; https://php.net/date.default-latitude +;date.default_latitude = 31.7667 + +; https://php.net/date.default-longitude +;date.default_longitude = 35.2333 + +; https://php.net/date.sunrise-zenith +;date.sunrise_zenith = 90.833333 + +; https://php.net/date.sunset-zenith +;date.sunset_zenith = 90.833333 + +[filter] +; https://php.net/filter.default +;filter.default = unsafe_raw + +; https://php.net/filter.default-flags +;filter.default_flags = + +[iconv] +; Use of this INI entry is deprecated, use global input_encoding instead. +; If empty, default_charset or input_encoding or iconv.input_encoding is used. +; The precedence is: default_charset < input_encoding < iconv.input_encoding +;iconv.input_encoding = + +; Use of this INI entry is deprecated, use global internal_encoding instead. +; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. +; The precedence is: default_charset < internal_encoding < iconv.internal_encoding +;iconv.internal_encoding = + +; Use of this INI entry is deprecated, use global output_encoding instead. +; If empty, default_charset or output_encoding or iconv.output_encoding is used. +; The precedence is: default_charset < output_encoding < iconv.output_encoding +; To use an output encoding conversion, iconv's output handler must be set +; otherwise output encoding conversion cannot be performed. +;iconv.output_encoding = + +[imap] +; rsh/ssh logins are disabled by default. Use this INI entry if you want to +; enable them. Note that the IMAP library does not filter mailbox names before +; passing them to rsh/ssh command, thus passing untrusted data to this function +; with rsh/ssh enabled is insecure. +;imap.enable_insecure_rsh=0 + +[intl] +;intl.default_locale = +; This directive allows you to produce PHP errors when some error +; happens within intl functions. The value is the level of the error produced. +; Default is 0, which does not produce any errors. +;intl.error_level = E_WARNING +;intl.use_exceptions = 0 + +[sqlite3] +; Directory pointing to SQLite3 extensions +; https://php.net/sqlite3.extension-dir +;sqlite3.extension_dir = + +; SQLite defensive mode flag (only available from SQLite 3.26+) +; When the defensive flag is enabled, language features that allow ordinary +; SQL to deliberately corrupt the database file are disabled. This forbids +; writing directly to the schema, shadow tables (eg. FTS data tables), or +; the sqlite_dbpage virtual table. +; https://www.sqlite.org/c3ref/c_dbconfig_defensive.html +; (for older SQLite versions, this flag has no use) +;sqlite3.defensive = 1 + +[Pcre] +; PCRE library backtracking limit. +; https://php.net/pcre.backtrack-limit +;pcre.backtrack_limit=100000 + +; PCRE library recursion limit. +; Please note that if you set this value to a high number you may consume all +; the available process stack and eventually crash PHP (due to reaching the +; stack size limit imposed by the Operating System). +; https://php.net/pcre.recursion-limit +;pcre.recursion_limit=100000 + +; Enables or disables JIT compilation of patterns. This requires the PCRE +; library to be compiled with JIT support. +;pcre.jit=1 + +[Pdo] +; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" +; https://php.net/pdo-odbc.connection-pooling +;pdo_odbc.connection_pooling=strict + +[Pdo_mysql] +; Default socket name for local MySQL connects. If empty, uses the built-in +; MySQL defaults. +pdo_mysql.default_socket= + +[Phar] +; https://php.net/phar.readonly +;phar.readonly = On + +; https://php.net/phar.require-hash +;phar.require_hash = On + +;phar.cache_list = + +[mail function] +; For Win32 only. +; https://php.net/smtp +SMTP = localhost +; https://php.net/smtp-port +smtp_port = 25 + +; For Win32 only. +; https://php.net/sendmail-from +;sendmail_from = me@example.com + +; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). +; https://php.net/sendmail-path +;sendmail_path = + +; Force the addition of the specified parameters to be passed as extra parameters +; to the sendmail binary. These parameters will always replace the value of +; the 5th parameter to mail(). +;mail.force_extra_parameters = + +; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename +mail.add_x_header = Off + +; Use mixed LF and CRLF line separators to keep compatibility with some +; RFC 2822 non conformant MTA. +mail.mixed_lf_and_crlf = Off + +; The path to a log file that will log all mail() calls. Log entries include +; the full path of the script, line number, To address and headers. +;mail.log = +; Log mail to syslog (Event Log on Windows). +;mail.log = syslog + +[ODBC] +; https://php.net/odbc.default-db +;odbc.default_db = Not yet implemented + +; https://php.net/odbc.default-user +;odbc.default_user = Not yet implemented + +; https://php.net/odbc.default-pw +;odbc.default_pw = Not yet implemented + +; Controls the ODBC cursor model. +; Default: SQL_CURSOR_STATIC (default). +;odbc.default_cursortype + +; Allow or prevent persistent links. +; https://php.net/odbc.allow-persistent +odbc.allow_persistent = On + +; Check that a connection is still valid before reuse. +; https://php.net/odbc.check-persistent +odbc.check_persistent = On + +; Maximum number of persistent links. -1 means no limit. +; https://php.net/odbc.max-persistent +odbc.max_persistent = -1 + +; Maximum number of links (persistent + non-persistent). -1 means no limit. +; https://php.net/odbc.max-links +odbc.max_links = -1 + +; Handling of LONG fields. Returns number of bytes to variables. 0 means +; passthru. +; https://php.net/odbc.defaultlrl +odbc.defaultlrl = 4096 + +; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. +; See the documentation on odbc_binmode and odbc_longreadlen for an explanation +; of odbc.defaultlrl and odbc.defaultbinmode +; https://php.net/odbc.defaultbinmode +odbc.defaultbinmode = 1 + +[MySQLi] + +; Maximum number of persistent links. -1 means no limit. +; https://php.net/mysqli.max-persistent +mysqli.max_persistent = -1 + +; Allow accessing, from PHP's perspective, local files with LOAD DATA statements +; https://php.net/mysqli.allow_local_infile +;mysqli.allow_local_infile = On + +; It allows the user to specify a folder where files that can be sent via LOAD DATA +; LOCAL can exist. It is ignored if mysqli.allow_local_infile is enabled. +;mysqli.local_infile_directory = + +; Allow or prevent persistent links. +; https://php.net/mysqli.allow-persistent +mysqli.allow_persistent = On + +; Maximum number of links. -1 means no limit. +; https://php.net/mysqli.max-links +mysqli.max_links = -1 + +; Default port number for mysqli_connect(). If unset, mysqli_connect() will use +; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the +; compile-time value defined MYSQL_PORT (in that order). Win32 will only look +; at MYSQL_PORT. +; https://php.net/mysqli.default-port +mysqli.default_port = 3306 + +; Default socket name for local MySQL connects. If empty, uses the built-in +; MySQL defaults. +; https://php.net/mysqli.default-socket +mysqli.default_socket = + +; Default host for mysqli_connect() (doesn't apply in safe mode). +; https://php.net/mysqli.default-host +mysqli.default_host = + +; Default user for mysqli_connect() (doesn't apply in safe mode). +; https://php.net/mysqli.default-user +mysqli.default_user = + +; Default password for mysqli_connect() (doesn't apply in safe mode). +; Note that this is generally a *bad* idea to store passwords in this file. +; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") +; and reveal this password! And of course, any users with read access to this +; file will be able to reveal the password as well. +; https://php.net/mysqli.default-pw +mysqli.default_pw = + +; If this option is enabled, closing a persistent connection will rollback +; any pending transactions of this connection, before it is put back +; into the persistent connection pool. +;mysqli.rollback_on_cached_plink = Off + +[mysqlnd] +; Enable / Disable collection of general statistics by mysqlnd which can be +; used to tune and monitor MySQL operations. +mysqlnd.collect_statistics = On + +; Enable / Disable collection of memory usage statistics by mysqlnd which can be +; used to tune and monitor MySQL operations. +mysqlnd.collect_memory_statistics = Off + +; Records communication from all extensions using mysqlnd to the specified log +; file. +; https://php.net/mysqlnd.debug +;mysqlnd.debug = + +; Defines which queries will be logged. +;mysqlnd.log_mask = 0 + +; Default size of the mysqlnd memory pool, which is used by result sets. +;mysqlnd.mempool_default_size = 16000 + +; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. +;mysqlnd.net_cmd_buffer_size = 2048 + +; Size of a pre-allocated buffer used for reading data sent by the server in +; bytes. +;mysqlnd.net_read_buffer_size = 32768 + +; Timeout for network requests in seconds. +;mysqlnd.net_read_timeout = 31536000 + +; SHA-256 Authentication Plugin related. File with the MySQL server public RSA +; key. +;mysqlnd.sha256_server_public_key = + +[OCI8] + +; Connection: Enables privileged connections using external +; credentials (OCI_SYSOPER, OCI_SYSDBA) +; https://php.net/oci8.privileged-connect +;oci8.privileged_connect = Off + +; Connection: The maximum number of persistent OCI8 connections per +; process. Using -1 means no limit. +; https://php.net/oci8.max-persistent +;oci8.max_persistent = -1 + +; Connection: The maximum number of seconds a process is allowed to +; maintain an idle persistent connection. Using -1 means idle +; persistent connections will be maintained forever. +; https://php.net/oci8.persistent-timeout +;oci8.persistent_timeout = -1 + +; Connection: The number of seconds that must pass before issuing a +; ping during oci_pconnect() to check the connection validity. When +; set to 0, each oci_pconnect() will cause a ping. Using -1 disables +; pings completely. +; https://php.net/oci8.ping-interval +;oci8.ping_interval = 60 + +; Connection: Set this to a user chosen connection class to be used +; for all pooled server requests with Oracle Database Resident +; Connection Pooling (DRCP). To use DRCP, this value should be set to +; the same string for all web servers running the same application, +; the database pool must be configured, and the connection string must +; specify to use a pooled server. +;oci8.connection_class = + +; High Availability: Using On lets PHP receive Fast Application +; Notification (FAN) events generated when a database node fails. The +; database must also be configured to post FAN events. +;oci8.events = Off + +; Tuning: This option enables statement caching, and specifies how +; many statements to cache. Using 0 disables statement caching. +; https://php.net/oci8.statement-cache-size +;oci8.statement_cache_size = 20 + +; Tuning: Enables row prefetching and sets the default number of +; rows that will be fetched automatically after statement execution. +; https://php.net/oci8.default-prefetch +;oci8.default_prefetch = 100 + +; Tuning: Sets the amount of LOB data that is internally returned from +; Oracle Database when an Oracle LOB locator is initially retrieved as +; part of a query. Setting this can improve performance by reducing +; round-trips. +; https://php.net/oci8.prefetch-lob-size +; oci8.prefetch_lob_size = 0 + +; Compatibility. Using On means oci_close() will not close +; oci_connect() and oci_new_connect() connections. +; https://php.net/oci8.old-oci-close-semantics +;oci8.old_oci_close_semantics = Off + +[PostgreSQL] +; Allow or prevent persistent links. +; https://php.net/pgsql.allow-persistent +pgsql.allow_persistent = On + +; Detect broken persistent links always with pg_pconnect(). +; Auto reset feature requires a little overheads. +; https://php.net/pgsql.auto-reset-persistent +pgsql.auto_reset_persistent = Off + +; Maximum number of persistent links. -1 means no limit. +; https://php.net/pgsql.max-persistent +pgsql.max_persistent = -1 + +; Maximum number of links (persistent+non persistent). -1 means no limit. +; https://php.net/pgsql.max-links +pgsql.max_links = -1 + +; Ignore PostgreSQL backends Notice message or not. +; Notice message logging require a little overheads. +; https://php.net/pgsql.ignore-notice +pgsql.ignore_notice = 0 + +; Log PostgreSQL backends Notice message or not. +; Unless pgsql.ignore_notice=0, module cannot log notice message. +; https://php.net/pgsql.log-notice +pgsql.log_notice = 0 + +[bcmath] +; Number of decimal digits for all bcmath functions. +; https://php.net/bcmath.scale +bcmath.scale = 0 + +[browscap] +; https://php.net/browscap +;browscap = extra/browscap.ini + +[Session] +; Handler used to store/retrieve data. +; https://php.net/session.save-handler +session.save_handler = files + +; Argument passed to save_handler. In the case of files, this is the path +; where data files are stored. Note: Windows users have to change this +; variable in order to use PHP's session functions. +; +; The path can be defined as: +; +; session.save_path = "N;/path" +; +; where N is an integer. Instead of storing all the session files in +; /path, what this will do is use subdirectories N-levels deep, and +; store the session data in those directories. This is useful if +; your OS has problems with many files in one directory, and is +; a more efficient layout for servers that handle many sessions. +; +; NOTE 1: PHP will not create this directory structure automatically. +; You can use the script in the ext/session dir for that purpose. +; NOTE 2: See the section on garbage collection below if you choose to +; use subdirectories for session storage +; +; The file storage module creates files using mode 600 by default. +; You can change that by using +; +; session.save_path = "N;MODE;/path" +; +; where MODE is the octal representation of the mode. Note that this +; does not overwrite the process's umask. +; https://php.net/session.save-path +;session.save_path = "/tmp" + +; Whether to use strict session mode. +; Strict session mode does not accept an uninitialized session ID, and +; regenerates the session ID if the browser sends an uninitialized session ID. +; Strict mode protects applications from session fixation via a session adoption +; vulnerability. It is disabled by default for maximum compatibility, but +; enabling it is encouraged. +; https://wiki.php.net/rfc/strict_sessions +session.use_strict_mode = 0 + +; Whether to use cookies. +; https://php.net/session.use-cookies +session.use_cookies = 1 + +; https://php.net/session.cookie-secure +;session.cookie_secure = + +; This option forces PHP to fetch and use a cookie for storing and maintaining +; the session id. We encourage this operation as it's very helpful in combating +; session hijacking when not specifying and managing your own session id. It is +; not the be-all and end-all of session hijacking defense, but it's a good start. +; https://php.net/session.use-only-cookies +session.use_only_cookies = 1 + +; Name of the session (used as cookie name). +; https://php.net/session.name +session.name = PHPSESSID + +; Initialize session on request startup. +; https://php.net/session.auto-start +session.auto_start = 0 + +; Lifetime in seconds of cookie or, if 0, until browser is restarted. +; https://php.net/session.cookie-lifetime +session.cookie_lifetime = 0 + +; The path for which the cookie is valid. +; https://php.net/session.cookie-path +session.cookie_path = / + +; The domain for which the cookie is valid. +; https://php.net/session.cookie-domain +session.cookie_domain = + +; Whether or not to add the httpOnly flag to the cookie, which makes it +; inaccessible to browser scripting languages such as JavaScript. +; https://php.net/session.cookie-httponly +session.cookie_httponly = + +; Add SameSite attribute to cookie to help mitigate Cross-Site Request Forgery (CSRF/XSRF) +; Current valid values are "Strict", "Lax" or "None". When using "None", +; make sure to include the quotes, as `none` is interpreted like `false` in ini files. +; https://tools.ietf.org/html/draft-west-first-party-cookies-07 +session.cookie_samesite = + +; Handler used to serialize data. php is the standard serializer of PHP. +; https://php.net/session.serialize-handler +session.serialize_handler = php + +; Defines the probability that the 'garbage collection' process is started on every +; session initialization. The probability is calculated by using gc_probability/gc_divisor, +; e.g. 1/100 means there is a 1% chance that the GC process starts on each request. +; Default Value: 1 +; Development Value: 1 +; Production Value: 1 +; https://php.net/session.gc-probability +session.gc_probability = 1 + +; Defines the probability that the 'garbage collection' process is started on every +; session initialization. The probability is calculated by using gc_probability/gc_divisor, +; e.g. 1/100 means there is a 1% chance that the GC process starts on each request. +; For high volume production servers, using a value of 1000 is a more efficient approach. +; Default Value: 100 +; Development Value: 1000 +; Production Value: 1000 +; https://php.net/session.gc-divisor +session.gc_divisor = 1000 + +; After this number of seconds, stored data will be seen as 'garbage' and +; cleaned up by the garbage collection process. +; https://php.net/session.gc-maxlifetime +session.gc_maxlifetime = 1440 + +; NOTE: If you are using the subdirectory option for storing session files +; (see session.save_path above), then garbage collection does *not* +; happen automatically. You will need to do your own garbage +; collection through a shell script, cron entry, or some other method. +; For example, the following script is the equivalent of setting +; session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): +; find /path/to/sessions -cmin +24 -type f | xargs rm + +; Check HTTP Referer to invalidate externally stored URLs containing ids. +; HTTP_REFERER has to contain this substring for the session to be +; considered as valid. +; https://php.net/session.referer-check +session.referer_check = + +; Set to {nocache,private,public,} to determine HTTP caching aspects +; or leave this empty to avoid sending anti-caching headers. +; https://php.net/session.cache-limiter +session.cache_limiter = nocache + +; Document expires after n minutes. +; https://php.net/session.cache-expire +session.cache_expire = 180 + +; trans sid support is disabled by default. +; Use of trans sid may risk your users' security. +; Use this option with caution. +; - User may send URL contains active session ID +; to other person via. email/irc/etc. +; - URL that contains active session ID may be stored +; in publicly accessible computer. +; - User may access your site with the same session ID +; always using URL stored in browser's history or bookmarks. +; https://php.net/session.use-trans-sid +session.use_trans_sid = 0 + +; Set session ID character length. This value could be between 22 to 256. +; Shorter length than default is supported only for compatibility reason. +; Users should use 32 or more chars. +; https://php.net/session.sid-length +; Default Value: 32 +; Development Value: 26 +; Production Value: 26 +session.sid_length = 26 + +; The URL rewriter will look for URLs in a defined set of HTML tags. +;
is special; if you include them here, the rewriter will +; add a hidden field with the info which is otherwise appended +; to URLs. tag's action attribute URL will not be modified +; unless it is specified. +; Note that all valid entries require a "=", even if no value follows. +; Default Value: "a=href,area=href,frame=src,form=" +; Development Value: "a=href,area=href,frame=src,form=" +; Production Value: "a=href,area=href,frame=src,form=" +; https://php.net/url-rewriter.tags +session.trans_sid_tags = "a=href,area=href,frame=src,form=" + +; URL rewriter does not rewrite absolute URLs by default. +; To enable rewrites for absolute paths, target hosts must be specified +; at RUNTIME. i.e. use ini_set() +; tags is special. PHP will check action attribute's URL regardless +; of session.trans_sid_tags setting. +; If no host is defined, HTTP_HOST will be used for allowed host. +; Example value: php.net,www.php.net,wiki.php.net +; Use "," for multiple hosts. No spaces are allowed. +; Default Value: "" +; Development Value: "" +; Production Value: "" +;session.trans_sid_hosts="" + +; Define how many bits are stored in each character when converting +; the binary hash data to something readable. +; Possible values: +; 4 (4 bits: 0-9, a-f) +; 5 (5 bits: 0-9, a-v) +; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") +; Default Value: 4 +; Development Value: 5 +; Production Value: 5 +; https://php.net/session.hash-bits-per-character +session.sid_bits_per_character = 5 + +; Enable upload progress tracking in $_SESSION +; Default Value: On +; Development Value: On +; Production Value: On +; https://php.net/session.upload-progress.enabled +;session.upload_progress.enabled = On + +; Cleanup the progress information as soon as all POST data has been read +; (i.e. upload completed). +; Default Value: On +; Development Value: On +; Production Value: On +; https://php.net/session.upload-progress.cleanup +;session.upload_progress.cleanup = On + +; A prefix used for the upload progress key in $_SESSION +; Default Value: "upload_progress_" +; Development Value: "upload_progress_" +; Production Value: "upload_progress_" +; https://php.net/session.upload-progress.prefix +;session.upload_progress.prefix = "upload_progress_" + +; The index name (concatenated with the prefix) in $_SESSION +; containing the upload progress information +; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" +; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" +; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" +; https://php.net/session.upload-progress.name +;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" + +; How frequently the upload progress should be updated. +; Given either in percentages (per-file), or in bytes +; Default Value: "1%" +; Development Value: "1%" +; Production Value: "1%" +; https://php.net/session.upload-progress.freq +;session.upload_progress.freq = "1%" + +; The minimum delay between updates, in seconds +; Default Value: 1 +; Development Value: 1 +; Production Value: 1 +; https://php.net/session.upload-progress.min-freq +;session.upload_progress.min_freq = "1" + +; Only write session data when session data is changed. Enabled by default. +; https://php.net/session.lazy-write +;session.lazy_write = On + +[Assertion] +; Switch whether to compile assertions at all (to have no overhead at run-time) +; -1: Do not compile at all +; 0: Jump over assertion at run-time +; 1: Execute assertions +; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) +; Default Value: 1 +; Development Value: 1 +; Production Value: -1 +; https://php.net/zend.assertions +zend.assertions = -1 + +; Assert(expr); active by default. +; https://php.net/assert.active +;assert.active = On + +; Throw an AssertionError on failed assertions +; https://php.net/assert.exception +;assert.exception = On + +; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) +; https://php.net/assert.warning +;assert.warning = On + +; Don't bail out by default. +; https://php.net/assert.bail +;assert.bail = Off + +; User-function to be called if an assertion fails. +; https://php.net/assert.callback +;assert.callback = 0 + +[COM] +; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs +; https://php.net/com.typelib-file +;com.typelib_file = + +; allow Distributed-COM calls +; https://php.net/com.allow-dcom +;com.allow_dcom = true + +; autoregister constants of a component's typelib on com_load() +; https://php.net/com.autoregister-typelib +;com.autoregister_typelib = true + +; register constants casesensitive +; https://php.net/com.autoregister-casesensitive +;com.autoregister_casesensitive = false + +; show warnings on duplicate constant registrations +; https://php.net/com.autoregister-verbose +;com.autoregister_verbose = true + +; The default character set code-page to use when passing strings to and from COM objects. +; Default: system ANSI code page +;com.code_page= + +; The version of the .NET framework to use. The value of the setting are the first three parts +; of the framework's version number, separated by dots, and prefixed with "v", e.g. "v4.0.30319". +;com.dotnet_version= + +[mbstring] +; language for internal character representation. +; This affects mb_send_mail() and mbstring.detect_order. +; https://php.net/mbstring.language +;mbstring.language = Japanese + +; Use of this INI entry is deprecated, use global internal_encoding instead. +; internal/script encoding. +; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) +; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. +; The precedence is: default_charset < internal_encoding < iconv.internal_encoding +;mbstring.internal_encoding = + +; Use of this INI entry is deprecated, use global input_encoding instead. +; http input encoding. +; mbstring.encoding_translation = On is needed to use this setting. +; If empty, default_charset or input_encoding or mbstring.input is used. +; The precedence is: default_charset < input_encoding < mbstring.http_input +; https://php.net/mbstring.http-input +;mbstring.http_input = + +; Use of this INI entry is deprecated, use global output_encoding instead. +; http output encoding. +; mb_output_handler must be registered as output buffer to function. +; If empty, default_charset or output_encoding or mbstring.http_output is used. +; The precedence is: default_charset < output_encoding < mbstring.http_output +; To use an output encoding conversion, mbstring's output handler must be set +; otherwise output encoding conversion cannot be performed. +; https://php.net/mbstring.http-output +;mbstring.http_output = + +; enable automatic encoding translation according to +; mbstring.internal_encoding setting. Input chars are +; converted to internal encoding by setting this to On. +; Note: Do _not_ use automatic encoding translation for +; portable libs/applications. +; https://php.net/mbstring.encoding-translation +;mbstring.encoding_translation = Off + +; automatic encoding detection order. +; "auto" detect order is changed according to mbstring.language +; https://php.net/mbstring.detect-order +;mbstring.detect_order = auto + +; substitute_character used when character cannot be converted +; one from another +; https://php.net/mbstring.substitute-character +;mbstring.substitute_character = none + +; Enable strict encoding detection. +;mbstring.strict_detection = Off + +; This directive specifies the regex pattern of content types for which mb_output_handler() +; is activated. +; Default: mbstring.http_output_conv_mimetypes=^(text/|application/xhtml\+xml) +;mbstring.http_output_conv_mimetypes= + +; This directive specifies maximum stack depth for mbstring regular expressions. It is similar +; to the pcre.recursion_limit for PCRE. +;mbstring.regex_stack_limit=100000 + +; This directive specifies maximum retry count for mbstring regular expressions. It is similar +; to the pcre.backtrack_limit for PCRE. +;mbstring.regex_retry_limit=1000000 + +[gd] +; Tell the jpeg decode to ignore warnings and try to create +; a gd image. The warning will then be displayed as notices +; disabled by default +; https://php.net/gd.jpeg-ignore-warning +;gd.jpeg_ignore_warning = 1 + +[exif] +; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. +; With mbstring support this will automatically be converted into the encoding +; given by corresponding encode setting. When empty mbstring.internal_encoding +; is used. For the decode settings you can distinguish between motorola and +; intel byte order. A decode setting cannot be empty. +; https://php.net/exif.encode-unicode +;exif.encode_unicode = ISO-8859-15 + +; https://php.net/exif.decode-unicode-motorola +;exif.decode_unicode_motorola = UCS-2BE + +; https://php.net/exif.decode-unicode-intel +;exif.decode_unicode_intel = UCS-2LE + +; https://php.net/exif.encode-jis +;exif.encode_jis = + +; https://php.net/exif.decode-jis-motorola +;exif.decode_jis_motorola = JIS + +; https://php.net/exif.decode-jis-intel +;exif.decode_jis_intel = JIS + +[Tidy] +; The path to a default tidy configuration file to use when using tidy +; https://php.net/tidy.default-config +;tidy.default_config = /usr/local/lib/php/default.tcfg + +; Should tidy clean and repair output automatically? +; WARNING: Do not use this option if you are generating non-html content +; such as dynamic images +; https://php.net/tidy.clean-output +tidy.clean_output = Off + +[soap] +; Enables or disables WSDL caching feature. +; https://php.net/soap.wsdl-cache-enabled +soap.wsdl_cache_enabled=1 + +; Sets the directory name where SOAP extension will put cache files. +; https://php.net/soap.wsdl-cache-dir +soap.wsdl_cache_dir="/tmp" + +; (time to live) Sets the number of second while cached file will be used +; instead of original one. +; https://php.net/soap.wsdl-cache-ttl +soap.wsdl_cache_ttl=86400 + +; Sets the size of the cache limit. (Max. number of WSDL files to cache) +soap.wsdl_cache_limit = 5 + +[sysvshm] +; A default size of the shared memory segment +;sysvshm.init_mem = 10000 + +[ldap] +; Sets the maximum number of open links or -1 for unlimited. +ldap.max_links = -1 + +[dba] +;dba.default_handler= + +[opcache] +; Determines if Zend OPCache is enabled +;opcache.enable=1 + +; Determines if Zend OPCache is enabled for the CLI version of PHP +;opcache.enable_cli=0 + +; The OPcache shared memory storage size. +;opcache.memory_consumption=128 + +; The amount of memory for interned strings in Mbytes. +;opcache.interned_strings_buffer=8 + +; The maximum number of keys (scripts) in the OPcache hash table. +; Only numbers between 200 and 1000000 are allowed. +;opcache.max_accelerated_files=10000 + +; The maximum percentage of "wasted" memory until a restart is scheduled. +;opcache.max_wasted_percentage=5 + +; When this directive is enabled, the OPcache appends the current working +; directory to the script key, thus eliminating possible collisions between +; files with the same name (basename). Disabling the directive improves +; performance, but may break existing applications. +;opcache.use_cwd=1 + +; When disabled, you must reset the OPcache manually or restart the +; webserver for changes to the filesystem to take effect. +;opcache.validate_timestamps=1 + +; How often (in seconds) to check file timestamps for changes to the shared +; memory storage allocation. ("1" means validate once per second, but only +; once per request. "0" means always validate) +;opcache.revalidate_freq=2 + +; Enables or disables file search in include_path optimization +;opcache.revalidate_path=0 + +; If disabled, all PHPDoc comments are dropped from the code to reduce the +; size of the optimized code. +;opcache.save_comments=1 + +; If enabled, compilation warnings (including notices and deprecations) will +; be recorded and replayed each time a file is included. Otherwise, compilation +; warnings will only be emitted when the file is first cached. +;opcache.record_warnings=0 + +; Allow file existence override (file_exists, etc.) performance feature. +;opcache.enable_file_override=0 + +; A bitmask, where each bit enables or disables the appropriate OPcache +; passes +;opcache.optimization_level=0x7FFFBFFF + +;opcache.dups_fix=0 + +; The location of the OPcache blacklist file (wildcards allowed). +; Each OPcache blacklist file is a text file that holds the names of files +; that should not be accelerated. The file format is to add each filename +; to a new line. The filename may be a full path or just a file prefix +; (i.e., /var/www/x blacklists all the files and directories in /var/www +; that start with 'x'). Line starting with a ; are ignored (comments). +;opcache.blacklist_filename= + +; Allows exclusion of large files from being cached. By default all files +; are cached. +;opcache.max_file_size=0 + +; Check the cache checksum each N requests. +; The default value of "0" means that the checks are disabled. +;opcache.consistency_checks=0 + +; How long to wait (in seconds) for a scheduled restart to begin if the cache +; is not being accessed. +;opcache.force_restart_timeout=180 + +; OPcache error_log file name. Empty string assumes "stderr". +;opcache.error_log= + +; All OPcache errors go to the Web server log. +; By default, only fatal errors (level 0) or errors (level 1) are logged. +; You can also enable warnings (level 2), info messages (level 3) or +; debug messages (level 4). +;opcache.log_verbosity_level=1 + +; Preferred Shared Memory back-end. Leave empty and let the system decide. +;opcache.preferred_memory_model= + +; Protect the shared memory from unexpected writing during script execution. +; Useful for internal debugging only. +;opcache.protect_memory=0 + +; Allows calling OPcache API functions only from PHP scripts which path is +; started from specified string. The default "" means no restriction +;opcache.restrict_api= + +; Mapping base of shared memory segments (for Windows only). All the PHP +; processes have to map shared memory into the same address space. This +; directive allows to manually fix the "Unable to reattach to base address" +; errors. +;opcache.mmap_base= + +; Facilitates multiple OPcache instances per user (for Windows only). All PHP +; processes with the same cache ID and user share an OPcache instance. +;opcache.cache_id= + +; Enables and sets the second level cache directory. +; It should improve performance when SHM memory is full, at server restart or +; SHM reset. The default "" disables file based caching. +;opcache.file_cache= + +; Enables or disables opcode caching in shared memory. +;opcache.file_cache_only=0 + +; Enables or disables checksum validation when script loaded from file cache. +;opcache.file_cache_consistency_checks=1 + +; Implies opcache.file_cache_only=1 for a certain process that failed to +; reattach to the shared memory (for Windows only). Explicitly enabled file +; cache is required. +;opcache.file_cache_fallback=1 + +; Enables or disables copying of PHP code (text segment) into HUGE PAGES. +; Under certain circumstances (if only a single global PHP process is +; started from which all others fork), this can increase performance +; by a tiny amount because TLB misses are reduced. On the other hand, this +; delays PHP startup, increases memory usage and degrades performance +; under memory pressure - use with care. +; Requires appropriate OS configuration. +;opcache.huge_code_pages=0 + +; Validate cached file permissions. +;opcache.validate_permission=0 + +; Prevent name collisions in chroot'ed environment. +;opcache.validate_root=0 + +; If specified, it produces opcode dumps for debugging different stages of +; optimizations. +;opcache.opt_debug_level=0 + +; Specifies a PHP script that is going to be compiled and executed at server +; start-up. +; https://php.net/opcache.preload +;opcache.preload= + +; Preloading code as root is not allowed for security reasons. This directive +; facilitates to let the preloading to be run as another user. +; https://php.net/opcache.preload_user +;opcache.preload_user= + +; Prevents caching files that are less than this number of seconds old. It +; protects from caching of incompletely updated files. In case all file updates +; on your site are atomic, you may increase performance by setting it to "0". +;opcache.file_update_protection=2 + +; Absolute path used to store shared lockfiles (for *nix only). +;opcache.lockfile_path=/tmp + +[curl] +; A default value for the CURLOPT_CAINFO option. This is required to be an +; absolute path. +;curl.cainfo = + +[openssl] +; The location of a Certificate Authority (CA) file on the local filesystem +; to use when verifying the identity of SSL/TLS peers. Most users should +; not specify a value for this directive as PHP will attempt to use the +; OS-managed cert stores in its absence. If specified, this value may still +; be overridden on a per-stream basis via the "cafile" SSL stream context +; option. +;openssl.cafile= + +; If openssl.cafile is not specified or if the CA file is not found, the +; directory pointed to by openssl.capath is searched for a suitable +; certificate. This value must be a correctly hashed certificate directory. +; Most users should not specify a value for this directive as PHP will +; attempt to use the OS-managed cert stores in its absence. If specified, +; this value may still be overridden on a per-stream basis via the "capath" +; SSL stream context option. +;openssl.capath= + +[ffi] +; FFI API restriction. Possible values: +; "preload" - enabled in CLI scripts and preloaded files (default) +; "false" - always disabled +; "true" - always enabled +;ffi.enable=preload + +; List of headers files to preload, wildcard patterns allowed. +;ffi.preload= From 314abe4cc6c4240fbe331318911f0aa16696f144 Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Sun, 28 Jul 2024 19:54:07 +0200 Subject: [PATCH 31/50] Add node and exif & update entrypoint --- .dev/php/Dockerfile | 10 ++++++++-- .dev/php/entrypoint.sh | 27 ++++++++++++++++++++++++--- 2 files changed, 32 insertions(+), 5 deletions(-) diff --git a/.dev/php/Dockerfile b/.dev/php/Dockerfile index fa2ea445..5b945b76 100644 --- a/.dev/php/Dockerfile +++ b/.dev/php/Dockerfile @@ -14,8 +14,10 @@ RUN addgroup --gid ${GID} --system invoiceshelf && \ sed -i "s/user = www-data/user = invoiceshelf/g" /usr/local/etc/php-fpm.d/www.conf && \ sed -i "s/group = www-data/group = invoiceshelf/g" /usr/local/etc/php-fpm.d/www.conf -# Install Composer -RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer +# Install composer & npm +RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer && \ + curl -sL https://deb.nodesource.com/setup_20.x | bash - && \ + apt install -y nodejs # install dependencies RUN apt update && apt install -y \ @@ -43,6 +45,7 @@ RUN apt update && apt install -y \ && docker-php-ext-install pdo_pgsql \ && docker-php-ext-install zip \ && docker-php-ext-install xml \ + && docker-php-ext-install exif \ && docker-php-source delete # Clear cache @@ -55,6 +58,9 @@ WORKDIR /home/invoiceshelf/app COPY /php/entrypoint.sh / # Entrypoint +USER invoiceshelf ENTRYPOINT ["/entrypoint.sh"] +# Launch php-fpm +USER root CMD ["php-fpm"] diff --git a/.dev/php/entrypoint.sh b/.dev/php/entrypoint.sh index 23e59fc1..f5974c1e 100755 --- a/.dev/php/entrypoint.sh +++ b/.dev/php/entrypoint.sh @@ -4,9 +4,30 @@ echo "############################################" echo "### InvoiceShelf Development Environment ###" echo "############################################" -chown -R ${UID}:${GID} /home/invoiceshelf/app -chmod +x /home/invoiceshelf/app/artisan +cd /home/invoiceshelf/app -cd /home/invoiceshelf/app && php artisan storage:link +chmod 775 storage/framework +chmod 775 storage/logs +chmod 775 bootstrap/cache + +chown -R ${UID}:${GID} /home/invoiceshelf/app + +chmod +x artisan + +if [ ! -d vendor ]; then + composer install +fi + +if [ ! -f .env ]; then + cp .env.example .env + php artisan key:generate --force +fi + +if [ ! -d node_modules ]; then + npm install + npm run build +fi + +php artisan storage:link exec $@ From c4ade42a8fd20aa24f85ab3a867d7fbe8086e7cf Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Sun, 28 Jul 2024 21:01:54 +0200 Subject: [PATCH 32/50] Update dev readme --- .dev/README.md | 66 +++++++++++++++++++++++++++++++++++++------------- 1 file changed, 49 insertions(+), 17 deletions(-) diff --git a/.dev/README.md b/.dev/README.md index 0a85e8fb..c025a3d8 100644 --- a/.dev/README.md +++ b/.dev/README.md @@ -24,15 +24,15 @@ The hosts file on Windows is located at `C:\Windows\system32\drivers\etc\hosts`. You need to launch Notepad as administrator, open the file through **File > Open**, add the line from above and save the file. -#### 1.2. Linux and MacOS +#### 1.2. Linux/MacOS The hosts file on Linux and Mac is located at `/etc/hosts`. You need to open the file using your favorite editor as sudo/root, add the line from above and save the file. -### 2. FileSystem configuration (Linux/MacOS Only) +### 2. FileSystem configuration (Linux) -If you are using Linux or MacOS operating system, you need to make sure that **USERID** and **GRPID** environment variables are always matching your current session user. Those two variables are required to set up the filesystem permissions correctly on Linux and Mac. +If you are using **Linux**, you need to make sure that **USRID** and **GRPID** environment variables are set and matching your current session user ids. Those two variables are required to set up the filesystem permissions correctly on Linux. You can run it one time, every time before starting as follows: @@ -49,7 +49,7 @@ this will append the `export` line to your rc file and run it on each terminal s ### 3. Clone the project -Clone the InvoiceShelf project directly from origin or swap the git url with your forked url: +Clone the InvoiceShelf project directly from InvoiceShelf git or your forked repository: ```bash git clone git@github.com:InvoiceShelf/InvoiceShelf.git @@ -57,14 +57,22 @@ git clone git@github.com:InvoiceShelf/InvoiceShelf.git ## Development Workflow +We bundled separate docker-compose.yml file for each database: MySQL, PostgresSQL and SQLite, you can use any of those to spin up your development environment. + +| Database | Compose File | +|---------|---------------------------| +| SQLite3 | docker-compose.sqlite.yml | +| MariaDB | docker-compose.mysql.yml | +| PostgresSQL | dpcler-compose.pgsql.yml | + ### 1. Spinning Up To **spin up** the environment, run docker compose as follows: -**Important**: If you are on Linux/MacOS and didn't added the `export` line to your .zshrc/.bashrc file, you need to repeat `step 2` before spining up, otherwise you will face permissions issue. +**Important**: If you are on **Linux** and didn't add the `export` line to your .zshrc/.bashrc file, you need to repeat `step 2` before spinning up, otherwise you will face permissions issues. ``` -docker compose -f .dev/docker-compose.yml up +docker compose -f .dev/docker-compose.mysql.yml up --build ``` ### 2. Spinning Down @@ -72,12 +80,12 @@ docker compose -f .dev/docker-compose.yml up To **spin down** the environment, run docker compose as follows: ``` -docker compose -f .dev/docker-compose.yml down +docker compose -f .dev/docker-compose.mysql.yml down ``` -### 2. Working with binaries +### 3. Working with binaries -To correctly run `composer`, `artisan`, `pint`, `pest` or other binaries within this project, you must ssh into the container as follows: +To correctly run `composer`, `npm`, `artisan`, `pint`, `pest` or other binaries within this project, you must ssh into the container as follows: ``` docker exec -it --user invoiceshelf invoiceshelf-dev-php /bin/bash @@ -93,6 +101,8 @@ This dockerized environment uses PHP-FPM and NGINX together to serve the website Both NGINX and PHP-FPM are configured with optimal settings for development. Please don't use this in production. +**URL**: http://invoiceshelf.com/ + ### 2. Databases This dockerized environment comes with support for all three databases that InvoiceShelf suppots: MySQL, PostgreSQL and SQLite. @@ -115,6 +125,8 @@ Adminer is UI tool for viewing the database contents and executing queries. It supports MySQL, PostgreSQL, SQLite. +**URL**: http://invoiceshelf.com:8080 + #### MySQL/PostgresSQL To log into the MySQL or PostgresSQL, use the database information specified in the above section (2. Databases) @@ -123,14 +135,34 @@ To log into the MySQL or PostgresSQL, use the database information specified in To log into the SQLite, use the following credentials: -| KEY | VALUE | -|---|---| -| **USER** | admin | -| **PASS** | admin | -| **NAME** | /database.sqlite | - - - +| KEY | VALUE | +|--------------|---------------------------| +| **USERNAME** | admin | +| **PASSWORD** | admin | +| **DATABASE** | /database/database.sqlite | + + +### 4. Mailpit (fake mail) + +To utilize Mailpit, use the following credentials: + +| KEY | VALUE | +|---------------------|-------------| +| **MAIL DRIVER** | smtp | +| **MAIL HOST** | mail | +| **MAIL PORT** | 1025 | +| **MAIL ENCRYPTION** | none | +| **MAIL USER** | leave empty | +| **MAIL PASS** | leave empty | +| **FROM MAIL ADDR** | your choice | +| **FROM MAIL NAME** | your choice | + + +**URL**: http://invoiceshelf.com:8025 + +--- + +If you have any questions, feel free to open issue. From 17082ea8c8d5825b024387c383a8155d8c341e33 Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Sun, 28 Jul 2024 21:02:49 +0200 Subject: [PATCH 33/50] Improvements to SQLite dev setup --- .dev/{docker-compose.yml => docker-compose.sqlite.yml} | 4 ++-- .dev/php/entrypoint.sh | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) rename .dev/{docker-compose.yml => docker-compose.sqlite.yml} (93%) diff --git a/.dev/docker-compose.yml b/.dev/docker-compose.sqlite.yml similarity index 93% rename from .dev/docker-compose.yml rename to .dev/docker-compose.sqlite.yml index 913a9a55..568a0a11 100644 --- a/.dev/docker-compose.yml +++ b/.dev/docker-compose.sqlite.yml @@ -32,9 +32,9 @@ services: ADMINER_PLUGINS: tables-filter ADMINER_DESIGN: konya volumes: - - ../database/database.sqlite:/database.sqlite + - ../database:/database ports: - - '54320:8080' + - '8080:8080' networks: - invoiceshelf-dev diff --git a/.dev/php/entrypoint.sh b/.dev/php/entrypoint.sh index f5974c1e..90623f0a 100755 --- a/.dev/php/entrypoint.sh +++ b/.dev/php/entrypoint.sh @@ -18,6 +18,10 @@ if [ ! -d vendor ]; then composer install fi +if [ ! -f database/database.sqlite ]; then + cp database/stubs/sqlite.empty.db database/database.sqlite +fi + if [ ! -f .env ]; then cp .env.example .env php artisan key:generate --force From 25fb260cd7d9ca4997e9a37140c9dbb4e0d12105 Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Sun, 28 Jul 2024 21:07:48 +0200 Subject: [PATCH 34/50] Update local links --- .dev/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.dev/README.md b/.dev/README.md index c025a3d8..97d452a2 100644 --- a/.dev/README.md +++ b/.dev/README.md @@ -101,7 +101,7 @@ This dockerized environment uses PHP-FPM and NGINX together to serve the website Both NGINX and PHP-FPM are configured with optimal settings for development. Please don't use this in production. -**URL**: http://invoiceshelf.com/ +**URL**: http://invoiceshelf.test/ ### 2. Databases @@ -125,7 +125,7 @@ Adminer is UI tool for viewing the database contents and executing queries. It supports MySQL, PostgreSQL, SQLite. -**URL**: http://invoiceshelf.com:8080 +**URL**: http://invoiceshelf.test:8080 #### MySQL/PostgresSQL @@ -158,7 +158,7 @@ To utilize Mailpit, use the following credentials: | **FROM MAIL NAME** | your choice | -**URL**: http://invoiceshelf.com:8025 +**URL**: http://invoiceshelf.test:8025 --- From 8dd9d0c41445359f17e32b60b66c659c70de76fd Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Sun, 28 Jul 2024 22:46:45 +0200 Subject: [PATCH 35/50] Consolidate migrations v2.0 should go after v1.x --- ...ble.php => 2024_07_13_000000_rename_password_resets_table.php} | 0 ...amespace.php => 2024_07_13_000001_update_stored_namespace.php} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename database/migrations/{2024_05_30_000000_rename_password_resets_table.php => 2024_07_13_000000_rename_password_resets_table.php} (100%) rename database/migrations/{2024_06_05_155321_update_stored_namespace.php => 2024_07_13_000001_update_stored_namespace.php} (100%) diff --git a/database/migrations/2024_05_30_000000_rename_password_resets_table.php b/database/migrations/2024_07_13_000000_rename_password_resets_table.php similarity index 100% rename from database/migrations/2024_05_30_000000_rename_password_resets_table.php rename to database/migrations/2024_07_13_000000_rename_password_resets_table.php diff --git a/database/migrations/2024_06_05_155321_update_stored_namespace.php b/database/migrations/2024_07_13_000001_update_stored_namespace.php similarity index 100% rename from database/migrations/2024_06_05_155321_update_stored_namespace.php rename to database/migrations/2024_07_13_000001_update_stored_namespace.php From dfc4b1982ee4ecc7ac58662de123e67e31e2a6cd Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Sun, 28 Jul 2024 23:13:53 +0200 Subject: [PATCH 36/50] Update namespace on 1.x migration --- database/migrations/2024_07_12_235756_update_version_130.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/database/migrations/2024_07_12_235756_update_version_130.php b/database/migrations/2024_07_12_235756_update_version_130.php index 134c6cff..348664b0 100644 --- a/database/migrations/2024_07_12_235756_update_version_130.php +++ b/database/migrations/2024_07_12_235756_update_version_130.php @@ -1,7 +1,7 @@ Date: Sun, 28 Jul 2024 23:14:34 +0200 Subject: [PATCH 37/50] Update migrations formatting & namespace --- .../2020_05_12_154129_add_user_id_to_expenses_table.php | 4 +++- database/migrations/2024_07_12_235756_update_version_130.php | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/database/migrations/2020_05_12_154129_add_user_id_to_expenses_table.php b/database/migrations/2020_05_12_154129_add_user_id_to_expenses_table.php index a947b73b..b91a4bc7 100644 --- a/database/migrations/2020_05_12_154129_add_user_id_to_expenses_table.php +++ b/database/migrations/2020_05_12_154129_add_user_id_to_expenses_table.php @@ -24,5 +24,7 @@ class AddUserIdToExpensesTable extends Migration * * @return void */ - public function down() {} + public function down() + { + } } diff --git a/database/migrations/2024_07_12_235756_update_version_130.php b/database/migrations/2024_07_12_235756_update_version_130.php index 348664b0..7571cda3 100644 --- a/database/migrations/2024_07_12_235756_update_version_130.php +++ b/database/migrations/2024_07_12_235756_update_version_130.php @@ -1,7 +1,7 @@ Date: Sun, 28 Jul 2024 17:44:22 -0700 Subject: [PATCH 38/50] Update file line ending format --- .gitattributes | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/.gitattributes b/.gitattributes index a8763f8e..f9b559c4 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,3 +1,25 @@ -* text=auto +# Set the default behavior, in case people don't have core.autocrlf set. +* text eol=lf + +# Explicitly declare text files you want to always be normalized and converted +# to native line endings on checkout. +*.c text +*.h text + +# Declare files that will always have CRLF line endings on checkout. +*.sln text eol=crlf + +# Denote all files that are truly binary and should not be modified. +*.png binary +*.jpg binary +*.gif binary +*.otf binary +*.eot binary +*.svg binary +*.ttf binary +*.woff binary +*.woff2 binary + *.css linguist-vendored *.scss linguist-vendored +*.js linguist-vendored \ No newline at end of file From 4b9052079f4100816795891d77a3652190c77276 Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Sun, 28 Jul 2024 17:45:06 -0700 Subject: [PATCH 39/50] Update docker context for the php image --- .dev/docker-compose.mysql.yml | 10 +++++----- .dev/docker-compose.pgsql.yml | 10 +++++----- .dev/docker-compose.sqlite.yml | 8 ++++---- .dev/php/Dockerfile | 4 +--- 4 files changed, 15 insertions(+), 17 deletions(-) diff --git a/.dev/docker-compose.mysql.yml b/.dev/docker-compose.mysql.yml index d4ffe692..ac4384bb 100644 --- a/.dev/docker-compose.mysql.yml +++ b/.dev/docker-compose.mysql.yml @@ -2,8 +2,8 @@ services: php-fpm: container_name: invoiceshelf-dev-php build: - context: . - dockerfile: php/Dockerfile + context: ./php + dockerfile: Dockerfile args: - UID=${USRID:-1000} - GID=${GRPID:-1000} @@ -41,13 +41,13 @@ services: adminer: container_name: invoiceshelf-dev-adminer build: - context: . - dockerfile: adminer/Dockerfile + context: ./adminer + dockerfile: Dockerfile environment: ADMINER_PLUGINS: tables-filter ADMINER_DESIGN: konya ports: - - '8089:8080' + - '8080:8080' networks: - invoiceshelf-dev diff --git a/.dev/docker-compose.pgsql.yml b/.dev/docker-compose.pgsql.yml index 8799c493..e514df73 100644 --- a/.dev/docker-compose.pgsql.yml +++ b/.dev/docker-compose.pgsql.yml @@ -2,8 +2,8 @@ services: php-fpm: container_name: invoiceshelf-dev-php build: - context: . - dockerfile: php/Dockerfile + context: ./php + dockerfile: Dockerfile args: - UID=${USRID:-1000} - GID=${GRPID:-1000} @@ -40,13 +40,13 @@ services: adminer: container_name: invoiceshelf-dev-adminer build: - context: . - dockerfile: adminer/Dockerfile + context: ./adminer + dockerfile: Dockerfile environment: ADMINER_PLUGINS: tables-filter ADMINER_DESIGN: konya ports: - - '54320:8080' + - '8080:8080' networks: - invoiceshelf-dev diff --git a/.dev/docker-compose.sqlite.yml b/.dev/docker-compose.sqlite.yml index 568a0a11..4405f3dd 100644 --- a/.dev/docker-compose.sqlite.yml +++ b/.dev/docker-compose.sqlite.yml @@ -2,8 +2,8 @@ services: php-fpm: container_name: invoiceshelf-dev-php build: - context: . - dockerfile: php/Dockerfile + context: ./php + dockerfile: Dockerfile args: - UID=${USRID:-1000} - GID=${GRPID:-1000} @@ -26,8 +26,8 @@ services: adminer: container_name: invoiceshelf-dev-adminer build: - context: . - dockerfile: adminer/Dockerfile + context: ./adminer + dockerfile: Dockerfile environment: ADMINER_PLUGINS: tables-filter ADMINER_DESIGN: konya diff --git a/.dev/php/Dockerfile b/.dev/php/Dockerfile index 5b945b76..ec4a7a3a 100644 --- a/.dev/php/Dockerfile +++ b/.dev/php/Dockerfile @@ -55,12 +55,10 @@ RUN apt-get clean && rm -rf /var/lib/apt/lists/* WORKDIR /home/invoiceshelf/app # Copy Files -COPY /php/entrypoint.sh / +COPY entrypoint.sh /entrypoint.sh # Entrypoint -USER invoiceshelf ENTRYPOINT ["/entrypoint.sh"] # Launch php-fpm -USER root CMD ["php-fpm"] From f95d03f28137128e09ba5ff54a816b23f5b5c46c Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Mon, 29 Jul 2024 12:55:29 +0200 Subject: [PATCH 40/50] Fix "declarations that appear after nested rules" deprecation warning --- .../components/base/BaseContentPlaceholders.vue | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/resources/scripts/components/base/BaseContentPlaceholders.vue b/resources/scripts/components/base/BaseContentPlaceholders.vue index b64a4c1b..001ebfad 100644 --- a/resources/scripts/components/base/BaseContentPlaceholders.vue +++ b/resources/scripts/components/base/BaseContentPlaceholders.vue @@ -96,12 +96,12 @@ $base-content-placeholders-spacing: 10px !default; // Styles .base-content-placeholders-heading { - @include base-content-placeholders-spacing; display: flex; + @include base-content-placeholders-spacing; &__img { - @include base-content-placeholders; margin-right: 1.5 * $base-content-placeholders-spacing; + @include base-content-placeholders; } &__content { @@ -112,15 +112,15 @@ $base-content-placeholders-spacing: 10px !default; } &__title { - @include base-content-placeholders; width: 85%; margin-bottom: $base-content-placeholders-spacing; background: $base-content-placeholders-primary-color; + @include base-content-placeholders; } &__subtitle { - @include base-content-placeholders; width: 90%; + @include base-content-placeholders; } } @@ -128,10 +128,11 @@ $base-content-placeholders-spacing: 10px !default; @include base-content-placeholders-spacing; &__line { - @include base-content-placeholders; width: 100%; margin-bottom: $base-content-placeholders-spacing; + @include base-content-placeholders; + &:first-child { width: 100%; } From cc39f37b12ac0076b6667418d89c206184ca81d6 Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Mon, 29 Jul 2024 13:00:54 +0200 Subject: [PATCH 41/50] Update axios and vite --- package.json | 4 +- yarn.lock | 2059 ++++++++++++++++++++++++-------------------------- 2 files changed, 1007 insertions(+), 1056 deletions(-) diff --git a/package.json b/package.json index d56e22e9..c08b2c1c 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "@vuelidate/core": "^2.0.3", "@vuelidate/validators": "^2.0.4", "@vueuse/core": "^10.7.2", - "axios": "^0.27.2", + "axios": "0.28.1", "chart.js": "^2.9.4", "guid": "0.0.12", "laravel-vite-plugin": "^1.0.0", @@ -52,7 +52,7 @@ "pinia": "^2.1.7", "v-money3": "^3.24.1", "v-tooltip": "^4.0.0-beta.17", - "vite": "^5.0.0", + "vite": "5.3.5", "vue": "^3.4", "vue-flatpickr-component": "^11.0.3", "vue-i18n": "^9.9.0", diff --git a/yarn.lock b/yarn.lock index 90fa1bee..1b15c4b4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,146 +2,41 @@ # yarn lockfile v1 +"@aashutoshrathi/word-wrap@^1.2.3": + version "1.2.6" + resolved "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz" + integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== + "@alloc/quick-lru@^5.2.0": version "5.2.0" - resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30" + resolved "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz" integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== -"@babel/parser@^7.24.4": - version "7.24.6" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.6.tgz#5e030f440c3c6c78d195528c3b688b101a365328" - integrity sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q== +"@babel/parser@^7.23.6": + version "7.23.9" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz" + integrity sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA== -"@esbuild/aix-ppc64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz#a70f4ac11c6a1dfc18b8bbb13284155d933b9537" - integrity sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g== - -"@esbuild/android-arm64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz#db1c9202a5bc92ea04c7b6840f1bbe09ebf9e6b9" - integrity sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg== - -"@esbuild/android-arm@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.20.2.tgz#3b488c49aee9d491c2c8f98a909b785870d6e995" - integrity sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w== - -"@esbuild/android-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.20.2.tgz#3b1628029e5576249d2b2d766696e50768449f98" - integrity sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg== - -"@esbuild/darwin-arm64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz#6e8517a045ddd86ae30c6608c8475ebc0c4000bb" - integrity sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA== - -"@esbuild/darwin-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz#90ed098e1f9dd8a9381695b207e1cff45540a0d0" - integrity sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA== - -"@esbuild/freebsd-arm64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz#d71502d1ee89a1130327e890364666c760a2a911" - integrity sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw== - -"@esbuild/freebsd-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz#aa5ea58d9c1dd9af688b8b6f63ef0d3d60cea53c" - integrity sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw== - -"@esbuild/linux-arm64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz#055b63725df678379b0f6db9d0fa85463755b2e5" - integrity sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A== - -"@esbuild/linux-arm@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz#76b3b98cb1f87936fbc37f073efabad49dcd889c" - integrity sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg== - -"@esbuild/linux-ia32@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz#c0e5e787c285264e5dfc7a79f04b8b4eefdad7fa" - integrity sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig== - -"@esbuild/linux-loong64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz#a6184e62bd7cdc63e0c0448b83801001653219c5" - integrity sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ== - -"@esbuild/linux-mips64el@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz#d08e39ce86f45ef8fc88549d29c62b8acf5649aa" - integrity sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA== - -"@esbuild/linux-ppc64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz#8d252f0b7756ffd6d1cbde5ea67ff8fd20437f20" - integrity sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg== - -"@esbuild/linux-riscv64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz#19f6dcdb14409dae607f66ca1181dd4e9db81300" - integrity sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg== - -"@esbuild/linux-s390x@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz#3c830c90f1a5d7dd1473d5595ea4ebb920988685" - integrity sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ== - -"@esbuild/linux-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz#86eca35203afc0d9de0694c64ec0ab0a378f6fff" - integrity sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw== - -"@esbuild/netbsd-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz#e771c8eb0e0f6e1877ffd4220036b98aed5915e6" - integrity sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ== - -"@esbuild/openbsd-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz#9a795ae4b4e37e674f0f4d716f3e226dd7c39baf" - integrity sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ== - -"@esbuild/sunos-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz#7df23b61a497b8ac189def6e25a95673caedb03f" - integrity sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w== - -"@esbuild/win32-arm64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz#f1ae5abf9ca052ae11c1bc806fb4c0f519bacf90" - integrity sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ== - -"@esbuild/win32-ia32@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz#241fe62c34d8e8461cd708277813e1d0ba55ce23" - integrity sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ== - -"@esbuild/win32-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz#9c907b21e30a52db959ba4f80bb01a0cc403d5cc" - integrity sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ== +"@esbuild/linux-x64@0.21.5": + version "0.21.5" + resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz" + integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ== "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz" integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== dependencies: eslint-visitor-keys "^3.3.0" "@eslint-community/regexpp@^4.6.1": version "4.10.0" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" + resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz" integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== "@eslint/eslintrc@^2.1.4": version "2.1.4" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz" integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== dependencies: ajv "^6.12.4" @@ -154,26 +49,26 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.57.0": - version "8.57.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f" - integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== +"@eslint/js@8.56.0": + version "8.56.0" + resolved "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz" + integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A== "@headlessui/vue@^1.7.17": - version "1.7.22" - resolved "https://registry.yarnpkg.com/@headlessui/vue/-/vue-1.7.22.tgz#8d55a3a670c3d48beb660b7c47a7a8ff76caacfe" - integrity sha512-Hoffjoolq1rY+LOfJ+B/OvkhuBXXBFgd8oBlN+l1TApma2dB0En0ucFZrwQtb33SmcCqd32EQd0y07oziXWNYg== + version "1.7.17" + resolved "https://registry.npmjs.org/@headlessui/vue/-/vue-1.7.17.tgz" + integrity sha512-hmJChv8HzKorxd9F70RGnECAwZfkvmmwOqreuKLWY/19d5qbWnSdw+DNbuA/Uo6X5rb4U5B3NrT+qBKPmjhRqw== dependencies: "@tanstack/vue-virtual" "^3.0.0-beta.60" "@heroicons/vue@^1.0.6": version "1.0.6" - resolved "https://registry.yarnpkg.com/@heroicons/vue/-/vue-1.0.6.tgz#d8b90734b436eb5a87f40cc300b64a0fb0031f7f" + resolved "https://registry.npmjs.org/@heroicons/vue/-/vue-1.0.6.tgz" integrity sha512-ng2YcCQrdoQWEFpw+ipFl2rZo8mZ56v0T5+MyfQQvNqfKChwgP6DMloZLW+rl17GEcHkE3H82UTAMKBKZr4+WA== -"@humanwhocodes/config-array@^0.11.14": +"@humanwhocodes/config-array@^0.11.13": version "0.11.14" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" + resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz" integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== dependencies: "@humanwhocodes/object-schema" "^2.0.2" @@ -182,38 +77,38 @@ "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== "@humanwhocodes/object-schema@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" - integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== + version "2.0.2" + resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz" + integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== -"@intlify/core-base@9.13.1": - version "9.13.1" - resolved "https://registry.yarnpkg.com/@intlify/core-base/-/core-base-9.13.1.tgz#bd1f38e665095993ef9b67aeeb794f3cabcb515d" - integrity sha512-+bcQRkJO9pcX8d0gel9ZNfrzU22sZFSA0WVhfXrf5jdJOS24a+Bp8pozuS9sBI9Hk/tGz83pgKfmqcn/Ci7/8w== +"@intlify/core-base@9.9.0": + version "9.9.0" + resolved "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.9.0.tgz" + integrity sha512-C7UXPymDIOlMGSNjAhNLtKgzITc/8BjINK5gNKXg8GiWCTwL6n3MWr55czksxn8RM5wTMz0qcLOFT+adtaVQaA== dependencies: - "@intlify/message-compiler" "9.13.1" - "@intlify/shared" "9.13.1" + "@intlify/message-compiler" "9.9.0" + "@intlify/shared" "9.9.0" -"@intlify/message-compiler@9.13.1": - version "9.13.1" - resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-9.13.1.tgz#ff8129badf77db3fb648b8d3cceee87c8033ed0a" - integrity sha512-SKsVa4ajYGBVm7sHMXd5qX70O2XXjm55zdZB3VeMFCvQyvLew/dLvq3MqnaIsTMF1VkkOb9Ttr6tHcMlyPDL9w== +"@intlify/message-compiler@9.9.0": + version "9.9.0" + resolved "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.9.0.tgz" + integrity sha512-yDU/jdUm9KuhEzYfS+wuyja209yXgdl1XFhMlKtXEgSFTxz4COZQCRXXbbH8JrAjMsaJ7bdoPSLsKlY6mXG2iA== dependencies: - "@intlify/shared" "9.13.1" + "@intlify/shared" "9.9.0" source-map-js "^1.0.2" -"@intlify/shared@9.13.1": - version "9.13.1" - resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.13.1.tgz#202741d11ece1a9c7480bfd3f27afcf9cb8f72e4" - integrity sha512-u3b6BKGhE6j/JeRU6C/RL2FgyJfy6LakbtfeVF8fJXURpZZTzfh3e05J0bu0XPw447Q6/WUp3C4ajv4TMS4YsQ== +"@intlify/shared@9.9.0": + version "9.9.0" + resolved "https://registry.npmjs.org/@intlify/shared/-/shared-9.9.0.tgz" + integrity sha512-1ECUyAHRrzOJbOizyGufYP2yukqGrWXtkmTu4PcswVnWbkcjzk3YQGmJ0bLkM7JZ0ZYAaohLGdYvBYnTOGYJ9g== "@isaacs/cliui@^8.0.2": version "8.0.2" - resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz" integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== dependencies: string-width "^5.1.2" @@ -224,53 +119,53 @@ wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" "@jridgewell/gen-mapping@^0.3.2": - version "0.3.5" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" - integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + version "0.3.3" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== dependencies: - "@jridgewell/set-array" "^1.2.1" + "@jridgewell/set-array" "^1.0.1" "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.24" + "@jridgewell/trace-mapping" "^0.3.9" "@jridgewell/resolve-uri@^3.1.0": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" - integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + 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== -"@jridgewell/set-array@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" - integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== +"@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": version "1.4.15" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@jridgewell/trace-mapping@^0.3.24": - version "0.3.25" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" - integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== +"@jridgewell/trace-mapping@^0.3.9": + version "0.3.22" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz" + integrity sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw== dependencies: "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" "@nodelib/fs.scandir@2.1.5": version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": +"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== "@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: "@nodelib/fs.scandir" "2.1.5" @@ -278,428 +173,394 @@ "@pkgjs/parseargs@^0.11.0": version "0.11.0" - resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== "@popperjs/core@^2.11.0", "@popperjs/core@^2.11.8", "@popperjs/core@^2.9.0": version "2.11.8" - resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" + resolved "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz" integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== "@remirror/core-constants@^2.0.2": version "2.0.2" - resolved "https://registry.yarnpkg.com/@remirror/core-constants/-/core-constants-2.0.2.tgz#f05eccdc69e3a65e7d524b52548f567904a11a1a" + resolved "https://registry.npmjs.org/@remirror/core-constants/-/core-constants-2.0.2.tgz" integrity sha512-dyHY+sMF0ihPus3O27ODd4+agdHMEmuRdyiZJ2CCWjPV5UFmn17ZbElvk6WOGVE4rdCJKZQCrPV2BcikOMLUGQ== -"@rollup/rollup-android-arm-eabi@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz#bbd0e616b2078cd2d68afc9824d1fadb2f2ffd27" - integrity sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ== +"@remirror/core-helpers@^3.0.0": + version "3.0.0" + resolved "https://registry.npmjs.org/@remirror/core-helpers/-/core-helpers-3.0.0.tgz" + integrity sha512-tusEgQJIqg4qKj6HSBUFcyRnWnziw3neh4T9wOmsPGHFC3w9kl5KSrDb9UAgE8uX6y32FnS7vJ955mWOl3n50A== + dependencies: + "@remirror/core-constants" "^2.0.2" + "@remirror/types" "^1.0.1" + "@types/object.omit" "^3.0.0" + "@types/object.pick" "^1.3.2" + "@types/throttle-debounce" "^2.1.0" + case-anything "^2.1.13" + dash-get "^1.0.2" + deepmerge "^4.3.1" + fast-deep-equal "^3.1.3" + make-error "^1.3.6" + object.omit "^3.0.0" + object.pick "^1.3.0" + throttle-debounce "^3.0.1" -"@rollup/rollup-android-arm64@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz#97255ef6384c5f73f4800c0de91f5f6518e21203" - integrity sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA== +"@remirror/types@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@remirror/types/-/types-1.0.1.tgz" + integrity sha512-VlZQxwGnt1jtQ18D6JqdIF+uFZo525WEqrfp9BOc3COPpK4+AWCgdnAWL+ho6imWcoINlGjR/+3b6y5C1vBVEA== + dependencies: + type-fest "^2.19.0" -"@rollup/rollup-darwin-arm64@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz#b6dd74e117510dfe94541646067b0545b42ff096" - integrity sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w== - -"@rollup/rollup-darwin-x64@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz#e07d76de1cec987673e7f3d48ccb8e106d42c05c" - integrity sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA== - -"@rollup/rollup-linux-arm-gnueabihf@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz#9f1a6d218b560c9d75185af4b8bb42f9f24736b8" - integrity sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA== - -"@rollup/rollup-linux-arm-musleabihf@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz#53618b92e6ffb642c7b620e6e528446511330549" - integrity sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A== - -"@rollup/rollup-linux-arm64-gnu@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz#99a7ba5e719d4f053761a698f7b52291cefba577" - integrity sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw== - -"@rollup/rollup-linux-arm64-musl@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz#f53db99a45d9bc00ce94db8a35efa7c3c144a58c" - integrity sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ== - -"@rollup/rollup-linux-powerpc64le-gnu@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz#cbb0837408fe081ce3435cf3730e090febafc9bf" - integrity sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA== - -"@rollup/rollup-linux-riscv64-gnu@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz#8ed09c1d1262ada4c38d791a28ae0fea28b80cc9" - integrity sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg== - -"@rollup/rollup-linux-s390x-gnu@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz#938138d3c8e0c96f022252a28441dcfb17afd7ec" - integrity sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg== - -"@rollup/rollup-linux-x64-gnu@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz#1a7481137a54740bee1ded4ae5752450f155d942" - integrity sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w== - -"@rollup/rollup-linux-x64-musl@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz#f1186afc601ac4f4fc25fac4ca15ecbee3a1874d" - integrity sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg== - -"@rollup/rollup-win32-arm64-msvc@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz#ed6603e93636a96203c6915be4117245c1bd2daf" - integrity sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA== - -"@rollup/rollup-win32-ia32-msvc@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz#14e0b404b1c25ebe6157a15edb9c46959ba74c54" - integrity sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg== - -"@rollup/rollup-win32-x64-msvc@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz#5d694d345ce36b6ecf657349e03eb87297e68da4" - integrity sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g== +"@rollup/rollup-linux-x64-gnu@4.19.1": + version "4.19.1" + resolved "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.19.1.tgz" + integrity sha512-XUXeI9eM8rMP8aGvii/aOOiMvTs7xlCosq9xCjcqI9+5hBxtjDpD+7Abm1ZhVIFE1J2h2VIg0t2DX/gjespC2Q== "@rvxlab/tailwind-plugin-ios-full-height@^1.1.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@rvxlab/tailwind-plugin-ios-full-height/-/tailwind-plugin-ios-full-height-1.1.0.tgz#ef28929e7dd5a4ca9bdd45df155beb2b78bfef82" + resolved "https://registry.npmjs.org/@rvxlab/tailwind-plugin-ios-full-height/-/tailwind-plugin-ios-full-height-1.1.0.tgz" integrity sha512-jPIxXn0raN/YTk8nXesqM+JbS2WWd5XaUk/MbaAgVDDPyYtsPfeN3B26xIhSa2oE2+JB66tegPUMSOmixzroXg== "@stripe/stripe-js@^2.4.0": version "2.4.0" - resolved "https://registry.yarnpkg.com/@stripe/stripe-js/-/stripe-js-2.4.0.tgz#7a7e5b187b9e9bb43073edd946ec3e9a778e61bd" + resolved "https://registry.npmjs.org/@stripe/stripe-js/-/stripe-js-2.4.0.tgz" integrity sha512-WFkQx1mbs2b5+7looI9IV1BLa3bIApuN3ehp9FP58xGg7KL9hCHDECgW3BwO9l9L+xBPVAD7Yjn1EhGe6EDTeA== "@tailwindcss/aspect-ratio@^0.4.2": version "0.4.2" - resolved "https://registry.yarnpkg.com/@tailwindcss/aspect-ratio/-/aspect-ratio-0.4.2.tgz#9ffd52fee8e3c8b20623ff0dcb29e5c21fb0a9ba" + resolved "https://registry.npmjs.org/@tailwindcss/aspect-ratio/-/aspect-ratio-0.4.2.tgz" integrity sha512-8QPrypskfBa7QIMuKHg2TA7BqES6vhBrDLOv8Unb6FcFyd3TjKbc6lcmb9UPQHxfl24sXoJ41ux/H7qQQvfaSQ== "@tailwindcss/forms@^0.5.7": version "0.5.7" - resolved "https://registry.yarnpkg.com/@tailwindcss/forms/-/forms-0.5.7.tgz#db5421f062a757b5f828bc9286ba626c6685e821" + resolved "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.7.tgz" integrity sha512-QE7X69iQI+ZXwldE+rzasvbJiyV/ju1FGHH0Qn2W3FKbuYtqp8LKcy6iSw79fVUT5/Vvf+0XgLCeYVG+UV6hOw== dependencies: mini-svg-data-uri "^1.2.3" "@tailwindcss/typography@^0.5.10": - version "0.5.13" - resolved "https://registry.yarnpkg.com/@tailwindcss/typography/-/typography-0.5.13.tgz#cd788a4fa4d0ca2506e242d512f377b22c1f7932" - integrity sha512-ADGcJ8dX21dVVHIwTRgzrcunY6YY9uSlAHHGVKvkA+vLc5qLwEszvKts40lx7z0qc4clpjclwLeK5rVCV2P/uw== + version "0.5.10" + resolved "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.10.tgz" + integrity sha512-Pe8BuPJQJd3FfRnm6H0ulKIGoMEQS+Vq01R6M5aCrFB/ccR/shT+0kXLjouGC1gFLm9hopTFN+DMP0pfwRWzPw== dependencies: lodash.castarray "^4.4.0" lodash.isplainobject "^4.0.6" lodash.merge "^4.6.2" postcss-selector-parser "6.0.10" -"@tanstack/virtual-core@3.5.0": - version "3.5.0" - resolved "https://registry.yarnpkg.com/@tanstack/virtual-core/-/virtual-core-3.5.0.tgz#108208d0f1d75271300bc5560cf9a85a1fa01e89" - integrity sha512-KnPRCkQTyqhanNC0K63GBG3wA8I+D1fQuVnAvcBF8f13akOKeQp1gSbu6f77zCxhEk727iV5oQnbHLYzHrECLg== +"@tanstack/virtual-core@3.0.0": + version "3.0.0" + resolved "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.0.0.tgz" + integrity sha512-SYXOBTjJb05rXa2vl55TTwO40A6wKu0R5i1qQwhJYNDIqaIGF7D0HsLw+pJAyi2OvntlEIVusx3xtbbgSUi6zg== "@tanstack/vue-virtual@^3.0.0-beta.60": - version "3.5.0" - resolved "https://registry.yarnpkg.com/@tanstack/vue-virtual/-/vue-virtual-3.5.0.tgz#5794af3b2d0cc0331ba3f671fba8770e0abd4993" - integrity sha512-wvRQ8sFxn/NDr3WvI5XabhFovZ5MBmpEck2GHpTxYunmV63Ovpl30lRu6W5BPQo35a1GqDZ+Pvzlz6WDWRNqqw== + version "3.0.2" + resolved "https://registry.npmjs.org/@tanstack/vue-virtual/-/vue-virtual-3.0.2.tgz" + integrity sha512-1iFpX+yZswHuf4wrA6GU9yJ/YzQ/8SacABwqghwCkcwrkZbOPLlRSdOAqZ1WQ50SftmfhZpaiZl2KmpV7cgfMQ== dependencies: - "@tanstack/virtual-core" "3.5.0" + "@tanstack/virtual-core" "3.0.0" -"@tiptap/core@^2.1.16", "@tiptap/core@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@tiptap/core/-/core-2.4.0.tgz#6f8eee8beb5b89363582366b201ccc4798ac98a9" - integrity sha512-YJSahk8pkxpCs8SflCZfTnJpE7IPyUWIylfgXM2DefjRQa5DZ+c6sNY0s/zbxKYFQ6AuHVX40r9pCfcqHChGxQ== +"@tiptap/core@^2.0.0", "@tiptap/core@^2.1.16": + version "2.1.16" + resolved "https://registry.npmjs.org/@tiptap/core/-/core-2.1.16.tgz" + integrity sha512-nKnV603UyzbcrqhCXTWxDN22Ujb4VNfmKkACms1JOMGo7BVARmMCp2nBsLW8fmgCxmf8AS0LXY63tU7ILWYc5g== -"@tiptap/extension-blockquote@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@tiptap/extension-blockquote/-/extension-blockquote-2.4.0.tgz#0179076ea2fa12e41a198dad087b81d368653b8d" - integrity sha512-nJJy4KsPgQqWTTDOWzFRdjCfG5+QExfZj44dulgDFNh+E66xhamnbM70PklllXJgEcge7xmT5oKM0gKls5XgFw== +"@tiptap/extension-blockquote@^2.1.16": + version "2.1.16" + resolved "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.1.16.tgz" + integrity sha512-1OMk8cBrL0VnbnzD3XHx7U4oMDCiXRR7Spfl9JqwC9pS4RosOUBySNxpEBwhSegB0pK6sd7m44qLqj00If+cHA== -"@tiptap/extension-bold@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@tiptap/extension-bold/-/extension-bold-2.4.0.tgz#b5ced2c3bf51f304890137dbdf394d58c01eb208" - integrity sha512-csnW6hMDEHoRfxcPRLSqeJn+j35Lgtt1YRiOwn7DlS66sAECGRuoGfCvQSPij0TCDp4VCR9if5Sf8EymhnQumQ== +"@tiptap/extension-bold@^2.1.16": + version "2.1.16" + resolved "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.1.16.tgz" + integrity sha512-gz2VrBkRRsGBiOHx1qB++VUfpuRdhJp6jlgNqqHFbIkjKr2NB+u7oiH5SbjlL4eG0wlam1QA4jAkXhZgdvkA4g== -"@tiptap/extension-bubble-menu@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.4.0.tgz#a079329318fc21407f9a3c9c3da6ef72cb0b4ab6" - integrity sha512-s99HmttUtpW3rScWq8rqk4+CGCwergNZbHLTkF6Rp6TSboMwfp+rwL5Q/JkcAG9KGLso1vGyXKbt1xHOvm8zMw== +"@tiptap/extension-bubble-menu@^2.1.16": + version "2.1.16" + resolved "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.1.16.tgz" + integrity sha512-MwKCmu2kU7+Xln/BvlrolU2hCXgoCoTr4NXJ+3v8A9w7tIq8leADoWacfEee2t3VNnGdXw/Xjza+DAr77JWjGg== dependencies: tippy.js "^6.3.7" -"@tiptap/extension-bullet-list@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@tiptap/extension-bullet-list/-/extension-bullet-list-2.4.0.tgz#60eea05b5ac8c8e8d615c057559fddb95033abeb" - integrity sha512-9S5DLIvFRBoExvmZ+/ErpTvs4Wf1yOEs8WXlKYUCcZssK7brTFj99XDwpHFA29HKDwma5q9UHhr2OB2o0JYAdw== +"@tiptap/extension-bullet-list@^2.1.16": + version "2.1.16" + resolved "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.1.16.tgz" + integrity sha512-Cheaep5JShO9TtRslrOObSVKtRQFKozou2ZWDas5sIeef/A/GWPfVTzusfBGE/ItHwZNaDXwJOoVnSUPT8ulfw== -"@tiptap/extension-code-block@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@tiptap/extension-code-block/-/extension-code-block-2.4.0.tgz#b7f1da4825677a2ea6b8e970a1197877551e5dc8" - integrity sha512-QWGdv1D56TBGbbJSj2cIiXGJEKguPiAl9ONzJ/Ql1ZksiQsYwx0YHriXX6TOC//T4VIf6NSClHEtwtxWBQ/Csg== +"@tiptap/extension-code-block@^2.1.16": + version "2.1.16" + resolved "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.1.16.tgz" + integrity sha512-IspVmwg17Vx59W8lEIbVRIeMscJtRCdsif45CkzVv1uSHMl7tmrJh3n8vv/vrB+rnLasQrOEbEKNEqUL3eHlKQ== -"@tiptap/extension-code@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@tiptap/extension-code/-/extension-code-2.4.0.tgz#3a9fed3585bf49f445505c2e9ad71fd66e117304" - integrity sha512-wjhBukuiyJMq4cTcK3RBTzUPV24k5n1eEPlpmzku6ThwwkMdwynnMGMAmSF3fErh3AOyOUPoTTjgMYN2d10SJA== +"@tiptap/extension-code@^2.1.16": + version "2.1.16" + resolved "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.1.16.tgz" + integrity sha512-2+fVfh3qQORgMRSZ6hn+yW5/rLzlulCzMhdL07G0lWY8/eWEv3p9DCfgw9AOHrrHFim8/MVWyRkrkBM/yHX9FA== -"@tiptap/extension-document@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@tiptap/extension-document/-/extension-document-2.4.0.tgz#a396b2cbcc8708aa2a0a41d0be481fda4b61c77b" - integrity sha512-3jRodQJZDGbXlRPERaloS+IERg/VwzpC1IO6YSJR9jVIsBO6xC29P3cKTQlg1XO7p6ZH/0ksK73VC5BzzTwoHg== +"@tiptap/extension-document@^2.1.16": + version "2.1.16" + resolved "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.1.16.tgz" + integrity sha512-VSOrzGnpI9dJDffFn3ZjmPKYkH/YtYeDl6nqLu7TafRqyLMSEqxxxq/+Qs/7j8jbzq6osslY0sySckSulroIOg== -"@tiptap/extension-dropcursor@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@tiptap/extension-dropcursor/-/extension-dropcursor-2.4.0.tgz#8f54908f84a4ab7d2d7de7fc0197511138445740" - integrity sha512-c46HoG2PEEpSZv5rmS5UX/lJ6/kP1iVO0Ax+6JrNfLEIiDULUoi20NqdjolEa38La2VhWvs+o20OviiTOKEE9g== +"@tiptap/extension-dropcursor@^2.1.16": + version "2.1.16" + resolved "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-2.1.16.tgz" + integrity sha512-voWEIAmxV3f9Q0gc3K89HRq8KFeOVtHJBRHYihZwxMnvq2aMIwdpCx0GbiCd4slQaBLd1ASJHz1uAigVhR2+uA== -"@tiptap/extension-floating-menu@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@tiptap/extension-floating-menu/-/extension-floating-menu-2.4.0.tgz#75c48b98d0f833251eab70f269ed186f48fc398e" - integrity sha512-vLb9v+htbHhXyty0oaXjT3VC8St4xuGSHWUB9GuAJAQ+NajIO6rBPbLUmm9qM0Eh2zico5mpSD1Qtn5FM6xYzg== +"@tiptap/extension-floating-menu@^2.1.16": + version "2.1.16" + resolved "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-2.1.16.tgz" + integrity sha512-VBT4HBhkKr9S1VExyTb/qfQyZ5F0VJLasUoH8E4kdq3deCeifmTTIOukuXK5QbicFHVQmY2epeU6+w5c/bAcHQ== dependencies: tippy.js "^6.3.7" -"@tiptap/extension-gapcursor@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@tiptap/extension-gapcursor/-/extension-gapcursor-2.4.0.tgz#2a738509d40f5f856492c11e32b10e4462f71216" - integrity sha512-F4y/0J2lseohkFUw9P2OpKhrJ6dHz69ZScABUvcHxjznJLd6+0Zt7014Lw5PA8/m2d/w0fX8LZQ88pZr4quZPQ== +"@tiptap/extension-gapcursor@^2.1.16": + version "2.1.16" + resolved "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.1.16.tgz" + integrity sha512-Bgjo0da0W1QOhtnT3NR7GHPmVBZykNRekNGsTA3+nxCjkqh1G32Jt58TBKP3vdLBaww3lhrii0SYVErlFgIJnA== -"@tiptap/extension-hard-break@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@tiptap/extension-hard-break/-/extension-hard-break-2.4.0.tgz#b5bf5b065827280e450fba8f53d137654509d836" - integrity sha512-3+Z6zxevtHza5IsDBZ4lZqvNR3Kvdqwxq/QKCKu9UhJN1DUjsg/l1Jn2NilSQ3NYkBYh2yJjT8CMo9pQIu776g== +"@tiptap/extension-hard-break@^2.1.16": + version "2.1.16" + resolved "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.1.16.tgz" + integrity sha512-H3Bk8Gu5pV7xH8TrzH0WAoXrJVEKsDA6Evyl7H7aCAMAvotQL0ehuuX88bjPMCSAvBXZE39wYnJCJshGbVx0BA== -"@tiptap/extension-heading@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@tiptap/extension-heading/-/extension-heading-2.4.0.tgz#16302ce691714244c3d3fa92d2db86a5c895a025" - integrity sha512-fYkyP/VMo7YHO76YVrUjd95Qeo0cubWn/Spavmwm1gLTHH/q7xMtbod2Z/F0wd6QHnc7+HGhO7XAjjKWDjldaw== +"@tiptap/extension-heading@^2.1.16": + version "2.1.16" + resolved "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.1.16.tgz" + integrity sha512-vFQuAAnIxDwKjTV+ScSwIaeG4Uhm1cZddnbLTru1EJfIz9VvpHDZKEyL4ZJvWuKMAhCzlw54TQhBCVHqalXyaA== -"@tiptap/extension-history@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@tiptap/extension-history/-/extension-history-2.4.0.tgz#1dbf8410c091175627414d48a0d857232a8f4094" - integrity sha512-gr5qsKAXEVGr1Lyk1598F7drTaEtAxqZiuuSwTCzZzkiwgEQsWMWTWc9F8FlneCEaqe1aIYg6WKWlmYPaFwr0w== +"@tiptap/extension-history@^2.1.16": + version "2.1.16" + resolved "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.1.16.tgz" + integrity sha512-9YHPf8Xqqp5CQy1hJonkBzROj0ZHR1ZaIk9IaLlAPTpdkrUDXV9SC7qp3lozQsMg4vmU3K6H5VQo4ADpnR00OQ== -"@tiptap/extension-horizontal-rule@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.4.0.tgz#7f27c0778004602686251af7e2f7a8461a3d77ba" - integrity sha512-yDgxy+YxagcEsBbdWvbQiXYxsv3noS1VTuGwc9G7ZK9xPmBHJ5y0agOkB7HskwsZvJHoaSqNRsh7oZTkf0VR3g== +"@tiptap/extension-horizontal-rule@^2.1.16": + version "2.1.16" + resolved "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.1.16.tgz" + integrity sha512-Q+Zp0lJF7212YIuZnbMmn4KC1MZoZjQIuvSd+DOgCwKSeUcTXBbljDjOiN8yrY134r+A4fFM7KHTXWYqZGZQug== -"@tiptap/extension-italic@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@tiptap/extension-italic/-/extension-italic-2.4.0.tgz#42ab003e04e1e8d825f698914c0e80ac849144f1" - integrity sha512-aaW/L9q+KNHHK+X73MPloHeIsT191n3VLd3xm6uUcFDnUNvzYJ/q65/1ZicdtCaOLvTutxdrEvhbkrVREX6a8g== +"@tiptap/extension-italic@^2.1.16": + version "2.1.16" + resolved "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.1.16.tgz" + integrity sha512-6mFGPBGxd2aICJ5Q3zYxuXO8slKoOP/PsSjEQn1bjs3h8Q3mPxHX290ePVp728o5F0myM9sxKSz2V6/VeuS/Yw== -"@tiptap/extension-list-item@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@tiptap/extension-list-item/-/extension-list-item-2.4.0.tgz#a97a48850b81e94b9a60cc2aa16e515aa5311456" - integrity sha512-reUVUx+2cI2NIAqMZhlJ9uK/+zvRzm1GTmlU2Wvzwc7AwLN4yemj6mBDsmBLEXAKPvitfLh6EkeHaruOGymQtg== +"@tiptap/extension-list-item@^2.1.16": + version "2.1.16" + resolved "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.1.16.tgz" + integrity sha512-RLUodzFispIe1adarCEzf+OfaGZna/WR/k/HqPnbflSiJ6/I2P5MqI+ELjGGvc53eanf3+KpsHlB2Pganp8sMA== -"@tiptap/extension-ordered-list@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@tiptap/extension-ordered-list/-/extension-ordered-list-2.4.0.tgz#6cf82e10d7e7f7cc44156d29b0b71a22dec31612" - integrity sha512-Zo0c9M0aowv+2+jExZiAvhCB83GZMjZsxywmuOrdUbq5EGYKb7q8hDyN3hkrktVHr9UPXdPAYTmLAHztTOHYRA== +"@tiptap/extension-ordered-list@^2.1.16": + version "2.1.16" + resolved "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.1.16.tgz" + integrity sha512-6QLUm90wz2lfzWGV4fX5NOOFA8zKlcDBNrTeOd0V7H4fcafLmANqU/5o4LLNJmK8y8f1YAvmHr9xgciqggGJJA== -"@tiptap/extension-paragraph@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@tiptap/extension-paragraph/-/extension-paragraph-2.4.0.tgz#5b9aea8775937b327bbe6754be12ae3144fb09ff" - integrity sha512-+yse0Ow67IRwcACd9K/CzBcxlpr9OFnmf0x9uqpaWt1eHck1sJnti6jrw5DVVkyEBHDh/cnkkV49gvctT/NyCw== +"@tiptap/extension-paragraph@^2.1.16": + version "2.1.16" + resolved "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.1.16.tgz" + integrity sha512-JwCKSFjBLd9xAmxLe7hf1h4AucDvkGTfDb/wA1jId64g+uf0/tm6RDjnk/QD+D2YzoLGFLjQm0GAdPXTmyTPdA== -"@tiptap/extension-strike@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@tiptap/extension-strike/-/extension-strike-2.4.0.tgz#f09c4f51f7fed01c356026d7e8d8a1d1f2ac8f18" - integrity sha512-pE1uN/fQPOMS3i+zxPYMmPmI3keubnR6ivwM+KdXWOMnBiHl9N4cNpJgq1n2eUUGKLurC2qrQHpnVyGAwBS6Vg== +"@tiptap/extension-strike@^2.1.16": + version "2.1.16" + resolved "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.1.16.tgz" + integrity sha512-Z1hmBK1QWMMGDV2MJ3KBDiMuzcScjyx88cP5ln5G7626Zxeqywf84KF+2WyHBzJWfwMWpAouzwHKe9ld39Vu1w== "@tiptap/extension-text-align@^2.1.16": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@tiptap/extension-text-align/-/extension-text-align-2.4.0.tgz#15bda62a8f0d0feaede0632a15fb2d032ff81754" - integrity sha512-wpRe2OiLXTK4kTy4RZEPnPjFbK16kYHPAx1552hLXrOdyxbS7Sdbo+w4x7aGLLZZqZdudCFfkdtnqrc7PDVZdA== + version "2.1.16" + resolved "https://registry.npmjs.org/@tiptap/extension-text-align/-/extension-text-align-2.1.16.tgz" + integrity sha512-iyRqOZGoUl/yd2TZ+tvuRRxOym0bbE6+BoImd9TrF2bpYLSMt3wc1IzN2+jRGPkTtTnFbKLiFoyNZyYYyaxzkA== -"@tiptap/extension-text@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@tiptap/extension-text/-/extension-text-2.4.0.tgz#a3a5f45a9856d513e574f24e2c9b6028273f8eb3" - integrity sha512-LV0bvE+VowE8IgLca7pM8ll7quNH+AgEHRbSrsI3SHKDCYB9gTHMjWaAkgkUVaO1u0IfCrjnCLym/PqFKa+vvg== +"@tiptap/extension-text@^2.1.16": + version "2.1.16" + resolved "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.1.16.tgz" + integrity sha512-XzSJmAj32uYpaL/9FX3tRSU52DwZ9w+3yEffIcSN9MSwioqLsSolXOz7TuJfW6lSTar1ml9UPlRqX4dpayUTDQ== "@tiptap/pm@^2.0.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@tiptap/pm/-/pm-2.4.0.tgz#f6fe81d24569da584658d2e8a3a378aea3619fb3" - integrity sha512-B1HMEqGS4MzIVXnpgRZDLm30mxDWj51LkBT/if1XD+hj5gm8B9Q0c84bhvODX6KIs+c6z+zsY9VkVu8w9Yfgxg== + version "2.1.16" + resolved "https://registry.npmjs.org/@tiptap/pm/-/pm-2.1.16.tgz" + integrity sha512-yibLkjtgbBSnWCXbDyKM5kgIGLfMvfbRfFzb8T0uz4PI/L54o0a4fiWSW5Fg10B5+o+NAXW2wMxoId8/Tw91lQ== dependencies: - prosemirror-changeset "^2.2.1" - prosemirror-collab "^1.3.1" - prosemirror-commands "^1.5.2" - prosemirror-dropcursor "^1.8.1" - prosemirror-gapcursor "^1.3.2" - prosemirror-history "^1.3.2" - prosemirror-inputrules "^1.3.0" - prosemirror-keymap "^1.2.2" - prosemirror-markdown "^1.12.0" - prosemirror-menu "^1.2.4" - prosemirror-model "^1.19.4" - prosemirror-schema-basic "^1.2.2" - prosemirror-schema-list "^1.3.0" - prosemirror-state "^1.4.3" - prosemirror-tables "^1.3.5" - prosemirror-trailing-node "^2.0.7" - prosemirror-transform "^1.8.0" - prosemirror-view "^1.32.7" + prosemirror-changeset "^2.2.0" + prosemirror-collab "^1.3.0" + prosemirror-commands "^1.3.1" + prosemirror-dropcursor "^1.5.0" + prosemirror-gapcursor "^1.3.1" + prosemirror-history "^1.3.0" + prosemirror-inputrules "^1.2.0" + prosemirror-keymap "^1.2.0" + prosemirror-markdown "^1.10.1" + prosemirror-menu "^1.2.1" + prosemirror-model "^1.18.1" + prosemirror-schema-basic "^1.2.0" + prosemirror-schema-list "^1.2.2" + prosemirror-state "^1.4.1" + prosemirror-tables "^1.3.0" + prosemirror-trailing-node "^2.0.2" + prosemirror-transform "^1.7.0" + prosemirror-view "^1.28.2" "@tiptap/starter-kit@^2.1.16": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@tiptap/starter-kit/-/starter-kit-2.4.0.tgz#ad2c2d900af41e55eaaccafa92fd6b2acaebd97e" - integrity sha512-DYYzMZdTEnRn9oZhKOeRCcB+TjhNz5icLlvJKoHoOGL9kCbuUyEf8WRR2OSPckI0+KUIPJL3oHRqO4SqSdTjfg== + version "2.1.16" + resolved "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-2.1.16.tgz" + integrity sha512-DudGvkNEB1IwfMAqBKCcT49BY275hKF6SwjTWN89cLvVBd2TBe4R6wWMNKDhwfR8fmXz/aXpGJWWO2AFimY3jg== dependencies: - "@tiptap/core" "^2.4.0" - "@tiptap/extension-blockquote" "^2.4.0" - "@tiptap/extension-bold" "^2.4.0" - "@tiptap/extension-bullet-list" "^2.4.0" - "@tiptap/extension-code" "^2.4.0" - "@tiptap/extension-code-block" "^2.4.0" - "@tiptap/extension-document" "^2.4.0" - "@tiptap/extension-dropcursor" "^2.4.0" - "@tiptap/extension-gapcursor" "^2.4.0" - "@tiptap/extension-hard-break" "^2.4.0" - "@tiptap/extension-heading" "^2.4.0" - "@tiptap/extension-history" "^2.4.0" - "@tiptap/extension-horizontal-rule" "^2.4.0" - "@tiptap/extension-italic" "^2.4.0" - "@tiptap/extension-list-item" "^2.4.0" - "@tiptap/extension-ordered-list" "^2.4.0" - "@tiptap/extension-paragraph" "^2.4.0" - "@tiptap/extension-strike" "^2.4.0" - "@tiptap/extension-text" "^2.4.0" + "@tiptap/core" "^2.1.16" + "@tiptap/extension-blockquote" "^2.1.16" + "@tiptap/extension-bold" "^2.1.16" + "@tiptap/extension-bullet-list" "^2.1.16" + "@tiptap/extension-code" "^2.1.16" + "@tiptap/extension-code-block" "^2.1.16" + "@tiptap/extension-document" "^2.1.16" + "@tiptap/extension-dropcursor" "^2.1.16" + "@tiptap/extension-gapcursor" "^2.1.16" + "@tiptap/extension-hard-break" "^2.1.16" + "@tiptap/extension-heading" "^2.1.16" + "@tiptap/extension-history" "^2.1.16" + "@tiptap/extension-horizontal-rule" "^2.1.16" + "@tiptap/extension-italic" "^2.1.16" + "@tiptap/extension-list-item" "^2.1.16" + "@tiptap/extension-ordered-list" "^2.1.16" + "@tiptap/extension-paragraph" "^2.1.16" + "@tiptap/extension-strike" "^2.1.16" + "@tiptap/extension-text" "^2.1.16" "@tiptap/vue-3@^2.1.16": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@tiptap/vue-3/-/vue-3-2.4.0.tgz#906dc45167498e88b56b8390aabf658e8f1c2fc4" - integrity sha512-NCw1Y4ScIrMCKC9YlepUHSAB8jq/PQ2f+AbZKh5bY2t/kMSJYLCJVHq9NFzG4TQtktgMGWCcEQVcDJ7YNpsfxw== + version "2.1.16" + resolved "https://registry.npmjs.org/@tiptap/vue-3/-/vue-3-2.1.16.tgz" + integrity sha512-pvfIsBAyFeZVllnl38DFX8X11XMvFcT2/vViAtkDwJpX2W/m/nmxOSlEnqmOEzC+sbFqk7bhKpBVElaROV+U0w== dependencies: - "@tiptap/extension-bubble-menu" "^2.4.0" - "@tiptap/extension-floating-menu" "^2.4.0" + "@tiptap/extension-bubble-menu" "^2.1.16" + "@tiptap/extension-floating-menu" "^2.1.16" "@types/estree@1.0.5": version "1.0.5" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz" integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== -"@types/node@^20.11.9": - version "20.12.13" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.13.tgz#90ed3b8a4e52dd3c5dc5a42dde5b85b74ad8ed88" - integrity sha512-gBGeanV41c1L171rR7wjbMiEpEI/l5XFQdLLfhr/REwpgDy/4U8y89+i8kRiLzDyZdOkXh+cRaTetUnCYutoXA== +"@types/node@^18.0.0 || >=20.0.0", "@types/node@^20.11.9": + version "20.11.9" + resolved "https://registry.npmjs.org/@types/node/-/node-20.11.9.tgz" + integrity sha512-CQXNuMoS/VcoAMISe5pm4JnEd1Br5jildbQEToEMQvutmv+EaQr90ry9raiudgpyDuqFiV9e4rnjSfLNq12M5w== dependencies: undici-types "~5.26.4" +"@types/object.omit@^3.0.0": + version "3.0.3" + resolved "https://registry.npmjs.org/@types/object.omit/-/object.omit-3.0.3.tgz" + integrity sha512-xrq4bQTBGYY2cw+gV4PzoG2Lv3L0pjZ1uXStRRDQoATOYW1lCsFQHhQ+OkPhIcQoqLjAq7gYif7D14Qaa6Zbew== + +"@types/object.pick@^1.3.2": + version "1.3.4" + resolved "https://registry.npmjs.org/@types/object.pick/-/object.pick-1.3.4.tgz" + integrity sha512-5PjwB0uP2XDp3nt5u5NJAG2DORHIRClPzWT/TTZhJ2Ekwe8M5bA9tvPdi9NO/n2uvu2/ictat8kgqvLfcIE1SA== + +"@types/throttle-debounce@^2.1.0": + version "2.1.0" + resolved "https://registry.npmjs.org/@types/throttle-debounce/-/throttle-debounce-2.1.0.tgz" + integrity sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ== + "@types/web-bluetooth@^0.0.20": version "0.0.20" - resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz#f066abfcd1cbe66267cdbbf0de010d8a41b41597" + resolved "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz" integrity sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow== "@ungap/structured-clone@^1.2.0": version "1.2.0" - resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz" integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== "@vitejs/plugin-vue@^5.0.3": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.0.5.tgz#e3dc11e427d4b818b7e3202766ad156e3d5e2eaa" - integrity sha512-LOjm7XeIimLBZyzinBQ6OSm3UBCNVCpLkxGC0oWmm2YPzVZoxMsdvNVimLTBzpAnR9hl/yn1SHGuRfe6/Td9rQ== + version "5.0.3" + resolved "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.0.3.tgz" + integrity sha512-b8S5dVS40rgHdDrw+DQi/xOM9ed+kSRZzfm1T74bMmBDCd8XO87NKlFYInzCtwvtWwXZvo1QxE2OSspTATWrbA== -"@vue/compiler-core@3.4.27": - version "3.4.27" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.27.tgz#e69060f4b61429fe57976aa5872cfa21389e4d91" - integrity sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg== +"@vue/compiler-core@3.4.15": + version "3.4.15" + resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.15.tgz" + integrity sha512-XcJQVOaxTKCnth1vCxEChteGuwG6wqnUHxAm1DO3gCz0+uXKaJNx8/digSz4dLALCy8n2lKq24jSUs8segoqIw== dependencies: - "@babel/parser" "^7.24.4" - "@vue/shared" "3.4.27" + "@babel/parser" "^7.23.6" + "@vue/shared" "3.4.15" entities "^4.5.0" estree-walker "^2.0.2" - source-map-js "^1.2.0" + source-map-js "^1.0.2" -"@vue/compiler-dom@3.4.27": - version "3.4.27" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz#d51d35f40d00ce235d7afc6ad8b09dfd92b1cc1c" - integrity sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw== +"@vue/compiler-dom@3.4.15": + version "3.4.15" + resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.15.tgz" + integrity sha512-wox0aasVV74zoXyblarOM3AZQz/Z+OunYcIHe1OsGclCHt8RsRm04DObjefaI82u6XDzv+qGWZ24tIsRAIi5MQ== dependencies: - "@vue/compiler-core" "3.4.27" - "@vue/shared" "3.4.27" + "@vue/compiler-core" "3.4.15" + "@vue/shared" "3.4.15" -"@vue/compiler-sfc@3.4.27", "@vue/compiler-sfc@^3.4.15": - version "3.4.27" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.27.tgz#399cac1b75c6737bf5440dc9cf3c385bb2959701" - integrity sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA== +"@vue/compiler-sfc@^3.4.15", "@vue/compiler-sfc@3.4.15": + version "3.4.15" + resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.15.tgz" + integrity sha512-LCn5M6QpkpFsh3GQvs2mJUOAlBQcCco8D60Bcqmf3O3w5a+KWS5GvYbrrJBkgvL1BDnTp+e8q0lXCLgHhKguBA== dependencies: - "@babel/parser" "^7.24.4" - "@vue/compiler-core" "3.4.27" - "@vue/compiler-dom" "3.4.27" - "@vue/compiler-ssr" "3.4.27" - "@vue/shared" "3.4.27" + "@babel/parser" "^7.23.6" + "@vue/compiler-core" "3.4.15" + "@vue/compiler-dom" "3.4.15" + "@vue/compiler-ssr" "3.4.15" + "@vue/shared" "3.4.15" estree-walker "^2.0.2" - magic-string "^0.30.10" - postcss "^8.4.38" - source-map-js "^1.2.0" + magic-string "^0.30.5" + postcss "^8.4.33" + source-map-js "^1.0.2" -"@vue/compiler-ssr@3.4.27": - version "3.4.27" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.4.27.tgz#2a8ecfef1cf448b09be633901a9c020360472e3d" - integrity sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw== +"@vue/compiler-ssr@3.4.15": + version "3.4.15" + resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.15.tgz" + integrity sha512-1jdeQyiGznr8gjFDadVmOJqZiLNSsMa5ZgqavkPZ8O2wjHv0tVuAEsw5hTdUoUW4232vpBbL/wJhzVW/JwY1Uw== dependencies: - "@vue/compiler-dom" "3.4.27" - "@vue/shared" "3.4.27" + "@vue/compiler-dom" "3.4.15" + "@vue/shared" "3.4.15" -"@vue/devtools-api@^6.5.0", "@vue/devtools-api@^6.5.1": - version "6.6.1" - resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.6.1.tgz#7c14346383751d9f6ad4bea0963245b30220ef83" - integrity sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA== +"@vue/devtools-api@^6.5.0": + version "6.5.1" + resolved "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.1.tgz" + integrity sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA== -"@vue/reactivity@3.4.27": - version "3.4.27" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.4.27.tgz#6ece72331bf719953f5eaa95ec60b2b8d49e3791" - integrity sha512-kK0g4NknW6JX2yySLpsm2jlunZJl2/RJGZ0H9ddHdfBVHcNzxmQ0sS0b09ipmBoQpY8JM2KmUw+a6sO8Zo+zIA== +"@vue/reactivity@3.4.15": + version "3.4.15" + resolved "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.15.tgz" + integrity sha512-55yJh2bsff20K5O84MxSvXKPHHt17I2EomHznvFiJCAZpJTNW8IuLj1xZWMLELRhBK3kkFV/1ErZGHJfah7i7w== dependencies: - "@vue/shared" "3.4.27" + "@vue/shared" "3.4.15" -"@vue/runtime-core@3.4.27": - version "3.4.27" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.4.27.tgz#1b6e1d71e4604ba7442dd25ed22e4a1fc6adbbda" - integrity sha512-7aYA9GEbOOdviqVvcuweTLe5Za4qBZkUY7SvET6vE8kyypxVgaT1ixHLg4urtOlrApdgcdgHoTZCUuTGap/5WA== +"@vue/runtime-core@3.4.15": + version "3.4.15" + resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.15.tgz" + integrity sha512-6E3by5m6v1AkW0McCeAyhHTw+3y17YCOKG0U0HDKDscV4Hs0kgNT5G+GCHak16jKgcCDHpI9xe5NKb8sdLCLdw== dependencies: - "@vue/reactivity" "3.4.27" - "@vue/shared" "3.4.27" + "@vue/reactivity" "3.4.15" + "@vue/shared" "3.4.15" -"@vue/runtime-dom@3.4.27": - version "3.4.27" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.4.27.tgz#fe8d1ce9bbe8921d5dd0ad5c10df0e04ef7a5ee7" - integrity sha512-ScOmP70/3NPM+TW9hvVAz6VWWtZJqkbdf7w6ySsws+EsqtHvkhxaWLecrTorFxsawelM5Ys9FnDEMt6BPBDS0Q== +"@vue/runtime-dom@3.4.15": + version "3.4.15" + resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.15.tgz" + integrity sha512-EVW8D6vfFVq3V/yDKNPBFkZKGMFSvZrUQmx196o/v2tHKdwWdiZjYUBS+0Ez3+ohRyF8Njwy/6FH5gYJ75liUw== dependencies: - "@vue/runtime-core" "3.4.27" - "@vue/shared" "3.4.27" + "@vue/runtime-core" "3.4.15" + "@vue/shared" "3.4.15" csstype "^3.1.3" -"@vue/server-renderer@3.4.27": - version "3.4.27" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.4.27.tgz#3306176f37e648ba665f97dda3ce705687be63d2" - integrity sha512-dlAMEuvmeA3rJsOMJ2J1kXU7o7pOxgsNHVr9K8hB3ImIkSuBrIdy0vF66h8gf8Tuinf1TK3mPAz2+2sqyf3KzA== +"@vue/server-renderer@3.4.15": + version "3.4.15" + resolved "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.15.tgz" + integrity sha512-3HYzaidu9cHjrT+qGUuDhFYvF/j643bHC6uUN9BgM11DVy+pM6ATsG6uPBLnkwOgs7BpJABReLmpL3ZPAsUaqw== dependencies: - "@vue/compiler-ssr" "3.4.27" - "@vue/shared" "3.4.27" + "@vue/compiler-ssr" "3.4.15" + "@vue/shared" "3.4.15" -"@vue/shared@3.4.27": - version "3.4.27" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.27.tgz#f05e3cd107d157354bb4ae7a7b5fc9cf73c63b50" - integrity sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA== +"@vue/shared@3.4.15": + version "3.4.15" + resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.4.15.tgz" + integrity sha512-KzfPTxVaWfB+eGcGdbSf4CWdaXcGDqckoeXUh7SB3fZdEtzPCK2Vq9B/lRRL3yutax/LWITz+SwvgyOxz5V75g== "@vuelidate/components@^1.2.6": version "1.2.6" - resolved "https://registry.yarnpkg.com/@vuelidate/components/-/components-1.2.6.tgz#a0f36209ed1f6aa18f0c81ef11747f08f948eaef" + resolved "https://registry.npmjs.org/@vuelidate/components/-/components-1.2.6.tgz" integrity sha512-oteVHhic9F4zDnSvSRIAadrmu1can/TwjAqGOnpGFc+rKDd29fhUdbmIVEDQLQjVAF0VzZK7s0y+cxvfMERF9w== dependencies: "@vuelidate/core" "^2.0.3" @@ -707,53 +568,53 @@ "@vuelidate/core@^2.0.3": version "2.0.3" - resolved "https://registry.yarnpkg.com/@vuelidate/core/-/core-2.0.3.tgz#40468c5ed15b72bde880a026b0699c2f0f1ecede" + resolved "https://registry.npmjs.org/@vuelidate/core/-/core-2.0.3.tgz" integrity sha512-AN6l7KF7+mEfyWG0doT96z+47ljwPpZfi9/JrNMkOGLFv27XVZvKzRLXlmDPQjPl/wOB1GNnHuc54jlCLRNqGA== dependencies: vue-demi "^0.13.11" "@vuelidate/validators@^2.0.4": version "2.0.4" - resolved "https://registry.yarnpkg.com/@vuelidate/validators/-/validators-2.0.4.tgz#0a88a7b2b18f15fd9c384095593f369a6f7384e9" + resolved "https://registry.npmjs.org/@vuelidate/validators/-/validators-2.0.4.tgz" integrity sha512-odTxtUZ2JpwwiQ10t0QWYJkkYrfd0SyFYhdHH44QQ1jDatlZgTh/KRzrWVmn/ib9Gq7H4hFD4e8ahoo5YlUlDw== dependencies: vue-demi "^0.13.11" "@vueuse/core@^10.7.2": - version "10.10.0" - resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-10.10.0.tgz#05a98d3c5674762455a2c552c915d461d83e6490" - integrity sha512-vexJ/YXYs2S42B783rI95lMt3GzEwkxzC8Hb0Ndpd8rD+p+Lk/Za4bd797Ym7yq4jXqdSyj3JLChunF/vyYjUw== + version "10.7.2" + resolved "https://registry.npmjs.org/@vueuse/core/-/core-10.7.2.tgz" + integrity sha512-AOyAL2rK0By62Hm+iqQn6Rbu8bfmbgaIMXcE3TSr7BdQ42wnSFlwIdPjInO62onYsEMK/yDMU8C6oGfDAtZ2qQ== dependencies: "@types/web-bluetooth" "^0.0.20" - "@vueuse/metadata" "10.10.0" - "@vueuse/shared" "10.10.0" - vue-demi ">=0.14.7" + "@vueuse/metadata" "10.7.2" + "@vueuse/shared" "10.7.2" + vue-demi ">=0.14.6" -"@vueuse/metadata@10.10.0": - version "10.10.0" - resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-10.10.0.tgz#53e61e9380670e342cbe6e03d852f3319308cb5b" - integrity sha512-UNAo2sTCAW5ge6OErPEHb5z7NEAg3XcO9Cj7OK45aZXfLLH1QkexDcZD77HBi5zvEiLOm1An+p/4b5K3Worpug== +"@vueuse/metadata@10.7.2": + version "10.7.2" + resolved "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.7.2.tgz" + integrity sha512-kCWPb4J2KGrwLtn1eJwaJD742u1k5h6v/St5wFe8Quih90+k2a0JP8BS4Zp34XUuJqS2AxFYMb1wjUL8HfhWsQ== -"@vueuse/shared@10.10.0": - version "10.10.0" - resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-10.10.0.tgz#93f7c2210151ff43c2c7677963f7aa3aef5d9896" - integrity sha512-2aW33Ac0Uk0U+9yo3Ypg9s5KcR42cuehRWl7vnUHadQyFvCktseyxxEPBi1Eiq4D2yBGACOnqLZpx1eMc7g5Og== +"@vueuse/shared@10.7.2": + version "10.7.2" + resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-10.7.2.tgz" + integrity sha512-qFbXoxS44pi2FkgFjPvF4h7c9oMDutpyBdcJdMYIMg9XyXli2meFMuaKn+UMgsClo//Th6+beeCgqweT/79BVA== dependencies: - vue-demi ">=0.14.7" + vue-demi ">=0.14.6" acorn-jsx@^5.3.2: version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^8.9.0: +"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.9.0: version "8.11.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz" integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== ajv@^6.12.4: version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" @@ -763,61 +624,61 @@ ajv@^6.12.4: ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-regex@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz" integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" ansi-styles@^6.1.0: version "6.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== any-promise@^1.0.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz" integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + version "3.1.2" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" arg@^5.0.2: version "5.0.2" - resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" + resolved "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz" integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== argparse@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== asynckit@^0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== autoprefixer@^10.4.17: - version "10.4.19" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.19.tgz#ad25a856e82ee9d7898c59583c1afeb3fa65f89f" - integrity sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew== + version "10.4.17" + resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz" + integrity sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg== dependencies: - browserslist "^4.23.0" - caniuse-lite "^1.0.30001599" + browserslist "^4.22.2" + caniuse-lite "^1.0.30001578" fraction.js "^4.3.7" normalize-range "^0.1.2" picocolors "^1.0.0" @@ -825,7 +686,7 @@ autoprefixer@^10.4.17: axios@^0.27.2: version "0.27.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972" + resolved "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz" integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ== dependencies: follow-redirects "^1.14.9" @@ -833,22 +694,22 @@ axios@^0.27.2: balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== binary-extensions@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" - integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== + version "2.2.0" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== boolbase@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" @@ -856,46 +717,51 @@ brace-expansion@^1.1.7: brace-expansion@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== dependencies: balanced-match "^1.0.0" -braces@^3.0.3, braces@~3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" - integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== +braces@^3.0.2, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: - fill-range "^7.1.1" + fill-range "^7.0.1" -browserslist@^4.23.0: - version "4.23.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" - integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== +browserslist@^4.22.2, "browserslist@>= 4.21.0": + version "4.22.3" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz" + integrity sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A== dependencies: - caniuse-lite "^1.0.30001587" - electron-to-chromium "^1.4.668" + caniuse-lite "^1.0.30001580" + electron-to-chromium "^1.4.648" node-releases "^2.0.14" update-browserslist-db "^1.0.13" callsites@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== camelcase-css@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" + resolved "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz" integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== -caniuse-lite@^1.0.30001587, caniuse-lite@^1.0.30001599: - version "1.0.30001625" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001625.tgz#ead1b155ea691d6a87938754d3cb119c24465b03" - integrity sha512-4KE9N2gcRH+HQhpeiRZXd+1niLB/XNLAhSy4z7fI8EzcbcPoAqjNInxVHTiTwWfTIV4w096XG8OtCOCQQKPv3w== +caniuse-lite@^1.0.30001578, caniuse-lite@^1.0.30001580: + version "1.0.30001581" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001581.tgz" + integrity sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ== + +case-anything@^2.1.13: + version "2.1.13" + resolved "https://registry.npmjs.org/case-anything/-/case-anything-2.1.13.tgz" + integrity sha512-zlOQ80VrQ2Ue+ymH5OuM/DlDq64mEm+B9UTdHULv5osUMD6HalNTblf2b1u/m6QecjsnOkBpqVZ+XPwIVsy7Ng== chalk@^4.0.0: version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" @@ -903,7 +769,7 @@ chalk@^4.0.0: chart.js@^2.9.4: version "2.9.4" - resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-2.9.4.tgz#0827f9563faffb2dc5c06562f8eb10337d5b9684" + resolved "https://registry.npmjs.org/chart.js/-/chart.js-2.9.4.tgz" integrity sha512-B07aAzxcrikjAPyV+01j7BmOpxtQETxTSlQ26BEYJ+3iUkbNKaOJ/nDbT6JjyqYxseM0ON12COHYdU2cTIjC7A== dependencies: chartjs-color "^2.1.0" @@ -911,23 +777,23 @@ chart.js@^2.9.4: chartjs-color-string@^0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz#1df096621c0e70720a64f4135ea171d051402f71" + resolved "https://registry.npmjs.org/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz" integrity sha512-TIB5OKn1hPJvO7JcteW4WY/63v6KwEdt6udfnDE9iCAZgy+V4SrbSxoIbTw/xkUIapjEI4ExGtD0+6D3KyFd7A== dependencies: color-name "^1.0.0" chartjs-color@^2.1.0: version "2.4.1" - resolved "https://registry.yarnpkg.com/chartjs-color/-/chartjs-color-2.4.1.tgz#6118bba202fe1ea79dd7f7c0f9da93467296c3b0" + resolved "https://registry.npmjs.org/chartjs-color/-/chartjs-color-2.4.1.tgz" integrity sha512-haqOg1+Yebys/Ts/9bLo/BqUcONQOdr/hoEr2LLTRl6C5LXctUdHxsCYfvQVg5JIxITrfCNUDr4ntqmQk9+/0w== dependencies: chartjs-color-string "^0.6.0" color-convert "^1.9.3" -"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.3: - version "3.6.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" - integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== +chokidar@^3.5.3, "chokidar@>=3.0.0 <4.0.0": + version "3.5.3" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== dependencies: anymatch "~3.1.2" braces "~3.0.2" @@ -941,60 +807,60 @@ chartjs-color@^2.1.0: color-convert@^1.9.3: version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + combined-stream@^1.0.8: version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== dependencies: delayed-stream "~1.0.0" commander@^4.0.0: version "4.1.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== concat-map@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== crelt@^1.0.0: version "1.0.6" - resolved "https://registry.yarnpkg.com/crelt/-/crelt-1.0.6.tgz#7cc898ea74e190fb6ef9dae57f8f81cf7302df72" + resolved "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz" integrity sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g== cross-env@^7.0.3: version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" + resolved "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz" integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== dependencies: cross-spawn "^7.0.1" cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2: version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== dependencies: path-key "^3.1.0" @@ -1003,134 +869,143 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2: cssesc@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== csstype@^3.1.3: version "3.1.3" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" + resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz" integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== +dash-get@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/dash-get/-/dash-get-1.0.2.tgz" + integrity sha512-4FbVrHDwfOASx7uQVxeiCTo7ggSdYZbqs8lH+WU6ViypPlDbe9y6IP5VVUDQBv9DcnyaiPT5XT0UWHgJ64zLeQ== + debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: - version "4.3.5" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.5.tgz#e83444eceb9fedd4a1da56d671ae2446a01a6e1e" - integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== + version "4.3.4" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" deep-is@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + version "0.1.3" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= sha512-GtxAN4HvBachZzm4OnWqc45ESpUCMwkYcsjnsPs23FwJbsO+k4t0k9bQCgOmzIlpHO28+WPK/KRbRk0DDHuuDw== + +deepmerge@^4.3.1: + version "4.3.1" + resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== delayed-stream@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== didyoumean@^1.2.2: version "1.2.2" - resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" + resolved "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz" integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== dlv@^1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" + resolved "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz" integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== doctrine@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== dependencies: esutils "^2.0.2" eastasianwidth@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== -electron-to-chromium@^1.4.668: - version "1.4.787" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.787.tgz#3eedd0a3b8be2b9e96e21675d399786ad90b99ed" - integrity sha512-d0EFmtLPjctczO3LogReyM2pbBiiZbnsKnGF+cdZhsYzHm/A0GV7W94kqzLD8SN4O3f3iHlgLUChqghgyznvCQ== +electron-to-chromium@^1.4.648: + version "1.4.648" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.648.tgz" + integrity sha512-EmFMarXeqJp9cUKu/QEciEApn0S/xRcpZWuAm32U7NgoZCimjsilKXHRO9saeEW55eHZagIDg6XTUOv32w9pjg== emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== emoji-regex@^9.2.2: version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== entities@^4.4.0, entities@^4.5.0: version "4.5.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== -esbuild@^0.20.1: - version "0.20.2" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.20.2.tgz#9d6b2386561766ee6b5a55196c6d766d28c87ea1" - integrity sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g== +esbuild@^0.21.3: + version "0.21.5" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz" + integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw== optionalDependencies: - "@esbuild/aix-ppc64" "0.20.2" - "@esbuild/android-arm" "0.20.2" - "@esbuild/android-arm64" "0.20.2" - "@esbuild/android-x64" "0.20.2" - "@esbuild/darwin-arm64" "0.20.2" - "@esbuild/darwin-x64" "0.20.2" - "@esbuild/freebsd-arm64" "0.20.2" - "@esbuild/freebsd-x64" "0.20.2" - "@esbuild/linux-arm" "0.20.2" - "@esbuild/linux-arm64" "0.20.2" - "@esbuild/linux-ia32" "0.20.2" - "@esbuild/linux-loong64" "0.20.2" - "@esbuild/linux-mips64el" "0.20.2" - "@esbuild/linux-ppc64" "0.20.2" - "@esbuild/linux-riscv64" "0.20.2" - "@esbuild/linux-s390x" "0.20.2" - "@esbuild/linux-x64" "0.20.2" - "@esbuild/netbsd-x64" "0.20.2" - "@esbuild/openbsd-x64" "0.20.2" - "@esbuild/sunos-x64" "0.20.2" - "@esbuild/win32-arm64" "0.20.2" - "@esbuild/win32-ia32" "0.20.2" - "@esbuild/win32-x64" "0.20.2" + "@esbuild/aix-ppc64" "0.21.5" + "@esbuild/android-arm" "0.21.5" + "@esbuild/android-arm64" "0.21.5" + "@esbuild/android-x64" "0.21.5" + "@esbuild/darwin-arm64" "0.21.5" + "@esbuild/darwin-x64" "0.21.5" + "@esbuild/freebsd-arm64" "0.21.5" + "@esbuild/freebsd-x64" "0.21.5" + "@esbuild/linux-arm" "0.21.5" + "@esbuild/linux-arm64" "0.21.5" + "@esbuild/linux-ia32" "0.21.5" + "@esbuild/linux-loong64" "0.21.5" + "@esbuild/linux-mips64el" "0.21.5" + "@esbuild/linux-ppc64" "0.21.5" + "@esbuild/linux-riscv64" "0.21.5" + "@esbuild/linux-s390x" "0.21.5" + "@esbuild/linux-x64" "0.21.5" + "@esbuild/netbsd-x64" "0.21.5" + "@esbuild/openbsd-x64" "0.21.5" + "@esbuild/sunos-x64" "0.21.5" + "@esbuild/win32-arm64" "0.21.5" + "@esbuild/win32-ia32" "0.21.5" + "@esbuild/win32-x64" "0.21.5" -escalade@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" - integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== escape-string-regexp@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== eslint-config-prettier@^9.1.0: version "9.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" + resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz" integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== eslint-plugin-vue@^9.20.1: - version "9.26.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.26.0.tgz#bf7f5cce62c8f878059b91edae44d22974133af5" - integrity sha512-eTvlxXgd4ijE1cdur850G6KalZqk65k1JKoOI2d1kT3hr8sPD07j1q98FRFdNnpxBELGPWxZmInxeHGF/GxtqQ== + version "9.20.1" + resolved "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.20.1.tgz" + integrity sha512-GyCs8K3lkEvoyC1VV97GJhP1SvqsKCiWGHnbn0gVUYiUhaH2+nB+Dv1uekv1THFMPbBfYxukrzQdltw950k+LQ== dependencies: "@eslint-community/eslint-utils" "^4.4.0" - globals "^13.24.0" natural-compare "^1.4.0" nth-check "^2.1.1" - postcss-selector-parser "^6.0.15" - semver "^7.6.0" - vue-eslint-parser "^9.4.2" + postcss-selector-parser "^6.0.13" + semver "^7.5.4" + vue-eslint-parser "^9.4.0" xml-name-validator "^4.0.0" eslint-scope@^7.1.1, eslint-scope@^7.2.2: version "7.2.2" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz" integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== dependencies: esrecurse "^4.3.0" @@ -1138,19 +1013,19 @@ eslint-scope@^7.1.1, eslint-scope@^7.2.2: eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: version "3.4.3" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint@^8.56.0: - version "8.57.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668" - integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== +"eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^6.2.0 || ^7.0.0 || ^8.0.0", eslint@^8.56.0, eslint@>=6.0.0, eslint@>=7.0.0: + version "8.56.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz" + integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" "@eslint/eslintrc" "^2.1.4" - "@eslint/js" "8.57.0" - "@humanwhocodes/config-array" "^0.11.14" + "@eslint/js" "8.56.0" + "@humanwhocodes/config-array" "^0.11.13" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" "@ungap/structured-clone" "^1.2.0" @@ -1187,7 +1062,7 @@ eslint@^8.56.0: espree@^9.3.1, espree@^9.6.0, espree@^9.6.1: version "9.6.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + resolved "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz" integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== dependencies: acorn "^8.9.0" @@ -1196,41 +1071,41 @@ espree@^9.3.1, espree@^9.6.0, espree@^9.6.1: esquery@^1.4.0, esquery@^1.4.2: version "1.5.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + resolved "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz" integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== dependencies: estraverse "^5.1.0" esrecurse@^4.3.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: estraverse "^5.2.0" estraverse@^5.1.0, estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + version "5.2.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== estree-walker@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== esutils@^2.0.2: version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-glob@^3.3.0: version "3.3.2" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz" integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== dependencies: "@nodelib/fs.stat" "^2.0.2" @@ -1241,70 +1116,69 @@ fast-glob@^3.3.0: fast-json-stable-stringify@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fast-levenshtein@^2.0.6: version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fastq@^1.6.0: - version "1.17.1" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" - integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== + version "1.12.0" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.12.0.tgz" + integrity sha512-VNX0QkHK3RsXVKr9KrlUv/FoTa0NdbYoHHl7uXHv2rzyHSlxjdNAKug2twd9luJxpcyNeAgf5iPPMutJO67Dfg== dependencies: reusify "^1.0.4" file-entry-cache@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== dependencies: flat-cache "^3.0.4" -fill-range@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" - integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== dependencies: to-regex-range "^5.0.1" find-up@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== dependencies: locate-path "^6.0.0" path-exists "^4.0.0" flat-cache@^3.0.4: - version "3.2.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" - integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== + version "3.0.4" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== dependencies: - flatted "^3.2.9" - keyv "^4.5.3" + flatted "^3.1.0" rimraf "^3.0.2" flatpickr@^4.6.13: version "4.6.13" - resolved "https://registry.yarnpkg.com/flatpickr/-/flatpickr-4.6.13.tgz#8a029548187fd6e0d670908471e43abe9ad18d94" + resolved "https://registry.npmjs.org/flatpickr/-/flatpickr-4.6.13.tgz" integrity sha512-97PMG/aywoYpB4IvbvUJi0RQi8vearvU0oov1WW3k0WZPBMrTQVqekSX5CjSG/M4Q3i6A/0FKXC7RyAoAUUSPw== -flatted@^3.2.9: - version "3.3.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" - integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== +flatted@^3.1.0: + version "3.2.2" + resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz" + integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA== follow-redirects@^1.14.9: - version "1.15.6" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" - integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== + version "1.15.5" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz" + integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw== foreground-child@^3.1.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" + resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz" integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== dependencies: cross-spawn "^7.0.0" @@ -1312,7 +1186,7 @@ foreground-child@^3.1.0: form-data@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== dependencies: asynckit "^0.4.0" @@ -1321,103 +1195,105 @@ form-data@^4.0.0: fraction.js@^4.3.7: version "4.3.7" - resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" + resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz" integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@~2.3.2, fsevents@~2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== function-bind@^1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -glob-parent@^5.1.2, glob-parent@~5.1.2: +glob-parent@^5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" glob-parent@^6.0.2: version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== dependencies: is-glob "^4.0.3" +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + glob@^10.3.10: - version "10.4.1" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.1.tgz#0cfb01ab6a6b438177bfe6a58e2576f6efe909c2" - integrity sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw== + version "10.3.10" + resolved "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz" + integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== dependencies: foreground-child "^3.1.0" - jackspeak "^3.1.2" - minimatch "^9.0.4" - minipass "^7.1.2" - path-scurry "^1.11.1" + jackspeak "^2.3.5" + minimatch "^9.0.1" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-scurry "^1.10.1" glob@^7.1.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + version "7.1.7" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.1.1" + minimatch "^3.0.4" once "^1.3.0" path-is-absolute "^1.0.0" -globals@^13.19.0, globals@^13.24.0: +globals@^13.19.0: version "13.24.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + resolved "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz" integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== dependencies: type-fest "^0.20.2" graphemer@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== guid@0.0.12: version "0.0.12" - resolved "https://registry.yarnpkg.com/guid/-/guid-0.0.12.tgz#9137c52b185f7de12490b9bebcc1660b9025fe0c" - integrity sha512-J0MCgzgJcvLarLGTeVIhXdQwqlEJ9rxmxc/X71GR4VR5V/BIQ9FFfzGL52qYKgREQI8qPevc1qFNwB/4VnBuRA== + resolved "https://registry.npmjs.org/guid/-/guid-0.0.12.tgz" + integrity sha1-kTfFKxhffeEkkLm+vMFmC5Al/gw= sha512-J0MCgzgJcvLarLGTeVIhXdQwqlEJ9rxmxc/X71GR4VR5V/BIQ9FFfzGL52qYKgREQI8qPevc1qFNwB/4VnBuRA== has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== hasown@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" - integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + version "2.0.0" + resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz" + integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== dependencies: function-bind "^1.1.2" ignore@^5.2.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" - integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== + version "5.3.0" + resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz" + integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== immutable@^4.0.0: - version "4.3.6" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.6.tgz#6a05f7858213238e587fb83586ffa3b4b27f0447" - integrity sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ== + version "4.3.5" + resolved "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz" + integrity sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw== import-fresh@^3.2.1: version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: parent-module "^1.0.0" @@ -1425,127 +1301,134 @@ import-fresh@^3.2.1: imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== inflight@^1.0.4: version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" inherits@2: version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== inherits@2.0.3: version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" is-core-module@^2.13.0: version "2.13.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz" integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== dependencies: hasown "^2.0.0" +is-extendable@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" is-number@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-path-inside@^3.0.3: version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== +is-plain-object@^2.0.4: + 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== + dependencies: + isobject "^3.0.1" + isexe@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== -jackspeak@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.1.2.tgz#eada67ea949c6b71de50f1b09c92a961897b90ab" - integrity sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ== +isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +jackspeak@^2.3.5: + version "2.3.6" + resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz" + integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== dependencies: "@isaacs/cliui" "^8.0.2" optionalDependencies: "@pkgjs/parseargs" "^0.11.0" -jiti@^1.21.0: +jiti@^1.19.1: version "1.21.0" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" + resolved "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz" integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== js-yaml@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: argparse "^2.0.1" -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - json-schema-traverse@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - -keyv@^4.5.3: - version "4.5.4" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" - integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== - dependencies: - json-buffer "3.0.1" + resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== laravel-vite-plugin@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/laravel-vite-plugin/-/laravel-vite-plugin-1.0.4.tgz#b9a516ed212aae55c19369984dc5d2f09276560c" - integrity sha512-dEj8Q/Fsn0kKbOQ55bl/NmyJL+dD6OxnVaM/nNByw5XV4b00ky6FzXKVuHLDr4BvSJKH1y6oaOcEG5wKpCZ5+A== + version "1.0.1" + resolved "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-1.0.1.tgz" + integrity sha512-laLEZUnSskIDZtLb2FNRdcjsRUhh1VOVvapbVGVTeaBPJTCF/b6gbPiX2dZdcH1RKoOE0an7L+2gnInk6K33Zw== dependencies: picocolors "^1.0.0" vite-plugin-full-reload "^1.1.0" levn@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== dependencies: prelude-ls "^1.2.1" @@ -1553,149 +1436,161 @@ levn@^0.4.1: lilconfig@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" + resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz" integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== lilconfig@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.1.tgz#9d8a246fa753106cfc205fd2d77042faca56e5e3" - integrity sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ== + version "3.0.0" + resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz" + integrity sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g== lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + version "1.1.6" + resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= sha512-8ZmlJFVK9iCmtLz19HpSsR8HaAMWBT284VMNednLwlIMDP2hJDCIhUp0IZ2xUcZ+Ob6BM0VvCSJwzASDM45NLQ== linkify-it@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-5.0.0.tgz#9ef238bfa6dc70bd8e7f9572b52d369af569b421" + resolved "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz" integrity sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ== dependencies: uc.micro "^2.0.0" locate-path@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: p-locate "^5.0.0" lodash.castarray@^4.4.0: version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.castarray/-/lodash.castarray-4.4.0.tgz#c02513515e309daddd4c24c60cfddcf5976d9115" - integrity sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q== + resolved "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz" + integrity sha1-wCUTUV4wna3dTCTGDP3c9ZdtkRU= sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q== lodash.isplainobject@^4.0.6: version "4.0.6" - resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" - integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + resolved "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz" + integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== lodash.merge@^4.6.2: version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== lodash@^4.17.21: version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -lru-cache@^10.2.0: - version "10.2.2" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.2.tgz#48206bc114c1252940c41b25b41af5b545aca878" - integrity sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ== +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" -magic-string@^0.30.10: - version "0.30.10" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.10.tgz#123d9c41a0cb5640c892b041d4cfb3bd0aa4b39e" - integrity sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ== +"lru-cache@^9.1.1 || ^10.0.0": + version "10.2.0" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz" + integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== + +magic-string@^0.30.5: + version "0.30.5" + resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz" + integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA== dependencies: "@jridgewell/sourcemap-codec" "^1.4.15" +make-error@^1.3.6: + version "1.3.6" + resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + markdown-it@^14.0.0: - version "14.1.0" - resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-14.1.0.tgz#3c3c5992883c633db4714ccb4d7b5935d98b7d45" - integrity sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg== + version "14.0.0" + resolved "https://registry.npmjs.org/markdown-it/-/markdown-it-14.0.0.tgz" + integrity sha512-seFjF0FIcPt4P9U39Bq1JYblX0KZCjDLFFQPHpL5AzHpqPEKtosxmdq/LTVZnjfH7tjt9BxStm+wXcDBNuYmzw== dependencies: argparse "^2.0.1" entities "^4.4.0" linkify-it "^5.0.0" mdurl "^2.0.0" punycode.js "^2.3.1" - uc.micro "^2.1.0" + uc.micro "^2.0.0" maska@^2.1.11: version "2.1.11" - resolved "https://registry.yarnpkg.com/maska/-/maska-2.1.11.tgz#71ef39a0c7121beda374f9a309bded5c129dd3f1" + resolved "https://registry.npmjs.org/maska/-/maska-2.1.11.tgz" integrity sha512-IGqWjBnKxMYcVa06pb4mPfag9sJjnR2T15CdGfQ2llR3gajiSd4AxXCvNqHMEq9W3UBhjjTazgWumsP3sWrUSg== mdurl@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-2.0.0.tgz#80676ec0433025dd3e17ee983d0fe8de5a2237e0" + resolved "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz" integrity sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w== merge2@^1.3.0: version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== micromatch@^4.0.4, micromatch@^4.0.5: - version "4.0.7" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5" - integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q== + version "4.0.5" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== dependencies: - braces "^3.0.3" + braces "^3.0.2" picomatch "^2.3.1" mime-db@1.52.0: version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== mime-types@^2.1.12: version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: mime-db "1.52.0" mini-svg-data-uri@^1.2.3, mini-svg-data-uri@^1.4.4: version "1.4.4" - resolved "https://registry.yarnpkg.com/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz#8ab0aabcdf8c29ad5693ca595af19dd2ead09939" + resolved "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz" integrity sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg== -minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.2: version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minimatch@^9.0.4: - version "9.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51" - integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== +minimatch@^9.0.1: + version "9.0.3" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== dependencies: brace-expansion "^2.0.1" -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" - integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": + version "7.0.4" + resolved "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz" + integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== moment@^2.10.2, moment@^2.30.1: version "2.30.1" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae" + resolved "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz" integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how== ms@2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== mz@^2.7.0: version "2.7.0" - resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz" integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== dependencies: any-promise "^1.0.0" @@ -1704,122 +1599,136 @@ mz@^2.7.0: nanoid@^3.3.7: version "3.3.7" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz" integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== natural-compare@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== node-releases@^2.0.14: version "2.0.14" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz" integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== normalize-range@^0.1.2: version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz" + integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== nth-check@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz" integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== dependencies: boolbase "^1.0.0" object-assign@^4.0.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== object-hash@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" + resolved "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz" integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== +object.omit@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/object.omit/-/object.omit-3.0.0.tgz" + integrity sha512-EO+BCv6LJfu+gBIF3ggLicFebFLN5zqzz/WWJlMFfkMyGth+oBkhxzDl0wx2W4GkLzuQs/FsSkXZb2IMWQqmBQ== + dependencies: + is-extendable "^1.0.0" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz" + integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== + dependencies: + isobject "^3.0.1" + once@^1.3.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" optionator@^0.9.3: - version "0.9.4" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" - integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== + version "0.9.3" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz" + integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== dependencies: + "@aashutoshrathi/word-wrap" "^1.2.3" deep-is "^0.1.3" fast-levenshtein "^2.0.6" levn "^0.4.1" prelude-ls "^1.2.1" type-check "^0.4.0" - word-wrap "^1.2.5" orderedmap@^2.0.0: version "2.1.1" - resolved "https://registry.yarnpkg.com/orderedmap/-/orderedmap-2.1.1.tgz#61481269c44031c449915497bf5a4ad273c512d2" + resolved "https://registry.npmjs.org/orderedmap/-/orderedmap-2.1.1.tgz" integrity sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g== p-limit@^3.0.2: version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: yocto-queue "^0.1.0" p-locate@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: p-limit "^3.0.2" parent-module@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: callsites "^3.0.0" path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^3.1.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-scurry@^1.11.1: - version "1.11.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" - integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== +path-scurry@^1.10.1: + version "1.10.1" + resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz" + integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== dependencies: - lru-cache "^10.2.0" + lru-cache "^9.1.1 || ^10.0.0" minipass "^5.0.0 || ^6.0.2 || ^7.0.0" path@^0.12.7: version "0.12.7" - resolved "https://registry.yarnpkg.com/path/-/path-0.12.7.tgz#d4dc2a506c4ce2197eb481ebfcd5b36c0140b10f" + resolved "https://registry.npmjs.org/path/-/path-0.12.7.tgz" integrity sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q== dependencies: process "^0.11.1" @@ -1827,22 +1736,22 @@ path@^0.12.7: picocolors@^1.0.0, picocolors@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz" integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== pify@^2.3.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== pinia@^2.1.7: version "2.1.7" - resolved "https://registry.yarnpkg.com/pinia/-/pinia-2.1.7.tgz#4cf5420d9324ca00b7b4984d3fbf693222115bbc" + resolved "https://registry.npmjs.org/pinia/-/pinia-2.1.7.tgz" integrity sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ== dependencies: "@vue/devtools-api" "^6.5.0" @@ -1850,12 +1759,12 @@ pinia@^2.1.7: pirates@^4.0.1: version "4.0.6" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" + resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz" integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== postcss-import@^15.1.0: version "15.1.0" - resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70" + resolved "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz" integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== dependencies: postcss-value-parser "^4.0.0" @@ -1864,14 +1773,14 @@ postcss-import@^15.1.0: postcss-js@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.1.tgz#61598186f3703bab052f1c4f7d805f3991bee9d2" + resolved "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz" integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw== dependencies: camelcase-css "^2.0.1" postcss-load-config@^4.0.1: version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz#7159dcf626118d33e299f485d6afe4aff7c4a3e3" + resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz" integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ== dependencies: lilconfig "^3.0.0" @@ -1879,91 +1788,99 @@ postcss-load-config@^4.0.1: postcss-nested@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.0.1.tgz#f83dc9846ca16d2f4fa864f16e9d9f7d0961662c" + resolved "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz" integrity sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ== dependencies: postcss-selector-parser "^6.0.11" -postcss-selector-parser@6.0.10: - version "6.0.10" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" - integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== +postcss-selector-parser@^6.0.11: + version "6.0.15" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz" + integrity sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.15: - version "6.1.0" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz#49694cb4e7c649299fea510a29fa6577104bcf53" - integrity sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ== +postcss-selector-parser@^6.0.13: + version "6.0.15" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz" + integrity sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-selector-parser@6.0.10: + version "6.0.10" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz" + integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.4.23, postcss@^8.4.33, postcss@^8.4.38: - version "8.4.38" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e" - integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== +postcss@^8.0.0, postcss@^8.1.0, postcss@^8.2.14, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.33, postcss@^8.4.39, postcss@>=8.0.9: + version "8.4.40" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.40.tgz" + integrity sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q== dependencies: nanoid "^3.3.7" - picocolors "^1.0.0" + picocolors "^1.0.1" source-map-js "^1.2.0" prelude-ls@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prettier@^3.2.4: - version "3.2.5" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.5.tgz#e52bc3090586e824964a8813b09aba6233b28368" - integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A== + version "3.2.4" + resolved "https://registry.npmjs.org/prettier/-/prettier-3.2.4.tgz" + integrity sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ== process@^0.11.1: version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== -prosemirror-changeset@^2.2.1: +prosemirror-changeset@^2.2.0: version "2.2.1" - resolved "https://registry.yarnpkg.com/prosemirror-changeset/-/prosemirror-changeset-2.2.1.tgz#dae94b63aec618fac7bb9061648e6e2a79988383" + resolved "https://registry.npmjs.org/prosemirror-changeset/-/prosemirror-changeset-2.2.1.tgz" integrity sha512-J7msc6wbxB4ekDFj+n9gTW/jav/p53kdlivvuppHsrZXCaQdVgRghoZbSS3kwrRyAstRVQ4/+u5k7YfLgkkQvQ== dependencies: prosemirror-transform "^1.0.0" -prosemirror-collab@^1.3.1: +prosemirror-collab@^1.3.0: version "1.3.1" - resolved "https://registry.yarnpkg.com/prosemirror-collab/-/prosemirror-collab-1.3.1.tgz#0e8c91e76e009b53457eb3b3051fb68dad029a33" + resolved "https://registry.npmjs.org/prosemirror-collab/-/prosemirror-collab-1.3.1.tgz" integrity sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ== dependencies: prosemirror-state "^1.0.0" -prosemirror-commands@^1.0.0, prosemirror-commands@^1.5.2: +prosemirror-commands@^1.0.0, prosemirror-commands@^1.3.1: version "1.5.2" - resolved "https://registry.yarnpkg.com/prosemirror-commands/-/prosemirror-commands-1.5.2.tgz#e94aeea52286f658cd984270de9b4c3fff580852" + resolved "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.5.2.tgz" integrity sha512-hgLcPaakxH8tu6YvVAaILV2tXYsW3rAdDR8WNkeKGcgeMVQg3/TMhPdVoh7iAmfgVjZGtcOSjKiQaoeKjzd2mQ== dependencies: prosemirror-model "^1.0.0" prosemirror-state "^1.0.0" prosemirror-transform "^1.0.0" -prosemirror-dropcursor@^1.8.1: +prosemirror-dropcursor@^1.5.0: version "1.8.1" - resolved "https://registry.yarnpkg.com/prosemirror-dropcursor/-/prosemirror-dropcursor-1.8.1.tgz#49b9fb2f583e0d0f4021ff87db825faa2be2832d" + resolved "https://registry.npmjs.org/prosemirror-dropcursor/-/prosemirror-dropcursor-1.8.1.tgz" integrity sha512-M30WJdJZLyXHi3N8vxN6Zh5O8ZBbQCz0gURTfPmTIBNQ5pxrdU7A58QkNqfa98YEjSAL1HUyyU34f6Pm5xBSGw== dependencies: prosemirror-state "^1.0.0" prosemirror-transform "^1.1.0" prosemirror-view "^1.1.0" -prosemirror-gapcursor@^1.3.2: +prosemirror-gapcursor@^1.3.1: version "1.3.2" - resolved "https://registry.yarnpkg.com/prosemirror-gapcursor/-/prosemirror-gapcursor-1.3.2.tgz#5fa336b83789c6199a7341c9493587e249215cb4" + resolved "https://registry.npmjs.org/prosemirror-gapcursor/-/prosemirror-gapcursor-1.3.2.tgz" integrity sha512-wtjswVBd2vaQRrnYZaBCbyDqr232Ed4p2QPtRIUK5FuqHYKGWkEwl08oQM4Tw7DOR0FsasARV5uJFvMZWxdNxQ== dependencies: prosemirror-keymap "^1.0.0" @@ -1971,43 +1888,43 @@ prosemirror-gapcursor@^1.3.2: prosemirror-state "^1.0.0" prosemirror-view "^1.0.0" -prosemirror-history@^1.0.0, prosemirror-history@^1.3.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/prosemirror-history/-/prosemirror-history-1.4.0.tgz#1edbce630aaf21b808e5a5cd798a09976ecb1827" - integrity sha512-UUiGzDVcqo1lovOPdi9YxxUps3oBFWAIYkXLu3Ot+JPv1qzVogRbcizxK3LhHmtaUxclohgiOVesRw5QSlMnbQ== +prosemirror-history@^1.0.0, prosemirror-history@^1.3.0: + version "1.3.2" + resolved "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.3.2.tgz" + integrity sha512-/zm0XoU/N/+u7i5zepjmZAEnpvjDtzoPWW6VmKptcAnPadN/SStsBjMImdCEbb3seiNTpveziPTIrXQbHLtU1g== dependencies: prosemirror-state "^1.2.2" prosemirror-transform "^1.0.0" prosemirror-view "^1.31.0" rope-sequence "^1.3.0" -prosemirror-inputrules@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/prosemirror-inputrules/-/prosemirror-inputrules-1.4.0.tgz#ef1519bb2cb0d1e0cec74bad1a97f1c1555068bb" - integrity sha512-6ygpPRuTJ2lcOXs9JkefieMst63wVJBgHZGl5QOytN7oSZs3Co/BYbc3Yx9zm9H37Bxw8kVzCnDsihsVsL4yEg== +prosemirror-inputrules@^1.2.0: + version "1.3.0" + resolved "https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.3.0.tgz" + integrity sha512-z1GRP2vhh5CihYMQYsJSa1cOwXb3SYxALXOIfAkX8nZserARtl9LiL+CEl+T+OFIsXc3mJIHKhbsmRzC0HDAXA== dependencies: prosemirror-state "^1.0.0" prosemirror-transform "^1.0.0" -prosemirror-keymap@^1.0.0, prosemirror-keymap@^1.1.2, prosemirror-keymap@^1.2.2: +prosemirror-keymap@^1.0.0, prosemirror-keymap@^1.1.2, prosemirror-keymap@^1.2.0: version "1.2.2" - resolved "https://registry.yarnpkg.com/prosemirror-keymap/-/prosemirror-keymap-1.2.2.tgz#14a54763a29c7b2704f561088ccf3384d14eb77e" + resolved "https://registry.npmjs.org/prosemirror-keymap/-/prosemirror-keymap-1.2.2.tgz" integrity sha512-EAlXoksqC6Vbocqc0GtzCruZEzYgrn+iiGnNjsJsH4mrnIGex4qbLdWWNza3AW5W36ZRrlBID0eM6bdKH4OStQ== dependencies: prosemirror-state "^1.0.0" w3c-keyname "^2.2.0" -prosemirror-markdown@^1.12.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/prosemirror-markdown/-/prosemirror-markdown-1.13.0.tgz#67ebfa40af48a22d1e4ed6cad2e29851eb61e649" - integrity sha512-UziddX3ZYSYibgx8042hfGKmukq5Aljp2qoBiJRejD/8MH70siQNz5RB1TrdTPheqLMy4aCe4GYNF10/3lQS5g== +prosemirror-markdown@^1.10.1: + version "1.12.0" + resolved "https://registry.npmjs.org/prosemirror-markdown/-/prosemirror-markdown-1.12.0.tgz" + integrity sha512-6F5HS8Z0HDYiS2VQDZzfZP6A0s/I0gbkJy8NCzzDMtcsz3qrfqyroMMeoSjAmOhDITyon11NbXSzztfKi+frSQ== dependencies: markdown-it "^14.0.0" - prosemirror-model "^1.20.0" + prosemirror-model "^1.0.0" -prosemirror-menu@^1.2.4: +prosemirror-menu@^1.2.1: version "1.2.4" - resolved "https://registry.yarnpkg.com/prosemirror-menu/-/prosemirror-menu-1.2.4.tgz#3cfdc7c06d10f9fbd1bce29082c498bd11a0a79a" + resolved "https://registry.npmjs.org/prosemirror-menu/-/prosemirror-menu-1.2.4.tgz" integrity sha512-S/bXlc0ODQup6aiBbWVsX/eM+xJgCTAfMq/nLqaO5ID/am4wS0tTCIkzwytmao7ypEtjj39i7YbJjAgO20mIqA== dependencies: crelt "^1.0.0" @@ -2015,42 +1932,42 @@ prosemirror-menu@^1.2.4: prosemirror-history "^1.0.0" prosemirror-state "^1.0.0" -prosemirror-model@^1.0.0, prosemirror-model@^1.19.0, prosemirror-model@^1.19.4, prosemirror-model@^1.20.0, prosemirror-model@^1.21.0, prosemirror-model@^1.8.1: - version "1.21.0" - resolved "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-1.21.0.tgz#2d69ed04b4e7c441c3eb87c1c964fab4f9b217df" - integrity sha512-zLpS1mVCZLA7VTp82P+BfMiYVPcX1/z0Mf3gsjKZtzMWubwn2pN7CceMV0DycjlgE5JeXPR7UF4hJPbBV98oWA== +prosemirror-model@^1.0.0, prosemirror-model@^1.16.0, prosemirror-model@^1.18.1, prosemirror-model@^1.19.0, prosemirror-model@^1.8.1: + version "1.19.4" + resolved "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.19.4.tgz" + integrity sha512-RPmVXxUfOhyFdayHawjuZCxiROsm9L4FCUA6pWI+l7n2yCBsWy9VpdE1hpDHUS8Vad661YLY9AzqfjLhAKQ4iQ== dependencies: orderedmap "^2.0.0" -prosemirror-schema-basic@^1.2.2: +prosemirror-schema-basic@^1.2.0: version "1.2.2" - resolved "https://registry.yarnpkg.com/prosemirror-schema-basic/-/prosemirror-schema-basic-1.2.2.tgz#6695f5175e4628aab179bf62e5568628b9cfe6c7" + resolved "https://registry.npmjs.org/prosemirror-schema-basic/-/prosemirror-schema-basic-1.2.2.tgz" integrity sha512-/dT4JFEGyO7QnNTe9UaKUhjDXbTNkiWTq/N4VpKaF79bBjSExVV2NXmJpcM7z/gD7mbqNjxbmWW5nf1iNSSGnw== dependencies: prosemirror-model "^1.19.0" -prosemirror-schema-list@^1.3.0: +prosemirror-schema-list@^1.2.2: version "1.3.0" - resolved "https://registry.yarnpkg.com/prosemirror-schema-list/-/prosemirror-schema-list-1.3.0.tgz#05374702cf35a3ba5e7ec31079e355a488d52519" + resolved "https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.3.0.tgz" integrity sha512-Hz/7gM4skaaYfRPNgr421CU4GSwotmEwBVvJh5ltGiffUJwm7C8GfN/Bc6DR1EKEp5pDKhODmdXXyi9uIsZl5A== dependencies: prosemirror-model "^1.0.0" prosemirror-state "^1.0.0" prosemirror-transform "^1.7.3" -prosemirror-state@^1.0.0, prosemirror-state@^1.2.2, prosemirror-state@^1.3.1, prosemirror-state@^1.4.3: +prosemirror-state@^1.0.0, prosemirror-state@^1.2.2, prosemirror-state@^1.3.1, prosemirror-state@^1.4.1, prosemirror-state@^1.4.2: version "1.4.3" - resolved "https://registry.yarnpkg.com/prosemirror-state/-/prosemirror-state-1.4.3.tgz#94aecf3ffd54ec37e87aa7179d13508da181a080" + resolved "https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.4.3.tgz" integrity sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q== dependencies: prosemirror-model "^1.0.0" prosemirror-transform "^1.0.0" prosemirror-view "^1.27.0" -prosemirror-tables@^1.3.5: - version "1.3.7" - resolved "https://registry.yarnpkg.com/prosemirror-tables/-/prosemirror-tables-1.3.7.tgz#9d296bd432d2bc7dca90f14e5c3b5c5f61277f7a" - integrity sha512-oEwX1wrziuxMtwFvdDWSFHVUWrFJWt929kVVfHvtTi8yvw+5ppxjXZkMG/fuTdFo+3DXyIPSKfid+Be1npKXDA== +prosemirror-tables@^1.3.0: + version "1.3.5" + resolved "https://registry.npmjs.org/prosemirror-tables/-/prosemirror-tables-1.3.5.tgz" + integrity sha512-JSZ2cCNlApu/ObAhdPyotrjBe2cimniniTpz60YXzbL0kZ+47nEYk2LWbfKU2lKpBkUNquta2PjteoNi4YCluQ== dependencies: prosemirror-keymap "^1.1.2" prosemirror-model "^1.8.1" @@ -2058,67 +1975,68 @@ prosemirror-tables@^1.3.5: prosemirror-transform "^1.2.1" prosemirror-view "^1.13.3" -prosemirror-trailing-node@^2.0.7: - version "2.0.8" - resolved "https://registry.yarnpkg.com/prosemirror-trailing-node/-/prosemirror-trailing-node-2.0.8.tgz#233ddcbda72de06f9b5d758d2a65a8cac482ea10" - integrity sha512-ujRYhSuhQb1Jsarh1IHqb2KoSnRiD7wAMDGucP35DN7j5af6X7B18PfdPIrbwsPTqIAj0fyOvxbuPsWhNvylmA== +prosemirror-trailing-node@^2.0.2: + version "2.0.7" + resolved "https://registry.npmjs.org/prosemirror-trailing-node/-/prosemirror-trailing-node-2.0.7.tgz" + integrity sha512-8zcZORYj/8WEwsGo6yVCRXFMOfBo0Ub3hCUvmoWIZYfMP26WqENU0mpEP27w7mt8buZWuGrydBewr0tOArPb1Q== dependencies: "@remirror/core-constants" "^2.0.2" + "@remirror/core-helpers" "^3.0.0" escape-string-regexp "^4.0.0" -prosemirror-transform@^1.0.0, prosemirror-transform@^1.1.0, prosemirror-transform@^1.2.1, prosemirror-transform@^1.7.3, prosemirror-transform@^1.8.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-1.9.0.tgz#81fd1fbd887929a95369e6dd3d240c23c19313f8" - integrity sha512-5UXkr1LIRx3jmpXXNKDhv8OyAOeLTGuXNwdVfg8x27uASna/wQkr9p6fD3eupGOi4PLJfbezxTyi/7fSJypXHg== +prosemirror-transform@^1.0.0, prosemirror-transform@^1.1.0, prosemirror-transform@^1.2.1, prosemirror-transform@^1.7.0, prosemirror-transform@^1.7.3: + version "1.8.0" + resolved "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.8.0.tgz" + integrity sha512-BaSBsIMv52F1BVVMvOmp1yzD3u65uC3HTzCBQV1WDPqJRQ2LuHKcyfn0jwqodo8sR9vVzMzZyI+Dal5W9E6a9A== dependencies: - prosemirror-model "^1.21.0" + prosemirror-model "^1.0.0" -prosemirror-view@^1.0.0, prosemirror-view@^1.1.0, prosemirror-view@^1.13.3, prosemirror-view@^1.27.0, prosemirror-view@^1.31.0, prosemirror-view@^1.32.7: - version "1.33.7" - resolved "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.33.7.tgz#fd9841a79a4bc517914a57456370b941bd655729" - integrity sha512-jo6eMQCtPRwcrA2jISBCnm0Dd2B+szS08BU1Ay+XGiozHo5EZMHfLQE8R5nO4vb1spTH2RW1woZIYXRiQsuP8g== +prosemirror-view@^1.0.0, prosemirror-view@^1.1.0, prosemirror-view@^1.13.3, prosemirror-view@^1.27.0, prosemirror-view@^1.28.2, prosemirror-view@^1.31.0, prosemirror-view@^1.31.2: + version "1.32.7" + resolved "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.32.7.tgz" + integrity sha512-pvxiOoD4shW41X5bYDjRQk3DSG4fMqxh36yPMt7VYgU3dWRmqFzWJM/R6zeo1KtC8nyk717ZbQND3CC9VNeptw== dependencies: - prosemirror-model "^1.20.0" + prosemirror-model "^1.16.0" prosemirror-state "^1.0.0" prosemirror-transform "^1.1.0" punycode.js@^2.3.1: version "2.3.1" - resolved "https://registry.yarnpkg.com/punycode.js/-/punycode.js-2.3.1.tgz#6b53e56ad75588234e79f4affa90972c7dd8cdb7" + resolved "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz" integrity sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA== punycode@^2.1.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" - integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + version "2.1.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== queue-microtask@^1.2.2: version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== read-cache@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + resolved "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz" integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== dependencies: pify "^2.3.0" readdirp@~3.6.0: version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" resolve-from@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve@^1.1.7, resolve@^1.22.2: version "1.22.8" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== dependencies: is-core-module "^2.13.0" @@ -2127,97 +2045,108 @@ resolve@^1.1.7, resolve@^1.22.2: reusify@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== rimraf@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" rollup@^4.13.0: - version "4.18.0" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.18.0.tgz#497f60f0c5308e4602cf41136339fbf87d5f5dda" - integrity sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg== + version "4.19.1" + resolved "https://registry.npmjs.org/rollup/-/rollup-4.19.1.tgz" + integrity sha512-K5vziVlg7hTpYfFBI+91zHBEMo6jafYXpkMlqZjg7/zhIG9iHqazBf4xz9AVdjS9BruRn280ROqLI7G3OFRIlw== dependencies: "@types/estree" "1.0.5" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.18.0" - "@rollup/rollup-android-arm64" "4.18.0" - "@rollup/rollup-darwin-arm64" "4.18.0" - "@rollup/rollup-darwin-x64" "4.18.0" - "@rollup/rollup-linux-arm-gnueabihf" "4.18.0" - "@rollup/rollup-linux-arm-musleabihf" "4.18.0" - "@rollup/rollup-linux-arm64-gnu" "4.18.0" - "@rollup/rollup-linux-arm64-musl" "4.18.0" - "@rollup/rollup-linux-powerpc64le-gnu" "4.18.0" - "@rollup/rollup-linux-riscv64-gnu" "4.18.0" - "@rollup/rollup-linux-s390x-gnu" "4.18.0" - "@rollup/rollup-linux-x64-gnu" "4.18.0" - "@rollup/rollup-linux-x64-musl" "4.18.0" - "@rollup/rollup-win32-arm64-msvc" "4.18.0" - "@rollup/rollup-win32-ia32-msvc" "4.18.0" - "@rollup/rollup-win32-x64-msvc" "4.18.0" + "@rollup/rollup-android-arm-eabi" "4.19.1" + "@rollup/rollup-android-arm64" "4.19.1" + "@rollup/rollup-darwin-arm64" "4.19.1" + "@rollup/rollup-darwin-x64" "4.19.1" + "@rollup/rollup-linux-arm-gnueabihf" "4.19.1" + "@rollup/rollup-linux-arm-musleabihf" "4.19.1" + "@rollup/rollup-linux-arm64-gnu" "4.19.1" + "@rollup/rollup-linux-arm64-musl" "4.19.1" + "@rollup/rollup-linux-powerpc64le-gnu" "4.19.1" + "@rollup/rollup-linux-riscv64-gnu" "4.19.1" + "@rollup/rollup-linux-s390x-gnu" "4.19.1" + "@rollup/rollup-linux-x64-gnu" "4.19.1" + "@rollup/rollup-linux-x64-musl" "4.19.1" + "@rollup/rollup-win32-arm64-msvc" "4.19.1" + "@rollup/rollup-win32-ia32-msvc" "4.19.1" + "@rollup/rollup-win32-x64-msvc" "4.19.1" fsevents "~2.3.2" rope-sequence@^1.3.0: version "1.3.4" - resolved "https://registry.yarnpkg.com/rope-sequence/-/rope-sequence-1.3.4.tgz#df85711aaecd32f1e756f76e43a415171235d425" + resolved "https://registry.npmjs.org/rope-sequence/-/rope-sequence-1.3.4.tgz" integrity sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ== run-parallel@^1.1.9: version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== dependencies: queue-microtask "^1.2.2" -sass@^1.70.0: - version "1.77.4" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.77.4.tgz#92059c7bfc56b827c56eb116778d157ec017a5cd" - integrity sha512-vcF3Ckow6g939GMA4PeU7b2K/9FALXk2KF9J87txdHzXbUF9XRQRwSxcAs/fGaTnJeBFd7UoV22j3lzMLdM0Pw== +sass@*, sass@^1.70.0: + version "1.70.0" + resolved "https://registry.npmjs.org/sass/-/sass-1.70.0.tgz" + integrity sha512-uUxNQ3zAHeAx5nRFskBnrWzDUJrrvpCPD5FNAoRvTi0WwremlheES3tg+56PaVtCs5QDRX5CBLxxKMDJMEa1WQ== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" source-map-js ">=0.6.2 <2.0.0" -semver@^7.3.6, semver@^7.6.0: - version "7.6.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13" - integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== +semver@^7.3.6, semver@^7.5.4: + version "7.5.4" + resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + dependencies: + lru-cache "^6.0.0" shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== signal-exit@^4.0.1: version "4.1.0" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== sortablejs@1.14.0: version "1.14.0" - resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.14.0.tgz#6d2e17ccbdb25f464734df621d4f35d4ab35b3d8" + resolved "https://registry.npmjs.org/sortablejs/-/sortablejs-1.14.0.tgz" integrity sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w== -"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2, source-map-js@^1.2.0: +source-map-js@^1.0.2, source-map-js@^1.2.0, "source-map-js@>=0.6.2 <2.0.0": version "1.2.0" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" + resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz" integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0: +"string-width-cjs@npm:string-width@^4.2.0": version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^4.1.0: + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" @@ -2226,35 +2155,42 @@ sortablejs@1.14.0: string-width@^5.0.1, string-width@^5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz" integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== dependencies: eastasianwidth "^0.2.0" emoji-regex "^9.2.2" strip-ansi "^7.0.1" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" strip-ansi@^7.0.1: version "7.1.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz" integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== dependencies: ansi-regex "^6.0.1" strip-json-comments@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== sucrase@^3.32.0: version "3.35.0" - resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.35.0.tgz#57f17a3d7e19b36d8995f06679d121be914ae263" + resolved "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz" integrity sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA== dependencies: "@jridgewell/gen-mapping" "^0.3.2" @@ -2267,25 +2203,25 @@ sucrase@^3.32.0: supports-color@^7.1.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== tailwind-scrollbar@^3.0.5: - version "3.1.0" - resolved "https://registry.yarnpkg.com/tailwind-scrollbar/-/tailwind-scrollbar-3.1.0.tgz#ff7596407b6da5209261d8ff03860ab9206a59e3" - integrity sha512-pmrtDIZeHyu2idTejfV59SbaJyvp1VRjYxAjZBH0jnyrPRo6HL1kD5Glz8VPagasqr6oAx6M05+Tuw429Z8jxg== + version "3.0.5" + resolved "https://registry.npmjs.org/tailwind-scrollbar/-/tailwind-scrollbar-3.0.5.tgz" + integrity sha512-0ZwxTivevqq9BY9fRP9zDjHl7Tu+J5giBGbln+0O1R/7nHtBUKnjQcA1aTIhK7Oyjp6Uc/Dj6/dn8Dq58k5Uww== -tailwindcss@^3.4.1: - version "3.4.3" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.3.tgz#be48f5283df77dfced705451319a5dffb8621519" - integrity sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A== +"tailwindcss@^1.2 || ^2.0 || ^3.0", tailwindcss@^3.4.1, "tailwindcss@>=2.0.0 || >=3.0.0 || >=3.0.0-alpha.1", "tailwindcss@>=3.0.0 || >= 3.0.0-alpha.1", "tailwindcss@>=3.0.0 || insiders", tailwindcss@3.x: + version "3.4.1" + resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.1.tgz" + integrity sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA== dependencies: "@alloc/quick-lru" "^5.2.0" arg "^5.0.2" @@ -2295,7 +2231,7 @@ tailwindcss@^3.4.1: fast-glob "^3.3.0" glob-parent "^6.0.2" is-glob "^4.0.3" - jiti "^1.21.0" + jiti "^1.19.1" lilconfig "^2.1.0" micromatch "^4.0.5" normalize-path "^3.0.0" @@ -2312,99 +2248,109 @@ tailwindcss@^3.4.1: text-table@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== thenify-all@^1.0.0: version "1.6.0" - resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + resolved "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz" integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== dependencies: thenify ">= 3.1.0 < 4" "thenify@>= 3.1.0 < 4": version "3.3.1" - resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + resolved "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz" integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== dependencies: any-promise "^1.0.0" +throttle-debounce@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-3.0.1.tgz" + integrity sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg== + tippy.js@^6.3.7: version "6.3.7" - resolved "https://registry.yarnpkg.com/tippy.js/-/tippy.js-6.3.7.tgz#8ccfb651d642010ed9a32ff29b0e9e19c5b8c61c" + resolved "https://registry.npmjs.org/tippy.js/-/tippy.js-6.3.7.tgz" integrity sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ== dependencies: "@popperjs/core" "^2.9.0" to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" ts-interface-checker@^0.1.9: version "0.1.13" - resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" + resolved "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz" integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== dependencies: prelude-ls "^1.2.1" type-fest@^0.20.2: version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -uc.micro@^2.0.0, uc.micro@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-2.1.0.tgz#f8d3f7d0ec4c3dea35a7e3c8efa4cb8b45c9e7ee" - integrity sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A== +type-fest@^2.19.0: + version "2.19.0" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz" + integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== + +uc.micro@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-2.0.0.tgz" + integrity sha512-DffL94LsNOccVn4hyfRe5rdKa273swqeA5DJpMOeFmEn1wCDc7nAbbB0gXlgBCL7TNzeTv6G7XVWzan7iJtfig== undici-types@~5.26.4: version "5.26.5" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz" integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== update-browserslist-db@^1.0.13: - version "1.0.16" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz#f6d489ed90fb2f07d67784eb3f53d7891f736356" - integrity sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ== + 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== dependencies: - escalade "^3.1.2" - picocolors "^1.0.1" + escalade "^3.1.1" + picocolors "^1.0.0" uri-js@^4.2.2: version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" util-deprecate@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== util@^0.10.3: version "0.10.4" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" + resolved "https://registry.npmjs.org/util/-/util-0.10.4.tgz" integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== dependencies: inherits "2.0.3" v-money3@^3.24.1: version "3.24.1" - resolved "https://registry.yarnpkg.com/v-money3/-/v-money3-3.24.1.tgz#4996d233fe1c3202f7f52e27abe89df8be4d898e" + resolved "https://registry.npmjs.org/v-money3/-/v-money3-3.24.1.tgz" integrity sha512-nGnxS06jkNsVzkuMQJ/0we6PSA4HO7jH1B7NeCF3Tv7Xm61poEUW7D1fdXXWR0IWLWneMSsCt3d4YQo6fTeBZA== v-tooltip@^4.0.0-beta.17: version "4.0.0-beta.17" - resolved "https://registry.yarnpkg.com/v-tooltip/-/v-tooltip-4.0.0-beta.17.tgz#914ab8fe801c2c45f1328f1260b770ec2049da64" + resolved "https://registry.npmjs.org/v-tooltip/-/v-tooltip-4.0.0-beta.17.tgz" integrity sha512-d7v/6KEXQOtcj3NT3Z1LpbDv8SBh8JgbsD+3s/zGIGCxiXC2SoVW6wGV4X0MlCo97PiosibcSe+VKbFiy4AKnQ== dependencies: "@popperjs/core" "^2.11.0" @@ -2412,36 +2358,41 @@ v-tooltip@^4.0.0-beta.17: vite-plugin-full-reload@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/vite-plugin-full-reload/-/vite-plugin-full-reload-1.1.0.tgz#ca6fa32631024a459ea9e5613dd4c0ff0f3b7995" + resolved "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.1.0.tgz" integrity sha512-3cObNDzX6DdfhD9E7kf6w2mNunFpD7drxyNgHLw+XwIYAgb+Xt16SEXo0Up4VH+TMf3n+DSVJZtW2POBGcBYAA== dependencies: picocolors "^1.0.0" picomatch "^2.3.1" -vite@^5.0.0: - version "5.2.12" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.2.12.tgz#3536c93c58ba18edea4915a2ac573e6537409d97" - integrity sha512-/gC8GxzxMK5ntBwb48pR32GGhENnjtY30G4A0jemunsBkiEZFw60s8InGpN8gkhHEkjnRK1aSAxeQgwvFhUHAA== +vite@^5.0.0, vite@5.3.5: + version "5.3.5" + resolved "https://registry.npmjs.org/vite/-/vite-5.3.5.tgz" + integrity sha512-MdjglKR6AQXQb9JGiS7Rc2wC6uMjcm7Go/NHNO63EwiJXfuk9PgqiP/n5IDJCziMkfw9n4Ubp7lttNwz+8ZVKA== dependencies: - esbuild "^0.20.1" - postcss "^8.4.38" + esbuild "^0.21.3" + postcss "^8.4.39" rollup "^4.13.0" optionalDependencies: fsevents "~2.3.3" -vue-demi@>=0.14.5, vue-demi@>=0.14.7: - version "0.14.8" - resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.8.tgz#00335e9317b45e4a68d3528aaf58e0cec3d5640a" - integrity sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q== - vue-demi@^0.13.11: version "0.13.11" - resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.13.11.tgz#7d90369bdae8974d87b1973564ad390182410d99" + resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz" integrity sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A== -vue-eslint-parser@^9.4.2: +vue-demi@>=0.14.5: + version "0.14.6" + resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz" + integrity sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w== + +vue-demi@>=0.14.6: + version "0.14.6" + resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz" + integrity sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w== + +vue-eslint-parser@^9.4.0: version "9.4.2" - resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.4.2.tgz#02ffcce82042b082292f2d1672514615f0d95b6d" + resolved "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.2.tgz" integrity sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ== dependencies: debug "^4.3.4" @@ -2453,71 +2404,66 @@ vue-eslint-parser@^9.4.2: semver "^7.3.6" vue-flatpickr-component@^11.0.3: - version "11.0.5" - resolved "https://registry.yarnpkg.com/vue-flatpickr-component/-/vue-flatpickr-component-11.0.5.tgz#a9300718a7556cec2ed09c8eabb6e0c3de5114ca" - integrity sha512-Vfwg5uVU+sanKkkLzUGC5BUlWd5wlqAMq/UpQ6lI2BCZq0DDrXhOMX7hrevt8bEgglIq2QUv0K2Nl84Me/VnlA== + version "11.0.3" + resolved "https://registry.npmjs.org/vue-flatpickr-component/-/vue-flatpickr-component-11.0.3.tgz" + integrity sha512-SYNW/lqK1q9gzr5kQpNDwnlgUIDnXJpG1AmoDxVyOYVtUD7mLaDU1w+MJLFI644NYtwh9NrCt5LpojlsjtbvqA== dependencies: flatpickr "^4.6.13" vue-i18n@^9.9.0: - version "9.13.1" - resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-9.13.1.tgz#a292c8021b7be604ebfca5609ae1f8fafe5c36d7" - integrity sha512-mh0GIxx0wPtPlcB1q4k277y0iKgo25xmDPWioVVYanjPufDBpvu5ySTjP5wOrSvlYQ2m1xI+CFhGdauv/61uQg== + version "9.9.0" + resolved "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.9.0.tgz" + integrity sha512-xQ5SxszUAqK5n84N+uUyHH/PiQl9xZ24FOxyAaNonmOQgXeN+rD9z/6DStOpOxNFQn4Cgcquot05gZc+CdOujA== dependencies: - "@intlify/core-base" "9.13.1" - "@intlify/shared" "9.13.1" + "@intlify/core-base" "9.9.0" + "@intlify/shared" "9.9.0" "@vue/devtools-api" "^6.5.0" vue-resize@^2.0.0-alpha.1: version "2.0.0-alpha.1" - resolved "https://registry.yarnpkg.com/vue-resize/-/vue-resize-2.0.0-alpha.1.tgz#43eeb79e74febe932b9b20c5c57e0ebc14e2df3a" + resolved "https://registry.npmjs.org/vue-resize/-/vue-resize-2.0.0-alpha.1.tgz" integrity sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg== vue-router@^4.2.5: - version "4.3.2" - resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.3.2.tgz#08096c7765dacc6832f58e35f7a081a8b34116a7" - integrity sha512-hKQJ1vDAZ5LVkKEnHhmm1f9pMiWIBNGF5AwU67PdH7TyXCj/a4hTccuUuYCAMgJK6rO/NVYtQIEN3yL8CECa7Q== + version "4.2.5" + resolved "https://registry.npmjs.org/vue-router/-/vue-router-4.2.5.tgz" + integrity sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw== dependencies: - "@vue/devtools-api" "^6.5.1" + "@vue/devtools-api" "^6.5.0" -vue@^3.4: - version "3.4.27" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.4.27.tgz#40b7d929d3e53f427f7f5945386234d2854cc2a1" - integrity sha512-8s/56uK6r01r1icG/aEOHqyMVxd1bkYcSe9j8HcKtr/xTOFWvnzIVTehNW+5Yt89f+DLBe4A569pnZLS5HzAMA== +"vue@^2.0.0 || >=3.0.0", "vue@^2.6.14 || ^3.3.0", "vue@^2.7.0 || ^3.0.0", vue@^3.0.0, "vue@^3.0.0-0 || ^2.6.0", vue@^3.0.1, vue@^3.0.11, vue@^3.2.0, vue@^3.2.25, vue@^3.4, "vue@>= 3", "vue@>= 3.2.0", vue@3.4.15: + version "3.4.15" + resolved "https://registry.npmjs.org/vue/-/vue-3.4.15.tgz" + integrity sha512-jC0GH4KkWLWJOEQjOpkqU1bQsBwf4R1rsFtw5GQJbjHVKWDzO6P0nWWBTmjp1xSemAioDFj1jdaK1qa3DnMQoQ== dependencies: - "@vue/compiler-dom" "3.4.27" - "@vue/compiler-sfc" "3.4.27" - "@vue/runtime-dom" "3.4.27" - "@vue/server-renderer" "3.4.27" - "@vue/shared" "3.4.27" + "@vue/compiler-dom" "3.4.15" + "@vue/compiler-sfc" "3.4.15" + "@vue/runtime-dom" "3.4.15" + "@vue/server-renderer" "3.4.15" + "@vue/shared" "3.4.15" vuedraggable@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/vuedraggable/-/vuedraggable-4.1.0.tgz#edece68adb8a4d9e06accff9dfc9040e66852270" + resolved "https://registry.npmjs.org/vuedraggable/-/vuedraggable-4.1.0.tgz" integrity sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww== dependencies: sortablejs "1.14.0" w3c-keyname@^2.2.0: version "2.2.8" - resolved "https://registry.yarnpkg.com/w3c-keyname/-/w3c-keyname-2.2.8.tgz#7b17c8c6883d4e8b86ac8aba79d39e880f8869c5" + resolved "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz" integrity sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ== which@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" -word-wrap@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" - integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== - "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -2526,7 +2472,7 @@ word-wrap@^1.2.5: wrap-ansi@^8.1.0: version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz" integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== dependencies: ansi-styles "^6.1.0" @@ -2535,20 +2481,25 @@ wrap-ansi@^8.1.0: wrappy@1: version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== xml-name-validator@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" + resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz" integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + yaml@^2.3.4: - version "2.4.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.2.tgz#7a2b30f2243a5fc299e1f14ca58d475ed4bc5362" - integrity sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA== + version "2.3.4" + resolved "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz" + integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== yocto-queue@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From 6422da193be26c75f15041d6661ed7063ea358f6 Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Mon, 29 Jul 2024 13:01:43 +0200 Subject: [PATCH 42/50] Improve .dev/php/entrypoint permissions setting --- .dev/php/entrypoint.sh | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/.dev/php/entrypoint.sh b/.dev/php/entrypoint.sh index 90623f0a..22575bf0 100755 --- a/.dev/php/entrypoint.sh +++ b/.dev/php/entrypoint.sh @@ -6,32 +6,39 @@ echo "############################################" cd /home/invoiceshelf/app -chmod 775 storage/framework -chmod 775 storage/logs -chmod 775 bootstrap/cache - -chown -R ${UID}:${GID} /home/invoiceshelf/app - -chmod +x artisan +# Composer build if [ ! -d vendor ]; then composer install fi +# Empty sqlite database if [ ! -f database/database.sqlite ]; then cp database/stubs/sqlite.empty.db database/database.sqlite fi +# .env file set up if [ ! -f .env ]; then cp .env.example .env php artisan key:generate --force fi +# NPM build if [ ! -d node_modules ]; then npm install npm run build fi +# Storage symlink php artisan storage:link +# Permissions +chmod 775 storage/framework +chmod 775 storage/logs +chmod 775 bootstrap/cache +chown -R ${UID}:${GID} /home/invoiceshelf/app +chmod +x artisan + +echo "Entrypoint complete." + exec $@ From 56a555bc4a1506f11e0aea6dc9641ec39b1123a2 Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Mon, 29 Jul 2024 14:06:21 +0200 Subject: [PATCH 43/50] Fix installer wizard step highlighting --- resources/scripts/admin/views/installation/Installation.vue | 4 ++-- resources/scripts/components/base/BaseWizardNavigation.vue | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/scripts/admin/views/installation/Installation.vue b/resources/scripts/admin/views/installation/Installation.vue index af539165..cea45b8c 100644 --- a/resources/scripts/admin/views/installation/Installation.vue +++ b/resources/scripts/admin/views/installation/Installation.vue @@ -9,7 +9,7 @@ /> @@ -48,7 +48,7 @@ export default { setup() { let stepComponent = ref('step_0') - let currentStepNumber = ref(1) + let currentStepNumber = ref(0) const router = useRouter() const installationStore = useInstallationStore() diff --git a/resources/scripts/components/base/BaseWizardNavigation.vue b/resources/scripts/components/base/BaseWizardNavigation.vue index 79dc9329..cc99830a 100644 --- a/resources/scripts/components/base/BaseWizardNavigation.vue +++ b/resources/scripts/components/base/BaseWizardNavigation.vue @@ -15,13 +15,13 @@ Date: Mon, 29 Jul 2024 14:20:43 +0200 Subject: [PATCH 44/50] Add database overwrite checkbox on Install wizard Allows overwriting the existing database when installing InvoiceShelf --- app/Space/EnvironmentManager.php | 5 ++++- lang/en.json | 1 + resources/scripts/admin/stores/installation.js | 1 + .../admin/views/installation/database/MysqlDatabase.vue | 7 +++++++ .../admin/views/installation/database/PgsqlDatabase.vue | 5 +++++ 5 files changed, 18 insertions(+), 1 deletion(-) diff --git a/app/Space/EnvironmentManager.php b/app/Space/EnvironmentManager.php index 5795b922..24e5c905 100755 --- a/app/Space/EnvironmentManager.php +++ b/app/Space/EnvironmentManager.php @@ -7,6 +7,7 @@ use App\Http\Requests\DiskEnvironmentRequest; use App\Http\Requests\DomainEnvironmentRequest; use App\Http\Requests\MailEnvironmentRequest; use Exception; +use Illuminate\Support\Facades\Artisan; use Illuminate\Support\Facades\DB; class EnvironmentManager @@ -149,7 +150,9 @@ class EnvironmentManager try { $this->checkDatabaseConnection($request); - + if ($request->get('database_overwrite')) { + Artisan::call('db:wipe --force'); + } if (\Schema::hasTable('users')) { return [ 'error' => 'database_should_be_empty', diff --git a/lang/en.json b/lang/en.json index fc7d30f9..58c95df4 100644 --- a/lang/en.json +++ b/lang/en.json @@ -1440,6 +1440,7 @@ "username": "Database Username", "db_name": "Database Name", "db_path": "Database Path", + "overwrite": "Overwrite existing database and proceed", "desc": "Create a database on your server and set the credentials using the form below." }, "permissions": { diff --git a/resources/scripts/admin/stores/installation.js b/resources/scripts/admin/stores/installation.js index 4554b63c..4d937df7 100644 --- a/resources/scripts/admin/stores/installation.js +++ b/resources/scripts/admin/stores/installation.js @@ -19,6 +19,7 @@ export const useInstallationStore = (useWindow = false) => { database_name: null, database_username: null, database_password: null, + database_overwrite: false, app_url: window.location.origin, app_locale: null }, diff --git a/resources/scripts/admin/views/installation/database/MysqlDatabase.vue b/resources/scripts/admin/views/installation/database/MysqlDatabase.vue index 0d293942..f291c58c 100644 --- a/resources/scripts/admin/views/installation/database/MysqlDatabase.vue +++ b/resources/scripts/admin/views/installation/database/MysqlDatabase.vue @@ -84,6 +84,11 @@ :invalid="v$.database_hostname.$error" /> + +
+ +
+
+
+ +
+ Date: Mon, 29 Jul 2024 14:24:48 +0200 Subject: [PATCH 45/50] Set SESSION_DRIVER to file by default --- .env.example | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env.example b/.env.example index 281aedff..5e3dfa29 100644 --- a/.env.example +++ b/.env.example @@ -25,7 +25,7 @@ DB_PASSWORD= BROADCAST_CONNECTION=log CACHE_STORE=file QUEUE_CONNECTION=sync -SESSION_DRIVER=cookie +SESSION_DRIVER=file SESSION_LIFETIME=1440 SESSION_ENCRYPT=false SESSION_PATH=/ From f82937e85e9c9ecfdef90228cf4c68658bb8b419 Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Thu, 1 Aug 2024 19:39:47 +0200 Subject: [PATCH 46/50] Set app version on install and updates --- .../DatabaseConfigurationController.php | 3 +++ app/Space/InstallUtils.php | 16 ++++++++++++++++ app/Space/Updater.php | 2 ++ database/seeders/UsersTableSeeder.php | 3 +++ 4 files changed, 24 insertions(+) diff --git a/app/Http/Controllers/V1/Installation/DatabaseConfigurationController.php b/app/Http/Controllers/V1/Installation/DatabaseConfigurationController.php index 6d3e1211..5c640349 100644 --- a/app/Http/Controllers/V1/Installation/DatabaseConfigurationController.php +++ b/app/Http/Controllers/V1/Installation/DatabaseConfigurationController.php @@ -5,6 +5,7 @@ namespace App\Http\Controllers\V1\Installation; use App\Http\Controllers\Controller; use App\Http\Requests\DatabaseEnvironmentRequest; use App\Space\EnvironmentManager; +use App\Space\InstallUtils; use Illuminate\Http\Request; use Illuminate\Support\Facades\Artisan; @@ -34,6 +35,8 @@ class DatabaseConfigurationController extends Controller Artisan::call('cache:clear'); Artisan::call('storage:link'); Artisan::call('migrate --seed --force'); + // Set version. + InstallUtils::setCurrentVersion(); } return response()->json($results); diff --git a/app/Space/InstallUtils.php b/app/Space/InstallUtils.php index 72a5917c..7b2944e1 100644 --- a/app/Space/InstallUtils.php +++ b/app/Space/InstallUtils.php @@ -2,7 +2,9 @@ namespace App\Space; +use App\Models\Setting; use Illuminate\Database\QueryException; +use Illuminate\Support\Facades\File; use Illuminate\Support\Facades\Log; use League\Flysystem\FilesystemException; @@ -89,4 +91,18 @@ class InstallUtils return false; } + + /** + * Set the app version + * + * @return void + */ + public static function setCurrentVersion() + { + $version = preg_replace('~[\r\n]+~', '', File::get(base_path('version.md'))); + if (! $version) { + return; + } + Setting::setSetting('version', $version); + } } diff --git a/app/Space/Updater.php b/app/Space/Updater.php index 87c420ad..fce325b0 100644 --- a/app/Space/Updater.php +++ b/app/Space/Updater.php @@ -3,6 +3,7 @@ namespace App\Space; use App\Events\UpdateFinished; +use App\Models\Setting; use Artisan; use File; use GuzzleHttp\Exception\RequestException; @@ -138,6 +139,7 @@ class Updater public static function finishUpdate($installed, $version) { + Setting::setSetting('version', $version); event(new UpdateFinished($installed, $version)); return [ diff --git a/database/seeders/UsersTableSeeder.php b/database/seeders/UsersTableSeeder.php index 99062ad7..4b119e30 100644 --- a/database/seeders/UsersTableSeeder.php +++ b/database/seeders/UsersTableSeeder.php @@ -5,6 +5,7 @@ namespace Database\Seeders; use App\Models\Company; use App\Models\Setting; use App\Models\User; +use App\Space\InstallUtils; use Illuminate\Database\Seeder; use Silber\Bouncer\BouncerFacade; use Vinkla\Hashids\Facades\Hashids; @@ -38,5 +39,7 @@ class UsersTableSeeder extends Seeder $user->assign('super admin'); Setting::setSetting('profile_complete', 0); + // Set version. + InstallUtils::setCurrentVersion(); } } From f16b4df44a9be25d8caec06af4a6c5d2b28f2bc2 Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Thu, 1 Aug 2024 20:47:57 +0200 Subject: [PATCH 47/50] Remove extensions from composer --- composer.json | 1 - 1 file changed, 1 deletion(-) diff --git a/composer.json b/composer.json index 0ae907d5..519d3f49 100644 --- a/composer.json +++ b/composer.json @@ -9,7 +9,6 @@ "type": "project", "require": { "php": "^8.2", - "ext-json": "*", "aws/aws-sdk-php": "^3.297", "barryvdh/laravel-dompdf": "^2.1", "doctrine/dbal": "^4.0", From fbac9abbc5364fc631befad9858ba6190eabc8d8 Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Sun, 4 Aug 2024 02:38:02 +0200 Subject: [PATCH 48/50] Expose port 5173 for the Dev environment --- .dev/docker-compose.mysql.yml | 2 + .dev/docker-compose.pgsql.yml | 2 + .dev/docker-compose.sqlite.yml | 2 + package.json | 2 +- yarn.lock | 1483 +++++++++++++++----------------- 5 files changed, 722 insertions(+), 769 deletions(-) diff --git a/.dev/docker-compose.mysql.yml b/.dev/docker-compose.mysql.yml index ac4384bb..c1d25570 100644 --- a/.dev/docker-compose.mysql.yml +++ b/.dev/docker-compose.mysql.yml @@ -7,6 +7,8 @@ services: args: - UID=${USRID:-1000} - GID=${GRPID:-1000} + ports: + - 5173:5173 volumes: - ../:/home/invoiceshelf/app networks: diff --git a/.dev/docker-compose.pgsql.yml b/.dev/docker-compose.pgsql.yml index e514df73..2746a726 100644 --- a/.dev/docker-compose.pgsql.yml +++ b/.dev/docker-compose.pgsql.yml @@ -7,6 +7,8 @@ services: args: - UID=${USRID:-1000} - GID=${GRPID:-1000} + ports: + - 5173:5173 volumes: - ../:/home/invoiceshelf/app networks: diff --git a/.dev/docker-compose.sqlite.yml b/.dev/docker-compose.sqlite.yml index 4405f3dd..d130c80f 100644 --- a/.dev/docker-compose.sqlite.yml +++ b/.dev/docker-compose.sqlite.yml @@ -9,6 +9,8 @@ services: - GID=${GRPID:-1000} volumes: - ../:/home/invoiceshelf/app + ports: + - 5173:5173 networks: - invoiceshelf-dev diff --git a/package.json b/package.json index c08b2c1c..a06915b3 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "private": true, "type": "module", "scripts": { - "dev": "vite", + "dev": "vite --host", "build": "vite build", "serve": "vite preview", "test": "eslint ./resources/scripts --ext .js,.vue" diff --git a/yarn.lock b/yarn.lock index 1b15c4b4..2f5d26db 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,25 +2,41 @@ # yarn lockfile v1 -"@aashutoshrathi/word-wrap@^1.2.3": - version "1.2.6" - resolved "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz" - integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== - "@alloc/quick-lru@^5.2.0": version "5.2.0" resolved "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz" integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== -"@babel/parser@^7.23.6": - version "7.23.9" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz" - integrity sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA== +"@babel/helper-string-parser@^7.24.8": + version "7.24.8" + resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz" + integrity sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ== -"@esbuild/linux-x64@0.21.5": +"@babel/helper-validator-identifier@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz" + integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== + +"@babel/parser@^7.24.7": + version "7.25.3" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz" + integrity sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw== + dependencies: + "@babel/types" "^7.25.2" + +"@babel/types@^7.25.2": + version "7.25.2" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz" + integrity sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q== + dependencies: + "@babel/helper-string-parser" "^7.24.8" + "@babel/helper-validator-identifier" "^7.24.7" + to-fast-properties "^2.0.0" + +"@esbuild/linux-arm64@0.21.5": version "0.21.5" - resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz" - integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ== + resolved "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz" + integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q== "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" @@ -30,9 +46,9 @@ eslint-visitor-keys "^3.3.0" "@eslint-community/regexpp@^4.6.1": - version "4.10.0" - resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz" - integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== + version "4.11.0" + resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz" + integrity sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A== "@eslint/eslintrc@^2.1.4": version "2.1.4" @@ -49,15 +65,15 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.56.0": - version "8.56.0" - resolved "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz" - integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A== +"@eslint/js@8.57.0": + version "8.57.0" + resolved "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz" + integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== "@headlessui/vue@^1.7.17": - version "1.7.17" - resolved "https://registry.npmjs.org/@headlessui/vue/-/vue-1.7.17.tgz" - integrity sha512-hmJChv8HzKorxd9F70RGnECAwZfkvmmwOqreuKLWY/19d5qbWnSdw+DNbuA/Uo6X5rb4U5B3NrT+qBKPmjhRqw== + version "1.7.22" + resolved "https://registry.npmjs.org/@headlessui/vue/-/vue-1.7.22.tgz" + integrity sha512-Hoffjoolq1rY+LOfJ+B/OvkhuBXXBFgd8oBlN+l1TApma2dB0En0ucFZrwQtb33SmcCqd32EQd0y07oziXWNYg== dependencies: "@tanstack/vue-virtual" "^3.0.0-beta.60" @@ -66,7 +82,7 @@ resolved "https://registry.npmjs.org/@heroicons/vue/-/vue-1.0.6.tgz" integrity sha512-ng2YcCQrdoQWEFpw+ipFl2rZo8mZ56v0T5+MyfQQvNqfKChwgP6DMloZLW+rl17GEcHkE3H82UTAMKBKZr4+WA== -"@humanwhocodes/config-array@^0.11.13": +"@humanwhocodes/config-array@^0.11.14": version "0.11.14" resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz" integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== @@ -81,30 +97,30 @@ integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== "@humanwhocodes/object-schema@^2.0.2": - version "2.0.2" - resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz" - integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== + version "2.0.3" + resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz" + integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== -"@intlify/core-base@9.9.0": - version "9.9.0" - resolved "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.9.0.tgz" - integrity sha512-C7UXPymDIOlMGSNjAhNLtKgzITc/8BjINK5gNKXg8GiWCTwL6n3MWr55czksxn8RM5wTMz0qcLOFT+adtaVQaA== +"@intlify/core-base@9.13.1": + version "9.13.1" + resolved "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.13.1.tgz" + integrity sha512-+bcQRkJO9pcX8d0gel9ZNfrzU22sZFSA0WVhfXrf5jdJOS24a+Bp8pozuS9sBI9Hk/tGz83pgKfmqcn/Ci7/8w== dependencies: - "@intlify/message-compiler" "9.9.0" - "@intlify/shared" "9.9.0" + "@intlify/message-compiler" "9.13.1" + "@intlify/shared" "9.13.1" -"@intlify/message-compiler@9.9.0": - version "9.9.0" - resolved "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.9.0.tgz" - integrity sha512-yDU/jdUm9KuhEzYfS+wuyja209yXgdl1XFhMlKtXEgSFTxz4COZQCRXXbbH8JrAjMsaJ7bdoPSLsKlY6mXG2iA== +"@intlify/message-compiler@9.13.1": + version "9.13.1" + resolved "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.13.1.tgz" + integrity sha512-SKsVa4ajYGBVm7sHMXd5qX70O2XXjm55zdZB3VeMFCvQyvLew/dLvq3MqnaIsTMF1VkkOb9Ttr6tHcMlyPDL9w== dependencies: - "@intlify/shared" "9.9.0" + "@intlify/shared" "9.13.1" source-map-js "^1.0.2" -"@intlify/shared@9.9.0": - version "9.9.0" - resolved "https://registry.npmjs.org/@intlify/shared/-/shared-9.9.0.tgz" - integrity sha512-1ECUyAHRrzOJbOizyGufYP2yukqGrWXtkmTu4PcswVnWbkcjzk3YQGmJ0bLkM7JZ0ZYAaohLGdYvBYnTOGYJ9g== +"@intlify/shared@9.13.1": + version "9.13.1" + resolved "https://registry.npmjs.org/@intlify/shared/-/shared-9.13.1.tgz" + integrity sha512-u3b6BKGhE6j/JeRU6C/RL2FgyJfy6LakbtfeVF8fJXURpZZTzfh3e05J0bu0XPw447Q6/WUp3C4ajv4TMS4YsQ== "@isaacs/cliui@^8.0.2": version "8.0.2" @@ -119,33 +135,33 @@ wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" "@jridgewell/gen-mapping@^0.3.2": - version "0.3.3" - resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz" - integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== + version "0.3.5" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== dependencies: - "@jridgewell/set-array" "^1.0.1" + "@jridgewell/set-array" "^1.2.1" "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" + "@jridgewell/trace-mapping" "^0.3.24" "@jridgewell/resolve-uri@^3.1.0": - 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== + version "3.1.2" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== -"@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": - version "1.4.15" - resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0": + version "1.5.0" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== -"@jridgewell/trace-mapping@^0.3.9": - version "0.3.22" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz" - integrity sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw== +"@jridgewell/trace-mapping@^0.3.24": + version "0.3.25" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== dependencies: "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" @@ -186,36 +202,15 @@ resolved "https://registry.npmjs.org/@remirror/core-constants/-/core-constants-2.0.2.tgz" integrity sha512-dyHY+sMF0ihPus3O27ODd4+agdHMEmuRdyiZJ2CCWjPV5UFmn17ZbElvk6WOGVE4rdCJKZQCrPV2BcikOMLUGQ== -"@remirror/core-helpers@^3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/@remirror/core-helpers/-/core-helpers-3.0.0.tgz" - integrity sha512-tusEgQJIqg4qKj6HSBUFcyRnWnziw3neh4T9wOmsPGHFC3w9kl5KSrDb9UAgE8uX6y32FnS7vJ955mWOl3n50A== - dependencies: - "@remirror/core-constants" "^2.0.2" - "@remirror/types" "^1.0.1" - "@types/object.omit" "^3.0.0" - "@types/object.pick" "^1.3.2" - "@types/throttle-debounce" "^2.1.0" - case-anything "^2.1.13" - dash-get "^1.0.2" - deepmerge "^4.3.1" - fast-deep-equal "^3.1.3" - make-error "^1.3.6" - object.omit "^3.0.0" - object.pick "^1.3.0" - throttle-debounce "^3.0.1" +"@rollup/rollup-linux-arm64-gnu@4.20.0": + version "4.20.0" + resolved "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.20.0.tgz" + integrity sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ== -"@remirror/types@^1.0.1": - version "1.0.1" - resolved "https://registry.npmjs.org/@remirror/types/-/types-1.0.1.tgz" - integrity sha512-VlZQxwGnt1jtQ18D6JqdIF+uFZo525WEqrfp9BOc3COPpK4+AWCgdnAWL+ho6imWcoINlGjR/+3b6y5C1vBVEA== - dependencies: - type-fest "^2.19.0" - -"@rollup/rollup-linux-x64-gnu@4.19.1": - version "4.19.1" - resolved "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.19.1.tgz" - integrity sha512-XUXeI9eM8rMP8aGvii/aOOiMvTs7xlCosq9xCjcqI9+5hBxtjDpD+7Abm1ZhVIFE1J2h2VIg0t2DX/gjespC2Q== +"@rollup/rollup-linux-arm64-musl@4.20.0": + version "4.20.0" + resolved "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.20.0.tgz" + integrity sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q== "@rvxlab/tailwind-plugin-ios-full-height@^1.1.0": version "1.1.0" @@ -240,197 +235,197 @@ mini-svg-data-uri "^1.2.3" "@tailwindcss/typography@^0.5.10": - version "0.5.10" - resolved "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.10.tgz" - integrity sha512-Pe8BuPJQJd3FfRnm6H0ulKIGoMEQS+Vq01R6M5aCrFB/ccR/shT+0kXLjouGC1gFLm9hopTFN+DMP0pfwRWzPw== + version "0.5.13" + resolved "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.13.tgz" + integrity sha512-ADGcJ8dX21dVVHIwTRgzrcunY6YY9uSlAHHGVKvkA+vLc5qLwEszvKts40lx7z0qc4clpjclwLeK5rVCV2P/uw== dependencies: lodash.castarray "^4.4.0" lodash.isplainobject "^4.0.6" lodash.merge "^4.6.2" postcss-selector-parser "6.0.10" -"@tanstack/virtual-core@3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.0.0.tgz" - integrity sha512-SYXOBTjJb05rXa2vl55TTwO40A6wKu0R5i1qQwhJYNDIqaIGF7D0HsLw+pJAyi2OvntlEIVusx3xtbbgSUi6zg== +"@tanstack/virtual-core@3.8.4": + version "3.8.4" + resolved "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.8.4.tgz" + integrity sha512-iO5Ujgw3O1yIxWDe9FgUPNkGjyT657b1WNX52u+Wv1DyBFEpdCdGkuVaky0M3hHFqNWjAmHWTn4wgj9rTr7ZQg== "@tanstack/vue-virtual@^3.0.0-beta.60": - version "3.0.2" - resolved "https://registry.npmjs.org/@tanstack/vue-virtual/-/vue-virtual-3.0.2.tgz" - integrity sha512-1iFpX+yZswHuf4wrA6GU9yJ/YzQ/8SacABwqghwCkcwrkZbOPLlRSdOAqZ1WQ50SftmfhZpaiZl2KmpV7cgfMQ== + version "3.8.4" + resolved "https://registry.npmjs.org/@tanstack/vue-virtual/-/vue-virtual-3.8.4.tgz" + integrity sha512-4Pq8odunHQPsTg2iE2yzWdzYed/8LySy2knxqJYkaNOQRXbqJ7O/Owpoon8ZM9L+jLL1faM5TVHV0eJxm68q8A== dependencies: - "@tanstack/virtual-core" "3.0.0" + "@tanstack/virtual-core" "3.8.4" -"@tiptap/core@^2.0.0", "@tiptap/core@^2.1.16": - version "2.1.16" - resolved "https://registry.npmjs.org/@tiptap/core/-/core-2.1.16.tgz" - integrity sha512-nKnV603UyzbcrqhCXTWxDN22Ujb4VNfmKkACms1JOMGo7BVARmMCp2nBsLW8fmgCxmf8AS0LXY63tU7ILWYc5g== +"@tiptap/core@^2.1.16", "@tiptap/core@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/core/-/core-2.5.8.tgz" + integrity sha512-lkWCKyoAoMTxM137MoEsorG7tZ5MZU6O3wMRuZ0P9fcTRY5vd1NWncWuPzuGSJIpL20gwBQOsS6PaQSfR3xjlA== -"@tiptap/extension-blockquote@^2.1.16": - version "2.1.16" - resolved "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.1.16.tgz" - integrity sha512-1OMk8cBrL0VnbnzD3XHx7U4oMDCiXRR7Spfl9JqwC9pS4RosOUBySNxpEBwhSegB0pK6sd7m44qLqj00If+cHA== +"@tiptap/extension-blockquote@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.5.8.tgz" + integrity sha512-P8vDiagtRrUfIewfCKrJe0ddDSjPgOTKzqoM1UXKS+MenT8C/wT4bjiwopAoWP6zMoV0TfHWXah9emllmCfXFA== -"@tiptap/extension-bold@^2.1.16": - version "2.1.16" - resolved "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.1.16.tgz" - integrity sha512-gz2VrBkRRsGBiOHx1qB++VUfpuRdhJp6jlgNqqHFbIkjKr2NB+u7oiH5SbjlL4eG0wlam1QA4jAkXhZgdvkA4g== +"@tiptap/extension-bold@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.5.8.tgz" + integrity sha512-4vEn+U7Y8B4e8izcL7QuEKYJ9thCSdo+UF1K3TOqQWuJTzTrJLPMwTZ4vYOHzvuq5uIXyPLnWzLgnRLgy5mJRg== -"@tiptap/extension-bubble-menu@^2.1.16": - version "2.1.16" - resolved "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.1.16.tgz" - integrity sha512-MwKCmu2kU7+Xln/BvlrolU2hCXgoCoTr4NXJ+3v8A9w7tIq8leADoWacfEee2t3VNnGdXw/Xjza+DAr77JWjGg== +"@tiptap/extension-bubble-menu@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.5.8.tgz" + integrity sha512-COmd1Azudu7i281emZFIESECe7FnvWiRoBoQBVjjWSyq5PVzwJaA3PAlnU7GyNZKtVXMZ4xbrckdyNQfDeVQDA== dependencies: tippy.js "^6.3.7" -"@tiptap/extension-bullet-list@^2.1.16": - version "2.1.16" - resolved "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.1.16.tgz" - integrity sha512-Cheaep5JShO9TtRslrOObSVKtRQFKozou2ZWDas5sIeef/A/GWPfVTzusfBGE/ItHwZNaDXwJOoVnSUPT8ulfw== +"@tiptap/extension-bullet-list@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.5.8.tgz" + integrity sha512-Wvf0HWBI0ulssoCsCOguxJB1Ntmj9PtE8b/ieFwFvrNptP+sf25XiWgjMs7H1KQrtmpngBu/Bhh5jJRgAmAgeQ== -"@tiptap/extension-code-block@^2.1.16": - version "2.1.16" - resolved "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.1.16.tgz" - integrity sha512-IspVmwg17Vx59W8lEIbVRIeMscJtRCdsif45CkzVv1uSHMl7tmrJh3n8vv/vrB+rnLasQrOEbEKNEqUL3eHlKQ== +"@tiptap/extension-code-block@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.5.8.tgz" + integrity sha512-atMtT1Ddc4hv9+OiH/UCLfQ6Ooo45xpPaaOhqs1Ab509YyqxoyEbfNSOth/yx9DFb8VOenRWE1WV3Z3C0ial0Q== -"@tiptap/extension-code@^2.1.16": - version "2.1.16" - resolved "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.1.16.tgz" - integrity sha512-2+fVfh3qQORgMRSZ6hn+yW5/rLzlulCzMhdL07G0lWY8/eWEv3p9DCfgw9AOHrrHFim8/MVWyRkrkBM/yHX9FA== +"@tiptap/extension-code@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.5.8.tgz" + integrity sha512-56lb4NnaYAbIkqBTCIg4ZoITrw86Dj8C2HSi6DrU7f5q9cfvGuH+2057I5n8eEEfASu1AeDN6tSnCz3NR+yiHw== -"@tiptap/extension-document@^2.1.16": - version "2.1.16" - resolved "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.1.16.tgz" - integrity sha512-VSOrzGnpI9dJDffFn3ZjmPKYkH/YtYeDl6nqLu7TafRqyLMSEqxxxq/+Qs/7j8jbzq6osslY0sySckSulroIOg== +"@tiptap/extension-document@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.5.8.tgz" + integrity sha512-r3rP4ihCJAdp3VRIeqd80etHx7jttzZaKNFX8hkQShHK6eTHwrR92VL0jDE4K+NOE3bxjMsOlYizJYWV042BtA== -"@tiptap/extension-dropcursor@^2.1.16": - version "2.1.16" - resolved "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-2.1.16.tgz" - integrity sha512-voWEIAmxV3f9Q0gc3K89HRq8KFeOVtHJBRHYihZwxMnvq2aMIwdpCx0GbiCd4slQaBLd1ASJHz1uAigVhR2+uA== +"@tiptap/extension-dropcursor@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-2.5.8.tgz" + integrity sha512-xPmIfTYqurFF8RukCPlHd8mT8I7hDinWrgq7CQTRROxcJ3DNw8PooWrKWaBYs9HXHe1pbiQ5EK0uOsNvQ1bcDg== -"@tiptap/extension-floating-menu@^2.1.16": - version "2.1.16" - resolved "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-2.1.16.tgz" - integrity sha512-VBT4HBhkKr9S1VExyTb/qfQyZ5F0VJLasUoH8E4kdq3deCeifmTTIOukuXK5QbicFHVQmY2epeU6+w5c/bAcHQ== +"@tiptap/extension-floating-menu@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-2.5.8.tgz" + integrity sha512-qsM6tCyRlXnI/gADrkO/2p0Tldu5aY96CnsXpZMaflMgsO577qhcXD0ReGg17uLXBzJa5xmV8qOik0Ptq3WEWg== dependencies: tippy.js "^6.3.7" -"@tiptap/extension-gapcursor@^2.1.16": - version "2.1.16" - resolved "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.1.16.tgz" - integrity sha512-Bgjo0da0W1QOhtnT3NR7GHPmVBZykNRekNGsTA3+nxCjkqh1G32Jt58TBKP3vdLBaww3lhrii0SYVErlFgIJnA== +"@tiptap/extension-gapcursor@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.5.8.tgz" + integrity sha512-nR7AUOE4xWdp0sDbLbe4uwAhQ/xq+MTLVafvffMLT81U/Hl9R+w0Ap2XF0+c6/JTQwVjZiOalAmg4dobx7rJUQ== -"@tiptap/extension-hard-break@^2.1.16": - version "2.1.16" - resolved "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.1.16.tgz" - integrity sha512-H3Bk8Gu5pV7xH8TrzH0WAoXrJVEKsDA6Evyl7H7aCAMAvotQL0ehuuX88bjPMCSAvBXZE39wYnJCJshGbVx0BA== +"@tiptap/extension-hard-break@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.5.8.tgz" + integrity sha512-samZEL0EXzHSmMQ7KyLnfSxdDv3qSjia0JzelfCnFZS6LLcbwjrIjV8ZPxEhJ7UlZqroQdFxPegllkLHZj/MdQ== -"@tiptap/extension-heading@^2.1.16": - version "2.1.16" - resolved "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.1.16.tgz" - integrity sha512-vFQuAAnIxDwKjTV+ScSwIaeG4Uhm1cZddnbLTru1EJfIz9VvpHDZKEyL4ZJvWuKMAhCzlw54TQhBCVHqalXyaA== +"@tiptap/extension-heading@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.5.8.tgz" + integrity sha512-fDQoUkTLN+U8MNQ8PI+syKyshS9qFHlKihxzMLf/+tRisJvP47gzHDur99nffTSbXFDnASDqhavhKjI/2xTWlQ== -"@tiptap/extension-history@^2.1.16": - version "2.1.16" - resolved "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.1.16.tgz" - integrity sha512-9YHPf8Xqqp5CQy1hJonkBzROj0ZHR1ZaIk9IaLlAPTpdkrUDXV9SC7qp3lozQsMg4vmU3K6H5VQo4ADpnR00OQ== +"@tiptap/extension-history@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.5.8.tgz" + integrity sha512-5IrZZfp2Rg9Tov/08aYTKhwoiqdun8v3j3vleuqyW5RB7LU/NKLR19EtSSMh9mVkFZVbhab2zDOFmn5ilsEOhw== -"@tiptap/extension-horizontal-rule@^2.1.16": - version "2.1.16" - resolved "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.1.16.tgz" - integrity sha512-Q+Zp0lJF7212YIuZnbMmn4KC1MZoZjQIuvSd+DOgCwKSeUcTXBbljDjOiN8yrY134r+A4fFM7KHTXWYqZGZQug== +"@tiptap/extension-horizontal-rule@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.5.8.tgz" + integrity sha512-L8Is73WGaP6VNdKrIry+lCIM9W1KaL/Tw2Z6DGMVMU5mr1lLx0xq7nWEStqD7e4zh+n4+3PV15cZSA2F34DZrg== -"@tiptap/extension-italic@^2.1.16": - version "2.1.16" - resolved "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.1.16.tgz" - integrity sha512-6mFGPBGxd2aICJ5Q3zYxuXO8slKoOP/PsSjEQn1bjs3h8Q3mPxHX290ePVp728o5F0myM9sxKSz2V6/VeuS/Yw== +"@tiptap/extension-italic@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.5.8.tgz" + integrity sha512-Kh35a7slBai+Qr/tiF9XFXmuWMgUQz4Nt51hmzqVGVuG+QsdWzQE8IZBGypKm8aAzxTGSY0d0QA0rys+YRNq1Q== -"@tiptap/extension-list-item@^2.1.16": - version "2.1.16" - resolved "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.1.16.tgz" - integrity sha512-RLUodzFispIe1adarCEzf+OfaGZna/WR/k/HqPnbflSiJ6/I2P5MqI+ELjGGvc53eanf3+KpsHlB2Pganp8sMA== +"@tiptap/extension-list-item@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.5.8.tgz" + integrity sha512-RFIIzHxxXdPmdf7BL0zhE4VPHoR6BTWtfi3JCTftmNqKoH7o+mLKT0RHMGvF1CGNn2HewHzXAF0iXfKCwmEgHQ== -"@tiptap/extension-ordered-list@^2.1.16": - version "2.1.16" - resolved "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.1.16.tgz" - integrity sha512-6QLUm90wz2lfzWGV4fX5NOOFA8zKlcDBNrTeOd0V7H4fcafLmANqU/5o4LLNJmK8y8f1YAvmHr9xgciqggGJJA== +"@tiptap/extension-ordered-list@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.5.8.tgz" + integrity sha512-84gWdWhc8rUCCssn8+6Z1rFKdG7/yIe+gwYkU6WqAtDrcluJdt5jRHrcMOLxb2dbY8ww9pa72EYV/bwOisZlFQ== -"@tiptap/extension-paragraph@^2.1.16": - version "2.1.16" - resolved "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.1.16.tgz" - integrity sha512-JwCKSFjBLd9xAmxLe7hf1h4AucDvkGTfDb/wA1jId64g+uf0/tm6RDjnk/QD+D2YzoLGFLjQm0GAdPXTmyTPdA== +"@tiptap/extension-paragraph@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.5.8.tgz" + integrity sha512-AMfD3lfGSiomfkSE2tUourUjVahLtIfWUQew13NTPuWoxAXaSyoCGO0ULkiou/lO3JVUUUmF9+KJrAHWGIARdA== -"@tiptap/extension-strike@^2.1.16": - version "2.1.16" - resolved "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.1.16.tgz" - integrity sha512-Z1hmBK1QWMMGDV2MJ3KBDiMuzcScjyx88cP5ln5G7626Zxeqywf84KF+2WyHBzJWfwMWpAouzwHKe9ld39Vu1w== +"@tiptap/extension-strike@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.5.8.tgz" + integrity sha512-uiHhBIEqawX9Up2ofklotVQ5XpGIjwRL6wprZF38s1le3XpsgyhVV7oDnqDkC7ujCsGkOJJfXZtv3LsO3R2nzQ== "@tiptap/extension-text-align@^2.1.16": - version "2.1.16" - resolved "https://registry.npmjs.org/@tiptap/extension-text-align/-/extension-text-align-2.1.16.tgz" - integrity sha512-iyRqOZGoUl/yd2TZ+tvuRRxOym0bbE6+BoImd9TrF2bpYLSMt3wc1IzN2+jRGPkTtTnFbKLiFoyNZyYYyaxzkA== + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-text-align/-/extension-text-align-2.5.8.tgz" + integrity sha512-TtkEUkgHkV6nYwcvx0+vVIpgXkawZhG55IQ9CZI5PnD6tbzHTK8qFnuhnTgmX+ZQkqz4qEg5erFY/fC1gVvQ4g== -"@tiptap/extension-text@^2.1.16": - version "2.1.16" - resolved "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.1.16.tgz" - integrity sha512-XzSJmAj32uYpaL/9FX3tRSU52DwZ9w+3yEffIcSN9MSwioqLsSolXOz7TuJfW6lSTar1ml9UPlRqX4dpayUTDQ== +"@tiptap/extension-text@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.5.8.tgz" + integrity sha512-CNkD51jRMdcYCqFVOkrnebqBQ6pCD3ZD5z9kO5bOC5UPZKZBkLsWdlrHGAVwosxcGxdJACbqJ0Nj+fMgIw4tNA== -"@tiptap/pm@^2.0.0": - version "2.1.16" - resolved "https://registry.npmjs.org/@tiptap/pm/-/pm-2.1.16.tgz" - integrity sha512-yibLkjtgbBSnWCXbDyKM5kgIGLfMvfbRfFzb8T0uz4PI/L54o0a4fiWSW5Fg10B5+o+NAXW2wMxoId8/Tw91lQ== +"@tiptap/pm@^2.0.0", "@tiptap/pm@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/pm/-/pm-2.5.8.tgz" + integrity sha512-CVhHaTG4QNHSkvuh6HHsUR4hE+nbUnk7z+VMUedaqPU8tNqkTwWGCMbiyTc+PCsz0T9Mni7vvBR+EXgEQ3+w4g== dependencies: - prosemirror-changeset "^2.2.0" - prosemirror-collab "^1.3.0" - prosemirror-commands "^1.3.1" - prosemirror-dropcursor "^1.5.0" - prosemirror-gapcursor "^1.3.1" - prosemirror-history "^1.3.0" - prosemirror-inputrules "^1.2.0" - prosemirror-keymap "^1.2.0" - prosemirror-markdown "^1.10.1" - prosemirror-menu "^1.2.1" - prosemirror-model "^1.18.1" - prosemirror-schema-basic "^1.2.0" - prosemirror-schema-list "^1.2.2" - prosemirror-state "^1.4.1" - prosemirror-tables "^1.3.0" - prosemirror-trailing-node "^2.0.2" - prosemirror-transform "^1.7.0" - prosemirror-view "^1.28.2" + prosemirror-changeset "^2.2.1" + prosemirror-collab "^1.3.1" + prosemirror-commands "^1.5.2" + prosemirror-dropcursor "^1.8.1" + prosemirror-gapcursor "^1.3.2" + prosemirror-history "^1.4.1" + prosemirror-inputrules "^1.4.0" + prosemirror-keymap "^1.2.2" + prosemirror-markdown "^1.13.0" + prosemirror-menu "^1.2.4" + prosemirror-model "^1.22.2" + prosemirror-schema-basic "^1.2.3" + prosemirror-schema-list "^1.4.1" + prosemirror-state "^1.4.3" + prosemirror-tables "^1.4.0" + prosemirror-trailing-node "^2.0.9" + prosemirror-transform "^1.9.0" + prosemirror-view "^1.33.9" "@tiptap/starter-kit@^2.1.16": - version "2.1.16" - resolved "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-2.1.16.tgz" - integrity sha512-DudGvkNEB1IwfMAqBKCcT49BY275hKF6SwjTWN89cLvVBd2TBe4R6wWMNKDhwfR8fmXz/aXpGJWWO2AFimY3jg== + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-2.5.8.tgz" + integrity sha512-Beb6Q3cFmJ1pE22WlFrG3wj8XAGXqaGkbqtsGAJDnoyWL4uoSs4vLt5I/UJshK/nQlNqTWFdpd9SxRFsxBYpqg== dependencies: - "@tiptap/core" "^2.1.16" - "@tiptap/extension-blockquote" "^2.1.16" - "@tiptap/extension-bold" "^2.1.16" - "@tiptap/extension-bullet-list" "^2.1.16" - "@tiptap/extension-code" "^2.1.16" - "@tiptap/extension-code-block" "^2.1.16" - "@tiptap/extension-document" "^2.1.16" - "@tiptap/extension-dropcursor" "^2.1.16" - "@tiptap/extension-gapcursor" "^2.1.16" - "@tiptap/extension-hard-break" "^2.1.16" - "@tiptap/extension-heading" "^2.1.16" - "@tiptap/extension-history" "^2.1.16" - "@tiptap/extension-horizontal-rule" "^2.1.16" - "@tiptap/extension-italic" "^2.1.16" - "@tiptap/extension-list-item" "^2.1.16" - "@tiptap/extension-ordered-list" "^2.1.16" - "@tiptap/extension-paragraph" "^2.1.16" - "@tiptap/extension-strike" "^2.1.16" - "@tiptap/extension-text" "^2.1.16" + "@tiptap/core" "^2.5.8" + "@tiptap/extension-blockquote" "^2.5.8" + "@tiptap/extension-bold" "^2.5.8" + "@tiptap/extension-bullet-list" "^2.5.8" + "@tiptap/extension-code" "^2.5.8" + "@tiptap/extension-code-block" "^2.5.8" + "@tiptap/extension-document" "^2.5.8" + "@tiptap/extension-dropcursor" "^2.5.8" + "@tiptap/extension-gapcursor" "^2.5.8" + "@tiptap/extension-hard-break" "^2.5.8" + "@tiptap/extension-heading" "^2.5.8" + "@tiptap/extension-history" "^2.5.8" + "@tiptap/extension-horizontal-rule" "^2.5.8" + "@tiptap/extension-italic" "^2.5.8" + "@tiptap/extension-list-item" "^2.5.8" + "@tiptap/extension-ordered-list" "^2.5.8" + "@tiptap/extension-paragraph" "^2.5.8" + "@tiptap/extension-strike" "^2.5.8" + "@tiptap/extension-text" "^2.5.8" "@tiptap/vue-3@^2.1.16": - version "2.1.16" - resolved "https://registry.npmjs.org/@tiptap/vue-3/-/vue-3-2.1.16.tgz" - integrity sha512-pvfIsBAyFeZVllnl38DFX8X11XMvFcT2/vViAtkDwJpX2W/m/nmxOSlEnqmOEzC+sbFqk7bhKpBVElaROV+U0w== + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/vue-3/-/vue-3-2.5.8.tgz" + integrity sha512-XTtVk9J29wKCglg0ek2R4Zr1fPN1XLQV9VKWFEGv8waUsu/P6yb443TO1fqP8/s7WysBtMWzDDZ2RP1NejymgQ== dependencies: - "@tiptap/extension-bubble-menu" "^2.1.16" - "@tiptap/extension-floating-menu" "^2.1.16" + "@tiptap/extension-bubble-menu" "^2.5.8" + "@tiptap/extension-floating-menu" "^2.5.8" "@types/estree@1.0.5": version "1.0.5" @@ -438,27 +433,12 @@ integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== "@types/node@^18.0.0 || >=20.0.0", "@types/node@^20.11.9": - version "20.11.9" - resolved "https://registry.npmjs.org/@types/node/-/node-20.11.9.tgz" - integrity sha512-CQXNuMoS/VcoAMISe5pm4JnEd1Br5jildbQEToEMQvutmv+EaQr90ry9raiudgpyDuqFiV9e4rnjSfLNq12M5w== + version "20.14.14" + resolved "https://registry.npmjs.org/@types/node/-/node-20.14.14.tgz" + integrity sha512-d64f00982fS9YoOgJkAMolK7MN8Iq3TDdVjchbYHdEmjth/DHowx82GnoA+tVUAN+7vxfYUgAzi+JXbKNd2SDQ== dependencies: undici-types "~5.26.4" -"@types/object.omit@^3.0.0": - version "3.0.3" - resolved "https://registry.npmjs.org/@types/object.omit/-/object.omit-3.0.3.tgz" - integrity sha512-xrq4bQTBGYY2cw+gV4PzoG2Lv3L0pjZ1uXStRRDQoATOYW1lCsFQHhQ+OkPhIcQoqLjAq7gYif7D14Qaa6Zbew== - -"@types/object.pick@^1.3.2": - version "1.3.4" - resolved "https://registry.npmjs.org/@types/object.pick/-/object.pick-1.3.4.tgz" - integrity sha512-5PjwB0uP2XDp3nt5u5NJAG2DORHIRClPzWT/TTZhJ2Ekwe8M5bA9tvPdi9NO/n2uvu2/ictat8kgqvLfcIE1SA== - -"@types/throttle-debounce@^2.1.0": - version "2.1.0" - resolved "https://registry.npmjs.org/@types/throttle-debounce/-/throttle-debounce-2.1.0.tgz" - integrity sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ== - "@types/web-bluetooth@^0.0.20": version "0.0.20" resolved "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz" @@ -470,93 +450,94 @@ integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== "@vitejs/plugin-vue@^5.0.3": - version "5.0.3" - resolved "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.0.3.tgz" - integrity sha512-b8S5dVS40rgHdDrw+DQi/xOM9ed+kSRZzfm1T74bMmBDCd8XO87NKlFYInzCtwvtWwXZvo1QxE2OSspTATWrbA== + version "5.1.2" + resolved "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.1.2.tgz" + integrity sha512-nY9IwH12qeiJqumTCLJLE7IiNx7HZ39cbHaysEUd+Myvbz9KAqd2yq+U01Kab1R/H1BmiyM2ShTYlNH32Fzo3A== -"@vue/compiler-core@3.4.15": - version "3.4.15" - resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.15.tgz" - integrity sha512-XcJQVOaxTKCnth1vCxEChteGuwG6wqnUHxAm1DO3gCz0+uXKaJNx8/digSz4dLALCy8n2lKq24jSUs8segoqIw== +"@vue/compiler-core@3.4.35": + version "3.4.35" + resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.35.tgz" + integrity sha512-gKp0zGoLnMYtw4uS/SJRRO7rsVggLjvot3mcctlMXunYNsX+aRJDqqw/lV5/gHK91nvaAAlWFgdVl020AW1Prg== dependencies: - "@babel/parser" "^7.23.6" - "@vue/shared" "3.4.15" + "@babel/parser" "^7.24.7" + "@vue/shared" "3.4.35" entities "^4.5.0" estree-walker "^2.0.2" - source-map-js "^1.0.2" + source-map-js "^1.2.0" -"@vue/compiler-dom@3.4.15": - version "3.4.15" - resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.15.tgz" - integrity sha512-wox0aasVV74zoXyblarOM3AZQz/Z+OunYcIHe1OsGclCHt8RsRm04DObjefaI82u6XDzv+qGWZ24tIsRAIi5MQ== +"@vue/compiler-dom@3.4.35": + version "3.4.35" + resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.35.tgz" + integrity sha512-pWIZRL76/oE/VMhdv/ovZfmuooEni6JPG1BFe7oLk5DZRo/ImydXijoZl/4kh2406boRQ7lxTYzbZEEXEhj9NQ== dependencies: - "@vue/compiler-core" "3.4.15" - "@vue/shared" "3.4.15" + "@vue/compiler-core" "3.4.35" + "@vue/shared" "3.4.35" -"@vue/compiler-sfc@^3.4.15", "@vue/compiler-sfc@3.4.15": - version "3.4.15" - resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.15.tgz" - integrity sha512-LCn5M6QpkpFsh3GQvs2mJUOAlBQcCco8D60Bcqmf3O3w5a+KWS5GvYbrrJBkgvL1BDnTp+e8q0lXCLgHhKguBA== +"@vue/compiler-sfc@^3.4.15", "@vue/compiler-sfc@3.4.35": + version "3.4.35" + resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.35.tgz" + integrity sha512-xacnRS/h/FCsjsMfxBkzjoNxyxEyKyZfBch/P4vkLRvYJwe5ChXmZZrj8Dsed/752H2Q3JE8kYu9Uyha9J6PgA== dependencies: - "@babel/parser" "^7.23.6" - "@vue/compiler-core" "3.4.15" - "@vue/compiler-dom" "3.4.15" - "@vue/compiler-ssr" "3.4.15" - "@vue/shared" "3.4.15" + "@babel/parser" "^7.24.7" + "@vue/compiler-core" "3.4.35" + "@vue/compiler-dom" "3.4.35" + "@vue/compiler-ssr" "3.4.35" + "@vue/shared" "3.4.35" estree-walker "^2.0.2" - magic-string "^0.30.5" - postcss "^8.4.33" - source-map-js "^1.0.2" + magic-string "^0.30.10" + postcss "^8.4.40" + source-map-js "^1.2.0" -"@vue/compiler-ssr@3.4.15": - version "3.4.15" - resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.15.tgz" - integrity sha512-1jdeQyiGznr8gjFDadVmOJqZiLNSsMa5ZgqavkPZ8O2wjHv0tVuAEsw5hTdUoUW4232vpBbL/wJhzVW/JwY1Uw== +"@vue/compiler-ssr@3.4.35": + version "3.4.35" + resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.35.tgz" + integrity sha512-7iynB+0KB1AAJKk/biENTV5cRGHRdbdaD7Mx3nWcm1W8bVD6QmnH3B4AHhQQ1qZHhqFwzEzMwiytXm3PX1e60A== dependencies: - "@vue/compiler-dom" "3.4.15" - "@vue/shared" "3.4.15" + "@vue/compiler-dom" "3.4.35" + "@vue/shared" "3.4.35" -"@vue/devtools-api@^6.5.0": - version "6.5.1" - resolved "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.1.tgz" - integrity sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA== +"@vue/devtools-api@^6.5.0", "@vue/devtools-api@^6.6.3": + version "6.6.3" + resolved "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.3.tgz" + integrity sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw== -"@vue/reactivity@3.4.15": - version "3.4.15" - resolved "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.15.tgz" - integrity sha512-55yJh2bsff20K5O84MxSvXKPHHt17I2EomHznvFiJCAZpJTNW8IuLj1xZWMLELRhBK3kkFV/1ErZGHJfah7i7w== +"@vue/reactivity@3.4.35": + version "3.4.35" + resolved "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.35.tgz" + integrity sha512-Ggtz7ZZHakriKioveJtPlStYardwQH6VCs9V13/4qjHSQb/teE30LVJNrbBVs4+aoYGtTQKJbTe4CWGxVZrvEw== dependencies: - "@vue/shared" "3.4.15" + "@vue/shared" "3.4.35" -"@vue/runtime-core@3.4.15": - version "3.4.15" - resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.15.tgz" - integrity sha512-6E3by5m6v1AkW0McCeAyhHTw+3y17YCOKG0U0HDKDscV4Hs0kgNT5G+GCHak16jKgcCDHpI9xe5NKb8sdLCLdw== +"@vue/runtime-core@3.4.35": + version "3.4.35" + resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.35.tgz" + integrity sha512-D+BAjFoWwT5wtITpSxwqfWZiBClhBbR+bm0VQlWYFOadUUXFo+5wbe9ErXhLvwguPiLZdEF13QAWi2vP3ZD5tA== dependencies: - "@vue/reactivity" "3.4.15" - "@vue/shared" "3.4.15" + "@vue/reactivity" "3.4.35" + "@vue/shared" "3.4.35" -"@vue/runtime-dom@3.4.15": - version "3.4.15" - resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.15.tgz" - integrity sha512-EVW8D6vfFVq3V/yDKNPBFkZKGMFSvZrUQmx196o/v2tHKdwWdiZjYUBS+0Ez3+ohRyF8Njwy/6FH5gYJ75liUw== +"@vue/runtime-dom@3.4.35": + version "3.4.35" + resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.35.tgz" + integrity sha512-yGOlbos+MVhlS5NWBF2HDNgblG8e2MY3+GigHEyR/dREAluvI5tuUUgie3/9XeqhPE4LF0i2wjlduh5thnfOqw== dependencies: - "@vue/runtime-core" "3.4.15" - "@vue/shared" "3.4.15" + "@vue/reactivity" "3.4.35" + "@vue/runtime-core" "3.4.35" + "@vue/shared" "3.4.35" csstype "^3.1.3" -"@vue/server-renderer@3.4.15": - version "3.4.15" - resolved "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.15.tgz" - integrity sha512-3HYzaidu9cHjrT+qGUuDhFYvF/j643bHC6uUN9BgM11DVy+pM6ATsG6uPBLnkwOgs7BpJABReLmpL3ZPAsUaqw== +"@vue/server-renderer@3.4.35": + version "3.4.35" + resolved "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.35.tgz" + integrity sha512-iZ0e/u9mRE4T8tNhlo0tbA+gzVkgv8r5BX6s1kRbOZqfpq14qoIvCZ5gIgraOmYkMYrSEZgkkojFPr+Nyq/Mnw== dependencies: - "@vue/compiler-ssr" "3.4.15" - "@vue/shared" "3.4.15" + "@vue/compiler-ssr" "3.4.35" + "@vue/shared" "3.4.35" -"@vue/shared@3.4.15": - version "3.4.15" - resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.4.15.tgz" - integrity sha512-KzfPTxVaWfB+eGcGdbSf4CWdaXcGDqckoeXUh7SB3fZdEtzPCK2Vq9B/lRRL3yutax/LWITz+SwvgyOxz5V75g== +"@vue/shared@3.4.35": + version "3.4.35" + resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.4.35.tgz" + integrity sha512-hvuhBYYDe+b1G8KHxsQ0diDqDMA8D9laxWZhNAjE83VZb5UDaXl9Xnz7cGdDSyiHM90qqI/CyGMcpBpiDy6VVQ== "@vuelidate/components@^1.2.6": version "1.2.6" @@ -581,26 +562,26 @@ vue-demi "^0.13.11" "@vueuse/core@^10.7.2": - version "10.7.2" - resolved "https://registry.npmjs.org/@vueuse/core/-/core-10.7.2.tgz" - integrity sha512-AOyAL2rK0By62Hm+iqQn6Rbu8bfmbgaIMXcE3TSr7BdQ42wnSFlwIdPjInO62onYsEMK/yDMU8C6oGfDAtZ2qQ== + version "10.11.0" + resolved "https://registry.npmjs.org/@vueuse/core/-/core-10.11.0.tgz" + integrity sha512-x3sD4Mkm7PJ+pcq3HX8PLPBadXCAlSDR/waK87dz0gQE+qJnaaFhc/dZVfJz+IUYzTMVGum2QlR7ImiJQN4s6g== dependencies: "@types/web-bluetooth" "^0.0.20" - "@vueuse/metadata" "10.7.2" - "@vueuse/shared" "10.7.2" - vue-demi ">=0.14.6" + "@vueuse/metadata" "10.11.0" + "@vueuse/shared" "10.11.0" + vue-demi ">=0.14.8" -"@vueuse/metadata@10.7.2": - version "10.7.2" - resolved "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.7.2.tgz" - integrity sha512-kCWPb4J2KGrwLtn1eJwaJD742u1k5h6v/St5wFe8Quih90+k2a0JP8BS4Zp34XUuJqS2AxFYMb1wjUL8HfhWsQ== +"@vueuse/metadata@10.11.0": + version "10.11.0" + resolved "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.11.0.tgz" + integrity sha512-kQX7l6l8dVWNqlqyN3ePW3KmjCQO3ZMgXuBMddIu83CmucrsBfXlH+JoviYyRBws/yLTQO8g3Pbw+bdIoVm4oQ== -"@vueuse/shared@10.7.2": - version "10.7.2" - resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-10.7.2.tgz" - integrity sha512-qFbXoxS44pi2FkgFjPvF4h7c9oMDutpyBdcJdMYIMg9XyXli2meFMuaKn+UMgsClo//Th6+beeCgqweT/79BVA== +"@vueuse/shared@10.11.0": + version "10.11.0" + resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-10.11.0.tgz" + integrity sha512-fyNoIXEq3PfX1L3NkNhtVQUSRtqYwJtJg+Bp9rIzculIZWHTkKSysujrOk2J+NrRulLTQH9+3gGSfYLWSEWU1A== dependencies: - vue-demi ">=0.14.6" + vue-demi ">=0.14.8" acorn-jsx@^5.3.2: version "5.3.2" @@ -608,9 +589,9 @@ acorn-jsx@^5.3.2: integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== "acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.9.0: - version "8.11.3" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz" - integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== + version "8.12.1" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz" + integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== ajv@^6.12.4: version "6.12.6" @@ -650,9 +631,9 @@ any-promise@^1.0.0: integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + version "3.1.3" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" @@ -673,24 +654,25 @@ asynckit@^0.4.0: integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== autoprefixer@^10.4.17: - version "10.4.17" - resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz" - integrity sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg== + version "10.4.20" + resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz" + integrity sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g== dependencies: - browserslist "^4.22.2" - caniuse-lite "^1.0.30001578" + browserslist "^4.23.3" + caniuse-lite "^1.0.30001646" fraction.js "^4.3.7" normalize-range "^0.1.2" - picocolors "^1.0.0" + picocolors "^1.0.1" postcss-value-parser "^4.2.0" -axios@^0.27.2: - version "0.27.2" - resolved "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz" - integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ== +axios@0.28.1: + version "0.28.1" + resolved "https://registry.npmjs.org/axios/-/axios-0.28.1.tgz" + integrity sha512-iUcGA5a7p0mVb4Gm/sy+FSECNkPFT4y7wt6OM/CDpO/OnNCvSs3PoMG8ibrC9jRoGYU0gUK5pXVC4NPXq6lHRQ== dependencies: - follow-redirects "^1.14.9" + follow-redirects "^1.15.0" form-data "^4.0.0" + proxy-from-env "^1.1.0" balanced-match@^1.0.0: version "1.0.2" @@ -698,9 +680,9 @@ balanced-match@^1.0.0: integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + version "2.3.0" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== boolbase@^1.0.0: version "1.0.0" @@ -722,22 +704,22 @@ brace-expansion@^2.0.1: dependencies: balanced-match "^1.0.0" -braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== +braces@^3.0.3, braces@~3.0.2: + version "3.0.3" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: - fill-range "^7.0.1" + fill-range "^7.1.1" -browserslist@^4.22.2, "browserslist@>= 4.21.0": - version "4.22.3" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz" - integrity sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A== +browserslist@^4.23.3, "browserslist@>= 4.21.0": + version "4.23.3" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz" + integrity sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA== dependencies: - caniuse-lite "^1.0.30001580" - electron-to-chromium "^1.4.648" - node-releases "^2.0.14" - update-browserslist-db "^1.0.13" + caniuse-lite "^1.0.30001646" + electron-to-chromium "^1.5.4" + node-releases "^2.0.18" + update-browserslist-db "^1.1.0" callsites@^3.0.0: version "3.1.0" @@ -749,15 +731,10 @@ camelcase-css@^2.0.1: resolved "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz" integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== -caniuse-lite@^1.0.30001578, caniuse-lite@^1.0.30001580: - version "1.0.30001581" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001581.tgz" - integrity sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ== - -case-anything@^2.1.13: - version "2.1.13" - resolved "https://registry.npmjs.org/case-anything/-/case-anything-2.1.13.tgz" - integrity sha512-zlOQ80VrQ2Ue+ymH5OuM/DlDq64mEm+B9UTdHULv5osUMD6HalNTblf2b1u/m6QecjsnOkBpqVZ+XPwIVsy7Ng== +caniuse-lite@^1.0.30001646: + version "1.0.30001647" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001647.tgz" + integrity sha512-n83xdNiyeNcHpzWY+1aFbqCK7LuLfBricc4+alSQL2Xb6OR3XpnQAmlDG+pQcdTfiHRuLcQ96VOfrPSGiNJYSg== chalk@^4.0.0: version "4.1.2" @@ -791,9 +768,9 @@ chartjs-color@^2.1.0: color-convert "^1.9.3" chokidar@^3.5.3, "chokidar@>=3.0.0 <4.0.0": - version "3.5.3" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + version "3.6.0" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== dependencies: anymatch "~3.1.2" braces "~3.0.2" @@ -827,7 +804,7 @@ color-name@^1.0.0, color-name@~1.1.4: color-name@1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== combined-stream@^1.0.8: version "1.0.8" @@ -844,7 +821,7 @@ commander@^4.0.0: concat-map@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== crelt@^1.0.0: version "1.0.6" @@ -877,27 +854,17 @@ csstype@^3.1.3: resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz" integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== -dash-get@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/dash-get/-/dash-get-1.0.2.tgz" - integrity sha512-4FbVrHDwfOASx7uQVxeiCTo7ggSdYZbqs8lH+WU6ViypPlDbe9y6IP5VVUDQBv9DcnyaiPT5XT0UWHgJ64zLeQ== - debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: - version "4.3.4" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + version "4.3.6" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz" + integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== dependencies: ms "2.1.2" deep-is@^0.1.3: - version "0.1.3" - resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz" - integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= sha512-GtxAN4HvBachZzm4OnWqc45ESpUCMwkYcsjnsPs23FwJbsO+k4t0k9bQCgOmzIlpHO28+WPK/KRbRk0DDHuuDw== - -deepmerge@^4.3.1: - version "4.3.1" - resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz" - integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + version "0.1.4" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== delayed-stream@~1.0.0: version "1.0.0" @@ -926,10 +893,10 @@ eastasianwidth@^0.2.0: resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== -electron-to-chromium@^1.4.648: - version "1.4.648" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.648.tgz" - integrity sha512-EmFMarXeqJp9cUKu/QEciEApn0S/xRcpZWuAm32U7NgoZCimjsilKXHRO9saeEW55eHZagIDg6XTUOv32w9pjg== +electron-to-chromium@^1.5.4: + version "1.5.4" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.4.tgz" + integrity sha512-orzA81VqLyIGUEA77YkVA1D+N+nNfl2isJVjjmOyrlxuooZ19ynb+dOlaDTqd/idKRS9lDCSBmtzM+kyCsMnkA== emoji-regex@^8.0.0: version "8.0.0" @@ -975,10 +942,10 @@ esbuild@^0.21.3: "@esbuild/win32-ia32" "0.21.5" "@esbuild/win32-x64" "0.21.5" -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== +escalade@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== escape-string-regexp@^4.0.0: version "4.0.0" @@ -991,16 +958,17 @@ eslint-config-prettier@^9.1.0: integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== eslint-plugin-vue@^9.20.1: - version "9.20.1" - resolved "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.20.1.tgz" - integrity sha512-GyCs8K3lkEvoyC1VV97GJhP1SvqsKCiWGHnbn0gVUYiUhaH2+nB+Dv1uekv1THFMPbBfYxukrzQdltw950k+LQ== + version "9.27.0" + resolved "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.27.0.tgz" + integrity sha512-5Dw3yxEyuBSXTzT5/Ge1X5kIkRTQ3nvBn/VwPwInNiZBSJOO/timWMUaflONnFBzU6NhB68lxnCda7ULV5N7LA== dependencies: "@eslint-community/eslint-utils" "^4.4.0" + globals "^13.24.0" natural-compare "^1.4.0" nth-check "^2.1.1" - postcss-selector-parser "^6.0.13" - semver "^7.5.4" - vue-eslint-parser "^9.4.0" + postcss-selector-parser "^6.0.15" + semver "^7.6.0" + vue-eslint-parser "^9.4.3" xml-name-validator "^4.0.0" eslint-scope@^7.1.1, eslint-scope@^7.2.2: @@ -1016,16 +984,16 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4 resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -"eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^6.2.0 || ^7.0.0 || ^8.0.0", eslint@^8.56.0, eslint@>=6.0.0, eslint@>=7.0.0: - version "8.56.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz" - integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ== +"eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", eslint@^8.56.0, eslint@>=6.0.0, eslint@>=7.0.0: + version "8.57.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz" + integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" "@eslint/eslintrc" "^2.1.4" - "@eslint/js" "8.56.0" - "@humanwhocodes/config-array" "^0.11.13" + "@eslint/js" "8.57.0" + "@humanwhocodes/config-array" "^0.11.14" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" "@ungap/structured-clone" "^1.2.0" @@ -1070,9 +1038,9 @@ espree@^9.3.1, espree@^9.6.0, espree@^9.6.1: eslint-visitor-keys "^3.4.1" esquery@^1.4.0, esquery@^1.4.2: - version "1.5.0" - resolved "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz" - integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== + version "1.6.0" + resolved "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz" + integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== dependencies: estraverse "^5.1.0" @@ -1084,9 +1052,9 @@ esrecurse@^4.3.0: estraverse "^5.2.0" estraverse@^5.1.0, estraverse@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz" - integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + version "5.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== estree-walker@^2.0.2: version "2.0.2" @@ -1122,12 +1090,12 @@ fast-json-stable-stringify@^2.0.0: fast-levenshtein@^2.0.6: version "2.0.6" resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fastq@^1.6.0: - version "1.12.0" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.12.0.tgz" - integrity sha512-VNX0QkHK3RsXVKr9KrlUv/FoTa0NdbYoHHl7uXHv2rzyHSlxjdNAKug2twd9luJxpcyNeAgf5iPPMutJO67Dfg== + version "1.17.1" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== dependencies: reusify "^1.0.4" @@ -1138,10 +1106,10 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: to-regex-range "^5.0.1" @@ -1154,11 +1122,12 @@ find-up@^5.0.0: path-exists "^4.0.0" flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + version "3.2.0" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz" + integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== dependencies: - flatted "^3.1.0" + flatted "^3.2.9" + keyv "^4.5.3" rimraf "^3.0.2" flatpickr@^4.6.13: @@ -1166,20 +1135,20 @@ flatpickr@^4.6.13: resolved "https://registry.npmjs.org/flatpickr/-/flatpickr-4.6.13.tgz" integrity sha512-97PMG/aywoYpB4IvbvUJi0RQi8vearvU0oov1WW3k0WZPBMrTQVqekSX5CjSG/M4Q3i6A/0FKXC7RyAoAUUSPw== -flatted@^3.1.0: - version "3.2.2" - resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz" - integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA== +flatted@^3.2.9: + version "3.3.1" + resolved "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz" + integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== -follow-redirects@^1.14.9: - version "1.15.5" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz" - integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw== +follow-redirects@^1.15.0: + version "1.15.6" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== foreground-child@^3.1.0: - version "3.1.1" - resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz" - integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== + version "3.2.1" + resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz" + integrity sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA== dependencies: cross-spawn "^7.0.0" signal-exit "^4.0.1" @@ -1201,7 +1170,7 @@ fraction.js@^4.3.7: fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== function-bind@^1.1.2: version "1.1.2" @@ -1230,29 +1199,30 @@ glob-parent@~5.1.2: is-glob "^4.0.1" glob@^10.3.10: - version "10.3.10" - resolved "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz" - integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== + version "10.4.5" + resolved "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz" + integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== dependencies: foreground-child "^3.1.0" - jackspeak "^2.3.5" - minimatch "^9.0.1" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - path-scurry "^1.10.1" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^1.11.1" glob@^7.1.3: - version "7.1.7" - resolved "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + version "7.2.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.4" + minimatch "^3.1.1" once "^1.3.0" path-is-absolute "^1.0.0" -globals@^13.19.0: +globals@^13.19.0, globals@^13.24.0: version "13.24.0" resolved "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz" integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== @@ -1267,29 +1237,29 @@ graphemer@^1.4.0: guid@0.0.12: version "0.0.12" resolved "https://registry.npmjs.org/guid/-/guid-0.0.12.tgz" - integrity sha1-kTfFKxhffeEkkLm+vMFmC5Al/gw= sha512-J0MCgzgJcvLarLGTeVIhXdQwqlEJ9rxmxc/X71GR4VR5V/BIQ9FFfzGL52qYKgREQI8qPevc1qFNwB/4VnBuRA== + integrity sha512-J0MCgzgJcvLarLGTeVIhXdQwqlEJ9rxmxc/X71GR4VR5V/BIQ9FFfzGL52qYKgREQI8qPevc1qFNwB/4VnBuRA== has-flag@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -hasown@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz" - integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== +hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== dependencies: function-bind "^1.1.2" ignore@^5.2.0: - version "5.3.0" - resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz" - integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== + version "5.3.1" + resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz" + integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== immutable@^4.0.0: - version "4.3.5" - resolved "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz" - integrity sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw== + version "4.3.7" + resolved "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz" + integrity sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw== import-fresh@^3.2.1: version "3.3.0" @@ -1302,12 +1272,12 @@ import-fresh@^3.2.1: imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== inflight@^1.0.4: version "1.0.6" resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" @@ -1330,23 +1300,16 @@ is-binary-path@~2.1.0: binary-extensions "^2.0.0" is-core-module@^2.13.0: - version "2.13.1" - resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz" - integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== + version "2.15.0" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz" + integrity sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA== dependencies: - hasown "^2.0.0" - -is-extendable@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" + hasown "^2.0.2" is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^3.0.0: version "3.0.0" @@ -1370,36 +1333,24 @@ is-path-inside@^3.0.3: resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== -is-plain-object@^2.0.4: - 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== - dependencies: - isobject "^3.0.1" - isexe@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== -isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" - integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== - -jackspeak@^2.3.5: - version "2.3.6" - resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz" - integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== +jackspeak@^3.1.2: + version "3.4.3" + resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== dependencies: "@isaacs/cliui" "^8.0.2" optionalDependencies: "@pkgjs/parseargs" "^0.11.0" -jiti@^1.19.1: - version "1.21.0" - resolved "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz" - integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== +jiti@^1.21.0: + version "1.21.6" + resolved "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz" + integrity sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w== js-yaml@^4.1.0: version "4.1.0" @@ -1408,6 +1359,11 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" @@ -1416,12 +1372,19 @@ json-schema-traverse@^0.4.1: json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +keyv@^4.5.3: + version "4.5.4" + resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" laravel-vite-plugin@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-1.0.1.tgz" - integrity sha512-laLEZUnSskIDZtLb2FNRdcjsRUhh1VOVvapbVGVTeaBPJTCF/b6gbPiX2dZdcH1RKoOE0an7L+2gnInk6K33Zw== + version "1.0.5" + resolved "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-1.0.5.tgz" + integrity sha512-Zv+to82YLBknDCZ6g3iwOv9wZ7f6EWStb9pjSm7MGe9Mfoy5ynT2ssZbGsMr1udU6rDg9HOoYEVGw5Qf+p9zbw== dependencies: picocolors "^1.0.0" vite-plugin-full-reload "^1.1.0" @@ -1440,14 +1403,14 @@ lilconfig@^2.1.0: integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== lilconfig@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz" - integrity sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g== + version "3.1.2" + resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz" + integrity sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow== lines-and-columns@^1.1.6: - version "1.1.6" - resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz" - integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= sha512-8ZmlJFVK9iCmtLz19HpSsR8HaAMWBT284VMNednLwlIMDP2hJDCIhUp0IZ2xUcZ+Ob6BM0VvCSJwzASDM45NLQ== + version "1.2.4" + resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== linkify-it@^5.0.0: version "5.0.0" @@ -1466,12 +1429,12 @@ locate-path@^6.0.0: lodash.castarray@^4.4.0: version "4.4.0" resolved "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz" - integrity sha1-wCUTUV4wna3dTCTGDP3c9ZdtkRU= sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q== + integrity sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q== lodash.isplainobject@^4.0.6: version "4.0.6" resolved "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz" - integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== lodash.merge@^4.6.2: version "4.6.2" @@ -1483,41 +1446,29 @@ lodash@^4.17.21: resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== +lru-cache@^10.2.0: + version "10.4.3" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== + +magic-string@^0.30.10: + version "0.30.11" + resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz" + integrity sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A== dependencies: - yallist "^4.0.0" - -"lru-cache@^9.1.1 || ^10.0.0": - version "10.2.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz" - integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== - -magic-string@^0.30.5: - version "0.30.5" - resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz" - integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA== - dependencies: - "@jridgewell/sourcemap-codec" "^1.4.15" - -make-error@^1.3.6: - version "1.3.6" - resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + "@jridgewell/sourcemap-codec" "^1.5.0" markdown-it@^14.0.0: - version "14.0.0" - resolved "https://registry.npmjs.org/markdown-it/-/markdown-it-14.0.0.tgz" - integrity sha512-seFjF0FIcPt4P9U39Bq1JYblX0KZCjDLFFQPHpL5AzHpqPEKtosxmdq/LTVZnjfH7tjt9BxStm+wXcDBNuYmzw== + version "14.1.0" + resolved "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz" + integrity sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg== dependencies: argparse "^2.0.1" entities "^4.4.0" linkify-it "^5.0.0" mdurl "^2.0.0" punycode.js "^2.3.1" - uc.micro "^2.0.0" + uc.micro "^2.1.0" maska@^2.1.11: version "2.1.11" @@ -1535,11 +1486,11 @@ merge2@^1.3.0: integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== micromatch@^4.0.4, micromatch@^4.0.5: - version "4.0.5" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + version "4.0.7" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz" + integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q== dependencies: - braces "^3.0.2" + braces "^3.0.3" picomatch "^2.3.1" mime-db@1.52.0: @@ -1559,24 +1510,24 @@ mini-svg-data-uri@^1.2.3, mini-svg-data-uri@^1.4.4: resolved "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz" integrity sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg== -minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.2: +minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minimatch@^9.0.1: - version "9.0.3" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== +minimatch@^9.0.4: + version "9.0.5" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== dependencies: brace-expansion "^2.0.1" -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": - version "7.0.4" - resolved "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz" - integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: + version "7.1.2" + resolved "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== moment@^2.10.2, moment@^2.30.1: version "2.30.1" @@ -1605,12 +1556,12 @@ nanoid@^3.3.7: natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -node-releases@^2.0.14: - version "2.0.14" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz" - integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== +node-releases@^2.0.18: + version "2.0.18" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz" + integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" @@ -1620,7 +1571,7 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: normalize-range@^0.1.2: version "0.1.2" resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz" - integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== nth-check@^2.1.1: version "2.1.1" @@ -1639,38 +1590,24 @@ object-hash@^3.0.0: resolved "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz" integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== -object.omit@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/object.omit/-/object.omit-3.0.0.tgz" - integrity sha512-EO+BCv6LJfu+gBIF3ggLicFebFLN5zqzz/WWJlMFfkMyGth+oBkhxzDl0wx2W4GkLzuQs/FsSkXZb2IMWQqmBQ== - dependencies: - is-extendable "^1.0.0" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz" - integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== - dependencies: - isobject "^3.0.1" - once@^1.3.0: version "1.4.0" resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" optionator@^0.9.3: - version "0.9.3" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz" - integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== + version "0.9.4" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz" + integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== dependencies: - "@aashutoshrathi/word-wrap" "^1.2.3" deep-is "^0.1.3" fast-levenshtein "^2.0.6" levn "^0.4.1" prelude-ls "^1.2.1" type-check "^0.4.0" + word-wrap "^1.2.5" orderedmap@^2.0.0: version "2.1.1" @@ -1691,6 +1628,11 @@ p-locate@^5.0.0: dependencies: p-limit "^3.0.2" +package-json-from-dist@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz" + integrity sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw== + parent-module@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" @@ -1706,7 +1648,7 @@ path-exists@^4.0.0: path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^3.1.0: version "3.1.1" @@ -1718,12 +1660,12 @@ path-parse@^1.0.7: resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-scurry@^1.10.1: - version "1.10.1" - resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz" - integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== +path-scurry@^1.11.1: + version "1.11.1" + resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== dependencies: - lru-cache "^9.1.1 || ^10.0.0" + lru-cache "^10.2.0" minipass "^5.0.0 || ^6.0.2 || ^7.0.0" path@^0.12.7: @@ -1750,12 +1692,12 @@ pify@^2.3.0: integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== pinia@^2.1.7: - version "2.1.7" - resolved "https://registry.npmjs.org/pinia/-/pinia-2.1.7.tgz" - integrity sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ== + version "2.2.0" + resolved "https://registry.npmjs.org/pinia/-/pinia-2.2.0.tgz" + integrity sha512-iPrIh26GMqfpUlMOGyxuDowGmYousTecbTHFwT0xZ1zJvh23oQ+Cj99ZoPQA1TnUPhU6AuRPv6/drkTCJ0VHQA== dependencies: - "@vue/devtools-api" "^6.5.0" - vue-demi ">=0.14.5" + "@vue/devtools-api" "^6.6.3" + vue-demi "^0.14.8" pirates@^4.0.1: version "4.0.6" @@ -1787,24 +1729,32 @@ postcss-load-config@^4.0.1: yaml "^2.3.4" postcss-nested@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz" - integrity sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ== + version "6.2.0" + resolved "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz" + integrity sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ== dependencies: - postcss-selector-parser "^6.0.11" + postcss-selector-parser "^6.1.1" postcss-selector-parser@^6.0.11: - version "6.0.15" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz" - integrity sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw== + version "6.1.1" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz" + integrity sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-selector-parser@^6.0.13: - version "6.0.15" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz" - integrity sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw== +postcss-selector-parser@^6.0.15: + version "6.1.1" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz" + integrity sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-selector-parser@^6.1.1: + version "6.1.1" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz" + integrity sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" @@ -1822,7 +1772,7 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.0.0, postcss@^8.1.0, postcss@^8.2.14, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.33, postcss@^8.4.39, postcss@>=8.0.9: +postcss@^8.0.0, postcss@^8.1.0, postcss@^8.2.14, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.33, postcss@^8.4.39, postcss@^8.4.40, postcss@>=8.0.9: version "8.4.40" resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.40.tgz" integrity sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q== @@ -1837,39 +1787,39 @@ prelude-ls@^1.2.1: integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prettier@^3.2.4: - version "3.2.4" - resolved "https://registry.npmjs.org/prettier/-/prettier-3.2.4.tgz" - integrity sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ== + version "3.3.3" + resolved "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz" + integrity sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew== process@^0.11.1: version "0.11.10" resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== -prosemirror-changeset@^2.2.0: +prosemirror-changeset@^2.2.1: version "2.2.1" resolved "https://registry.npmjs.org/prosemirror-changeset/-/prosemirror-changeset-2.2.1.tgz" integrity sha512-J7msc6wbxB4ekDFj+n9gTW/jav/p53kdlivvuppHsrZXCaQdVgRghoZbSS3kwrRyAstRVQ4/+u5k7YfLgkkQvQ== dependencies: prosemirror-transform "^1.0.0" -prosemirror-collab@^1.3.0: +prosemirror-collab@^1.3.1: version "1.3.1" resolved "https://registry.npmjs.org/prosemirror-collab/-/prosemirror-collab-1.3.1.tgz" integrity sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ== dependencies: prosemirror-state "^1.0.0" -prosemirror-commands@^1.0.0, prosemirror-commands@^1.3.1: - version "1.5.2" - resolved "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.5.2.tgz" - integrity sha512-hgLcPaakxH8tu6YvVAaILV2tXYsW3rAdDR8WNkeKGcgeMVQg3/TMhPdVoh7iAmfgVjZGtcOSjKiQaoeKjzd2mQ== +prosemirror-commands@^1.0.0, prosemirror-commands@^1.5.2: + version "1.6.0" + resolved "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.6.0.tgz" + integrity sha512-xn1U/g36OqXn2tn5nGmvnnimAj/g1pUx2ypJJIe8WkVX83WyJVC5LTARaxZa2AtQRwntu9Jc5zXs9gL9svp/mg== dependencies: prosemirror-model "^1.0.0" prosemirror-state "^1.0.0" prosemirror-transform "^1.0.0" -prosemirror-dropcursor@^1.5.0: +prosemirror-dropcursor@^1.8.1: version "1.8.1" resolved "https://registry.npmjs.org/prosemirror-dropcursor/-/prosemirror-dropcursor-1.8.1.tgz" integrity sha512-M30WJdJZLyXHi3N8vxN6Zh5O8ZBbQCz0gURTfPmTIBNQ5pxrdU7A58QkNqfa98YEjSAL1HUyyU34f6Pm5xBSGw== @@ -1878,7 +1828,7 @@ prosemirror-dropcursor@^1.5.0: prosemirror-transform "^1.1.0" prosemirror-view "^1.1.0" -prosemirror-gapcursor@^1.3.1: +prosemirror-gapcursor@^1.3.2: version "1.3.2" resolved "https://registry.npmjs.org/prosemirror-gapcursor/-/prosemirror-gapcursor-1.3.2.tgz" integrity sha512-wtjswVBd2vaQRrnYZaBCbyDqr232Ed4p2QPtRIUK5FuqHYKGWkEwl08oQM4Tw7DOR0FsasARV5uJFvMZWxdNxQ== @@ -1888,25 +1838,25 @@ prosemirror-gapcursor@^1.3.1: prosemirror-state "^1.0.0" prosemirror-view "^1.0.0" -prosemirror-history@^1.0.0, prosemirror-history@^1.3.0: - version "1.3.2" - resolved "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.3.2.tgz" - integrity sha512-/zm0XoU/N/+u7i5zepjmZAEnpvjDtzoPWW6VmKptcAnPadN/SStsBjMImdCEbb3seiNTpveziPTIrXQbHLtU1g== +prosemirror-history@^1.0.0, prosemirror-history@^1.4.1: + version "1.4.1" + resolved "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.4.1.tgz" + integrity sha512-2JZD8z2JviJrboD9cPuX/Sv/1ChFng+xh2tChQ2X4bB2HeK+rra/bmJ3xGntCcjhOqIzSDG6Id7e8RJ9QPXLEQ== dependencies: prosemirror-state "^1.2.2" prosemirror-transform "^1.0.0" prosemirror-view "^1.31.0" rope-sequence "^1.3.0" -prosemirror-inputrules@^1.2.0: - version "1.3.0" - resolved "https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.3.0.tgz" - integrity sha512-z1GRP2vhh5CihYMQYsJSa1cOwXb3SYxALXOIfAkX8nZserARtl9LiL+CEl+T+OFIsXc3mJIHKhbsmRzC0HDAXA== +prosemirror-inputrules@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.4.0.tgz" + integrity sha512-6ygpPRuTJ2lcOXs9JkefieMst63wVJBgHZGl5QOytN7oSZs3Co/BYbc3Yx9zm9H37Bxw8kVzCnDsihsVsL4yEg== dependencies: prosemirror-state "^1.0.0" prosemirror-transform "^1.0.0" -prosemirror-keymap@^1.0.0, prosemirror-keymap@^1.1.2, prosemirror-keymap@^1.2.0: +prosemirror-keymap@^1.0.0, prosemirror-keymap@^1.1.2, prosemirror-keymap@^1.2.2: version "1.2.2" resolved "https://registry.npmjs.org/prosemirror-keymap/-/prosemirror-keymap-1.2.2.tgz" integrity sha512-EAlXoksqC6Vbocqc0GtzCruZEzYgrn+iiGnNjsJsH4mrnIGex4qbLdWWNza3AW5W36ZRrlBID0eM6bdKH4OStQ== @@ -1914,15 +1864,15 @@ prosemirror-keymap@^1.0.0, prosemirror-keymap@^1.1.2, prosemirror-keymap@^1.2.0: prosemirror-state "^1.0.0" w3c-keyname "^2.2.0" -prosemirror-markdown@^1.10.1: - version "1.12.0" - resolved "https://registry.npmjs.org/prosemirror-markdown/-/prosemirror-markdown-1.12.0.tgz" - integrity sha512-6F5HS8Z0HDYiS2VQDZzfZP6A0s/I0gbkJy8NCzzDMtcsz3qrfqyroMMeoSjAmOhDITyon11NbXSzztfKi+frSQ== +prosemirror-markdown@^1.13.0: + version "1.13.0" + resolved "https://registry.npmjs.org/prosemirror-markdown/-/prosemirror-markdown-1.13.0.tgz" + integrity sha512-UziddX3ZYSYibgx8042hfGKmukq5Aljp2qoBiJRejD/8MH70siQNz5RB1TrdTPheqLMy4aCe4GYNF10/3lQS5g== dependencies: markdown-it "^14.0.0" - prosemirror-model "^1.0.0" + prosemirror-model "^1.20.0" -prosemirror-menu@^1.2.1: +prosemirror-menu@^1.2.4: version "1.2.4" resolved "https://registry.npmjs.org/prosemirror-menu/-/prosemirror-menu-1.2.4.tgz" integrity sha512-S/bXlc0ODQup6aiBbWVsX/eM+xJgCTAfMq/nLqaO5ID/am4wS0tTCIkzwytmao7ypEtjj39i7YbJjAgO20mIqA== @@ -1932,30 +1882,30 @@ prosemirror-menu@^1.2.1: prosemirror-history "^1.0.0" prosemirror-state "^1.0.0" -prosemirror-model@^1.0.0, prosemirror-model@^1.16.0, prosemirror-model@^1.18.1, prosemirror-model@^1.19.0, prosemirror-model@^1.8.1: - version "1.19.4" - resolved "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.19.4.tgz" - integrity sha512-RPmVXxUfOhyFdayHawjuZCxiROsm9L4FCUA6pWI+l7n2yCBsWy9VpdE1hpDHUS8Vad661YLY9AzqfjLhAKQ4iQ== +prosemirror-model@^1.0.0, prosemirror-model@^1.19.0, prosemirror-model@^1.20.0, prosemirror-model@^1.21.0, prosemirror-model@^1.22.1, prosemirror-model@^1.22.2, prosemirror-model@^1.8.1: + version "1.22.2" + resolved "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.22.2.tgz" + integrity sha512-I4lS7HHIW47D0Xv/gWmi4iUWcQIDYaJKd8Hk4+lcSps+553FlQrhmxtItpEvTr75iAruhzVShVp6WUwsT6Boww== dependencies: orderedmap "^2.0.0" -prosemirror-schema-basic@^1.2.0: - version "1.2.2" - resolved "https://registry.npmjs.org/prosemirror-schema-basic/-/prosemirror-schema-basic-1.2.2.tgz" - integrity sha512-/dT4JFEGyO7QnNTe9UaKUhjDXbTNkiWTq/N4VpKaF79bBjSExVV2NXmJpcM7z/gD7mbqNjxbmWW5nf1iNSSGnw== +prosemirror-schema-basic@^1.2.3: + version "1.2.3" + resolved "https://registry.npmjs.org/prosemirror-schema-basic/-/prosemirror-schema-basic-1.2.3.tgz" + integrity sha512-h+H0OQwZVqMon1PNn0AG9cTfx513zgIG2DY00eJ00Yvgb3UD+GQ/VlWW5rcaxacpCGT1Yx8nuhwXk4+QbXUfJA== dependencies: prosemirror-model "^1.19.0" -prosemirror-schema-list@^1.2.2: - version "1.3.0" - resolved "https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.3.0.tgz" - integrity sha512-Hz/7gM4skaaYfRPNgr421CU4GSwotmEwBVvJh5ltGiffUJwm7C8GfN/Bc6DR1EKEp5pDKhODmdXXyi9uIsZl5A== +prosemirror-schema-list@^1.4.1: + version "1.4.1" + resolved "https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.4.1.tgz" + integrity sha512-jbDyaP/6AFfDfu70VzySsD75Om2t3sXTOdl5+31Wlxlg62td1haUpty/ybajSfJ1pkGadlOfwQq9kgW5IMo1Rg== dependencies: prosemirror-model "^1.0.0" prosemirror-state "^1.0.0" prosemirror-transform "^1.7.3" -prosemirror-state@^1.0.0, prosemirror-state@^1.2.2, prosemirror-state@^1.3.1, prosemirror-state@^1.4.1, prosemirror-state@^1.4.2: +prosemirror-state@^1.0.0, prosemirror-state@^1.2.2, prosemirror-state@^1.3.1, prosemirror-state@^1.4.2, prosemirror-state@^1.4.3: version "1.4.3" resolved "https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.4.3.tgz" integrity sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q== @@ -1964,10 +1914,10 @@ prosemirror-state@^1.0.0, prosemirror-state@^1.2.2, prosemirror-state@^1.3.1, pr prosemirror-transform "^1.0.0" prosemirror-view "^1.27.0" -prosemirror-tables@^1.3.0: - version "1.3.5" - resolved "https://registry.npmjs.org/prosemirror-tables/-/prosemirror-tables-1.3.5.tgz" - integrity sha512-JSZ2cCNlApu/ObAhdPyotrjBe2cimniniTpz60YXzbL0kZ+47nEYk2LWbfKU2lKpBkUNquta2PjteoNi4YCluQ== +prosemirror-tables@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/prosemirror-tables/-/prosemirror-tables-1.4.0.tgz" + integrity sha512-fxryZZkQG12fSCNuZDrYx6Xvo2rLYZTbKLRd8rglOPgNJGMKIS8uvTt6gGC38m7UCu/ENnXIP9pEz5uDaPc+cA== dependencies: prosemirror-keymap "^1.1.2" prosemirror-model "^1.8.1" @@ -1975,40 +1925,44 @@ prosemirror-tables@^1.3.0: prosemirror-transform "^1.2.1" prosemirror-view "^1.13.3" -prosemirror-trailing-node@^2.0.2: - version "2.0.7" - resolved "https://registry.npmjs.org/prosemirror-trailing-node/-/prosemirror-trailing-node-2.0.7.tgz" - integrity sha512-8zcZORYj/8WEwsGo6yVCRXFMOfBo0Ub3hCUvmoWIZYfMP26WqENU0mpEP27w7mt8buZWuGrydBewr0tOArPb1Q== +prosemirror-trailing-node@^2.0.9: + version "2.0.9" + resolved "https://registry.npmjs.org/prosemirror-trailing-node/-/prosemirror-trailing-node-2.0.9.tgz" + integrity sha512-YvyIn3/UaLFlFKrlJB6cObvUhmwFNZVhy1Q8OpW/avoTbD/Y7H5EcjK4AZFKhmuS6/N6WkGgt7gWtBWDnmFvHg== dependencies: "@remirror/core-constants" "^2.0.2" - "@remirror/core-helpers" "^3.0.0" escape-string-regexp "^4.0.0" -prosemirror-transform@^1.0.0, prosemirror-transform@^1.1.0, prosemirror-transform@^1.2.1, prosemirror-transform@^1.7.0, prosemirror-transform@^1.7.3: - version "1.8.0" - resolved "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.8.0.tgz" - integrity sha512-BaSBsIMv52F1BVVMvOmp1yzD3u65uC3HTzCBQV1WDPqJRQ2LuHKcyfn0jwqodo8sR9vVzMzZyI+Dal5W9E6a9A== +prosemirror-transform@^1.0.0, prosemirror-transform@^1.1.0, prosemirror-transform@^1.2.1, prosemirror-transform@^1.7.3, prosemirror-transform@^1.9.0: + version "1.9.0" + resolved "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.9.0.tgz" + integrity sha512-5UXkr1LIRx3jmpXXNKDhv8OyAOeLTGuXNwdVfg8x27uASna/wQkr9p6fD3eupGOi4PLJfbezxTyi/7fSJypXHg== dependencies: - prosemirror-model "^1.0.0" + prosemirror-model "^1.21.0" -prosemirror-view@^1.0.0, prosemirror-view@^1.1.0, prosemirror-view@^1.13.3, prosemirror-view@^1.27.0, prosemirror-view@^1.28.2, prosemirror-view@^1.31.0, prosemirror-view@^1.31.2: - version "1.32.7" - resolved "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.32.7.tgz" - integrity sha512-pvxiOoD4shW41X5bYDjRQk3DSG4fMqxh36yPMt7VYgU3dWRmqFzWJM/R6zeo1KtC8nyk717ZbQND3CC9VNeptw== +prosemirror-view@^1.0.0, prosemirror-view@^1.1.0, prosemirror-view@^1.13.3, prosemirror-view@^1.27.0, prosemirror-view@^1.31.0, prosemirror-view@^1.33.8, prosemirror-view@^1.33.9: + version "1.33.9" + resolved "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.33.9.tgz" + integrity sha512-xV1A0Vz9cIcEnwmMhKKFAOkfIp8XmJRnaZoPqNXrPS7EK5n11Ov8V76KhR0RsfQd/SIzmWY+bg+M44A2Lx/Nnw== dependencies: - prosemirror-model "^1.16.0" + prosemirror-model "^1.20.0" prosemirror-state "^1.0.0" prosemirror-transform "^1.1.0" +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + punycode.js@^2.3.1: version "2.3.1" resolved "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz" integrity sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA== punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + version "2.3.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== queue-microtask@^1.2.2: version "1.2.3" @@ -2056,28 +2010,28 @@ rimraf@^3.0.2: glob "^7.1.3" rollup@^4.13.0: - version "4.19.1" - resolved "https://registry.npmjs.org/rollup/-/rollup-4.19.1.tgz" - integrity sha512-K5vziVlg7hTpYfFBI+91zHBEMo6jafYXpkMlqZjg7/zhIG9iHqazBf4xz9AVdjS9BruRn280ROqLI7G3OFRIlw== + version "4.20.0" + resolved "https://registry.npmjs.org/rollup/-/rollup-4.20.0.tgz" + integrity sha512-6rbWBChcnSGzIlXeIdNIZTopKYad8ZG8ajhl78lGRLsI2rX8IkaotQhVas2Ma+GPxJav19wrSzvRvuiv0YKzWw== dependencies: "@types/estree" "1.0.5" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.19.1" - "@rollup/rollup-android-arm64" "4.19.1" - "@rollup/rollup-darwin-arm64" "4.19.1" - "@rollup/rollup-darwin-x64" "4.19.1" - "@rollup/rollup-linux-arm-gnueabihf" "4.19.1" - "@rollup/rollup-linux-arm-musleabihf" "4.19.1" - "@rollup/rollup-linux-arm64-gnu" "4.19.1" - "@rollup/rollup-linux-arm64-musl" "4.19.1" - "@rollup/rollup-linux-powerpc64le-gnu" "4.19.1" - "@rollup/rollup-linux-riscv64-gnu" "4.19.1" - "@rollup/rollup-linux-s390x-gnu" "4.19.1" - "@rollup/rollup-linux-x64-gnu" "4.19.1" - "@rollup/rollup-linux-x64-musl" "4.19.1" - "@rollup/rollup-win32-arm64-msvc" "4.19.1" - "@rollup/rollup-win32-ia32-msvc" "4.19.1" - "@rollup/rollup-win32-x64-msvc" "4.19.1" + "@rollup/rollup-android-arm-eabi" "4.20.0" + "@rollup/rollup-android-arm64" "4.20.0" + "@rollup/rollup-darwin-arm64" "4.20.0" + "@rollup/rollup-darwin-x64" "4.20.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.20.0" + "@rollup/rollup-linux-arm-musleabihf" "4.20.0" + "@rollup/rollup-linux-arm64-gnu" "4.20.0" + "@rollup/rollup-linux-arm64-musl" "4.20.0" + "@rollup/rollup-linux-powerpc64le-gnu" "4.20.0" + "@rollup/rollup-linux-riscv64-gnu" "4.20.0" + "@rollup/rollup-linux-s390x-gnu" "4.20.0" + "@rollup/rollup-linux-x64-gnu" "4.20.0" + "@rollup/rollup-linux-x64-musl" "4.20.0" + "@rollup/rollup-win32-arm64-msvc" "4.20.0" + "@rollup/rollup-win32-ia32-msvc" "4.20.0" + "@rollup/rollup-win32-x64-msvc" "4.20.0" fsevents "~2.3.2" rope-sequence@^1.3.0: @@ -2093,20 +2047,18 @@ run-parallel@^1.1.9: queue-microtask "^1.2.2" sass@*, sass@^1.70.0: - version "1.70.0" - resolved "https://registry.npmjs.org/sass/-/sass-1.70.0.tgz" - integrity sha512-uUxNQ3zAHeAx5nRFskBnrWzDUJrrvpCPD5FNAoRvTi0WwremlheES3tg+56PaVtCs5QDRX5CBLxxKMDJMEa1WQ== + version "1.77.8" + resolved "https://registry.npmjs.org/sass/-/sass-1.77.8.tgz" + integrity sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" source-map-js ">=0.6.2 <2.0.0" -semver@^7.3.6, semver@^7.5.4: - version "7.5.4" - resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - dependencies: - lru-cache "^6.0.0" +semver@^7.3.6, semver@^7.6.0: + version "7.6.3" + resolved "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz" + integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== shebang-command@^2.0.0: version "2.0.0" @@ -2214,14 +2166,14 @@ supports-preserve-symlinks-flag@^1.0.0: integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== tailwind-scrollbar@^3.0.5: - version "3.0.5" - resolved "https://registry.npmjs.org/tailwind-scrollbar/-/tailwind-scrollbar-3.0.5.tgz" - integrity sha512-0ZwxTivevqq9BY9fRP9zDjHl7Tu+J5giBGbln+0O1R/7nHtBUKnjQcA1aTIhK7Oyjp6Uc/Dj6/dn8Dq58k5Uww== + version "3.1.0" + resolved "https://registry.npmjs.org/tailwind-scrollbar/-/tailwind-scrollbar-3.1.0.tgz" + integrity sha512-pmrtDIZeHyu2idTejfV59SbaJyvp1VRjYxAjZBH0jnyrPRo6HL1kD5Glz8VPagasqr6oAx6M05+Tuw429Z8jxg== "tailwindcss@^1.2 || ^2.0 || ^3.0", tailwindcss@^3.4.1, "tailwindcss@>=2.0.0 || >=3.0.0 || >=3.0.0-alpha.1", "tailwindcss@>=3.0.0 || >= 3.0.0-alpha.1", "tailwindcss@>=3.0.0 || insiders", tailwindcss@3.x: - version "3.4.1" - resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.1.tgz" - integrity sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA== + version "3.4.7" + resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.7.tgz" + integrity sha512-rxWZbe87YJb4OcSopb7up2Ba4U82BoiSGUdoDr3Ydrg9ckxFS/YWsvhN323GMcddgU65QRy7JndC7ahhInhvlQ== dependencies: "@alloc/quick-lru" "^5.2.0" arg "^5.0.2" @@ -2231,7 +2183,7 @@ tailwind-scrollbar@^3.0.5: fast-glob "^3.3.0" glob-parent "^6.0.2" is-glob "^4.0.3" - jiti "^1.19.1" + jiti "^1.21.0" lilconfig "^2.1.0" micromatch "^4.0.5" normalize-path "^3.0.0" @@ -2249,7 +2201,7 @@ tailwind-scrollbar@^3.0.5: text-table@^0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== thenify-all@^1.0.0: version "1.6.0" @@ -2265,11 +2217,6 @@ thenify-all@^1.0.0: dependencies: any-promise "^1.0.0" -throttle-debounce@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-3.0.1.tgz" - integrity sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg== - tippy.js@^6.3.7: version "6.3.7" resolved "https://registry.npmjs.org/tippy.js/-/tippy.js-6.3.7.tgz" @@ -2277,6 +2224,11 @@ tippy.js@^6.3.7: dependencies: "@popperjs/core" "^2.9.0" +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" @@ -2301,28 +2253,23 @@ type-fest@^0.20.2: resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -type-fest@^2.19.0: - version "2.19.0" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz" - integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== - -uc.micro@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-2.0.0.tgz" - integrity sha512-DffL94LsNOccVn4hyfRe5rdKa273swqeA5DJpMOeFmEn1wCDc7nAbbB0gXlgBCL7TNzeTv6G7XVWzan7iJtfig== +uc.micro@^2.0.0, uc.micro@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz" + integrity sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A== undici-types@~5.26.4: version "5.26.5" resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz" integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== -update-browserslist-db@^1.0.13: - 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== +update-browserslist-db@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz" + integrity sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ== dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" + escalade "^3.1.2" + picocolors "^1.0.1" uri-js@^4.2.2: version "4.4.1" @@ -2334,7 +2281,7 @@ uri-js@^4.2.2: util-deprecate@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== util@^0.10.3: version "0.10.4" @@ -2357,9 +2304,9 @@ v-tooltip@^4.0.0-beta.17: vue-resize "^2.0.0-alpha.1" vite-plugin-full-reload@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.1.0.tgz" - integrity sha512-3cObNDzX6DdfhD9E7kf6w2mNunFpD7drxyNgHLw+XwIYAgb+Xt16SEXo0Up4VH+TMf3n+DSVJZtW2POBGcBYAA== + version "1.2.0" + resolved "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.2.0.tgz" + integrity sha512-kz18NW79x0IHbxRSHm0jttP4zoO9P9gXh+n6UTwlNKnviTTEpOlum6oS9SmecrTtSr+muHEn5TUuC75UovQzcA== dependencies: picocolors "^1.0.0" picomatch "^2.3.1" @@ -2380,20 +2327,20 @@ vue-demi@^0.13.11: resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz" integrity sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A== -vue-demi@>=0.14.5: - version "0.14.6" - resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz" - integrity sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w== +vue-demi@^0.14.8: + version "0.14.10" + resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz" + integrity sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg== -vue-demi@>=0.14.6: - version "0.14.6" - resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz" - integrity sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w== +vue-demi@>=0.14.8: + version "0.14.10" + resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz" + integrity sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg== -vue-eslint-parser@^9.4.0: - version "9.4.2" - resolved "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.2.tgz" - integrity sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ== +vue-eslint-parser@^9.4.3: + version "9.4.3" + resolved "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz" + integrity sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg== dependencies: debug "^4.3.4" eslint-scope "^7.1.1" @@ -2404,19 +2351,19 @@ vue-eslint-parser@^9.4.0: semver "^7.3.6" vue-flatpickr-component@^11.0.3: - version "11.0.3" - resolved "https://registry.npmjs.org/vue-flatpickr-component/-/vue-flatpickr-component-11.0.3.tgz" - integrity sha512-SYNW/lqK1q9gzr5kQpNDwnlgUIDnXJpG1AmoDxVyOYVtUD7mLaDU1w+MJLFI644NYtwh9NrCt5LpojlsjtbvqA== + version "11.0.5" + resolved "https://registry.npmjs.org/vue-flatpickr-component/-/vue-flatpickr-component-11.0.5.tgz" + integrity sha512-Vfwg5uVU+sanKkkLzUGC5BUlWd5wlqAMq/UpQ6lI2BCZq0DDrXhOMX7hrevt8bEgglIq2QUv0K2Nl84Me/VnlA== dependencies: flatpickr "^4.6.13" vue-i18n@^9.9.0: - version "9.9.0" - resolved "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.9.0.tgz" - integrity sha512-xQ5SxszUAqK5n84N+uUyHH/PiQl9xZ24FOxyAaNonmOQgXeN+rD9z/6DStOpOxNFQn4Cgcquot05gZc+CdOujA== + version "9.13.1" + resolved "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.13.1.tgz" + integrity sha512-mh0GIxx0wPtPlcB1q4k277y0iKgo25xmDPWioVVYanjPufDBpvu5ySTjP5wOrSvlYQ2m1xI+CFhGdauv/61uQg== dependencies: - "@intlify/core-base" "9.9.0" - "@intlify/shared" "9.9.0" + "@intlify/core-base" "9.13.1" + "@intlify/shared" "9.13.1" "@vue/devtools-api" "^6.5.0" vue-resize@^2.0.0-alpha.1: @@ -2425,22 +2372,22 @@ vue-resize@^2.0.0-alpha.1: integrity sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg== vue-router@^4.2.5: - version "4.2.5" - resolved "https://registry.npmjs.org/vue-router/-/vue-router-4.2.5.tgz" - integrity sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw== + version "4.4.2" + resolved "https://registry.npmjs.org/vue-router/-/vue-router-4.4.2.tgz" + integrity sha512-1qNybkn2L7QsLzaXs8nvlQmRKp8XF8DCxZys/Jr1JpQcHsKUxTKzTxCVA1G7NfBfwRIBgCJPoujOG5lHCCNUxw== dependencies: - "@vue/devtools-api" "^6.5.0" + "@vue/devtools-api" "^6.6.3" -"vue@^2.0.0 || >=3.0.0", "vue@^2.6.14 || ^3.3.0", "vue@^2.7.0 || ^3.0.0", vue@^3.0.0, "vue@^3.0.0-0 || ^2.6.0", vue@^3.0.1, vue@^3.0.11, vue@^3.2.0, vue@^3.2.25, vue@^3.4, "vue@>= 3", "vue@>= 3.2.0", vue@3.4.15: - version "3.4.15" - resolved "https://registry.npmjs.org/vue/-/vue-3.4.15.tgz" - integrity sha512-jC0GH4KkWLWJOEQjOpkqU1bQsBwf4R1rsFtw5GQJbjHVKWDzO6P0nWWBTmjp1xSemAioDFj1jdaK1qa3DnMQoQ== +"vue@^2.0.0 || >=3.0.0", "vue@^2.6.14 || ^3.3.0", "vue@^2.7.0 || ^3.0.0", vue@^3.0.0, "vue@^3.0.0-0 || ^2.6.0", vue@^3.0.1, vue@^3.0.11, vue@^3.2.0, vue@^3.2.25, vue@^3.4, "vue@>= 3", "vue@>= 3.2.0", vue@3.4.35: + version "3.4.35" + resolved "https://registry.npmjs.org/vue/-/vue-3.4.35.tgz" + integrity sha512-+fl/GLmI4GPileHftVlCdB7fUL4aziPcqTudpTGXCT8s+iZWuOCeNEB5haX6Uz2IpRrbEXOgIFbe+XciCuGbNQ== dependencies: - "@vue/compiler-dom" "3.4.15" - "@vue/compiler-sfc" "3.4.15" - "@vue/runtime-dom" "3.4.15" - "@vue/server-renderer" "3.4.15" - "@vue/shared" "3.4.15" + "@vue/compiler-dom" "3.4.35" + "@vue/compiler-sfc" "3.4.35" + "@vue/runtime-dom" "3.4.35" + "@vue/server-renderer" "3.4.35" + "@vue/shared" "3.4.35" vuedraggable@^4.1.0: version "4.1.0" @@ -2461,6 +2408,11 @@ which@^2.0.1: dependencies: isexe "^2.0.0" +word-wrap@^1.2.5: + version "1.2.5" + resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== + "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" @@ -2482,22 +2434,17 @@ wrap-ansi@^8.1.0: wrappy@1: version "1.0.2" resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== xml-name-validator@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz" integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - yaml@^2.3.4: - version "2.3.4" - resolved "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz" - integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== + version "2.5.0" + resolved "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz" + integrity sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw== yocto-queue@^0.1.0: version "0.1.0" From bcb89bc9aef45335791d4092d6a097d311cc4df8 Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Sun, 4 Aug 2024 02:39:20 +0200 Subject: [PATCH 49/50] Ignore .dev/docker-compose.yml to allow devs to customize one of those --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index f3ceb21a..56983f08 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,5 @@ Homestead.yaml .php-cs-fixer.cache /storage/fonts* package-lock.json +/.dev/docker-compose.yml +/.dev/docker-compose.yaml From 9a46f892ab99b5cdc6be868b34a946b0fd737a29 Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Sun, 4 Aug 2024 03:04:10 +0200 Subject: [PATCH 50/50] Add support for release channels (insider release channel) in Updater --- app/Http/Controllers/AppVersionController.php | 9 +++++- .../Admin/Update/CheckVersionController.php | 5 +-- app/Space/Updater.php | 8 ++--- lang/en.json | 1 + .../admin/views/settings/UpdateAppSetting.vue | 32 +++++++++++++------ 5 files changed, 39 insertions(+), 16 deletions(-) diff --git a/app/Http/Controllers/AppVersionController.php b/app/Http/Controllers/AppVersionController.php index 3978fb3c..84cc9ad7 100644 --- a/app/Http/Controllers/AppVersionController.php +++ b/app/Http/Controllers/AppVersionController.php @@ -10,14 +10,21 @@ class AppVersionController extends Controller /** * Handle the incoming request. * - * @return \Illuminate\Http\Response + * @return \Illuminate\Http\JsonResponse */ public function __invoke(Request $request) { $version = Setting::getSetting('version'); + $channel = Setting::getSetting('updater_channel'); + if (is_null($channel)) { + $channel = 'stable'; + Setting::setSetting('updater_channel', 'stable'); // default. + } + return response()->json([ 'version' => $version, + 'channel' => $channel, ]); } } diff --git a/app/Http/Controllers/V1/Admin/Update/CheckVersionController.php b/app/Http/Controllers/V1/Admin/Update/CheckVersionController.php index 03e75d6d..a3bbc2ac 100644 --- a/app/Http/Controllers/V1/Admin/Update/CheckVersionController.php +++ b/app/Http/Controllers/V1/Admin/Update/CheckVersionController.php @@ -25,8 +25,9 @@ class CheckVersionController extends Controller set_time_limit(600); // 10 minutes - $json = Updater::checkForUpdate(Setting::getSetting('version')); + $channel = $request->get('channel', 'stable'); + $response = Updater::checkForUpdate(Setting::getSetting('version'), $channel); - return response()->json($json); + return response()->json($response); } } diff --git a/app/Space/Updater.php b/app/Space/Updater.php index fce325b0..5b0d7310 100644 --- a/app/Space/Updater.php +++ b/app/Space/Updater.php @@ -14,19 +14,19 @@ class Updater { use SiteApi; - public static function checkForUpdate($installed_version) + public static function checkForUpdate($installed_version, $updater_channel = 'stable') { $data = null; - $url = 'releases/update-check/'.$installed_version; + $url = sprintf('releases/update-check/%s?channel=%s', $installed_version, $updater_channel); $response = static::getRemote($url, ['timeout' => 100, 'track_redirects' => true]); + $data = (object) ['success' => false, 'release' => null]; if ($response && ($response->getStatusCode() == 200)) { $data = $response->getBody()->getContents(); + $data = json_decode($data); } - $data = json_decode($data); - if ($data->success && $data->release && property_exists($data->release, 'extensions')) { $extensions = []; foreach ($data->release->extensions as $extension) { diff --git a/lang/en.json b/lang/en.json index 58c95df4..9ee17e8c 100644 --- a/lang/en.json +++ b/lang/en.json @@ -1272,6 +1272,7 @@ "title": "Update App", "description": "You can easily update InvoiceShelf by checking for a new update by clicking the button below", "check_update": "Check for updates", + "insider_consent" : "Opt-in for Insider releases. Recommended for testing purposes only.", "avail_update": "New Update available", "next_version": "Next version", "requirements": "Requirements", diff --git a/resources/scripts/admin/views/settings/UpdateAppSetting.vue b/resources/scripts/admin/views/settings/UpdateAppSetting.vue index e5948bbb..90e7a370 100644 --- a/resources/scripts/admin/views/settings/UpdateAppSetting.vue +++ b/resources/scripts/admin/views/settings/UpdateAppSetting.vue @@ -8,11 +8,12 @@ {{ $t('settings.update_app.current_version') }} -
+
- {{ currentVersion }} + > + {{ currentVersion }} +
+
+ +
+
{ axios.get('/api/v1/app/version').then((res) => { currentVersion.value = res.data.version + insiderChannel.value = res.data.channel === 'insider' }) // comapnyStore @@ -323,7 +332,11 @@ function statusClass(step) { async function checkUpdate() { try { isCheckingforUpdate.value = true - let response = await axios.get('/api/v1/check/update') + let response = await axios.get('/api/v1/check/update', { + params: { + channel: insiderChannel ? 'insider' : '' + } + }); isCheckingforUpdate.value = false if (!response.data.release) { notificationStore.showNotification({ @@ -342,6 +355,7 @@ async function checkUpdate() { requiredExtentions.value = response.data.release.extensions isUpdateAvailable.value = true minPhpVesrion.value = response.data.release.min_php_version + deletedFiles.value = response.data.release.deleted_files } } catch (e) { isUpdateAvailable.value = false