From 560be4414f5bdb9df1b6a208dca92e94c319c6da Mon Sep 17 00:00:00 2001 From: Diego Steiner Date: Sun, 14 Jan 2024 13:46:54 +0000 Subject: [PATCH 01/12] feature: add timezone to ical feed --- app/services/ical_service.rb | 45 +++++++++++++++++++++--------- spec/services/ical_service_spec.rb | 21 ++++++++++++++ 2 files changed, 53 insertions(+), 13 deletions(-) create mode 100644 spec/services/ical_service_spec.rb diff --git a/app/services/ical_service.rb b/app/services/ical_service.rb index 9592d6a06..1a9fdbbbc 100644 --- a/app/services/ical_service.rb +++ b/app/services/ical_service.rb @@ -1,35 +1,50 @@ # frozen_string_literal: true +require 'icalendar/tzinfo' + class IcalService + STATUS_MAP = { + free: nil, + tentative: 'TENTATIVE', + occupied: 'CONFIRMED', + closed: 'CONFIRMED' + }.freeze + def occupancies_to_ical(occupancies, include_tenant_details: false) ical = Icalendar::Calendar.new - ical_events = occupancies.flat_map do |occupancy| - occupancy_to_ical(occupancy, include_tenant_details:) - end + ical_events = occupancies.flat_map { |occupancy| occupancy_to_ical(occupancy, include_tenant_details:) } ical_events.each { |occupancy| ical.add_event(occupancy) } + timezone = TZInfo::Timezone.get Time.zone.tzinfo.identifier + ical.add_timezone timezone.ical_timezone Time.zone.now ical.to_ical end # rubocop:disable Metrics/AbcSize, Metrics/MethodLength def occupancy_to_ical(occupancy, include_tenant_details: false) Icalendar::Event.new.tap do |ical_event| - ical_event.dtstart = formatted_datetime(occupancy.begins_at) - ical_event.dtend = formatted_datetime(occupancy.ends_at) - ical_event.created = formatted_datetime(occupancy.created_at) - ical_event.last_modified = formatted_datetime(occupancy.updated_at) - ical_event.dtstamp = formatted_datetime(occupancy.updated_at) + ical_event.dtstart = icalendar_datetime(occupancy.begins_at) + ical_event.dtend = icalendar_datetime(occupancy.ends_at) + ical_event.created = icalendar_datetime(occupancy.created_at) + ical_event.last_modified = icalendar_datetime(occupancy.updated_at) + ical_event.dtstamp = icalendar_datetime(occupancy.updated_at) ical_event.uid = occupancy.id ical_event.location = occupancy.occupiable.to_s ical_event.summary = occupancy.booking&.ref || occupancy.remarks ical_event.location = occupancy.occupiable&.to_s - ical_event.status = occupancy.occupancy_type - ical_event.description = (include_tenant_details && tenant_details_text(occupancy)) || occupancy.remarks.presence + ical_event.status = STATUS_MAP.fetch(occupancy.occupancy_type, nil) + ical_event.color = occupancy.color + ical_event.description = occupancy.remarks.presence + + next unless include_tenant_details + + ical_event.contact = icalendar_contact(occupancy) + ical_event.attendee = icalendar_attendee(occupancy) end end # rubocop:enable Metrics/AbcSize, Metrics/MethodLength - def tenant_details_text(occupancy) + def icalendar_contact(occupancy) occupancy.booking&.instance_eval do [ tenant_organisation, "#{purpose_description} (#{category})", tenant&.contact_lines @@ -37,7 +52,11 @@ def tenant_details_text(occupancy) end end - def formatted_datetime(datetime) - Icalendar::Values::DateTime.new(datetime.utc.strftime(Icalendar::Values::DateTime::FORMAT)) + def icalendar_attendee(occupancy) + Icalendar::Values::CalAddress.new + end + + def icalendar_datetime(datetime) + Icalendar::Values::DateTime.new(datetime, tzid: datetime.zone) end end diff --git a/spec/services/ical_service_spec.rb b/spec/services/ical_service_spec.rb new file mode 100644 index 000000000..eb8e3b1c3 --- /dev/null +++ b/spec/services/ical_service_spec.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe IcalService, type: :model do + subject(:service) { described_class.new } + + describe '#occupancies_to_ical' do + subject(:occupancies_to_ical) { service.occupancies_to_ical(bookings.flat_map(&:occupancies)) } + + let(:organisation) { create(:organisation) } + let(:home) { create(:home, organisation:) } + let(:bookings) do + create_list(:booking, 3, organisation:, home:, occupiables: [home]) + end + + it 'generates the ics file' do + expect(occupancies_to_ical).to be_present + end + end +end From 90e0da0c3bde83c32ad320f6934915356553ec79 Mon Sep 17 00:00:00 2001 From: Diego Steiner Date: Tue, 16 Jan 2024 13:13:53 +0000 Subject: [PATCH 02/12] feature: merge iban for organisation --- Gemfile | 1 + Gemfile.lock | 2 ++ Procfile | 3 -- app/models/iban.rb | 32 +++++++++++++++++++ app/models/organisation.rb | 3 +- app/models/payment_infos/qr_bill.rb | 6 ++-- app/params/manage/organisation_params.rb | 2 +- .../manage/organisation_serializer.rb | 2 +- .../manage/organisations/_form.html.slim | 1 - config/initializers/inflections.rb | 1 + config/locales/de.yml | 3 +- config/locales/en.yml | 1 - config/locales/fr.yml | 1 - config/locales/it.yml | 3 +- ...90948_remove_qr_iban_from_organisations.rb | 13 ++++++++ db/schema.rb | 3 +- db/seeds/demo.json | 1 - db/seeds/development.json | 1 - spec/factories/organisations.rb | 1 - spec/models/iban_spec.rb | 30 +++++++++++++++++ spec/models/organisation_spec.rb | 1 - spec/models/payment_infos/qr_bill_spec.rb | 10 +++--- 22 files changed, 94 insertions(+), 27 deletions(-) delete mode 100644 Procfile create mode 100644 app/models/iban.rb create mode 100644 db/migrate/20240115190948_remove_qr_iban_from_organisations.rb create mode 100644 spec/models/iban_spec.rb diff --git a/Gemfile b/Gemfile index 3934773d4..9333883df 100644 --- a/Gemfile +++ b/Gemfile @@ -21,6 +21,7 @@ gem 'discard' gem 'factory_bot_rails', '~> 6.2.0', require: false gem 'faker', require: false gem 'faraday', require: false +gem 'iban-tools' gem 'icalendar' gem 'inline_svg' gem 'kramdown' diff --git a/Gemfile.lock b/Gemfile.lock index d74e109d2..479c43812 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -220,6 +220,7 @@ GEM terminal-table (>= 1.5.1) i18n-tasks-csv (1.1) i18n-tasks (~> 0.9) + iban-tools (1.2.1) icalendar (2.10.1) ice_cube (~> 0.16) ice_cube (0.16.4) @@ -541,6 +542,7 @@ DEPENDENCIES faraday i18n-tasks i18n-tasks-csv + iban-tools icalendar inline_svg kramdown diff --git a/Procfile b/Procfile deleted file mode 100644 index 26d873a9b..000000000 --- a/Procfile +++ /dev/null @@ -1,3 +0,0 @@ -web: bin/rails s -worker: bin/sidekiq-job-worker -release: bin/rails db:migrate diff --git a/app/models/iban.rb b/app/models/iban.rb new file mode 100644 index 000000000..192277acb --- /dev/null +++ b/app/models/iban.rb @@ -0,0 +1,32 @@ +# frozen_string_literal: true + +class IBAN < IBANTools::IBAN + def to_s + prettify + end + + def valid? + self.class.valid?(to_s) + end + + def qrr? + valid? && country_code.upcase == 'CH' && (30_000..31_999).include?(numerify[0..4].to_i) + end + + class Type < ActiveModel::Type::String + def cast_value(value) + return if value.blank? + + case value + when String + IBAN.new(value) + when IBAN + value + end + end + + def serialize(value) + super(value&.to_s) + end + end +end diff --git a/app/models/organisation.rb b/app/models/organisation.rb index cb519166b..b4522ac3f 100644 --- a/app/models/organisation.rb +++ b/app/models/organisation.rb @@ -23,7 +23,6 @@ # mail_from :string # name :string # notifications_enabled :boolean default(TRUE) -# qr_iban :string # ref_template :string default("%s%04d%02d%02d%s") # representative_address :string # settings :jsonb @@ -77,11 +76,13 @@ class Organisation < ApplicationRecord errors.add(:settings, :invalid) unless settings.valid? errors.add(:smtp_settings, :invalid) unless smtp_settings.nil? || smtp_settings.valid? errors.add(:creditor_address, :invalid) if creditor_address_lines.count > 3 + errors.add(:iban, :invalid) if iban.present? && !iban.valid? end attribute :booking_flow_type, default: -> { BookingFlows::Default.to_s } attribute :settings, Settings::Type.new(OrganisationSettings), default: -> { OrganisationSettings.new } attribute :smtp_settings, Settings::Type.new(SmtpSettings) + attribute :iban, IBAN::Type.new def booking_flow_class @booking_flow_class ||= BookingFlows.const_get(booking_flow_type) diff --git a/app/models/payment_infos/qr_bill.rb b/app/models/payment_infos/qr_bill.rb index 1eafdacbf..fa07a90d5 100644 --- a/app/models/payment_infos/qr_bill.rb +++ b/app/models/payment_infos/qr_bill.rb @@ -29,7 +29,7 @@ def qr_data qrtype: QRTYPE, version: VERSION, coding_type: CODING_TYPE, - cr_account: creditor_account&.delete(' '), + cr_account: creditor_account&.to_s&.delete(' '), cr_address_type: ADDRESS_TYPE, cr_name: creditor_address_lines.fetch(0, ''), cr_address_line_1: creditor_address_lines.fetch(1, ''), @@ -71,7 +71,7 @@ def debitor_address_lines end def creditor_account - organisation.qr_iban.presence || organisation.iban.presence + organisation.iban.presence end def currency @@ -96,7 +96,7 @@ def checksum(ref) end def ref_type - organisation.qr_iban.present? ? :QRR : :SCOR + organisation.iban&.qrr? ? :QRR : :SCOR end def scor_ref diff --git a/app/params/manage/organisation_params.rb b/app/params/manage/organisation_params.rb index 2a787070e..424c36c09 100644 --- a/app/params/manage/organisation_params.rb +++ b/app/params/manage/organisation_params.rb @@ -4,7 +4,7 @@ module Manage class OrganisationParams < ApplicationParams def self.permitted_keys %i[name address logo location bcc - ref_template iban qr_iban mail_from locale default_payment_info_type creditor_address + ref_template iban mail_from locale default_payment_info_type creditor_address representative_address contract_signature email notifications_enabled] + [{ settings: settings_permitted_keys }] end diff --git a/app/serializers/manage/organisation_serializer.rb b/app/serializers/manage/organisation_serializer.rb index b905dcd62..e5f89de2c 100644 --- a/app/serializers/manage/organisation_serializer.rb +++ b/app/serializers/manage/organisation_serializer.rb @@ -10,7 +10,7 @@ class OrganisationSerializer < Public::OrganisationSerializer association :tarifs, blueprint: TarifSerializer association :booking_questions, blueprint: Public::BookingQuestionSerializer - fields :qr_iban, :esr_beneficiary_account, :iban, :mail_from, + fields :esr_beneficiary_account, :iban, :mail_from, :booking_flow_type, :invoice_ref_strategy_type, :notifications_enabled, :location field :designated_documents do |organisation| diff --git a/app/views/manage/organisations/_form.html.slim b/app/views/manage/organisations/_form.html.slim index 2ba089f17..26c5a8ee5 100644 --- a/app/views/manage/organisations/_form.html.slim +++ b/app/views/manage/organisations/_form.html.slim @@ -38,7 +38,6 @@ = f.select :default_payment_info_type, subtype_options_for_select(PaymentInfo.subtypes), include_blank: true div[v-pre]= f.text_area :creditor_address, rows: 4, help: t('optional') = f.text_field :iban - = f.text_field :qr_iban fieldset h3.mt-5= Tenant.model_name.human(count: 2) diff --git a/config/initializers/inflections.rb b/config/initializers/inflections.rb index 06fc088d3..dab923f25 100644 --- a/config/initializers/inflections.rb +++ b/config/initializers/inflections.rb @@ -18,4 +18,5 @@ # end ActiveSupport::Inflector.inflections(:en) do |inflect| inflect.acronym 'ESR' + inflect.acronym 'IBAN' end diff --git a/config/locales/de.yml b/config/locales/de.yml index 117683770..9ae145e38 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -284,7 +284,6 @@ de: name: Name notifications_enabled: Nachrichten aktiviert privacy_statement_pdf: Datenschutzerklärung - qr_iban: QR-IBAN representative_address: Adresse der Vertretung für Verträge settings: Einstellungen slug: Namespace @@ -1337,7 +1336,7 @@ de: exception: 'Zahlungsdatei konnte nicht verarbeitet werden: %{errors}' rich_text_templates: form: - help_html: "

Variabeln im Text verwenden:

\n\n
\n  Hallo {{ booking.tenant.first_name }}!\n
\n\n

Folgende Variabeln stehen zur Verfügung:

\n
Buchung
\n
\n
Beginn der Belegung
{{ booking.begins_at | datetime_format }}
{{ booking.begins_at | datetime_format: \"%A, %d.%m.%Y %H:%M\" }}
\n
Ende der Belegung
{{ booking.ends_at | datetime_format }}
{{ booking.ends_at | datetime_format: \"%A, %d.%m.%Y %H:%M\" }}
\n \n
Erwartete Anzahl Personen
{{ booking.approximate_headcount }}
\n
Annulierungsgrund
{{ booking.cancellation_reason }}
\n
Verbindlichkeit der Mietanfrage
{{ booking.committed_request }}
\n\n
ID des Hauptmietobjekts
{{ booking.home.id }}
\n
IDs aller belegten Mietobjekte
{{ booking.occupiable_ids }}
\n
Name des Hauptmietobjekts
{{ booking.home.name }}
\n
Adresse des Hauptmietobjekts
{{ booking.home.description }}
\n\n
Name aller belegten Mietobjekte
{{ booking.occupiables | map: \"name\" | join: \", \" }}
\n
Liste belegten Hauptmietobjekte
    {% for home in booking.occupiables %}
  • {{ home.name }}
  • {% endfor %}
\n\n
Rechnungsadresse
{{ booking.invoice_address }}
\n
Frist bis Datum / Uhrzeit
{{ booking.deadline.at | datetime_format }}
\n
Frist Verlängerbar für n Sekunden
{{ booking.deadline.postponable_for }}
\n
Link für den Mieter
{{ booking.links.edit }}
\n
Link für den Vermieter
{{ booking.links.manage }}
\n
Belegungstyp
{{ booking.occupancy_type }}
\n
Schlüssel der Mietkategorie
{{ booking.category.key }}
\n
Bezeichnung der Mietkategorie
{{ booking.category.title }}
\n
Beschreibung der Mietkategorie
{{ booking.category.description }}
\n
Beschreibung der Mietzwecks
{{ booking.purpose_description }}
\n
Referenznummer der Buchung
{{ booking.ref }}
\n
Bemerkungen des Mieters
{{ booking.remarks }}
\n
Adresszusatz des Mieters
{{ booking.tenant.address_addon }}
\n
Ort des Mieters
{{ booking.tenant.city }}
\n
E-Mail des Mieters
{{ booking.tenant.email }}
\n
Vorname des Mieters
{{ booking.tenant.first_name }}
\n
Nachname des Mieters
{{ booking.tenant.last_name }}
\n
Pfadiname des Mieters
{{ booking.tenant.nickname }}
\n
Anrede mit Name des Mieters
{{ booking.tenant.salutation_name }}
\n
Adresse des Mieters
{{ booking.tenant.street_address }}
\n
PLZ des Mieters
{{ booking.tenant.zipcode }}
\n
Organisation des Mieters
{{ booking.tenant.tenant_organisation }}
\n
Name der verantwortlichen Person für die Hausübergabe
{{ booking.operator_responsibilities.home_handover.operator.name }}
\n
E-Mail der verantwortlichen Person für die Hausübergabe
{{ booking.operator_responsibilities.home_handover.operator.email }}
\n
Kontaktinformationen der verantwortlichen Person für die Hausübergabe
{{ booking.operator_responsibilities.home_handover.operator.contact_info }}
\n
Name der verantwortlichen Person für die Hausrücknahme
{{ booking.operator_responsibilities.home_return.operator.name }}
\n
E-Mail der verantwortlichen Person für die Hausrücknahme
{{ booking.operator_responsibilities.home_return.operator.email }}
\n
Kontaktinformationen der verantwortlichen Person für die Hausrücknahme
{{ booking.operator_responsibilities.home_return.operator.contact_info }}
\n
Name der verantwortlichen Person für die Verwaltung / Allgmeine Anliegen
{{ booking.operator_responsibilities.administration.operator.name }}
\n
E-Mail der verantwortlichen Person für die Verwaltung / Allgmeine Anliegen
{{ booking.operator_responsibilities.administration.operator.email }}
\n
Kontaktinformationen der verantwortlichen Person für die Verwaltung / Allgmeine Anliegen
{{ booking.operator_responsibilities.administration.operator.contact_info }}
\n
Name der verantwortlichen Person für die Verrechnung
{{ booking.operator_responsibilities.billing.operator.name }}
\n
E-Mail der verantwortlichen Person für die Verrechnung
{{ booking.operator_responsibilities.billing.operator.email }}
\n
Kontaktinformationen der verantwortlichen Person für die Verrechnung
{{ booking.operator_responsibilities.billing.operator.contact_info }}
\n
\n
Organisation
\n
\n
Adresse der Organisation, Sitz
{{ organisation.address }}
\n
Liste aller Mietkategorien der Organisation
{{ organisation.booking_categories }}
\n
E-Mail der Organisation
{{ organisation.email }}
\n
PC-Kontonummer
{{ organisation.esr_beneficiary_account }}
\n
IBAN
{{ organisation.iban }}
\n
QR-IBAN
{{ organisation.qr_iban }}
\n
Link zur Datenschutzerklärung
{{ organisation.links.privacy_statement_pdf }}
\n
Link zu den AGB
{{ organisation.links.terms_pdf }}
\n
Name der Organisation
{{ organisation.name }}
\n
\n
Kosten
\n
\n
Verbrauch
{{ cost_estimation.used | currency }}
\n
Verrechnet
{{ cost_estimation.total | currency }}
\n
Anzahlung
{{ cost_estimation.deposit | currency }}
\n
\n\n Logik im Text verwenden:\n\n
{% if booking.home_id contains 1 %}Passage nur sichtbar, wenn ID des Hauptmietobjekts der Buchung gleich 1 ist{% endif %}
\n
\n  {% if booking.category.key == 'camp' %}\n    Wir wünschen euch viel Spass in eurem Lager in unserem Heim!\n  {% else %}\n    Wir wünschen Ihnen einen schönen Aufenthalt in unserem Heim!\n  {% endif %}\n  
\n" + help_html: "

Variabeln im Text verwenden:

\n\n
\n  Hallo {{ booking.tenant.first_name }}!\n
\n\n

Folgende Variabeln stehen zur Verfügung:

\n
Buchung
\n
\n
Beginn der Belegung
{{ booking.begins_at | datetime_format }}
{{ booking.begins_at | datetime_format: \"%A, %d.%m.%Y %H:%M\" }}
\n
Ende der Belegung
{{ booking.ends_at | datetime_format }}
{{ booking.ends_at | datetime_format: \"%A, %d.%m.%Y %H:%M\" }}
\n \n
Erwartete Anzahl Personen
{{ booking.approximate_headcount }}
\n
Annulierungsgrund
{{ booking.cancellation_reason }}
\n
Verbindlichkeit der Mietanfrage
{{ booking.committed_request }}
\n\n
ID des Hauptmietobjekts
{{ booking.home.id }}
\n
IDs aller belegten Mietobjekte
{{ booking.occupiable_ids }}
\n
Name des Hauptmietobjekts
{{ booking.home.name }}
\n
Adresse des Hauptmietobjekts
{{ booking.home.description }}
\n\n
Name aller belegten Mietobjekte
{{ booking.occupiables | map: \"name\" | join: \", \" }}
\n
Liste belegten Hauptmietobjekte
    {% for home in booking.occupiables %}
  • {{ home.name }}
  • {% endfor %}
\n\n
Rechnungsadresse
{{ booking.invoice_address }}
\n
Frist bis Datum / Uhrzeit
{{ booking.deadline.at | datetime_format }}
\n
Frist Verlängerbar für n Sekunden
{{ booking.deadline.postponable_for }}
\n
Link für den Mieter
{{ booking.links.edit }}
\n
Link für den Vermieter
{{ booking.links.manage }}
\n
Belegungstyp
{{ booking.occupancy_type }}
\n
Schlüssel der Mietkategorie
{{ booking.category.key }}
\n
Bezeichnung der Mietkategorie
{{ booking.category.title }}
\n
Beschreibung der Mietkategorie
{{ booking.category.description }}
\n
Beschreibung der Mietzwecks
{{ booking.purpose_description }}
\n
Referenznummer der Buchung
{{ booking.ref }}
\n
Bemerkungen des Mieters
{{ booking.remarks }}
\n
Adresszusatz des Mieters
{{ booking.tenant.address_addon }}
\n
Ort des Mieters
{{ booking.tenant.city }}
\n
E-Mail des Mieters
{{ booking.tenant.email }}
\n
Vorname des Mieters
{{ booking.tenant.first_name }}
\n
Nachname des Mieters
{{ booking.tenant.last_name }}
\n
Pfadiname des Mieters
{{ booking.tenant.nickname }}
\n
Anrede mit Name des Mieters
{{ booking.tenant.salutation_name }}
\n
Adresse des Mieters
{{ booking.tenant.street_address }}
\n
PLZ des Mieters
{{ booking.tenant.zipcode }}
\n
Organisation des Mieters
{{ booking.tenant.tenant_organisation }}
\n
Name der verantwortlichen Person für die Hausübergabe
{{ booking.operator_responsibilities.home_handover.operator.name }}
\n
E-Mail der verantwortlichen Person für die Hausübergabe
{{ booking.operator_responsibilities.home_handover.operator.email }}
\n
Kontaktinformationen der verantwortlichen Person für die Hausübergabe
{{ booking.operator_responsibilities.home_handover.operator.contact_info }}
\n
Name der verantwortlichen Person für die Hausrücknahme
{{ booking.operator_responsibilities.home_return.operator.name }}
\n
E-Mail der verantwortlichen Person für die Hausrücknahme
{{ booking.operator_responsibilities.home_return.operator.email }}
\n
Kontaktinformationen der verantwortlichen Person für die Hausrücknahme
{{ booking.operator_responsibilities.home_return.operator.contact_info }}
\n
Name der verantwortlichen Person für die Verwaltung / Allgmeine Anliegen
{{ booking.operator_responsibilities.administration.operator.name }}
\n
E-Mail der verantwortlichen Person für die Verwaltung / Allgmeine Anliegen
{{ booking.operator_responsibilities.administration.operator.email }}
\n
Kontaktinformationen der verantwortlichen Person für die Verwaltung / Allgmeine Anliegen
{{ booking.operator_responsibilities.administration.operator.contact_info }}
\n
Name der verantwortlichen Person für die Verrechnung
{{ booking.operator_responsibilities.billing.operator.name }}
\n
E-Mail der verantwortlichen Person für die Verrechnung
{{ booking.operator_responsibilities.billing.operator.email }}
\n
Kontaktinformationen der verantwortlichen Person für die Verrechnung
{{ booking.operator_responsibilities.billing.operator.contact_info }}
\n
\n
Organisation
\n
\n
Adresse der Organisation, Sitz
{{ organisation.address }}
\n
Liste aller Mietkategorien der Organisation
{{ organisation.booking_categories }}
\n
E-Mail der Organisation
{{ organisation.email }}
\n
PC-Kontonummer
{{ organisation.esr_beneficiary_account }}
\n
IBAN
{{ organisation.iban }}
\n
Link zur Datenschutzerklärung
{{ organisation.links.privacy_statement_pdf }}
\n
Link zu den AGB
{{ organisation.links.terms_pdf }}
\n
Name der Organisation
{{ organisation.name }}
\n
\n
Kosten
\n
\n
Verbrauch
{{ cost_estimation.used | currency }}
\n
Verrechnet
{{ cost_estimation.total | currency }}
\n
Anzahlung
{{ cost_estimation.deposit | currency }}
\n
\n\n Logik im Text verwenden:\n\n
{% if booking.home_id contains 1 %}Passage nur sichtbar, wenn ID des Hauptmietobjekts der Buchung gleich 1 ist{% endif %}
\n
\n  {% if booking.category.key == 'camp' %}\n    Wir wünschen euch viel Spass in eurem Lager in unserem Heim!\n  {% else %}\n    Wir wünschen Ihnen einen schönen Aufenthalt in unserem Heim!\n  {% endif %}\n  
\n" help_title: Hilfe zu Variabeln index: booking_action: Aktion diff --git a/config/locales/en.yml b/config/locales/en.yml index 32d55a438..26eac7235 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -247,7 +247,6 @@ en: name: Name notifications_enabled: Nachrichten aktiviert privacy_statement_pdf: Datenschutzerklärung - qr_iban: QR-IBAN representative_address: Adresse der Vertretung für Verträge settings: Einstellungen slug: Namespace diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 4e9cb7946..71db2c4b3 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -281,7 +281,6 @@ fr: name: Nom notifications_enabled: Messages activés privacy_statement_pdf: Déclaration de confidentialité - qr_iban: QR-IBAN representative_address: Adresse de la suppléance pour les contrats settings: Réglages slug: Espace de nommage diff --git a/config/locales/it.yml b/config/locales/it.yml index 2c94ee4f7..6bfed1faa 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -281,7 +281,6 @@ it: name: Nome notifications_enabled: Messaggi abilitati privacy_statement_pdf: Informativa sulla privacy - qr_iban: QR-IBAN representative_address: Indirizzo della rappresentanza per i contratti settings: 'Impostazioni ' slug: Namespace @@ -1210,7 +1209,7 @@ it: exception: 'Impossibile elaborare il file di pagamento: %{errors}' rich_text_templates: form: - help_html: "

Utilizzare le variabili nel testo:

\n\n
\n  Buongiorno {{ booking.tenant.first_name }}!\n
\n\n

Sono disponibili le seguenti variabili:

\n
Prenotazione
\n
\n
Inizio dell'occupazione
{{ booking.begins_at | datetime_format }}
{{ booking.begins_at | datetime_format: \"%A, %d.%m.%Y %H:%M\" }}
\n
Fine dell'occupazione
{{ booking.ends_at | datetime_format }}
{{ booking.ends_at | datetime_format: \"%A, %d.%m.%Y %H:%M\" }}
\n \n
Numero previsto di persone
{{ booking.approximate_headcount }}
\n
Motivo della cancellazione
{{ booking.cancellation_reason }}
\n
Natura vincolante della richiesta d'occupazione
{{ booking.committed_request }}
\n\n
ID del oggetto principale di affitto/dt>
{{ booking.home.id }}
\n
ID di tutte i oggetti di affitto occupati
{{ booking.home_ids }}
\n
Nome del del oggetto principale di affitto
{{ booking.home.name }}
\n
Indirizzo del del oggetto principale di affitto
{{ booking.home.address }}
\n\n
Nome di tutti oggetti principali di affitto occupati
{{ booking.homes | map: \"name\" | join: \", \" }}
\n
Elenco dei oggetti principali di affitto occupati
    {% for home in booking.homes %}
  • {{ home.name }}
  • {% endfor %}
\n\n
Indirizzo per la fattura
{{ booking.invoice_address }}
\n
Scadenza fino alla data / ora
{{ booking.deadline.at | datetime_format }}
\n
Periodo prolungabile per n secondi
{{ booking.deadline.postponable_for }}
\n
Link per l'inquilino
{{ booking.links.edit }}
\n
Link per il propietario
{{ booking.links.manage }}
\n
Tipo di occupazione
{{ booking.occupancy_type }}
\n
Chiave della categoria di affitto
{{ booking.category.key }}
\n
Designazione della categoria di affitto
{{ booking.category.title }}
\n
Descrizione della categoria di affitto
{{ booking.category.description }}
\n
Descrizione dello scopo della affitto
{{ booking.purpose_description }}
\n
Numero di riferimento della prenotazione
{{ booking.ref }}
\n
Osservazioni dell'inquilino
{{ booking.remarks }}
\n
Adresszusatz des Mieters
{{ booking.tenant.address_addon }}
\n
Località del inquilino
{{ booking.tenant.city }}
\n
E-Mail del inquilino
{{ booking.tenant.email }}
\n
Nome del inquilino
{{ booking.tenant.first_name }}
\n
Cognome del inquilino
{{ booking.tenant.last_name }}
\n
Totem scout del inquilino
{{ booking.tenant.nickname }}
\n
Saluto con nome dell'inquilino
{{ booking.tenant.salutation_name }}
\n
Indirizzo dell'inquilino
{{ booking.tenant.street_address }}
\n
NPA dell'inquilino
{{ booking.tenant.zipcode }}
\n
Organizzazione dell'inquilino
{{ booking.tenant.tenant_organisation }}
\n
Nome della persona responsabile della consegna della casa
{{ booking.operator_responsibilities.home_handover.operator.name }}
\n
E-Mail della persona responsabile della consegna della casa
{{ booking.operator_responsibilities.home_handover.operator.email }}
\n
Informazioni di contatto della persona responsabile della consegna della casa
{{ booking.operator_responsibilities.home_handover.operator.contact_info }}
\n
Nome della persona responsabile della ripresa della casa
{{ booking.operator_responsibilities.home_return.operator.name }}
\n
E-Mail della persona responsabile della ripresa della casa
{{ booking.operator_responsibilities.home_return.operator.email }}
\n
Informazioni di contatto della persona responsabile della ripresa della casa
{{ booking.operator_responsibilities.home_return.operator.contact_info }}
\n
Nome della persona responsabile dell'amministrazione / delle questioni generali
{{ booking.operator_responsibilities.administration.operator.name }}
\n
E-Mail della persona responsabile dell'amministrazione / delle questioni generali
{{ booking.operator_responsibilities.administration.operator.email }}
\n
Informazioni di contatto della persona responsabile dell'amministrazione / delle questioni generali
{{ booking.operator_responsibilities.administration.operator.contact_info }}
\n
Nome della persona responsabile della fatturazione
{{ booking.operator_responsibilities.billing.operator.name }}
\n
E-Mail della persona responsabile della fatturazione
{{ booking.operator_responsibilities.billing.operator.email }}
\n
Informazioni di contattodella persona responsabile della fatturazione
{{ booking.operator_responsibilities.billing.operator.contact_info }}
\n
\n
Organizzazione
\n
\n
Indirizzo dell'organizzazione, sede legale
{{ organisation.address }}
\n
Elenco di tutte le categorie di affitto dell'organizzazione
{{ organisation.booking_categories }}
\n
E-Mail dell'organizzazione
{{ organisation.email }}
\n
Numero di conto postale
{{ organisation.esr_beneficiary_account }}
\n
IBAN
{{ organisation.iban }}
\n
QR-IBAN
{{ organisation.qr_iban }}
\n
Link al documento sulla privacy
{{ organisation.links.privacy_statement_pdf }}
\n
Link al GTC
{{ organisation.links.terms_pdf }}
\n
Nome dell'organizzazione
{{ organisation.name }}
\n
\n
Costi
\n
\n
Consumo
{{ cost_estimation.used | currency }}
\n
Fatturato
{{ cost_estimation.total | currency }}
\n
Acconto
{{ cost_estimation.deposit | currency }}
\n
\n\n Usare la logica nel testo:\n\n
{% if booking.home_ids contains 1 %}Passaggio visibile solo se l'ID della casa di prenotazione è uguale a 1{% endif %}
\n
\n  {% if booking.category.key == 'camp' %}\n    Vi auguriamo di divertirvi molto nel vostro campo nella nostra casa!\n  {% else %}\n    Vi auguriamo un piacevole soggiorno nella nostra casa!\n  {% endif %}\n  
\n\n28\n47\n" + help_html: "

Utilizzare le variabili nel testo:

\n\n
\n  Buongiorno {{ booking.tenant.first_name }}!\n
\n\n

Sono disponibili le seguenti variabili:

\n
Prenotazione
\n
\n
Inizio dell'occupazione
{{ booking.begins_at | datetime_format }}
{{ booking.begins_at | datetime_format: \"%A, %d.%m.%Y %H:%M\" }}
\n
Fine dell'occupazione
{{ booking.ends_at | datetime_format }}
{{ booking.ends_at | datetime_format: \"%A, %d.%m.%Y %H:%M\" }}
\n \n
Numero previsto di persone
{{ booking.approximate_headcount }}
\n
Motivo della cancellazione
{{ booking.cancellation_reason }}
\n
Natura vincolante della richiesta d'occupazione
{{ booking.committed_request }}
\n\n
ID del oggetto principale di affitto/dt>
{{ booking.home.id }}
\n
ID di tutte i oggetti di affitto occupati
{{ booking.home_ids }}
\n
Nome del del oggetto principale di affitto
{{ booking.home.name }}
\n
Indirizzo del del oggetto principale di affitto
{{ booking.home.address }}
\n\n
Nome di tutti oggetti principali di affitto occupati
{{ booking.homes | map: \"name\" | join: \", \" }}
\n
Elenco dei oggetti principali di affitto occupati
    {% for home in booking.homes %}
  • {{ home.name }}
  • {% endfor %}
\n\n
Indirizzo per la fattura
{{ booking.invoice_address }}
\n
Scadenza fino alla data / ora
{{ booking.deadline.at | datetime_format }}
\n
Periodo prolungabile per n secondi
{{ booking.deadline.postponable_for }}
\n
Link per l'inquilino
{{ booking.links.edit }}
\n
Link per il propietario
{{ booking.links.manage }}
\n
Tipo di occupazione
{{ booking.occupancy_type }}
\n
Chiave della categoria di affitto
{{ booking.category.key }}
\n
Designazione della categoria di affitto
{{ booking.category.title }}
\n
Descrizione della categoria di affitto
{{ booking.category.description }}
\n
Descrizione dello scopo della affitto
{{ booking.purpose_description }}
\n
Numero di riferimento della prenotazione
{{ booking.ref }}
\n
Osservazioni dell'inquilino
{{ booking.remarks }}
\n
Adresszusatz des Mieters
{{ booking.tenant.address_addon }}
\n
Località del inquilino
{{ booking.tenant.city }}
\n
E-Mail del inquilino
{{ booking.tenant.email }}
\n
Nome del inquilino
{{ booking.tenant.first_name }}
\n
Cognome del inquilino
{{ booking.tenant.last_name }}
\n
Totem scout del inquilino
{{ booking.tenant.nickname }}
\n
Saluto con nome dell'inquilino
{{ booking.tenant.salutation_name }}
\n
Indirizzo dell'inquilino
{{ booking.tenant.street_address }}
\n
NPA dell'inquilino
{{ booking.tenant.zipcode }}
\n
Organizzazione dell'inquilino
{{ booking.tenant.tenant_organisation }}
\n
Nome della persona responsabile della consegna della casa
{{ booking.operator_responsibilities.home_handover.operator.name }}
\n
E-Mail della persona responsabile della consegna della casa
{{ booking.operator_responsibilities.home_handover.operator.email }}
\n
Informazioni di contatto della persona responsabile della consegna della casa
{{ booking.operator_responsibilities.home_handover.operator.contact_info }}
\n
Nome della persona responsabile della ripresa della casa
{{ booking.operator_responsibilities.home_return.operator.name }}
\n
E-Mail della persona responsabile della ripresa della casa
{{ booking.operator_responsibilities.home_return.operator.email }}
\n
Informazioni di contatto della persona responsabile della ripresa della casa
{{ booking.operator_responsibilities.home_return.operator.contact_info }}
\n
Nome della persona responsabile dell'amministrazione / delle questioni generali
{{ booking.operator_responsibilities.administration.operator.name }}
\n
E-Mail della persona responsabile dell'amministrazione / delle questioni generali
{{ booking.operator_responsibilities.administration.operator.email }}
\n
Informazioni di contatto della persona responsabile dell'amministrazione / delle questioni generali
{{ booking.operator_responsibilities.administration.operator.contact_info }}
\n
Nome della persona responsabile della fatturazione
{{ booking.operator_responsibilities.billing.operator.name }}
\n
E-Mail della persona responsabile della fatturazione
{{ booking.operator_responsibilities.billing.operator.email }}
\n
Informazioni di contattodella persona responsabile della fatturazione
{{ booking.operator_responsibilities.billing.operator.contact_info }}
\n
\n
Organizzazione
\n
\n
Indirizzo dell'organizzazione, sede legale
{{ organisation.address }}
\n
Elenco di tutte le categorie di affitto dell'organizzazione
{{ organisation.booking_categories }}
\n
E-Mail dell'organizzazione
{{ organisation.email }}
\n
Numero di conto postale
{{ organisation.esr_beneficiary_account }}
\n
IBAN
{{ organisation.iban }}
\n
Link al documento sulla privacy
{{ organisation.links.privacy_statement_pdf }}
\n
Link al GTC
{{ organisation.links.terms_pdf }}
\n
Nome dell'organizzazione
{{ organisation.name }}
\n
\n
Costi
\n
\n
Consumo
{{ cost_estimation.used | currency }}
\n
Fatturato
{{ cost_estimation.total | currency }}
\n
Acconto
{{ cost_estimation.deposit | currency }}
\n
\n\n Usare la logica nel testo:\n\n
{% if booking.home_ids contains 1 %}Passaggio visibile solo se l'ID della casa di prenotazione è uguale a 1{% endif %}
\n
\n  {% if booking.category.key == 'camp' %}\n    Vi auguriamo di divertirvi molto nel vostro campo nella nostra casa!\n  {% else %}\n    Vi auguriamo un piacevole soggiorno nella nostra casa!\n  {% endif %}\n  
\n\n28\n47\n" help_title: Aiuto per le variabili index: booking_action: diff --git a/db/migrate/20240115190948_remove_qr_iban_from_organisations.rb b/db/migrate/20240115190948_remove_qr_iban_from_organisations.rb new file mode 100644 index 000000000..7af775341 --- /dev/null +++ b/db/migrate/20240115190948_remove_qr_iban_from_organisations.rb @@ -0,0 +1,13 @@ +class RemoveQrIBANFromOrganisations < ActiveRecord::Migration[7.1] + def change + reversible do |direction| + direction.up do + Organisation.where.not(qr_iban: nil).find_each do |organisation| + organisation.update(iban: organisation.qr_iban) + end + end + end + + remove_column :organisations, :qr_iban, :string + end +end diff --git a/db/schema.rb b/db/schema.rb index 84a0b584b..0289b1d89 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.1].define(version: 2023_12_31_113411) do +ActiveRecord::Schema[7.1].define(version: 2024_01_15_190948) do # These are extensions that must be enabled in order to support this database enable_extension "pgcrypto" enable_extension "plpgsql" @@ -451,7 +451,6 @@ t.string "invoice_ref_template", default: "%s%03d%06d%07d" t.string "ref_template", default: "%s%04d%02d%02d%s" t.jsonb "settings", default: {} - t.string "qr_iban" t.text "creditor_address" t.index ["slug"], name: "index_organisations_on_slug", unique: true end diff --git a/db/seeds/demo.json b/db/seeds/demo.json index 6aade945c..75dd64a11 100644 --- a/db/seeds/demo.json +++ b/db/seeds/demo.json @@ -42,7 +42,6 @@ "mail_from": "info@heimv.local", "name": "Heimverein Musterhaus", "notifications_enabled": true, - "qr_iban": "CH75 3000 0002 1571 4845 3", "settings": {}, "slug": null, "tarifs": [ diff --git a/db/seeds/development.json b/db/seeds/development.json index d81a8aaec..35b3f4117 100644 --- a/db/seeds/development.json +++ b/db/seeds/development.json @@ -42,7 +42,6 @@ "mail_from": "info@heimv.local", "name": "Heimverein Development", "notifications_enabled": true, - "qr_iban": "CH75 3000 0002 1571 4845 3", "settings": {}, "slug": null, "tarifs": [ diff --git a/spec/factories/organisations.rb b/spec/factories/organisations.rb index 7be121484..a9735d70a 100644 --- a/spec/factories/organisations.rb +++ b/spec/factories/organisations.rb @@ -23,7 +23,6 @@ # mail_from :string # name :string # notifications_enabled :boolean default(TRUE) -# qr_iban :string # ref_template :string default("%s%04d%02d%02d%s") # representative_address :string # settings :jsonb diff --git a/spec/models/iban_spec.rb b/spec/models/iban_spec.rb new file mode 100644 index 000000000..452b5c8c1 --- /dev/null +++ b/spec/models/iban_spec.rb @@ -0,0 +1,30 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe IBAN, type: :model do + describe '#qrr?' do + subject { iban.qrr? } + let(:ch_iban) { 'CH72 0900 0000 1571 4845 3' } + let(:qr_iban) { 'CH75 3000 0002 1571 4845 3' } + + context 'with qrr iban' do + let(:iban) { described_class.new(qr_iban) } + it 'returns true' do + is_expected.to be_truthy + end + end + context 'without qrr iban' do + let(:iban) { described_class.new(ch_iban) } + it 'returns false' do + is_expected.to be_falsey + end + end + context 'with german qrr iban' do + let(:iban) { described_class.new('DE12 3450 0000 0000 0000 3') } + it 'returns false' do + is_expected.to be_falsey + end + end + end +end diff --git a/spec/models/organisation_spec.rb b/spec/models/organisation_spec.rb index 7092c5aa3..afc69f18b 100644 --- a/spec/models/organisation_spec.rb +++ b/spec/models/organisation_spec.rb @@ -23,7 +23,6 @@ # mail_from :string # name :string # notifications_enabled :boolean default(TRUE) -# qr_iban :string # ref_template :string default("%s%04d%02d%02d%s") # representative_address :string # settings :jsonb diff --git a/spec/models/payment_infos/qr_bill_spec.rb b/spec/models/payment_infos/qr_bill_spec.rb index 631baab0d..e14e75f94 100644 --- a/spec/models/payment_infos/qr_bill_spec.rb +++ b/spec/models/payment_infos/qr_bill_spec.rb @@ -4,9 +4,11 @@ RSpec.describe PaymentInfos::QrBill, type: :model do subject(:qr_bill) { described_class.new(invoice) } + let(:iban) { 'CH72 0900 0000 1571 4845 3' } + let(:qr_iban) { 'CH75 3000 0002 1571 4845 3' } let(:organisation) do - create(:organisation, :with_templates, iban: '01-318421-1', address: "Organisation\nStrasse 1\n8000 Zürich") + create(:organisation, :with_templates, iban:, address: "Organisation\nStrasse 1\n8000 Zürich") end let(:tenant) do create(:tenant, organisation:, first_name: 'Peter', last_name: 'Muster', @@ -25,7 +27,7 @@ let(:expected_payload) do [ - 'SPC', '0200', '1', '01-318421-1', + 'SPC', '0200', '1', iban.delete(' '), 'K', 'Organisation', 'Strasse 1', '8000 Zürich', '', '', 'CH', '', '', '', '', '', '', '', '1255.35', 'CHF', 'K', 'Peter Muster', 'Teststrasse 2', '8049 Zürich', '', '', 'CH', @@ -44,9 +46,7 @@ end context 'with QRR Ref' do - let(:organisation) do - create(:organisation, qr_iban: '01-318421-1', address: "Organisation\nTeststrasse 1\n8000 Zürich") - end + let(:iban) { qr_iban } it { is_expected.to eq('00 00000 00012 34567 89101 11213') } end From 68183a0e0c5c06cfbb81940e3e90eb604cabd061 Mon Sep 17 00:00:00 2001 From: Diego Steiner Date: Tue, 16 Jan 2024 14:04:16 +0000 Subject: [PATCH 03/12] chore: update dependencies --- Gemfile.lock | 24 +- package.json | 18 +- yarn.lock | 1193 ++++++++++++++++++++++---------------------------- 3 files changed, 548 insertions(+), 687 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 479c43812..124143efc 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -85,7 +85,7 @@ GEM rake (>= 10.4, < 14.0) ast (2.4.2) aws-eventstream (1.3.0) - aws-partitions (1.877.0) + aws-partitions (1.880.0) aws-sdk-core (3.190.2) aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.651.0) @@ -111,7 +111,7 @@ GEM bcrypt (3.1.20) bigdecimal (3.1.5) blueprinter (0.30.0) - bootsnap (1.17.0) + bootsnap (1.17.1) msgpack (~> 1.2) bootstrap_form (5.4.0) actionpack (>= 6.1) @@ -140,7 +140,7 @@ GEM launchy chunky_png (1.4.0) coderay (1.1.3) - concurrent-ruby (1.2.2) + concurrent-ruby (1.2.3) connection_pool (2.4.1) countries (5.7.1) unaccent (~> 0.3) @@ -185,7 +185,7 @@ GEM factory_bot_rails (6.2.0) factory_bot (~> 6.2.0) railties (>= 5.0.0) - faker (3.2.2) + faker (3.2.3) i18n (>= 1.8.11, < 2) faraday (2.9.0) faraday-net_http (>= 2.0, < 3.2) @@ -259,7 +259,7 @@ GEM actionpack (>= 6.0.0, < 7.2) method_source (1.0.0) mini_mime (1.1.5) - minitest (5.20.0) + minitest (5.21.1) mobility (1.2.9) i18n (>= 0.6.10, < 2) request_store (~> 1.0) @@ -283,7 +283,7 @@ GEM orm_adapter (0.5.0) package_json (0.1.0) parallel (1.24.0) - parser (3.3.0.2) + parser (3.3.0.4) ast (~> 2.4.1) racc pdf-core (0.9.0) @@ -369,7 +369,7 @@ GEM ffi (~> 1.0) rdoc (6.6.2) psych (>= 4.0.0) - react-rails (3.1.1) + react-rails (3.2.0) babel-transpiler (>= 0.7.0) connection_pool execjs @@ -409,11 +409,11 @@ GEM rspec-mocks (~> 3.12) rspec-support (~> 3.12) rspec-support (3.12.1) - rubocop (1.59.0) + rubocop (1.60.0) json (~> 2.3) language_server-protocol (>= 3.17.0) parallel (~> 1.10) - parser (>= 3.2.2.4) + parser (>= 3.3.0.2) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 1.8, < 3.0) rexml (>= 3.2.5, < 4.0) @@ -438,10 +438,10 @@ GEM rubocop (~> 1.40) rubocop-capybara (~> 2.17) rubocop-factory_bot (~> 2.22) - ruby-lsp (0.13.2) + ruby-lsp (0.13.4) language_server-protocol (~> 3.17.0) prism (>= 0.19.0, < 0.20) - sorbet-runtime (>= 0.5.5685) + sorbet-runtime (>= 0.5.10782) ruby-progressbar (1.13.0) ruby2_keywords (0.0.5) rubyzip (2.3.2) @@ -479,7 +479,7 @@ GEM actionpack (>= 3.1) railties (>= 3.1) slim (>= 3.0, < 6.0, != 5.0.0) - sorbet-runtime (0.5.11181) + sorbet-runtime (0.5.11193) squasher (0.7.3) statesman (12.1.0) statsd-ruby (1.5.0) diff --git a/package.json b/package.json index ee0e12e6f..1c0d47c1c 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,11 @@ { "dependencies": { - "@babel/core": "7.23.6", - "@babel/plugin-transform-runtime": "7.23.6", - "@babel/preset-env": "7.23.6", + "@babel/core": "7.23.7", + "@babel/plugin-transform-runtime": "7.23.7", + "@babel/preset-env": "7.23.8", "@babel/preset-react": "^7.18.6", "@babel/preset-typescript": "^7.12.7", - "@babel/runtime": "7.23.6", + "@babel/runtime": "7.23.8", "@emotion/babel-plugin": "^11.9.2", "@emotion/css": "^11.11.2", "@emotion/react": "^11.8.2", @@ -21,7 +21,7 @@ "bootstrap": "^5.3.2", "chroma.ts": "^1.0.10", "classnames": "^2.2.6", - "compression-webpack-plugin": "10.0.0", + "compression-webpack-plugin": "11.0.0", "css-loader": "^6.7.3", "css-minimizer-webpack-plugin": "^5.0.1", "date-fns": "^2.29.2", @@ -31,7 +31,7 @@ "mini-css-extract-plugin": "^2.7.2", "postcss": "^8.4.30", "postcss-flexbugs-fixes": "^5.0.2", - "postcss-import": "^15.0.0", + "postcss-import": "^16.0.0", "postcss-loader": "^7.0.1", "postcss-preset-env": "^9.1.4", "prop-types": "^15.8.1", @@ -40,16 +40,16 @@ "react-bootstrap": "^2.3.1", "react-dom": "^18.2.0", "react-hook-form": "^7.46.2", - "react-i18next": "^13.0.0", + "react-i18next": "^14.0.0", "react-sortablejs": "^6.1.4", "react-swipeable": "^7.0.0", "react_ujs": "^3.1.1", "sass": "^1.68.0", - "sass-loader": "^13.3.2", + "sass-loader": "^14.0.0", "shakapacker": "7.2.1", "sortablejs": "^1.15.1", "style-loader": "^3.3.1", - "terser-webpack-plugin": "5.3.9", + "terser-webpack-plugin": "5.3.10", "tinymce": "^6.6.2", "typescript": "5.3.3", "typings-for-css-modules-loader": "^1.7.0", diff --git a/yarn.lock b/yarn.lock index cc49eb6dd..1f9b3e406 100644 --- a/yarn.lock +++ b/yarn.lock @@ -28,20 +28,20 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== -"@babel/core@7.23.6": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.6.tgz#8be77cd77c55baadcc1eae1c33df90ab6d2151d4" - integrity sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw== +"@babel/core@7.23.7": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.7.tgz#4d8016e06a14b5f92530a13ed0561730b5c6483f" + integrity sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw== dependencies: "@ampproject/remapping" "^2.2.0" "@babel/code-frame" "^7.23.5" "@babel/generator" "^7.23.6" "@babel/helper-compilation-targets" "^7.23.6" "@babel/helper-module-transforms" "^7.23.3" - "@babel/helpers" "^7.23.6" + "@babel/helpers" "^7.23.7" "@babel/parser" "^7.23.6" "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.6" + "@babel/traverse" "^7.23.7" "@babel/types" "^7.23.6" convert-source-map "^2.0.0" debug "^4.1.0" @@ -85,9 +85,9 @@ semver "^6.3.1" "@babel/helper-create-class-features-plugin@^7.22.15", "@babel/helper-create-class-features-plugin@^7.23.6": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.6.tgz#b04d915ce92ce363666f816a884cdcfc9be04953" - integrity sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw== + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.7.tgz#b2e6826e0e20d337143655198b79d58fdc9bd43d" + integrity sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-environment-visitor" "^7.22.20" @@ -239,13 +239,13 @@ "@babel/template" "^7.22.15" "@babel/types" "^7.22.19" -"@babel/helpers@^7.23.6": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.6.tgz#d03af2ee5fb34691eec0cda90f5ecbb4d4da145a" - integrity sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA== +"@babel/helpers@^7.23.7": + version "7.23.8" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.8.tgz#fc6b2d65b16847fd50adddbd4232c76378959e34" + integrity sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ== dependencies: "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.6" + "@babel/traverse" "^7.23.7" "@babel/types" "^7.23.6" "@babel/highlight@^7.23.4": @@ -278,10 +278,10 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-transform-optional-chaining" "^7.23.3" -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz#20c60d4639d18f7da8602548512e9d3a4c8d7098" - integrity sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w== +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.7": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz#516462a95d10a9618f197d39ad291a9b47ae1d7b" + integrity sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw== dependencies: "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-plugin-utils" "^7.22.5" @@ -439,10 +439,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-async-generator-functions@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz#93ac8e3531f347fba519b4703f9ff2a75c6ae27a" - integrity sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw== +"@babel/plugin-transform-async-generator-functions@^7.23.7": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.7.tgz#3aa0b4f2fa3788b5226ef9346cf6d16ec61f99cd" + integrity sha512-PdxEpL71bJp1byMG0va5gwQcXHxuEYC/BgI/e88mGTtohbZN28O5Yit0Plkkm/dBzCF/BxmbNcses1RH1T+urA== dependencies: "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-plugin-utils" "^7.22.5" @@ -489,16 +489,15 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-transform-classes@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz#e7a75f815e0c534cc4c9a39c56636c84fc0d64f2" - integrity sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg== +"@babel/plugin-transform-classes@^7.23.8": + version "7.23.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz#d08ae096c240347badd68cdf1b6d1624a6435d92" + integrity sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-compilation-targets" "^7.23.6" "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-function-name" "^7.23.0" - "@babel/helper-optimise-call-expression" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-replace-supers" "^7.22.20" "@babel/helper-split-export-declaration" "^7.22.6" @@ -787,16 +786,16 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-runtime@7.23.6": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.6.tgz#bf853cd0a675c16ee33e6ba2a63b536e75e5d754" - integrity sha512-kF1Zg62aPseQ11orDhFRw+aPG/eynNQtI+TyY+m33qJa2cJ5EEvza2P2BNTIA9E5MyqFABHEyY6CPHwgdy9aNg== +"@babel/plugin-transform-runtime@7.23.7": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.7.tgz#52bbd20054855beb9deae3bee9ceb05289c343e6" + integrity sha512-fa0hnfmiXc9fq/weK34MUV0drz2pOL/vfKWvN7Qw127hiUPabFCUMgAbYWcchRzMJit4o5ARsK/s+5h0249pLw== dependencies: "@babel/helper-module-imports" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" - babel-plugin-polyfill-corejs2 "^0.4.6" - babel-plugin-polyfill-corejs3 "^0.8.5" - babel-plugin-polyfill-regenerator "^0.5.3" + babel-plugin-polyfill-corejs2 "^0.4.7" + babel-plugin-polyfill-corejs3 "^0.8.7" + babel-plugin-polyfill-regenerator "^0.5.4" semver "^6.3.1" "@babel/plugin-transform-shorthand-properties@^7.23.3": @@ -876,10 +875,10 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/preset-env@7.23.6": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.6.tgz#ad0ea799d5a3c07db5b9a172819bbd444092187a" - integrity sha512-2XPn/BqKkZCpzYhUUNZ1ssXw7DcXfKQEjv/uXZUXgaebCMYmkEsfZ2yY+vv+xtXv50WmL5SGhyB6/xsWxIvvOQ== +"@babel/preset-env@7.23.8": + version "7.23.8" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.8.tgz#7d6f8171ea7c221ecd28059e65ad37c20e441e3e" + integrity sha512-lFlpmkApLkEP6woIKprO6DO60RImpatTQKtz4sUcDjVcK8M8mQ4sZsuxaTMNOZf0sqAq/ReYW1ZBHnOQwKpLWA== dependencies: "@babel/compat-data" "^7.23.5" "@babel/helper-compilation-targets" "^7.23.6" @@ -887,7 +886,7 @@ "@babel/helper-validator-option" "^7.23.5" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.23.3" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.23.3" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.23.3" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.23.7" "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" @@ -908,13 +907,13 @@ "@babel/plugin-syntax-top-level-await" "^7.14.5" "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" "@babel/plugin-transform-arrow-functions" "^7.23.3" - "@babel/plugin-transform-async-generator-functions" "^7.23.4" + "@babel/plugin-transform-async-generator-functions" "^7.23.7" "@babel/plugin-transform-async-to-generator" "^7.23.3" "@babel/plugin-transform-block-scoped-functions" "^7.23.3" "@babel/plugin-transform-block-scoping" "^7.23.4" "@babel/plugin-transform-class-properties" "^7.23.3" "@babel/plugin-transform-class-static-block" "^7.23.4" - "@babel/plugin-transform-classes" "^7.23.5" + "@babel/plugin-transform-classes" "^7.23.8" "@babel/plugin-transform-computed-properties" "^7.23.3" "@babel/plugin-transform-destructuring" "^7.23.3" "@babel/plugin-transform-dotall-regex" "^7.23.3" @@ -956,9 +955,9 @@ "@babel/plugin-transform-unicode-regex" "^7.23.3" "@babel/plugin-transform-unicode-sets-regex" "^7.23.3" "@babel/preset-modules" "0.1.6-no-external-plugins" - babel-plugin-polyfill-corejs2 "^0.4.6" - babel-plugin-polyfill-corejs3 "^0.8.5" - babel-plugin-polyfill-regenerator "^0.5.3" + babel-plugin-polyfill-corejs2 "^0.4.7" + babel-plugin-polyfill-corejs3 "^0.8.7" + babel-plugin-polyfill-regenerator "^0.5.4" core-js-compat "^3.31.0" semver "^6.3.1" @@ -999,10 +998,10 @@ resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== -"@babel/runtime@7.23.6", "@babel/runtime@^7.12.5", "@babel/runtime@^7.18.3", "@babel/runtime@^7.21.0", "@babel/runtime@^7.22.5", "@babel/runtime@^7.23.2", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.6.tgz#c05e610dc228855dc92ef1b53d07389ed8ab521d" - integrity sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ== +"@babel/runtime@7.23.8", "@babel/runtime@^7.12.5", "@babel/runtime@^7.18.3", "@babel/runtime@^7.21.0", "@babel/runtime@^7.22.5", "@babel/runtime@^7.23.2", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7": + version "7.23.8" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.8.tgz#8ee6fe1ac47add7122902f257b8ddf55c898f650" + integrity sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw== dependencies: regenerator-runtime "^0.14.0" @@ -1015,10 +1014,10 @@ "@babel/parser" "^7.22.15" "@babel/types" "^7.22.15" -"@babel/traverse@^7.23.6": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.6.tgz#b53526a2367a0dd6edc423637f3d2d0f2521abc5" - integrity sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ== +"@babel/traverse@^7.23.7": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.7.tgz#9a7bf285c928cb99b5ead19c3b1ce5b310c9c305" + integrity sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg== dependencies: "@babel/code-frame" "^7.23.5" "@babel/generator" "^7.23.6" @@ -1040,43 +1039,43 @@ "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" -"@csstools/cascade-layer-name-parser@^1.0.5", "@csstools/cascade-layer-name-parser@^1.0.6": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-1.0.6.tgz#ea6a8fc7805c3384d914e9235d31d77dd0ccb2b8" - integrity sha512-HkxRNs6ZIV0VjLFw6k5G8K35vd9r+O8B1Vr+QVD8M5Y44eQxyHtc42BdF74FQatXACPnitOR1+sRx2oWdnKTQw== +"@csstools/cascade-layer-name-parser@^1.0.5", "@csstools/cascade-layer-name-parser@^1.0.7": + version "1.0.7" + resolved "https://registry.yarnpkg.com/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-1.0.7.tgz#9cfc36de9716d219492eb0e5ee75348b2213a8fd" + integrity sha512-9J4aMRJ7A2WRjaRLvsMeWrL69FmEuijtiW1XlK/sG+V0UJiHVYUyvj9mY4WAXfU/hGIiGOgL8e0jJcRyaZTjDQ== "@csstools/color-helpers@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@csstools/color-helpers/-/color-helpers-4.0.0.tgz#a1d6ffcefe5c1d389cbcca15f46da3cdaf241443" integrity sha512-wjyXB22/h2OvxAr3jldPB7R7kjTUEzopvjitS8jWtyd8fN6xJ8vy1HnHu0ZNfEkqpBJgQ76Q+sBDshWcMvTa/w== -"@csstools/css-calc@^1.1.5": - version "1.1.5" - resolved "https://registry.yarnpkg.com/@csstools/css-calc/-/css-calc-1.1.5.tgz#cf5ac0b51a0533bd69be258b15ae243a7a47e3e1" - integrity sha512-UhI5oSRAUtTHY3MyGahqn0ZzQOHVoPpfvUcOmYipAZ1rILAvCBoyiLSsa/clv1Xxct0SMKIq93KO5Bfl1cb6tQ== +"@csstools/css-calc@^1.1.6": + version "1.1.6" + resolved "https://registry.yarnpkg.com/@csstools/css-calc/-/css-calc-1.1.6.tgz#2d4e16725c3f981f7c6e469c306bcb1f490e1082" + integrity sha512-YHPAuFg5iA4qZGzMzvrQwzkvJpesXXyIUyaONflQrjtHB+BcFFbgltJkIkb31dMGO4SE9iZFA4HYpdk7+hnYew== -"@csstools/css-color-parser@^1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@csstools/css-color-parser/-/css-color-parser-1.5.0.tgz#545fe1586d4927cc2614d62278325d37d8539b35" - integrity sha512-PUhSg1MgU2sjYhA6moOmxYesqVqYTJwcVw12boTNbDX7Af+VK02MkgvmBBY2Z2qU6UN5HOQ+wrF0qQJGsTFY7w== +"@csstools/css-color-parser@^1.5.1": + version "1.5.1" + resolved "https://registry.yarnpkg.com/@csstools/css-color-parser/-/css-color-parser-1.5.1.tgz#bddf5513a7327c511c9e1ec682419dcad1f91869" + integrity sha512-x+SajGB2paGrTjPOUorGi8iCztF008YMKXTn+XzGVDBEIVJ/W1121pPerpneJYGOe1m6zWLPLnzOPaznmQxKFw== dependencies: "@csstools/color-helpers" "^4.0.0" - "@csstools/css-calc" "^1.1.5" + "@csstools/css-calc" "^1.1.6" -"@csstools/css-parser-algorithms@^2.3.2", "@csstools/css-parser-algorithms@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.4.0.tgz#88c7b62b8e00c391b24c585f9db5a0b62ed665b0" - integrity sha512-/PPLr2g5PAUCKAPEbfyk6/baZA+WJHQtUhPkoCQMpyRE8I0lXrG1QFRN8e5s3ZYxM8d/g5BZc6lH3s8Op7/VEg== +"@csstools/css-parser-algorithms@^2.3.2", "@csstools/css-parser-algorithms@^2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.5.0.tgz#0c03cd5418a9f404a05ff2ffcb1b69d04e8ec532" + integrity sha512-abypo6m9re3clXA00eu5syw+oaPHbJTPapu9C4pzNsJ4hdZDzushT50Zhu+iIYXgEe1CxnRMn7ngsbV+MLrlpQ== -"@csstools/css-tokenizer@^2.2.1", "@csstools/css-tokenizer@^2.2.2": - version "2.2.2" - resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-2.2.2.tgz#bcd85cef4468c356833b21e96d38b940c9760605" - integrity sha512-wCDUe/MAw7npAHFLyW3QjSyLA66S5QFaV1jIXlNQvdJ8RzXDSgALa49eWcUO6P55ARQaz0TsDdAgdRgkXFYY8g== +"@csstools/css-tokenizer@^2.2.1", "@csstools/css-tokenizer@^2.2.3": + version "2.2.3" + resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-2.2.3.tgz#b099d543ea57b64f495915a095ead583866c50c6" + integrity sha512-pp//EvZ9dUmGuGtG1p+n17gTHEOqu9jO+FiCUjNN3BDmyhdA2Jq9QsVeR7K8/2QCK17HSsioPlTW9ZkzoWb3Lg== -"@csstools/media-query-list-parser@^2.1.5", "@csstools/media-query-list-parser@^2.1.6": - version "2.1.6" - resolved "https://registry.yarnpkg.com/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.6.tgz#e4e9a8a35be7a066836389b03ec19e584bc61af3" - integrity sha512-R6AKl9vaU0It7D7TR2lQn0pre5aQfdeqHRePlaRCY8rHL3l9eVlNRpsEVDKFi/zAjzv68CxH2M5kqbhPFPKjvw== +"@csstools/media-query-list-parser@^2.1.5", "@csstools/media-query-list-parser@^2.1.7": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.7.tgz#a4836e3dbd693081a30b32ce9c2a781e1be16788" + integrity sha512-lHPKJDkPUECsyAvD60joYfDmp8UERYxHGkFfyLJFTVK/ERJe0sVlIFLXU5XFxdjNDTerp5L4KeaKG+Z5S94qxQ== "@csstools/postcss-cascade-layers@^4.0.1": version "4.0.2" @@ -1087,33 +1086,33 @@ postcss-selector-parser "^6.0.13" "@csstools/postcss-color-function@^3.0.7": - version "3.0.8" - resolved "https://registry.yarnpkg.com/@csstools/postcss-color-function/-/postcss-color-function-3.0.8.tgz#3ce66d125c472188758b895ecba1841d7225ff43" - integrity sha512-jvbF7eCRbIcxWqby0kk2Mt85QtGzRRpFFYdlJCJ80Tuiv43PY+auS/nBl8pDQQ4Ndm4vsm4IC/wCZDcJUmpJmg== + version "3.0.9" + resolved "https://registry.yarnpkg.com/@csstools/postcss-color-function/-/postcss-color-function-3.0.9.tgz#4e13e2b4b1b682a669c92ff676ccc35c99e69f9e" + integrity sha512-6Hbkw/4k73UH121l4LG+LNLKSvrfHqk3GHHH0A6/iFlD0xGmsWAr80Jd0VqXjfYbUTOGmJTOMMoxv3jvNxt1uw== dependencies: - "@csstools/css-color-parser" "^1.5.0" - "@csstools/css-parser-algorithms" "^2.4.0" - "@csstools/css-tokenizer" "^2.2.2" + "@csstools/css-color-parser" "^1.5.1" + "@csstools/css-parser-algorithms" "^2.5.0" + "@csstools/css-tokenizer" "^2.2.3" "@csstools/postcss-progressive-custom-properties" "^3.0.3" "@csstools/postcss-color-mix-function@^2.0.7": - version "2.0.8" - resolved "https://registry.yarnpkg.com/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-2.0.8.tgz#fab8561226ad40cd50d3aa7bb79c42d800332525" - integrity sha512-sGhk+TdZ2TeXspc6LSYSYC8WgzLlxoknUaObKgB0mk+dNjRQgSSIeCU+qrCwvHmwM+uTNKtiS8mntDzyQLHTTA== + version "2.0.9" + resolved "https://registry.yarnpkg.com/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-2.0.9.tgz#ce1bc1decf307f93e6e6b0ee6ae14dd72295955c" + integrity sha512-fs1SOWJ/44DQSsDeJP+rxAkP2MYkCg6K4ZB8qJwFku2EjurgCAPiPZJvC6w94T1hBBinJwuMfT9qvvvniXyVgw== dependencies: - "@csstools/css-color-parser" "^1.5.0" - "@csstools/css-parser-algorithms" "^2.4.0" - "@csstools/css-tokenizer" "^2.2.2" + "@csstools/css-color-parser" "^1.5.1" + "@csstools/css-parser-algorithms" "^2.5.0" + "@csstools/css-tokenizer" "^2.2.3" "@csstools/postcss-progressive-custom-properties" "^3.0.3" "@csstools/postcss-exponential-functions@^1.0.1": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-1.0.2.tgz#fa3c1f549ee3720891a35a7e3905ecff9cf07b2d" - integrity sha512-VRIYrwNCkZRqzsGB4jGT+XcNXsoiwyqy0Vf7C3I/5OPcf7WcWK3G1sBYFqqgWLGtpwc7m1m8TcorGY1xdh5abg== + version "1.0.3" + resolved "https://registry.yarnpkg.com/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-1.0.3.tgz#13cf794d2434d1d488f27bce3334359935b8f984" + integrity sha512-IfGtEg3eC4b8Nd/kPgO3SxgKb33YwhHVsL0eJ3UYihx6fzzAiZwNbWmVW9MZTQjZ5GacgKxa4iAHikGvpwuIjw== dependencies: - "@csstools/css-calc" "^1.1.5" - "@csstools/css-parser-algorithms" "^2.4.0" - "@csstools/css-tokenizer" "^2.2.2" + "@csstools/css-calc" "^1.1.6" + "@csstools/css-parser-algorithms" "^2.5.0" + "@csstools/css-tokenizer" "^2.2.3" "@csstools/postcss-font-format-keywords@^3.0.0": version "3.0.1" @@ -1123,32 +1122,32 @@ postcss-value-parser "^4.2.0" "@csstools/postcss-gamut-mapping@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-1.0.1.tgz#b5b8429488979a5a48c0249a7aab1836fafc30ec" - integrity sha512-GDVzfNbnc7x3GusFklvt0mYXIWVzxEtEtTFEW664NgZh/5V7Z89hZKBMl9piOAHXuxijfHtE+kul/ShfeLUvcA== + version "1.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-1.0.2.tgz#bef05c2bd2ad0b2c60f96e90e36173e0a79514d1" + integrity sha512-zf9KHGM2PTuJEm4ZYg4DTmzCir38EbZBzlMPMbA4jbhLDqXHkqwnQ+Z5+UNrU8y6seVu5B4vzZmZarTFQwe+Ig== dependencies: - "@csstools/css-color-parser" "^1.5.0" - "@csstools/css-parser-algorithms" "^2.4.0" - "@csstools/css-tokenizer" "^2.2.2" + "@csstools/css-color-parser" "^1.5.1" + "@csstools/css-parser-algorithms" "^2.5.0" + "@csstools/css-tokenizer" "^2.2.3" "@csstools/postcss-gradients-interpolation-method@^4.0.7": - version "4.0.8" - resolved "https://registry.yarnpkg.com/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-4.0.8.tgz#1fcf2654b413eeadd4307082417508f249a03966" - integrity sha512-bmvCNzuUvWPPdgASh0T14ffTay/FdzXsXfp0wXT1pYoUPmkH9M6yyxwPEkHq5djjzSb2jiLl4Ta3XM1uOREQ2w== + version "4.0.9" + resolved "https://registry.yarnpkg.com/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-4.0.9.tgz#083bedd34e9e9e60cc4582bc58229cdc2750d8d5" + integrity sha512-PSqR6QH7h3ggOl8TsoH73kbwYTKVQjAJauGg6nDKwaGfi5IL5StV//ehrv1C7HuPsHixMTc9YoAuuv1ocT20EQ== dependencies: - "@csstools/css-color-parser" "^1.5.0" - "@csstools/css-parser-algorithms" "^2.4.0" - "@csstools/css-tokenizer" "^2.2.2" + "@csstools/css-color-parser" "^1.5.1" + "@csstools/css-parser-algorithms" "^2.5.0" + "@csstools/css-tokenizer" "^2.2.3" "@csstools/postcss-progressive-custom-properties" "^3.0.3" "@csstools/postcss-hwb-function@^3.0.6": - version "3.0.7" - resolved "https://registry.yarnpkg.com/@csstools/postcss-hwb-function/-/postcss-hwb-function-3.0.7.tgz#c45971f6119f060672ebec7f92d71e3ca018c981" - integrity sha512-iXs1gxKtev8YNP5bOF26TAsnMfcxnCRLpKItQ067RphYECKEK/xWm4Z0r4ChmV1U1eq+lbdH5ZIb2cju4o5akA== + version "3.0.8" + resolved "https://registry.yarnpkg.com/@csstools/postcss-hwb-function/-/postcss-hwb-function-3.0.8.tgz#4a21b447390998b3201ecc4dd6a8639f5e2a524d" + integrity sha512-CRQEG372Hivmt17rm/Ho22hBQI9K/a6grzGQ21Zwc7dyspmyG0ibmPIW8hn15vJmXqWGeNq7S+L2b8/OrU7O5A== dependencies: - "@csstools/css-color-parser" "^1.5.0" - "@csstools/css-parser-algorithms" "^2.4.0" - "@csstools/css-tokenizer" "^2.2.2" + "@csstools/css-color-parser" "^1.5.1" + "@csstools/css-parser-algorithms" "^2.5.0" + "@csstools/css-tokenizer" "^2.2.3" "@csstools/postcss-ic-unit@^3.0.2": version "3.0.3" @@ -1194,30 +1193,30 @@ postcss-value-parser "^4.2.0" "@csstools/postcss-logical-viewport-units@^2.0.3": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-2.0.4.tgz#8f7a3cb9d058841b945be61dbebafa14954f1a24" - integrity sha512-jetp/ArGAniWbjWBh5UQ07ztawfSbqCFd0QelX4R4pVIxrXahUEhz5VZHebMPVCg02J8GsQn0br6fdRpY6t7lw== + version "2.0.5" + resolved "https://registry.yarnpkg.com/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-2.0.5.tgz#5517b609aeb76e7e94143514d77ff6c8c83f42f3" + integrity sha512-2fjSamKN635DSW6fEoyNd2Bkpv3FVblUpgk5cpghIgPW1aDHZE2SYfZK5xQALvjMYZVjfqsD5EbXA7uDVBQVQA== dependencies: - "@csstools/css-tokenizer" "^2.2.2" + "@csstools/css-tokenizer" "^2.2.3" "@csstools/postcss-media-minmax@^1.1.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-media-minmax/-/postcss-media-minmax-1.1.1.tgz#b98619dfff964e2c4e020f21934162d7c2d4dec5" - integrity sha512-mBY46/Hr+A8cDjoX0OoPRBOVrkANym9540dSB9rN3dllPZdM1E112i/tVxWsrR1s1yE9gfF0pk+7lf9l+qSeHA== + version "1.1.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-media-minmax/-/postcss-media-minmax-1.1.2.tgz#3c7ad7bebde6b329c40c96c3a78073aaa0714bb8" + integrity sha512-7qTRTJxW96u2yiEaTep1+8nto1O/rEDacewKqH+Riq5E6EsHTOmGHxkB4Se5Ic5xgDC4I05lLZxzzxnlnSypxA== dependencies: - "@csstools/css-calc" "^1.1.5" - "@csstools/css-parser-algorithms" "^2.4.0" - "@csstools/css-tokenizer" "^2.2.2" - "@csstools/media-query-list-parser" "^2.1.6" + "@csstools/css-calc" "^1.1.6" + "@csstools/css-parser-algorithms" "^2.5.0" + "@csstools/css-tokenizer" "^2.2.3" + "@csstools/media-query-list-parser" "^2.1.7" "@csstools/postcss-media-queries-aspect-ratio-number-values@^2.0.3": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-2.0.4.tgz#773b83dc0415d6cdfa38e54d3823ae8c54c10280" - integrity sha512-IaIZZhH0Qy9UDn7u+N3cuwwPG0Po3ZKOdDh+ClR7xvisSqniG+PuVrOEWYJrFKOt2//UHLhd7KHDqr2u9LKS9Q== + version "2.0.5" + resolved "https://registry.yarnpkg.com/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-2.0.5.tgz#a78989a2c8012235d878e70eac203d9d51419114" + integrity sha512-XHMPasWYPWa9XaUHXU6Iq0RLfoAI+nvGTPj51hOizNsHaAyFiq2SL4JvF1DU8lM6B70+HVzKM09Isbyrr755Bw== dependencies: - "@csstools/css-parser-algorithms" "^2.4.0" - "@csstools/css-tokenizer" "^2.2.2" - "@csstools/media-query-list-parser" "^2.1.6" + "@csstools/css-parser-algorithms" "^2.5.0" + "@csstools/css-tokenizer" "^2.2.3" + "@csstools/media-query-list-parser" "^2.1.7" "@csstools/postcss-nested-calc@^3.0.0": version "3.0.1" @@ -1234,13 +1233,13 @@ postcss-value-parser "^4.2.0" "@csstools/postcss-oklab-function@^3.0.7": - version "3.0.8" - resolved "https://registry.yarnpkg.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-3.0.8.tgz#a82929b36dc591b619108642786f3b0a2c0fe735" - integrity sha512-L4xrwbgg+k08v+a88LDxJeIM6+kqaBJlYb/QgmEMfQpUbrfXTp87DuRc7utcRdDvY+qWK5vqz3h1xUtceB5LJQ== + version "3.0.9" + resolved "https://registry.yarnpkg.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-3.0.9.tgz#26e462e0ec18222f08e285afd6d9c9261ab55ee4" + integrity sha512-l639gpcBfL3ogJe+og1M5FixQn8iGX8+29V7VtTSCUB37VzpzOC05URfde7INIdiJT65DkHzgdJ64/QeYggU8A== dependencies: - "@csstools/css-color-parser" "^1.5.0" - "@csstools/css-parser-algorithms" "^2.4.0" - "@csstools/css-tokenizer" "^2.2.2" + "@csstools/css-color-parser" "^1.5.1" + "@csstools/css-parser-algorithms" "^2.5.0" + "@csstools/css-tokenizer" "^2.2.3" "@csstools/postcss-progressive-custom-properties" "^3.0.3" "@csstools/postcss-progressive-custom-properties@^3.0.2", "@csstools/postcss-progressive-custom-properties@^3.0.3": @@ -1251,13 +1250,13 @@ postcss-value-parser "^4.2.0" "@csstools/postcss-relative-color-syntax@^2.0.7": - version "2.0.8" - resolved "https://registry.yarnpkg.com/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-2.0.8.tgz#825f79ddacbfacdb40ebe99fcfb5210ea8dfa509" - integrity sha512-wu/Oh7QKINpRXnmLMUbObVNlqwr843PSF4a3x3fMC0I+vUeoGqMfZuSPFtT+NnYYxfzUjEZ091GURPxee22VLQ== + version "2.0.9" + resolved "https://registry.yarnpkg.com/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-2.0.9.tgz#6a6c5361a6ec02459e024fa2b769aa52f392038e" + integrity sha512-2UoaRd2iIuzUGtYgteN5fJ0s+OfCiV7PvCnw8MCh3om8+SeVinfG8D5sqBOvImxFVfrp6k60XF5RFlH6oc//fg== dependencies: - "@csstools/css-color-parser" "^1.5.0" - "@csstools/css-parser-algorithms" "^2.4.0" - "@csstools/css-tokenizer" "^2.2.2" + "@csstools/css-color-parser" "^1.5.1" + "@csstools/css-parser-algorithms" "^2.5.0" + "@csstools/css-tokenizer" "^2.2.3" "@csstools/postcss-progressive-custom-properties" "^3.0.3" "@csstools/postcss-scope-pseudo-class@^3.0.0": @@ -1268,13 +1267,13 @@ postcss-selector-parser "^6.0.13" "@csstools/postcss-stepped-value-functions@^3.0.2": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-3.0.3.tgz#99dc53b346574248ccbe6772d736e1a151d5e303" - integrity sha512-hzo9Wr3u7JJiM65/EyHgE/gJpBzhDwBSGOobFs2YQ0ZNTywUliYQoYJud1KKlByMRuhqvDLh9V95eIkLf/fZTQ== + version "3.0.4" + resolved "https://registry.yarnpkg.com/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-3.0.4.tgz#a97ae4d77dea36bb93b611712f872821ed796515" + integrity sha512-gyNQ2YaOVXPqLR737XtReRPVu7DGKBr9JBDLoiH1T+N1ggV3r4HotRCOC1l6rxVC0zOuU1KiOzUn9Z5W838/rg== dependencies: - "@csstools/css-calc" "^1.1.5" - "@csstools/css-parser-algorithms" "^2.4.0" - "@csstools/css-tokenizer" "^2.2.2" + "@csstools/css-calc" "^1.1.6" + "@csstools/css-parser-algorithms" "^2.5.0" + "@csstools/css-tokenizer" "^2.2.3" "@csstools/postcss-text-decoration-shorthand@^3.0.3": version "3.0.4" @@ -1285,13 +1284,13 @@ postcss-value-parser "^4.2.0" "@csstools/postcss-trigonometric-functions@^3.0.2": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-3.0.3.tgz#5704213191f158ba9828a280c9b75ade9373b920" - integrity sha512-T/npTbDuMZ3vktEMuA05p1oeVd12Sy47qZP1vFhzNMUOdXGCK9vlm0tUSIlV5DdlbTJqKqq9FhGitZH9VTKrfQ== + version "3.0.4" + resolved "https://registry.yarnpkg.com/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-3.0.4.tgz#23a5887f3c74c276a84ba66b9a963ea1731b531a" + integrity sha512-qj4Cxth6c38iNYzfJJWAxt8jsLrZaMVmbfGDDLOlI2YJeZoC3A5Su6/Kr7oXaPFRuspUu+4EQHngOktqVHWfVg== dependencies: - "@csstools/css-calc" "^1.1.5" - "@csstools/css-parser-algorithms" "^2.4.0" - "@csstools/css-tokenizer" "^2.2.2" + "@csstools/css-calc" "^1.1.6" + "@csstools/css-parser-algorithms" "^2.5.0" + "@csstools/css-tokenizer" "^2.2.3" "@csstools/postcss-unset-value@^3.0.0": version "3.0.1" @@ -1358,23 +1357,23 @@ integrity sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA== "@emotion/react@^11.8.2": - version "11.11.1" - resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.11.1.tgz#b2c36afac95b184f73b08da8c214fdf861fa4157" - integrity sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA== + version "11.11.3" + resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.11.3.tgz#96b855dc40a2a55f52a72f518a41db4f69c31a25" + integrity sha512-Cnn0kuq4DoONOMcnoVsTOR8E+AdnKFf//6kUWc4LCdnxj31pZWn7rIULd6Y7/Js1PiPHzn7SKCM9vB/jBni8eA== dependencies: "@babel/runtime" "^7.18.3" "@emotion/babel-plugin" "^11.11.0" "@emotion/cache" "^11.11.0" - "@emotion/serialize" "^1.1.2" + "@emotion/serialize" "^1.1.3" "@emotion/use-insertion-effect-with-fallbacks" "^1.0.1" "@emotion/utils" "^1.2.1" "@emotion/weak-memoize" "^0.3.1" hoist-non-react-statics "^3.3.1" -"@emotion/serialize@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.1.2.tgz#017a6e4c9b8a803bd576ff3d52a0ea6fa5a62b51" - integrity sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA== +"@emotion/serialize@^1.1.2", "@emotion/serialize@^1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.1.3.tgz#84b77bfcfe3b7bb47d326602f640ccfcacd5ffb0" + integrity sha512-iD4D6QVZFDhcbH0RAG1uVu1CwVLMWUkCvAqqlewO/rxf8+87yIBAlt4+AxMiiKPLs5hFc0owNk/sLLAOROw3cA== dependencies: "@emotion/hash" "^0.9.1" "@emotion/memoize" "^0.8.1" @@ -1440,12 +1439,12 @@ integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A== "@humanwhocodes/config-array@^0.11.13": - version "0.11.13" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297" - integrity sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ== + version "0.11.14" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" + integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== dependencies: - "@humanwhocodes/object-schema" "^2.0.1" - debug "^4.1.1" + "@humanwhocodes/object-schema" "^2.0.2" + debug "^4.3.1" minimatch "^3.0.5" "@humanwhocodes/module-importer@^1.0.1": @@ -1453,10 +1452,10 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/object-schema@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" - integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== +"@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== "@jest/schemas@^29.6.3": version "29.6.3" @@ -1509,10 +1508,10 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.20" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f" - integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== +"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.21" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.21.tgz#5dc1df7b3dc4a6209e503a924e1ca56097a2bb15" + integrity sha512-SRfKmRe1KvYnxjEMtxEr+J4HIeMX5YBg/qhRHpxEIGjhX1rshcHlnFUE9K0GazhVKWM7B+nARSkV8LuvJdJ5/g== dependencies: "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" @@ -1543,19 +1542,12 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@pkgr/utils@^2.4.2": - version "2.4.2" - resolved "https://registry.yarnpkg.com/@pkgr/utils/-/utils-2.4.2.tgz#9e638bbe9a6a6f165580dc943f138fd3309a2cbc" - integrity sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw== - dependencies: - cross-spawn "^7.0.3" - fast-glob "^3.3.0" - is-glob "^4.0.3" - open "^9.1.0" - picocolors "^1.0.0" - tslib "^2.6.0" +"@pkgr/core@^0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.0.tgz#7d8dacb7fdef0e4387caf7396cbd77f179867d06" + integrity sha512-Zwq5OCzuwJC2jwqmpEQt7Ds1DTi6BWSwoGkbb1n9pO3hzb35BoJELx7c0T23iDkBGkh2e7tvOtjF3tr3OaQHDQ== -"@polka/url@^1.0.0-next.20": +"@polka/url@^1.0.0-next.24": version "1.0.0-next.24" resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.24.tgz#58601079e11784d20f82d0585865bb42305c4df3" integrity sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ== @@ -1566,9 +1558,9 @@ integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== "@react-aria/ssr@^3.5.0": - version "3.9.0" - resolved "https://registry.yarnpkg.com/@react-aria/ssr/-/ssr-3.9.0.tgz#457310129e1447b09d2f4aa2fdd62ab0e668d88c" - integrity sha512-Bz6BqP6ZorCme9tSWHZVmmY+s7AU8l6Vl2NUYmBzezD//fVHHfFo4lFBn5tBuAaJEm3AuCLaJQ6H2qhxNSb7zg== + version "3.9.1" + resolved "https://registry.yarnpkg.com/@react-aria/ssr/-/ssr-3.9.1.tgz#a1252fd5ef87eada810dd9dd6751a5e21359d1d2" + integrity sha512-NqzkLFP8ZVI4GSorS0AYljC13QW2sc8bDqJOkBvkAt3M8gbcAXJWVRGtZBCRscki9RZF+rNlnPdg0G0jYkhJcg== dependencies: "@swc/helpers" "^0.5.0" @@ -1650,9 +1642,9 @@ "@types/estree" "*" "@types/eslint@*", "@types/eslint@^8.37.0": - version "8.44.9" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.44.9.tgz#5799663009645637bd1c45b2e1a7c8f4caf89534" - integrity sha512-6yBxcvwnnYoYT1Uk2d+jvIfsuP4mb2EdIxFnrPABj5a/838qe5bGkNLFOiipX4ULQ7XVQvTxOh7jO+BTAiqsEw== + version "8.56.2" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.56.2.tgz#1c72a9b794aa26a8b94ad26d5b9aa51c8a6384bb" + integrity sha512-uQDwm1wFHmbBbCZCqAlq6Do9LYwByNZHWzXppSnay9SuwJ+VRbjkbLABer54kcPnMSlG6Fdiy2yaFXm/z9Z5gw== dependencies: "@types/estree" "*" "@types/json-schema" "*" @@ -1736,16 +1728,16 @@ integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== "@types/node-forge@^1.3.0": - version "1.3.10" - resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.10.tgz#62a19d4f75a8b03290578c2b04f294b1a5a71b07" - integrity sha512-y6PJDYN4xYBxwd22l+OVH35N+1fCYWiuC3aiP2SlXVE6Lo7SS+rSx9r89hLxrP4pn6n1lBGhHJ12pj3F3Mpttw== + version "1.3.11" + resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.11.tgz#0972ea538ddb0f4d9c2fa0ec5db5724773a604da" + integrity sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ== dependencies: "@types/node" "*" "@types/node@*": - version "20.10.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.5.tgz#47ad460b514096b7ed63a1dae26fad0914ed3ab2" - integrity sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw== + version "20.11.4" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.4.tgz#c724a5d6723182af758b91b994209336f4439cb7" + integrity sha512-6I0fMH8Aoy2lOejL3s4LhyIYX34DPwY8bl5xlNjBvUEk8OHrcuzsFt+Ied4LvJihbtXPM+8zUqdydfIti86v9g== dependencies: undici-types "~5.26.4" @@ -1760,9 +1752,9 @@ integrity sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng== "@types/qs@*": - version "6.9.10" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.10.tgz#0af26845b5067e1c9a622658a51f60a3934d51e8" - integrity sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw== + version "6.9.11" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.11.tgz#208d8a30bc507bd82e03ada29e4732ea46a6bbda" + integrity sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ== "@types/range-parser@*": version "1.2.7" @@ -1784,9 +1776,9 @@ "@types/react" "*" "@types/react@*", "@types/react@>=16.9.11", "@types/react@^18.2.22": - version "18.2.45" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.45.tgz#253f4fac288e7e751ab3dc542000fb687422c15c" - integrity sha512-TtAxCNrlrBp8GoeEp1npd5g+d/OejJHFxS3OWmrPBMFaVQMSN0OFySozJio5BHxTuTeug00AVXVAjfDSfk+lUg== + version "18.2.48" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.48.tgz#11df5664642d0bd879c1f58bc1d37205b064e8f1" + integrity sha512-qboRCl6Ie70DQQG9hhNREz81jqC1cs9EVNcjQ1AU+jH6NFfSAhVVbrrY/+nSF+Bsk4AOwm9Qa61InvMCyV+H3w== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -1880,15 +1872,15 @@ "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^6.7.2": - version "6.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.15.0.tgz#b0b3e15fa8c3e67ed4386b765cc0ba98ad3a303b" - integrity sha512-j5qoikQqPccq9QoBAupOP+CBu8BaJ8BLjaXSioDISeTZkVO3ig7oSIKh3H+rEpee7xCXtWwSB4KIL5l6hWZzpg== + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.19.0.tgz#db03f3313b57a30fbbdad2e6929e88fc7feaf9ba" + integrity sha512-DUCUkQNklCQYnrBSSikjVChdc84/vMPDQSgJTHBZ64G9bA9w0Crc0rd2diujKbTdp6w2J47qkeHQLoi0rpLCdg== dependencies: "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.15.0" - "@typescript-eslint/type-utils" "6.15.0" - "@typescript-eslint/utils" "6.15.0" - "@typescript-eslint/visitor-keys" "6.15.0" + "@typescript-eslint/scope-manager" "6.19.0" + "@typescript-eslint/type-utils" "6.19.0" + "@typescript-eslint/utils" "6.19.0" + "@typescript-eslint/visitor-keys" "6.19.0" debug "^4.3.4" graphemer "^1.4.0" ignore "^5.2.4" @@ -1897,71 +1889,72 @@ ts-api-utils "^1.0.1" "@typescript-eslint/parser@^6.7.2": - version "6.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.15.0.tgz#1af69741cfa314a13c1434d0bdd5a0c3096699d7" - integrity sha512-MkgKNnsjC6QwcMdlNAel24jjkEO/0hQaMDLqP4S9zq5HBAUJNQB6y+3DwLjX7b3l2b37eNAxMPLwb3/kh8VKdA== - dependencies: - "@typescript-eslint/scope-manager" "6.15.0" - "@typescript-eslint/types" "6.15.0" - "@typescript-eslint/typescript-estree" "6.15.0" - "@typescript-eslint/visitor-keys" "6.15.0" + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.19.0.tgz#80344086f362181890ade7e94fc35fe0480bfdf5" + integrity sha512-1DyBLG5SH7PYCd00QlroiW60YJ4rWMuUGa/JBV0iZuqi4l4IK3twKPq5ZkEebmGqRjXWVgsUzfd3+nZveewgow== + dependencies: + "@typescript-eslint/scope-manager" "6.19.0" + "@typescript-eslint/types" "6.19.0" + "@typescript-eslint/typescript-estree" "6.19.0" + "@typescript-eslint/visitor-keys" "6.19.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@6.15.0": - version "6.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.15.0.tgz#40e5214a3e9e048aca55ce33381bc61b6b51c32a" - integrity sha512-+BdvxYBltqrmgCNu4Li+fGDIkW9n//NrruzG9X1vBzaNK+ExVXPoGB71kneaVw/Jp+4rH/vaMAGC6JfMbHstVg== +"@typescript-eslint/scope-manager@6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.19.0.tgz#b6d2abb825b29ab70cb542d220e40c61c1678116" + integrity sha512-dO1XMhV2ehBI6QN8Ufi7I10wmUovmLU0Oru3n5LVlM2JuzB4M+dVphCPLkVpKvGij2j/pHBWuJ9piuXx+BhzxQ== dependencies: - "@typescript-eslint/types" "6.15.0" - "@typescript-eslint/visitor-keys" "6.15.0" + "@typescript-eslint/types" "6.19.0" + "@typescript-eslint/visitor-keys" "6.19.0" -"@typescript-eslint/type-utils@6.15.0": - version "6.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.15.0.tgz#c22261bd00566821a300d08f4632533a8f9bed01" - integrity sha512-CnmHKTfX6450Bo49hPg2OkIm/D/TVYV7jO1MCfPYGwf6x3GO0VU8YMO5AYMn+u3X05lRRxA4fWCz87GFQV6yVQ== +"@typescript-eslint/type-utils@6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.19.0.tgz#522a494ef0d3e9fdc5e23a7c22c9331bbade0101" + integrity sha512-mcvS6WSWbjiSxKCwBcXtOM5pRkPQ6kcDds/juxcy/727IQr3xMEcwr/YLHW2A2+Fp5ql6khjbKBzOyjuPqGi/w== dependencies: - "@typescript-eslint/typescript-estree" "6.15.0" - "@typescript-eslint/utils" "6.15.0" + "@typescript-eslint/typescript-estree" "6.19.0" + "@typescript-eslint/utils" "6.19.0" debug "^4.3.4" ts-api-utils "^1.0.1" -"@typescript-eslint/types@6.15.0": - version "6.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.15.0.tgz#a9f7b006aee52b0948be6e03f521814bf435ddd5" - integrity sha512-yXjbt//E4T/ee8Ia1b5mGlbNj9fB9lJP4jqLbZualwpP2BCQ5is6BcWwxpIsY4XKAhmdv3hrW92GdtJbatC6dQ== +"@typescript-eslint/types@6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.19.0.tgz#689b0498c436272a6a2059b09f44bcbd90de294a" + integrity sha512-lFviGV/vYhOy3m8BJ/nAKoAyNhInTdXpftonhWle66XHAtT1ouBlkjL496b5H5hb8dWXHwtypTqgtb/DEa+j5A== -"@typescript-eslint/typescript-estree@6.15.0": - version "6.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.15.0.tgz#2f8a513df1ce5e6e1ba8e5c6aa52f392ae023fc5" - integrity sha512-7mVZJN7Hd15OmGuWrp2T9UvqR2Ecg+1j/Bp1jXUEY2GZKV6FXlOIoqVDmLpBiEiq3katvj/2n2mR0SDwtloCew== +"@typescript-eslint/typescript-estree@6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.19.0.tgz#0813ba364a409afb4d62348aec0202600cb468fa" + integrity sha512-o/zefXIbbLBZ8YJ51NlkSAt2BamrK6XOmuxSR3hynMIzzyMY33KuJ9vuMdFSXW+H0tVvdF9qBPTHA91HDb4BIQ== dependencies: - "@typescript-eslint/types" "6.15.0" - "@typescript-eslint/visitor-keys" "6.15.0" + "@typescript-eslint/types" "6.19.0" + "@typescript-eslint/visitor-keys" "6.19.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" + minimatch "9.0.3" semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@6.15.0": - version "6.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.15.0.tgz#f80dbb79f3b0f569077a8711dd44186a8933fa4c" - integrity sha512-eF82p0Wrrlt8fQSRL0bGXzK5nWPRV2dYQZdajcfzOD9+cQz9O7ugifrJxclB+xVOvWvagXfqS4Es7vpLP4augw== +"@typescript-eslint/utils@6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.19.0.tgz#557b72c3eeb4f73bef8037c85dae57b21beb1a4b" + integrity sha512-QR41YXySiuN++/dC9UArYOg4X86OAYP83OWTewpVx5ct1IZhjjgTLocj7QNxGhWoTqknsgpl7L+hGygCO+sdYw== dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@types/json-schema" "^7.0.12" "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.15.0" - "@typescript-eslint/types" "6.15.0" - "@typescript-eslint/typescript-estree" "6.15.0" + "@typescript-eslint/scope-manager" "6.19.0" + "@typescript-eslint/types" "6.19.0" + "@typescript-eslint/typescript-estree" "6.19.0" semver "^7.5.4" -"@typescript-eslint/visitor-keys@6.15.0": - version "6.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.15.0.tgz#5baf97a7bfeec6f4894d400437055155a46b2330" - integrity sha512-1zvtdC1a9h5Tb5jU9x3ADNXO9yjP8rXlaoChu0DQX40vf5ACVpYIVIZhIMZ6d5sDXH7vq4dsZBT1fEGj8D2n2w== +"@typescript-eslint/visitor-keys@6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.19.0.tgz#4565e0ecd63ca1f81b96f1dd76e49f746c6b2b49" + integrity sha512-hZaUCORLgubBvtGpp1JEFEazcuEdfxta9j4iUwdSAr7mEsYYAp3EAUyCZk3VEEqGj6W+AV4uWyrDGtrlawAsgQ== dependencies: - "@typescript-eslint/types" "6.15.0" + "@typescript-eslint/types" "6.19.0" eslint-visitor-keys "^3.4.1" "@ungap/structured-clone@^1.2.0": @@ -2134,14 +2127,14 @@ acorn-jsx@^5.3.2: integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn-walk@^8.0.0: - version "8.3.1" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.1.tgz#2f10f5b69329d90ae18c58bf1fa8fccd8b959a43" - integrity sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw== + version "8.3.2" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa" + integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A== acorn@^8.0.4, acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0: - version "8.11.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" - integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== + version "8.11.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== ajv-formats@^2.1.1: version "2.1.1" @@ -2232,11 +2225,6 @@ array-flatten@1.1.1: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== -array-flatten@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" - integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== - array-includes@^3.1.6: version "3.1.7" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" @@ -2327,11 +2315,11 @@ available-typed-arrays@^1.0.5: integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== axios@^1.2.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.2.tgz#de67d42c755b571d3e698df1b6504cde9b0ee9f2" - integrity sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A== + version "1.6.5" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.5.tgz#2c090da14aeeab3770ad30c3a1461bc970fb0cd8" + integrity sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg== dependencies: - follow-redirects "^1.15.0" + follow-redirects "^1.15.4" form-data "^4.0.0" proxy-from-env "^1.1.0" @@ -2352,7 +2340,7 @@ babel-plugin-macros@^3.1.0: cosmiconfig "^7.0.0" resolve "^1.19.0" -babel-plugin-polyfill-corejs2@^0.4.6: +babel-plugin-polyfill-corejs2@^0.4.7: version "0.4.7" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz#679d1b94bf3360f7682e11f2cb2708828a24fe8c" integrity sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ== @@ -2361,7 +2349,7 @@ babel-plugin-polyfill-corejs2@^0.4.6: "@babel/helper-define-polyfill-provider" "^0.4.4" semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.8.5: +babel-plugin-polyfill-corejs3@^0.8.7: version "0.8.7" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz#941855aa7fdaac06ed24c730a93450d2b2b76d04" integrity sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA== @@ -2369,7 +2357,7 @@ babel-plugin-polyfill-corejs3@^0.8.5: "@babel/helper-define-polyfill-provider" "^0.4.4" core-js-compat "^3.33.1" -babel-plugin-polyfill-regenerator@^0.5.3: +babel-plugin-polyfill-regenerator@^0.5.4: version "0.5.4" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.4.tgz#c6fc8eab610d3a11eb475391e52584bacfc020f4" integrity sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg== @@ -2396,11 +2384,6 @@ batch@0.6.1: resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== -big-integer@^1.6.44: - version "1.6.52" - resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.52.tgz#60a887f3047614a8e1bffe5d7173490a97dc8c85" - integrity sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg== - big.js@^3.1.3: version "3.2.0" resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" @@ -2435,12 +2418,10 @@ body-parser@1.20.1: unpipe "1.0.0" bonjour-service@^1.0.11: - version "1.1.1" - resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.1.1.tgz#960948fa0e0153f5d26743ab15baf8e33752c135" - integrity sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg== + version "1.2.1" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.2.1.tgz#eb41b3085183df3321da1264719fbada12478d02" + integrity sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw== dependencies: - array-flatten "^2.1.2" - dns-equal "^1.0.0" fast-deep-equal "^3.1.3" multicast-dns "^7.2.5" @@ -2454,13 +2435,6 @@ bootstrap@^5.3.2: resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.3.2.tgz#97226583f27aae93b2b28ab23f4c114757ff16ae" integrity sha512-D32nmNWiQHo94BKHLmOrdjlL05q1c8oxbtBphQFb9Z5to6eGRDCm0QgeaZ4zFBHzfg2++rqa2JkqCcxDy0sH0g== -bplist-parser@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e" - integrity sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw== - dependencies: - big-integer "^1.6.44" - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -2469,6 +2443,13 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + braces@^3.0.2, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" @@ -2476,7 +2457,7 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.21.10, browserslist@^4.21.4, browserslist@^4.22.1, browserslist@^4.22.2: +browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.21.10, browserslist@^4.22.1, browserslist@^4.22.2: version "4.22.2" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b" integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== @@ -2491,13 +2472,6 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -bundle-name@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-3.0.0.tgz#ba59bcc9ac785fb67ccdbf104a2bf60c099f0e1a" - integrity sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw== - dependencies: - run-applescript "^5.0.0" - bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" @@ -2533,9 +2507,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001538, caniuse-lite@^1.0.30001565: - version "1.0.30001570" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001570.tgz#b4e5c1fa786f733ab78fc70f592df6b3f23244ca" - integrity sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw== + version "1.0.30001577" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001577.tgz#a24991eb4ad67324ba8b96716340d53151f2f6f8" + integrity sha512-rs2ZygrG1PNXMfmncM0B5H1hndY5ZCC9b5TkFaVNfZ+AUlyqcMyVIQtc3fsezi0NUCk5XZfDf9WS6WxMxnfdrg== chalk@^2.4.2: version "2.4.2" @@ -2590,9 +2564,9 @@ classnames@2.3.1: integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA== classnames@^2.2.6, classnames@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.2.tgz#351d813bf0137fcc6a76a16b88208d2560a0d924" - integrity sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw== + version "2.5.1" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.5.1.tgz#ba774c614be0f016da105c858e7159eae8e7687b" + integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow== clone-deep@^4.0.1: version "4.0.1" @@ -2676,13 +2650,13 @@ compressible@~2.0.16: dependencies: mime-db ">= 1.43.0 < 2" -compression-webpack-plugin@10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-10.0.0.tgz#3496af1b0dc792e13efc474498838dbff915c823" - integrity sha512-wLXLIBwpul/ALcm7Aj+69X0pYT3BYt6DdPn3qrgBIh9YejV9Bju9ShhlAsjujLyWMo6SAweFIWaUoFmXZNuNrg== +compression-webpack-plugin@11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-11.0.0.tgz#d8dfe6a446fb15a8bb7d78da6494098cdae605a7" + integrity sha512-Nz9dMiu0sag+mgJ5QTkRx0+vwrDZPU/gps7IdrkFE+oRSkgyoX4wbMol7QnXjI5/TEWx8yEwew9MiMjZgdLtjg== dependencies: - schema-utils "^4.0.0" - serialize-javascript "^6.0.0" + schema-utils "^4.2.0" + serialize-javascript "^6.0.2" compression@^1.7.4: version "1.7.4" @@ -2740,9 +2714,9 @@ cookie@0.5.0: integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== core-js-compat@^3.31.0, core-js-compat@^3.33.1: - version "3.34.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.34.0.tgz#61a4931a13c52f8f08d924522bba65f8c94a5f17" - integrity sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA== + version "3.35.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.35.0.tgz#c149a3d1ab51e743bc1da61e39cb51f461a41873" + integrity sha512-5blwFAddknKeNgsjBzilkdQ0+YK8L1PfqPYq40NOYMYFSS38qj+hpTcLLWwpIwA2A5bje/x5jmVn2tzUMg9IVw== dependencies: browserslist "^4.22.2" @@ -2762,7 +2736,7 @@ cosmiconfig@^7.0.0: path-type "^4.0.0" yaml "^1.10.0" -cosmiconfig@^8.2.0: +cosmiconfig@^8.3.5: version "8.3.6" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== @@ -2788,7 +2762,7 @@ css-blank-pseudo@^6.0.0: dependencies: postcss-selector-parser "^6.0.13" -css-declaration-sorter@^7.0.0: +css-declaration-sorter@^7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-7.1.1.tgz#9796bcc257b4647c39993bda8d431ce32b666f80" integrity sha512-dZ3bVTEEc1vxr3Bek9vGwfB5Z6ESPULhcRvO472mfjVnj8jRcTnKO8/JTczlvxM10Myb+wBM++1MtdO76eWcaQ== @@ -2803,18 +2777,18 @@ css-has-pseudo@^6.0.0: postcss-value-parser "^4.2.0" css-loader@^6.7.3, css-loader@^6.8.1: - version "6.8.1" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.8.1.tgz#0f8f52699f60f5e679eab4ec0fcd68b8e8a50a88" - integrity sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g== + version "6.9.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.9.0.tgz#0cc2f14df94ed97c526c5ae42b6b13916d1d8d0e" + integrity sha512-3I5Nu4ytWlHvOP6zItjiHlefBNtrH+oehq8tnQa2kO305qpVyx9XNIT1CXIj5bgCJs7qICBCkgCYxQLKPANoLA== dependencies: icss-utils "^5.1.0" - postcss "^8.4.21" + postcss "^8.4.31" postcss-modules-extract-imports "^3.0.0" postcss-modules-local-by-default "^4.0.3" - postcss-modules-scope "^3.0.0" + postcss-modules-scope "^3.1.0" postcss-modules-values "^4.0.0" postcss-value-parser "^4.2.0" - semver "^7.3.8" + semver "^7.5.4" css-minimizer-webpack-plugin@^5.0.1: version "5.0.1" @@ -2844,7 +2818,7 @@ css-select@^5.1.0: domutils "^3.0.1" nth-check "^2.0.1" -css-tree@^2.2.1: +css-tree@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== @@ -2866,49 +2840,49 @@ css-what@^6.1.0: integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== cssdb@^7.9.0: - version "7.9.1" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.9.1.tgz#d76e06509dc1e11050836c3d556988fdbffa749e" - integrity sha512-fqy6ZnNfpb8qAvTT0qijWyTsUmYThsDX2F2ctMG4ceI7mI4DtsMILSiMBiuuDnVIYTyWvCctdp9Nb08p/6m2SQ== + version "7.10.0" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.10.0.tgz#08816db7b793f088263e8f61dfe8d7f11a3459f2" + integrity sha512-yGZ5tmA57gWh/uvdQBHs45wwFY0IBh3ypABk5sEubPBPSzXzkNgsWReqx7gdx6uhC+QoFBe+V8JwBB9/hQ6cIA== cssesc@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-default@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-6.0.2.tgz#0cc13e2da462b0d1632b1ebea4af78e7484592e8" - integrity sha512-VnZybFeZ63AiVqIUNlxqMxpj9VU8B5j0oKgP7WyVt/7mkyf97KsYkNzsPTV/RVmy54Pg7cBhOK4WATbdCB44gw== +cssnano-preset-default@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-6.0.3.tgz#b4ce755974f4dc8d3d09ac13bb6281cce3ced45e" + integrity sha512-4y3H370aZCkT9Ev8P4SO4bZbt+AExeKhh8wTbms/X7OLDo5E7AYUUy6YPxa/uF5Grf+AJwNcCnxKhZynJ6luBA== dependencies: - css-declaration-sorter "^7.0.0" + css-declaration-sorter "^7.1.1" cssnano-utils "^4.0.1" postcss-calc "^9.0.1" - postcss-colormin "^6.0.1" - postcss-convert-values "^6.0.1" + postcss-colormin "^6.0.2" + postcss-convert-values "^6.0.2" postcss-discard-comments "^6.0.1" postcss-discard-duplicates "^6.0.1" postcss-discard-empty "^6.0.1" postcss-discard-overridden "^6.0.1" - postcss-merge-longhand "^6.0.1" - postcss-merge-rules "^6.0.2" + postcss-merge-longhand "^6.0.2" + postcss-merge-rules "^6.0.3" postcss-minify-font-values "^6.0.1" postcss-minify-gradients "^6.0.1" - postcss-minify-params "^6.0.1" - postcss-minify-selectors "^6.0.1" + postcss-minify-params "^6.0.2" + postcss-minify-selectors "^6.0.2" postcss-normalize-charset "^6.0.1" postcss-normalize-display-values "^6.0.1" postcss-normalize-positions "^6.0.1" postcss-normalize-repeat-style "^6.0.1" postcss-normalize-string "^6.0.1" postcss-normalize-timing-functions "^6.0.1" - postcss-normalize-unicode "^6.0.1" + postcss-normalize-unicode "^6.0.2" postcss-normalize-url "^6.0.1" postcss-normalize-whitespace "^6.0.1" postcss-ordered-values "^6.0.1" - postcss-reduce-initial "^6.0.1" + postcss-reduce-initial "^6.0.2" postcss-reduce-transforms "^6.0.1" - postcss-svgo "^6.0.1" - postcss-unique-selectors "^6.0.1" + postcss-svgo "^6.0.2" + postcss-unique-selectors "^6.0.2" cssnano-utils@^4.0.1: version "4.0.1" @@ -2916,14 +2890,14 @@ cssnano-utils@^4.0.1: integrity sha512-6qQuYDqsGoiXssZ3zct6dcMxiqfT6epy7x4R0TQJadd4LWO3sPR6JH6ZByOvVLoZ6EdwPGgd7+DR1EmX3tiXQQ== cssnano@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-6.0.2.tgz#7b49d60ce51e1dea3d569795f751ee49e97124c9" - integrity sha512-Tu9wv8UdN6CoiQnIVkCNvi+0rw/BwFWOJBlg2bVfEyKaadSuE3Gq/DD8tniVvggTJGwK88UjqZp7zL5sv6t1aA== + version "6.0.3" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-6.0.3.tgz#46db972da71aa159437287fb4c6bc9c5d3cc5d93" + integrity sha512-MRq4CIj8pnyZpcI2qs6wswoYoDD1t0aL28n+41c1Ukcpm56m1h6mCexIHBGjfZfnTqtGSSCP4/fB1ovxgjBOiw== dependencies: - cssnano-preset-default "^6.0.2" + cssnano-preset-default "^6.0.3" lilconfig "^3.0.0" -csso@5.0.5: +csso@^5.0.5: version "5.0.5" resolved "https://registry.yarnpkg.com/csso/-/csso-5.0.5.tgz#f9b7fe6cc6ac0b7d90781bb16d5e9874303e2ca6" integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ== @@ -2971,24 +2945,6 @@ deepmerge@^4.0: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== -default-browser-id@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-3.0.0.tgz#bee7bbbef1f4e75d31f98f4d3f1556a14cea790c" - integrity sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA== - dependencies: - bplist-parser "^0.2.0" - untildify "^4.0.0" - -default-browser@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-4.0.0.tgz#53c9894f8810bf86696de117a6ce9085a3cbc7da" - integrity sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA== - dependencies: - bundle-name "^3.0.0" - default-browser-id "^3.0.0" - execa "^7.1.1" - titleize "^3.0.0" - default-gateway@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" @@ -3010,11 +2966,6 @@ define-lazy-prop@^2.0.0: resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== -define-lazy-prop@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" - integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== - define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" @@ -3061,11 +3012,6 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - integrity sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg== - dns-packet@^5.2.2: version "5.6.1" resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.1.tgz#ae888ad425a9d1478a0674256ab866de1012cf2f" @@ -3136,9 +3082,9 @@ ee-first@1.1.1: integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== electron-to-chromium@^1.4.601: - version "1.4.615" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.615.tgz#b1c41839962d2e4e63dca05519da9040e34848c2" - integrity sha512-/bKPPcgZVUziECqDc+0HkT87+0zhaWSZHNXqF8FLd2lQcptpmUFwoCSWjCdOng9Gdq+afKArPdEg/0ZW461Eng== + version "1.4.632" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.632.tgz#df6253483b802eb83eee2fdc0e5067bd46f36f11" + integrity sha512-JGmudTwg7yxMYvR/gWbalqqQiyu7WTFv2Xu3vw4cJHXPFxNgAk0oy8UHaer8nLF4lZJa+rNoj6GsrKIVJTV6Tw== emojis-list@^2.0.0: version "2.1.0" @@ -3301,12 +3247,12 @@ eslint-config-prettier@^9.0.0: integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== eslint-plugin-prettier@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.1.tgz#a3b399f04378f79f066379f544e42d6b73f11515" - integrity sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg== + version "5.1.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz#17cfade9e732cef32b5f5be53bd4e07afd8e67e1" + integrity sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw== dependencies: prettier-linter-helpers "^1.0.0" - synckit "^0.8.5" + synckit "^0.8.6" eslint-plugin-react@^7.30.0: version "7.33.2" @@ -3474,21 +3420,6 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -execa@^7.1.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-7.2.0.tgz#657e75ba984f42a70f38928cedc87d6f2d4fe4e9" - integrity sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.1" - human-signals "^4.3.0" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^3.0.7" - strip-final-newline "^3.0.0" - express@^4.17.3: version "4.18.2" resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" @@ -3536,7 +3467,7 @@ fast-diff@^1.1.2: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== -fast-glob@^3.2.9, fast-glob@^3.3.0: +fast-glob@^3.2.9: version "3.3.2" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== @@ -3659,10 +3590,10 @@ flatted@^3.2.9: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== -follow-redirects@^1.0.0, follow-redirects@^1.15.0: - version "1.15.3" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a" - integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== +follow-redirects@^1.0.0, follow-redirects@^1.15.4: + 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== font-awesome@^4.7.0: version "4.7.0" @@ -3750,7 +3681,7 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@ has-symbols "^1.0.3" hasown "^2.0.0" -get-stream@^6.0.0, get-stream@^6.0.1: +get-stream@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== @@ -3874,7 +3805,7 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-property-descriptors@^1.0.0: +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340" integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg== @@ -3995,15 +3926,10 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -human-signals@^4.3.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" - integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== - i18next@^23.5.1: - version "23.7.11" - resolved "https://registry.yarnpkg.com/i18next/-/i18next-23.7.11.tgz#ee4dfa58f9b27807ebf57d7c33a6c4a0bb4bf7c8" - integrity sha512-A/vOkw8vY99YHU9A1Td3I1dcTiYaPnwBWzrpVzfXUXSYgogK3cmBcmop/0cnXPc6QpUWIyqaugKNxRUEZVk9Nw== + version "23.7.16" + resolved "https://registry.yarnpkg.com/i18next/-/i18next-23.7.16.tgz#7026d18b7a3ac9e2ecfeb78da5e4da5ca33312ef" + integrity sha512-SrqFkMn9W6Wb43ZJ9qrO6U2U4S80RsFMA7VYFSqp7oc7RllQOYDCdRfsse6A7Cq/V8MnpxKvJCYgM8++27n4Fw== dependencies: "@babel/runtime" "^7.23.2" @@ -4166,11 +4092,6 @@ is-docker@^2.0.0, is-docker@^2.1.1: resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== -is-docker@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" - integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== - is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -4197,13 +4118,6 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" -is-inside-container@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" - integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== - dependencies: - is-docker "^3.0.0" - is-map@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" @@ -4273,11 +4187,6 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== -is-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" - integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== - is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" @@ -4393,7 +4302,7 @@ jest-worker@^29.4.3, jest-worker@^29.5.0: merge-stream "^2.0.0" supports-color "^8.0.0" -jiti@^1.18.2: +jiti@^1.20.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== @@ -4683,15 +4592,10 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -mimic-fn@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" - integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== - mini-css-extract-plugin@^2.7.2, mini-css-extract-plugin@^2.7.6: - version "2.7.6" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz#282a3d38863fddcd2e0c220aaed5b90bc156564d" - integrity sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw== + version "2.7.7" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.7.tgz#4acf02f362c641c38fb913bfcb7ca2fc4a7cf339" + integrity sha512-+0n11YGyRavUR3IlaOzJ0/4Il1avMvJ1VJfhWfCn24ITQXhRr1gghbhhrda6tgtNcpZaWKdSuwKq20Jb7fnlyw== dependencies: schema-utils "^4.0.0" @@ -4700,6 +4604,13 @@ minimalistic-assert@^1.0.0: resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== +minimatch@9.0.3: + version "9.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + 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" @@ -4707,10 +4618,10 @@ minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" -mrmime@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.1.tgz#5f90c825fad4bdd41dc914eff5d1a8cfdaf24f27" - integrity sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw== +mrmime@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-2.0.0.tgz#151082a6e06e59a9a39b46b3e14d5cfe92b3abb4" + integrity sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw== ms@2.0.0: version "2.0.0" @@ -4782,13 +4693,6 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" -npm-run-path@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" - integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== - dependencies: - path-key "^4.0.0" - nth-check@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" @@ -4887,13 +4791,6 @@ onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -onetime@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" - integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== - dependencies: - mimic-fn "^4.0.0" - open@^8.0.9: version "8.4.2" resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" @@ -4903,16 +4800,6 @@ open@^8.0.9: is-docker "^2.1.1" is-wsl "^2.2.0" -open@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/open/-/open-9.1.0.tgz#684934359c90ad25742f5a26151970ff8c6c80b6" - integrity sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg== - dependencies: - default-browser "^4.0.0" - define-lazy-prop "^3.0.0" - is-inside-container "^1.0.0" - is-wsl "^2.2.0" - opener@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" @@ -5032,11 +4919,6 @@ path-key@^3.0.0, path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-key@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" - integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== - path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" @@ -5104,13 +4986,13 @@ postcss-clamp@^4.1.0: postcss-value-parser "^4.2.0" postcss-color-functional-notation@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-6.0.3.tgz#02869e61f04705cb9eb5d245136dd59f8f7c4dee" - integrity sha512-2jBr3H0sk3qGh/3BkmLsOKcYyVfSlM1K2QQYVU7eW5mkg7ZOQ4aU/Rtbh7vJ9FxAfgf8iHRwXBsQkHqUxzTkXw== + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-6.0.4.tgz#2f1f8390d8d508713e43802230bf3ae0173622a7" + integrity sha512-YBzfVvVUNR4U3N0imzU1NPKCuwxzfHJkEP6imJxzsJ8LozRKeej9mWmg9Ef1ovJdb0xrGTRVzUxgTrMun5iw/Q== dependencies: - "@csstools/css-color-parser" "^1.5.0" - "@csstools/css-parser-algorithms" "^2.4.0" - "@csstools/css-tokenizer" "^2.2.2" + "@csstools/css-color-parser" "^1.5.1" + "@csstools/css-parser-algorithms" "^2.5.0" + "@csstools/css-tokenizer" "^2.2.3" "@csstools/postcss-progressive-custom-properties" "^3.0.3" postcss-color-hex-alpha@^9.0.2: @@ -5127,22 +5009,22 @@ postcss-color-rebeccapurple@^9.0.1: dependencies: postcss-value-parser "^4.2.0" -postcss-colormin@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-6.0.1.tgz#3aa61d38a88dbdeeb7252fae67809a7ac547a129" - integrity sha512-Tb9aR2wCJCzKuNjIeMzVNd0nXjQy25HDgFmmaRsHnP0eP/k8uQWE4S8voX5S2coO5CeKrp+USFs1Ayv9Tpxx6w== +postcss-colormin@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-6.0.2.tgz#2af9ce753937b08e058dbc6879e4aedfab42806b" + integrity sha512-TXKOxs9LWcdYo5cgmcSHPkyrLAh86hX1ijmyy6J8SbOhyv6ua053M3ZAM/0j44UsnQNIWdl8gb5L7xX2htKeLw== dependencies: - browserslist "^4.21.4" + browserslist "^4.22.2" caniuse-api "^3.0.0" colord "^2.9.1" postcss-value-parser "^4.2.0" -postcss-convert-values@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-6.0.1.tgz#a1451cb7e53b67b3db95c37276c5decb997409f2" - integrity sha512-zTd4Vh0HxGkhg5aHtfCogcRHzGkvblfdWlQ53lIh1cJhYcGyIxh2hgtKoVh40AMktRERet+JKdB04nNG19kjmA== +postcss-convert-values@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-6.0.2.tgz#c4a7509aeb1cc7ac3f6948fcbffc2bf8cac7c56a" + integrity sha512-aeBmaTnGQ+NUSVQT8aY0sKyAD/BaLJenEKZ03YK0JnDE1w1Rr8XShoxdal2V2H26xTJKr3v5haByOhJuyT4UYw== dependencies: - browserslist "^4.21.4" + browserslist "^4.22.2" postcss-value-parser "^4.2.0" postcss-custom-media@^10.0.2: @@ -5156,13 +5038,13 @@ postcss-custom-media@^10.0.2: "@csstools/media-query-list-parser" "^2.1.5" postcss-custom-properties@^13.3.2: - version "13.3.3" - resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-13.3.3.tgz#c6be6c1746e0415f9e42a3055129aa20a19803e6" - integrity sha512-xLmILb2R83aG4X++iVFg8TWadOlc45xiyFHRZD6Yhhu2igrTHXL6C75AEWqx6k9lxrr9sK5rcfUI9JvTCxBTvA== + version "13.3.4" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-13.3.4.tgz#0ad5be700b692e0288ce3b2b406eac964244f197" + integrity sha512-9YN0gg9sG3OH+Z9xBrp2PWRb+O4msw+5Sbp3ZgqrblrwKspXVQe5zr5sVqi43gJGwW/Rv1A483PRQUzQOEewvA== dependencies: - "@csstools/cascade-layer-name-parser" "^1.0.6" - "@csstools/css-parser-algorithms" "^2.4.0" - "@csstools/css-tokenizer" "^2.2.2" + "@csstools/cascade-layer-name-parser" "^1.0.7" + "@csstools/css-parser-algorithms" "^2.5.0" + "@csstools/css-tokenizer" "^2.2.3" postcss-value-parser "^4.2.0" postcss-custom-selectors@^7.1.6: @@ -5246,33 +5128,33 @@ postcss-image-set-function@^6.0.1: dependencies: postcss-value-parser "^4.2.0" -postcss-import@^15.0.0: - version "15.1.0" - resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70" - integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== +postcss-import@^16.0.0: + version "16.0.0" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-16.0.0.tgz#2be1c78391b3f43f129fccfe5cc0cc1a11baef54" + integrity sha512-e77lhVvrD1I2y7dYmBv0k9ULTdArgEYZt97T4w6sFIU5uxIHvDFQlKgUUyY7v7Barj0Yf/zm5A4OquZN7jKm5Q== dependencies: postcss-value-parser "^4.0.0" read-cache "^1.0.0" resolve "^1.1.7" postcss-lab-function@^6.0.7: - version "6.0.8" - resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-6.0.8.tgz#e5bacdb7235449168972bc6fbf8eb4a19696ae1f" - integrity sha512-agYs7R9Z5gnX837fCkH8TEQIHdhyDsMPPnpuuENt/dxoDVAykBaqbdxIN4DagOj+ZQo20iRNNJeY3MsFcdI6Sg== + version "6.0.9" + resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-6.0.9.tgz#9ef00afba26703a1a3d83d502401a66a98eabb96" + integrity sha512-PKFAVTBEWJYsoSTD7Kp/OzeiMsXaLX39Pv75XgUyF5VrbMfeTw+JqCGsvDP3dPhclh6BemdCFHcjXBG9gO4UCg== dependencies: - "@csstools/css-color-parser" "^1.5.0" - "@csstools/css-parser-algorithms" "^2.4.0" - "@csstools/css-tokenizer" "^2.2.2" + "@csstools/css-color-parser" "^1.5.1" + "@csstools/css-parser-algorithms" "^2.5.0" + "@csstools/css-tokenizer" "^2.2.3" "@csstools/postcss-progressive-custom-properties" "^3.0.3" postcss-loader@^7.0.1: - version "7.3.3" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-7.3.3.tgz#6da03e71a918ef49df1bb4be4c80401df8e249dd" - integrity sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA== + version "7.3.4" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-7.3.4.tgz#aed9b79ce4ed7e9e89e56199d25ad1ec8f606209" + integrity sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A== dependencies: - cosmiconfig "^8.2.0" - jiti "^1.18.2" - semver "^7.3.8" + cosmiconfig "^8.3.5" + jiti "^1.20.0" + semver "^7.5.4" postcss-logical@^7.0.0: version "7.0.1" @@ -5281,23 +5163,23 @@ postcss-logical@^7.0.0: dependencies: postcss-value-parser "^4.2.0" -postcss-merge-longhand@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-6.0.1.tgz#5a1145868c615e643ca0996d9e9c3f09ad8de854" - integrity sha512-vmr/HZQzaPXc45FRvSctqFTF05UaDnTn5ABX+UtQPJznDWT/QaFbVc/pJ5C2YPxx2J2XcfmWowlKwtCDwiQ5hA== +postcss-merge-longhand@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-6.0.2.tgz#cd4e83014851da59545e9a906b245615550f4064" + integrity sha512-+yfVB7gEM8SrCo9w2lCApKIEzrTKl5yS1F4yGhV3kSim6JzbfLGJyhR1B6X+6vOT0U33Mgx7iv4X9MVWuaSAfw== dependencies: postcss-value-parser "^4.2.0" - stylehacks "^6.0.1" + stylehacks "^6.0.2" -postcss-merge-rules@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-6.0.2.tgz#b0f0063a05d671b7093a86f0faa6d2c6695dc036" - integrity sha512-6lm8bl0UfriSfxI+F/cezrebqqP8w702UC6SjZlUlBYwuRVNbmgcJuQU7yePIvD4MNT53r/acQCUAyulrpgmeQ== +postcss-merge-rules@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-6.0.3.tgz#08fcf714faaad75b1980ecd961b080ae2f8ddeb3" + integrity sha512-yfkDqSHGohy8sGYIJwBmIGDv4K4/WrJPX355XrxQb/CSsT4Kc/RxDi6akqn5s9bap85AWgv21ArcUWwWdGNSHA== dependencies: - browserslist "^4.21.4" + browserslist "^4.22.2" caniuse-api "^3.0.0" cssnano-utils "^4.0.1" - postcss-selector-parser "^6.0.5" + postcss-selector-parser "^6.0.15" postcss-minify-font-values@^6.0.1: version "6.0.1" @@ -5315,21 +5197,21 @@ postcss-minify-gradients@^6.0.1: cssnano-utils "^4.0.1" postcss-value-parser "^4.2.0" -postcss-minify-params@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-6.0.1.tgz#79b83947bae2aa991df12646c7f463276abb0aef" - integrity sha512-eFvGWArqh4khPIgPDu6SZNcaLctx97nO7c59OXnRtGntAp5/VS4gjMhhW9qUFsK6mQ27pEZGt2kR+mPizI+Z9g== +postcss-minify-params@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-6.0.2.tgz#bd64af642fa5610281b8a9461598bbb91f92ae05" + integrity sha512-zwQtbrPEBDj+ApELZ6QylLf2/c5zmASoOuA4DzolyVGdV38iR2I5QRMsZcHkcdkZzxpN8RS4cN7LPskOkTwTZw== dependencies: - browserslist "^4.21.4" + browserslist "^4.22.2" cssnano-utils "^4.0.1" postcss-value-parser "^4.2.0" -postcss-minify-selectors@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-6.0.1.tgz#7b2f05651a2f734da1fa50dea62cfc47e67d68f9" - integrity sha512-mfReq5wrS6vkunxvJp6GDuOk+Ak6JV7134gp8L+ANRnV9VwqzTvBtX6lpohooVU750AR0D3pVx2Zn6uCCwOAfQ== +postcss-minify-selectors@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-6.0.2.tgz#62065b38d3453ddc6627ba50e4f4a2154b031aa0" + integrity sha512-0b+m+w7OAvZejPQdN2GjsXLv5o0jqYHX3aoV0e7RBKPCsB7TYG5KKWBFhGnB/iP3213Ts8c5H4wLPLMm7z28Sg== dependencies: - postcss-selector-parser "^6.0.5" + postcss-selector-parser "^6.0.15" postcss-modules-extract-imports@^3.0.0: version "3.0.0" @@ -5345,10 +5227,10 @@ postcss-modules-local-by-default@^4.0.3: postcss-selector-parser "^6.0.2" postcss-value-parser "^4.1.0" -postcss-modules-scope@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" - integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== +postcss-modules-scope@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.1.0.tgz#fbfddfda93a31f310f1d152c2bb4d3f3c5592ee0" + integrity sha512-SaIbK8XW+MZbd0xHPf7kdfA/3eOt7vxJ72IRecn3EzuZVLr1r0orzf0MX/pN8m+NMDoo6X/SQd8oeKqGZd8PXg== dependencies: postcss-selector-parser "^6.0.4" @@ -5407,12 +5289,12 @@ postcss-normalize-timing-functions@^6.0.1: dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-unicode@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.1.tgz#a652faa02fc8ce5d1429ac0782575d8d66a60d9b" - integrity sha512-ok9DsI94nEF79MkvmLfHfn8ddnKXA7w+8YuUoz5m7b6TOdoaRCpvu/QMHXQs9+DwUbvp+ytzz04J55CPy77PuQ== +postcss-normalize-unicode@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.2.tgz#361026744ff11baebaec771b60c2a5f36f274fd0" + integrity sha512-Ff2VdAYCTGyMUwpevTZPZ4w0+mPjbZzLLyoLh/RMpqUqeQKZ+xMm31hkxBavDcGKcxm6ACzGk0nBfZ8LZkStKA== dependencies: - browserslist "^4.21.4" + browserslist "^4.22.2" postcss-value-parser "^4.2.0" postcss-normalize-url@^6.0.1: @@ -5534,12 +5416,12 @@ postcss-pseudo-class-any-link@^9.0.0: dependencies: postcss-selector-parser "^6.0.13" -postcss-reduce-initial@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-6.0.1.tgz#37621ba31a18fd75eb9c76e818cca2a2adb13238" - integrity sha512-cgzsI2ThG1PMSdSyM9A+bVxiiVgPIVz9f5c6H+TqEv0CA89iCOO81mwLWRWLgOKFtQkKob9nNpnkxG/1RlgFcA== +postcss-reduce-initial@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-6.0.2.tgz#763d25902406c872264041df69f182eb15a5d9be" + integrity sha512-YGKalhNlCLcjcLvjU5nF8FyeCTkCO5UtvJEt0hrPZVCTtRLSOH4z00T1UntQPj4dUmIYZgMj8qK77JbSX95hSw== dependencies: - browserslist "^4.21.4" + browserslist "^4.22.2" caniuse-api "^3.0.0" postcss-reduce-transforms@^6.0.1: @@ -5561,38 +5443,38 @@ postcss-selector-not@^7.0.1: dependencies: postcss-selector-parser "^6.0.10" -postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.13, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5: - version "6.0.13" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" - integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== +postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.13, postcss-selector-parser@^6.0.15, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: + version "6.0.15" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz#11cc2b21eebc0b99ea374ffb9887174855a01535" + integrity sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-svgo@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-6.0.1.tgz#6bf63713ef5cb40f1bedd2c2cfca2486b41d5184" - integrity sha512-eWV4Rrqa06LzTgqirOv5Ln6WTGyU7Pbeqj9WEyKo9tpnWixNATVJMeaEcOHOW1ZYyjcG8wSJwX/28DvU3oy3HA== +postcss-svgo@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-6.0.2.tgz#dbc9d03e7f346bc0d82443078602a951e0214836" + integrity sha512-IH5R9SjkTkh0kfFOQDImyy1+mTCb+E830+9SV1O+AaDcoHTvfsvt6WwJeo7KwcHbFnevZVCsXhDmjFiGVuwqFQ== dependencies: postcss-value-parser "^4.2.0" - svgo "^3.0.5" + svgo "^3.2.0" -postcss-unique-selectors@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-6.0.1.tgz#e6d071c2ea64ce265eb55ea9c170ff951183c712" - integrity sha512-/KCCEpNNR7oXVJ38/Id7GC9Nt0zxO1T3zVbhVaq6F6LSG+3gU3B7+QuTHfD0v8NPEHlzewAout29S0InmB78EQ== +postcss-unique-selectors@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-6.0.2.tgz#09a34a5a31a649d3e9bca5962af0616f39d071d2" + integrity sha512-8IZGQ94nechdG7Y9Sh9FlIY2b4uS8/k8kdKRX040XHsS3B6d1HrJAkXrBSsSu4SuARruSsUjW3nlSw8BHkaAYQ== dependencies: - postcss-selector-parser "^6.0.5" + postcss-selector-parser "^6.0.15" postcss-value-parser@^4.0.0, postcss-value-parser@^4.1.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" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.4.21, postcss@^8.4.24, postcss@^8.4.30: - version "8.4.32" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.32.tgz#1dac6ac51ab19adb21b8b34fd2d93a86440ef6c9" - integrity sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw== +postcss@^8.4.24, postcss@^8.4.30, postcss@^8.4.31: + version "8.4.33" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.33.tgz#1378e859c9f69bf6f638b990a0212f43e2aaa742" + integrity sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg== dependencies: nanoid "^3.3.7" picocolors "^1.0.0" @@ -5611,9 +5493,9 @@ prettier-linter-helpers@^1.0.0: fast-diff "^1.1.2" prettier@^3.0.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.1.1.tgz#6ba9f23165d690b6cbdaa88cb0807278f7019848" - integrity sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw== + version "3.2.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.2.tgz#96e580f7ca9c96090ad054616c0c4597e2844b65" + integrity sha512-HTByuKZzw7utPiDO523Tt2pLtEyK7OibUD9suEJQrPUCYQqrHr74GGX6VidMrovbf/I50mPqr8j/II6oBAuc5A== process-nextick-args@~2.0.0: version "2.0.1" @@ -5695,9 +5577,9 @@ raw-body@2.5.1: unpipe "1.0.0" react-bootstrap@^2.3.1: - version "2.9.1" - resolved "https://registry.yarnpkg.com/react-bootstrap/-/react-bootstrap-2.9.1.tgz#c1ab48ae2b2cfe6d5ac957c2042eb36fcafdb1d2" - integrity sha512-ezgmh/ARCYp18LbZEqPp0ppvy+ytCmycDORqc8vXSKYV3cer4VH7OReV8uMOoKXmYzivJTxgzGHalGrHamryHA== + version "2.9.2" + resolved "https://registry.yarnpkg.com/react-bootstrap/-/react-bootstrap-2.9.2.tgz#ee2bab4cb19df628a90868fa594a3b410fe0c0be" + integrity sha512-a36B+EHsAI/aH+ZhXNILBFnqscE3zr10dWmjBmfhIb2QR7KSXJiGzYd6Faf/25G8G7/CP9TCL2B0WhUBOD2UBQ== dependencies: "@babel/runtime" "^7.22.5" "@restart/hooks" "^0.4.9" @@ -5721,14 +5603,14 @@ react-dom@^18.2.0: scheduler "^0.23.0" react-hook-form@^7.46.2: - version "7.49.2" - resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.49.2.tgz#6fb2742e1308020f26cb1915c7012b6c07b11ade" - integrity sha512-TZcnSc17+LPPVpMRIDNVITY6w20deMdNi6iehTFLV1x8SqThXGwu93HjlUVU09pzFgZH7qZOvLMM7UYf2ShAHA== + version "7.49.3" + resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.49.3.tgz#576a4567f8a774830812f4855e89f5da5830435c" + integrity sha512-foD6r3juidAT1cOZzpmD/gOKt7fRsDhXXZ0y28+Al1CHgX+AY1qIN9VSIIItXRq1dN68QrRwl1ORFlwjBaAqeQ== -react-i18next@^13.0.0: - version "13.5.0" - resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-13.5.0.tgz#44198f747628267a115c565f0c736a50a76b1ab0" - integrity sha512-CFJ5NDGJ2MUyBohEHxljOq/39NQ972rh1ajnadG9BjTk+UXbHLq4z5DKEbEQBDoIhUmmbuS/fIMJKo6VOax1HA== +react-i18next@^14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-14.0.0.tgz#eb39d2245fd1024237828c955f770e409a1ccb12" + integrity sha512-OCrS8rHNAmnr8ggGRDxjakzihrMW7HCbsplduTm3EuuQ6fyvWGT41ksZpqbduYoqJurBmEsEVZ1pILSUWkHZng== dependencies: "@babel/runtime" "^7.22.5" html-parse-stringify "^3.0.1" @@ -5779,9 +5661,9 @@ react_ujs@^2.7.1: integrity sha512-nQ/y/Vn2hZQXjNxFKY4pV5hAQbG3o/8yaRzq3nJAAdk7tMgey/EsMKoDOWlEQxZ+D3J4BtwquW1oCESMiHSHnQ== react_ujs@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/react_ujs/-/react_ujs-3.1.1.tgz#7c4a990280014d5f42a04bd6380ec7d85db7a7bb" - integrity sha512-BCNm1DFaXl9XU50UDWYAWW3HpKwkWqWaSVxW/Mg6NGhQUvs7XdxFPd08ZSSF8+OjHXqQ1lJPKtIefcQDqbnA3Q== + version "3.2.0" + resolved "https://registry.yarnpkg.com/react_ujs/-/react_ujs-3.2.0.tgz#c96dd7365faf4bd9ce42a3726f2f1db5bf7f9bf6" + integrity sha512-U7zjg1IT7YXb7IbUf3UCTCA/HK/JUQEKKYJOpl8uuA3jVyRVO/QN1fb3GjbkqFG8x929y+6v1gX7Rw2wYgOrGA== dependencies: "@babel/preset-react" "^7.22.5" css-loader "^6.8.1" @@ -5962,13 +5844,6 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" -run-applescript@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-5.0.0.tgz#e11e1c932e055d5c6b40d98374e0268d9b11899c" - integrity sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg== - dependencies: - execa "^5.0.0" - run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -5977,12 +5852,12 @@ run-parallel@^1.1.9: queue-microtask "^1.2.2" safe-array-concat@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" - integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.0.tgz#8d0cae9cb806d6d1c06e08ab13d847293ebe0692" + integrity sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" + call-bind "^1.0.5" + get-intrinsic "^1.2.2" has-symbols "^1.0.3" isarray "^2.0.5" @@ -5997,12 +5872,12 @@ safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0: integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-regex-test@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" - integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + version "1.0.2" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.2.tgz#3ba32bdb3ea35f940ee87e5087c60ee786c3f6c5" + integrity sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" + call-bind "^1.0.5" + get-intrinsic "^1.2.2" is-regex "^1.1.4" "safer-buffer@>= 2.1.2 < 3": @@ -6010,17 +5885,17 @@ safe-regex-test@^1.0.0: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sass-loader@^13.3.2: - version "13.3.2" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-13.3.2.tgz#460022de27aec772480f03de17f5ba88fa7e18c6" - integrity sha512-CQbKl57kdEv+KDLquhC+gE3pXt74LEAzm+tzywcA0/aHZuub8wTErbjAoNI57rPUWRYRNC5WUnNl8eGJNbDdwg== +sass-loader@^14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-14.0.0.tgz#fc8390f7cc16863622cd16f3ea07b36ba6ea8f91" + integrity sha512-oceP9wWbep/yRJ2+sMbCzk0UsXsDzdNis+N8nu9i5GwPXjy6v3DNB6TqfJLSpPO9k4+B8x8p/CEgjA9ZLkoLug== dependencies: neo-async "^2.6.2" sass@^1.68.0: - version "1.69.5" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.69.5.tgz#23e18d1c757a35f2e52cc81871060b9ad653dfde" - integrity sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ== + version "1.69.7" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.69.7.tgz#6e7e1c8f51e8162faec3e9619babc7da780af3b7" + integrity sha512-rzj2soDeZ8wtE2egyLXgOOHQvaC2iosZrkF6v3EUG+tBwEvhqUCzm0VP3k9gHF9LXbSrRhT5SksoI56Iw8NPnQ== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -6042,7 +5917,7 @@ schema-utils@^3.0, schema-utils@^3.1.1, schema-utils@^3.2.0: ajv "^6.12.5" ajv-keywords "^3.5.2" -schema-utils@^4.0.0, schema-utils@^4.0.1: +schema-utils@^4.0.0, schema-utils@^4.0.1, schema-utils@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.2.0.tgz#70d7c93e153a273a805801882ebd3bff20d89c8b" integrity sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw== @@ -6070,7 +5945,7 @@ semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.8, semver@^7.5.4: +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== @@ -6096,10 +5971,10 @@ send@0.18.0: range-parser "~1.2.1" statuses "2.0.1" -serialize-javascript@^6.0.0, serialize-javascript@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" - integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== +serialize-javascript@^6.0.1, serialize-javascript@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== dependencies: randombytes "^2.1.0" @@ -6127,14 +6002,15 @@ serve-static@1.15.0: send "0.18.0" set-function-length@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed" - integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== + version "1.2.0" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.0.tgz#2f81dc6c16c7059bda5ab7c82c11f03a515ed8e1" + integrity sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w== dependencies: define-data-property "^1.1.1" - get-intrinsic "^1.2.1" + function-bind "^1.1.2" + get-intrinsic "^1.2.2" gopd "^1.0.1" - has-property-descriptors "^1.0.0" + has-property-descriptors "^1.0.1" set-function-name@^2.0.0, set-function-name@^2.0.1: version "2.0.1" @@ -6197,18 +6073,18 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: +signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== sirv@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/sirv/-/sirv-2.0.3.tgz#ca5868b87205a74bef62a469ed0296abceccd446" - integrity sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA== + version "2.0.4" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-2.0.4.tgz#5dd9a725c578e34e449f332703eb2a74e46a29b0" + integrity sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ== dependencies: - "@polka/url" "^1.0.0-next.20" - mrmime "^1.0.0" + "@polka/url" "^1.0.0-next.24" + mrmime "^2.0.0" totalist "^3.0.0" slash@^3.0.0: @@ -6226,9 +6102,9 @@ sockjs@^0.3.24: websocket-driver "^0.7.4" sortablejs@^1.15.1: - version "1.15.1" - resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.15.1.tgz#9a35f52cdff449fb42ea8ecf222f3468d76e0a47" - integrity sha512-P5Cjvb0UG1ZVNiDPj/n4V+DinttXG6K8n7vM/HQf0C25K3YKQTQY6fsr/sEGsJGpQ9exmPxluHxKBc0mLKU1lQ== + version "1.15.2" + resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.15.2.tgz#4e9f7bda4718bd1838add9f1866ec77169149809" + integrity sha512-FJF5jgdfvoKn1MAKSdGs33bIqLi3LmsgVTliuX6iITj834F+JRQZN90Z93yql8h0K2t0RwDPBmxwlbZfDcxNZA== "source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1, source-map-js@^1.0.2: version "1.0.2" @@ -6354,28 +6230,23 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== -strip-final-newline@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" - integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== - 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" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== style-loader@^3.3.1, style-loader@^3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.3.tgz#bba8daac19930169c0c9c96706749a597ae3acff" - integrity sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw== + version "3.3.4" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.4.tgz#f30f786c36db03a45cbd55b6a70d930c479090e7" + integrity sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w== -stylehacks@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-6.0.1.tgz#c103f0149e268a290a0dda3fce8fd4c5459a13c3" - integrity sha512-jTqG2aIoX2fYg0YsGvqE4ooE/e75WmaEjnNiP6Ag7irLtHxML8NJRxRxS0HyDpde8DRGuEXTFVHVfR5Tmbxqzg== +stylehacks@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-6.0.2.tgz#5bf2654561752547d4548765f35c9a49659b3742" + integrity sha512-00zvJGnCu64EpMjX8b5iCZ3us2Ptyw8+toEkb92VdmkEaRaSGBNKAoK6aWZckhXxmQP8zWiTaFaiMGIU8Ve8sg== dependencies: - browserslist "^4.21.4" - postcss-selector-parser "^6.0.4" + browserslist "^4.22.2" + postcss-selector-parser "^6.0.15" stylis@4.2.0: version "4.2.0" @@ -6408,25 +6279,25 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -svgo@^3.0.5: - version "3.1.0" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.1.0.tgz#7e63855c8da73297d5d5765e968f9679a0f8d24a" - integrity sha512-R5SnNA89w1dYgNv570591F66v34b3eQShpIBcQtZtM5trJwm1VvxbIoMpRYY3ybTAutcKTLEmTsdnaknOHbiQA== +svgo@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.2.0.tgz#7a5dff2938d8c6096e00295c2390e8e652fa805d" + integrity sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ== dependencies: "@trysound/sax" "0.2.0" commander "^7.2.0" css-select "^5.1.0" - css-tree "^2.2.1" + css-tree "^2.3.1" css-what "^6.1.0" - csso "5.0.5" + csso "^5.0.5" picocolors "^1.0.0" -synckit@^0.8.5: - version "0.8.6" - resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.6.tgz#b69b7fbce3917c2673cbdc0d87fb324db4a5b409" - integrity sha512-laHF2savN6sMeHCjLRkheIU4wo3Zg9Ln5YOjOo7sZ5dVQW8yF5pPE5SIw1dsPhq3TRp1jisKRCdPhfs/1WMqDA== +synckit@^0.8.6: + version "0.8.8" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.8.tgz#fe7fe446518e3d3d49f5e429f443cf08b6edfcd7" + integrity sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ== dependencies: - "@pkgr/utils" "^2.4.2" + "@pkgr/core" "^0.1.0" tslib "^2.6.2" tapable@^2.0, tapable@^2.1.1, tapable@^2.2.0: @@ -6434,18 +6305,18 @@ tapable@^2.0, tapable@^2.1.1, tapable@^2.2.0: resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== -terser-webpack-plugin@5.3.9, terser-webpack-plugin@^5.3.7: - version "5.3.9" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz#832536999c51b46d468067f9e37662a3b96adfe1" - integrity sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA== +terser-webpack-plugin@5.3.10, terser-webpack-plugin@^5.3.7: + version "5.3.10" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz#904f4c9193c6fd2a03f693a2150c62a92f40d199" + integrity sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w== dependencies: - "@jridgewell/trace-mapping" "^0.3.17" + "@jridgewell/trace-mapping" "^0.3.20" jest-worker "^27.4.5" schema-utils "^3.1.1" serialize-javascript "^6.0.1" - terser "^5.16.8" + terser "^5.26.0" -terser@^5.16.8: +terser@^5.26.0: version "5.26.0" resolved "https://registry.yarnpkg.com/terser/-/terser-5.26.0.tgz#ee9f05d929f4189a9c28a0feb889d96d50126fe1" integrity sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ== @@ -6475,11 +6346,6 @@ tinymce@^6.6.2: resolved "https://registry.yarnpkg.com/tinymce/-/tinymce-6.8.2.tgz#567b1a0d922555b535de4c74b7c74af6964016ea" integrity sha512-Lho79o2Y1Yn+XdlTEkHTEkEmzwYWTXz7IUsvPwxJF3VTtgHUIAAuBab29kik+f2KED3rZvQavr9D7sHVMJ9x4A== -titleize@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/titleize/-/titleize-3.0.0.tgz#71c12eb7fdd2558aa8a44b0be83b8a76694acd53" - integrity sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ== - to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" @@ -6507,7 +6373,7 @@ ts-api-utils@^1.0.1: resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz#f12c1c781d04427313dbac808f453f050e54a331" integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg== -tslib@^2.4.0, tslib@^2.6.0, tslib@^2.6.2: +tslib@^2.4.0, tslib@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== @@ -6643,11 +6509,6 @@ unpipe@1.0.0, unpipe@~1.0.0: resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== -untildify@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" - integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== - 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" @@ -6939,9 +6800,9 @@ ws@^7.3.1: integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== ws@^8.13.0: - version "8.15.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.15.1.tgz#271ba33a45ca0cc477940f7f200cd7fba7ee1997" - integrity sha512-W5OZiCjXEmk0yZ66ZN82beM5Sz7l7coYxpRkzS+p9PP+ToQry8szKh+61eNktr7EA9DOwvFGhfC605jDHbP6QQ== + version "8.16.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.16.0.tgz#d1cd774f36fbc07165066a60e40323eab6446fd4" + integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ== yallist@^3.0.2: version "3.1.1" From fc0b4a011c5cb264d5dd1c45f015de7aa93983af Mon Sep 17 00:00:00 2001 From: Diego Steiner Date: Tue, 16 Jan 2024 14:59:09 +0000 Subject: [PATCH 04/12] chore: update translations --- config/locales/.translation_io | 2 +- config/locales/fr.yml | 53 ++++++++++++++++++---------------- config/locales/it.yml | 9 ++++-- 3 files changed, 35 insertions(+), 29 deletions(-) diff --git a/config/locales/.translation_io b/config/locales/.translation_io index 06e8d2eac..a2415a48b 100644 --- a/config/locales/.translation_io +++ b/config/locales/.translation_io @@ -5,4 +5,4 @@ # ignore the conflicts and "sync" again, it will fix this file for you. --- -timestamp: 1702814920 +timestamp: 1705413911 diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 71db2c4b3..d174b8c4c 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -6,7 +6,7 @@ fr: begins_at: à partir du / de begins_at_after: Début de la location begins_at_before: 'Location jusqu''au ' - concluded: + concluded: Clôture des écritures current_booking_states: Statuts ends_at: Jusqu'au / jusqu'à ends_at_after: Fin de la location @@ -14,7 +14,7 @@ fr: homes: Principaux objets de location occupiables: Objet de location previous_booking_states: Anciens statuts - q: + q: Référence de réservation, locataire, organisation invoice/filter: invoice_type: Type de facture/facturation issued_at_after: Délai de paiement après le @@ -46,9 +46,9 @@ fr: begins_at_default_time: Heure de début de location par défaut (à partir de minuit) closed_occupancy_color: Couleur pour les clôtures deadline_postponable_for: Prolongation du délai - default_begins_at_time: + default_begins_at_time: Heure de début de l'occupation par défaut default_calendar_view: Affichage du calendrier par défaut - default_ends_at_time: + default_ends_at_time: Heure de fin d'occupation par défaut deposit_payment_deadline: Délai de paiement standard (acompte) ends_at_default_time: Heure de fin de location par défaut (à partir du début) invoice_payment_deadline: Délai de paiement standard @@ -58,7 +58,7 @@ fr: overdue_request_deadline: Délai pour les demandes de réservation en retard payment_overdue_deadline: Date limite de paiement dépassée provisional_request_deadline: Délai pour les demandes de réservation provisoires - show_outbox: + show_outbox: Afficher le courrier sortant tenant_birth_date_required: Date de naissance, Indication obligatoire tentative_occupancy_color: Couleur pour les locations provisoires unconfirmed_request_deadline: Délai pour la confirmation de l'adresse e-mail @@ -225,6 +225,8 @@ fr: notification: attachments: Annexes body: Contenu + created_at: Créé le + footer: sent_at: Dernier envoi le subject: Sujet to: À @@ -301,7 +303,7 @@ fr: created_at: Erstellt am zip: Zip rich_text_template: - autodeliver: + autodeliver: Envoyer automatiquement body: Texte enabled: Activé key: ID @@ -330,7 +332,8 @@ fr: address: Adresse address_addon: Complément d'adresse / école / entreprise birth_date: Date de naissance - bookings_without_contract: Autoriser les réservations sans contrat + bookings_without_contract: + bookings_without_invoice: city: Lieu country_code: Pays email: Email @@ -379,9 +382,9 @@ fr: provisional_request: Demande de location provisoire booking/filter: concluded: - all: - concluded: - inconcluded: + all: ouvert et fermé + concluded: terminé + inconcluded: ouvert booking_log: trigger: auto: Système @@ -437,10 +440,10 @@ fr: notification: to: administration: Administration - billing: + billing: Caissier booking_agent: Intermédiaire - home_handover: - home_return: + home_handover: Gardien - remise d’hébergement + home_return: Gardien - Ouverture d’hébergement tenant: Locataire occupancy: occupancy_type: @@ -456,7 +459,7 @@ fr: home_return: Reddition des locaux organisation_user: role: - admin: Administration + admin: Admin manager: Administration none: "-" readonly: Lecture @@ -678,7 +681,7 @@ fr: label: Confirmer la demande email_contract: confirm: Vraiment envoyer le contrat sans acompte ? - label: + label: Envoyer le contrat label_with_deposit: Envoyer le contrat et l'acompte label_without_deposit: Envoyer un contrat sans acompte email_invoices: @@ -686,7 +689,7 @@ fr: email_offers: label: Envoyer une offre mark_contract_sent: - label: + label: Marquer le contrat comme envoyé mark_contract_signed: label: Confirmer la réception du contrat mark_deposits_paid: @@ -1172,11 +1175,11 @@ fr: title: Organisation version: changelog: - github: + github: GitHub title: Logiciel manage_navigation: help: Aide - outbox: + outbox: Courrier sortant settings: Réglages manage: bookings: @@ -1248,12 +1251,12 @@ fr: help_title: Aide sur les variables index: booking_action: Action - booking_state: + booking_state: Statut comptable document: Document - rich_text_templates_by_booking_action: - rich_text_templates_by_booking_state: - rich_text_templates_by_document: - rich_text_templates_by_rest: + rich_text_templates_by_booking_action: Actions + rich_text_templates_by_booking_state: Statut comptable + rich_text_templates_by_document: Documents + rich_text_templates_by_rest: Autres nav: edit_account: Gérer le compte manage: Administration @@ -1413,7 +1416,7 @@ fr: default_title: Réservation terminée description: Notification de clôture de la réservation (locataire) contract_sent_notification: - default_title: + default_title: Contrat envoyé description: contract_signed_notification: default_body: @@ -1469,7 +1472,7 @@ fr: default_title: Ton offre description: Notification d'offre open_booking_agent_request_notification: - description: + description: Notification de demande de location ouverte (locataire) open_request_notification: default_body: default_title: Confirmation de votre demande de location diff --git a/config/locales/it.yml b/config/locales/it.yml index 6bfed1faa..de98fe49c 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -225,6 +225,8 @@ it: notification: attachments: body: Contenuto + created_at: Creato il + footer: sent_at: Inviato l'ultima volta il subject: Oggetto to: A @@ -330,7 +332,8 @@ it: address: Indirizzo address_addon: Suffisso indirizzo / scuola / azienda birth_date: Data di nascita - bookings_without_contract: Consentire prenotazioni senza contratto + bookings_without_contract: + bookings_without_invoice: city: Località country_code: Paese email: E-mail @@ -816,7 +819,7 @@ it: confirm: Sind sie sicher? contracts: issuer_signature_label: Data, luogo, firma del propietario - represented_by: + represented_by: rappresentato da tenant_signature_label: Data, luogo, firma del inquilino currency: Currency data_digests: @@ -1209,7 +1212,7 @@ it: exception: 'Impossibile elaborare il file di pagamento: %{errors}' rich_text_templates: form: - help_html: "

Utilizzare le variabili nel testo:

\n\n
\n  Buongiorno {{ booking.tenant.first_name }}!\n
\n\n

Sono disponibili le seguenti variabili:

\n
Prenotazione
\n
\n
Inizio dell'occupazione
{{ booking.begins_at | datetime_format }}
{{ booking.begins_at | datetime_format: \"%A, %d.%m.%Y %H:%M\" }}
\n
Fine dell'occupazione
{{ booking.ends_at | datetime_format }}
{{ booking.ends_at | datetime_format: \"%A, %d.%m.%Y %H:%M\" }}
\n \n
Numero previsto di persone
{{ booking.approximate_headcount }}
\n
Motivo della cancellazione
{{ booking.cancellation_reason }}
\n
Natura vincolante della richiesta d'occupazione
{{ booking.committed_request }}
\n\n
ID del oggetto principale di affitto/dt>
{{ booking.home.id }}
\n
ID di tutte i oggetti di affitto occupati
{{ booking.home_ids }}
\n
Nome del del oggetto principale di affitto
{{ booking.home.name }}
\n
Indirizzo del del oggetto principale di affitto
{{ booking.home.address }}
\n\n
Nome di tutti oggetti principali di affitto occupati
{{ booking.homes | map: \"name\" | join: \", \" }}
\n
Elenco dei oggetti principali di affitto occupati
    {% for home in booking.homes %}
  • {{ home.name }}
  • {% endfor %}
\n\n
Indirizzo per la fattura
{{ booking.invoice_address }}
\n
Scadenza fino alla data / ora
{{ booking.deadline.at | datetime_format }}
\n
Periodo prolungabile per n secondi
{{ booking.deadline.postponable_for }}
\n
Link per l'inquilino
{{ booking.links.edit }}
\n
Link per il propietario
{{ booking.links.manage }}
\n
Tipo di occupazione
{{ booking.occupancy_type }}
\n
Chiave della categoria di affitto
{{ booking.category.key }}
\n
Designazione della categoria di affitto
{{ booking.category.title }}
\n
Descrizione della categoria di affitto
{{ booking.category.description }}
\n
Descrizione dello scopo della affitto
{{ booking.purpose_description }}
\n
Numero di riferimento della prenotazione
{{ booking.ref }}
\n
Osservazioni dell'inquilino
{{ booking.remarks }}
\n
Adresszusatz des Mieters
{{ booking.tenant.address_addon }}
\n
Località del inquilino
{{ booking.tenant.city }}
\n
E-Mail del inquilino
{{ booking.tenant.email }}
\n
Nome del inquilino
{{ booking.tenant.first_name }}
\n
Cognome del inquilino
{{ booking.tenant.last_name }}
\n
Totem scout del inquilino
{{ booking.tenant.nickname }}
\n
Saluto con nome dell'inquilino
{{ booking.tenant.salutation_name }}
\n
Indirizzo dell'inquilino
{{ booking.tenant.street_address }}
\n
NPA dell'inquilino
{{ booking.tenant.zipcode }}
\n
Organizzazione dell'inquilino
{{ booking.tenant.tenant_organisation }}
\n
Nome della persona responsabile della consegna della casa
{{ booking.operator_responsibilities.home_handover.operator.name }}
\n
E-Mail della persona responsabile della consegna della casa
{{ booking.operator_responsibilities.home_handover.operator.email }}
\n
Informazioni di contatto della persona responsabile della consegna della casa
{{ booking.operator_responsibilities.home_handover.operator.contact_info }}
\n
Nome della persona responsabile della ripresa della casa
{{ booking.operator_responsibilities.home_return.operator.name }}
\n
E-Mail della persona responsabile della ripresa della casa
{{ booking.operator_responsibilities.home_return.operator.email }}
\n
Informazioni di contatto della persona responsabile della ripresa della casa
{{ booking.operator_responsibilities.home_return.operator.contact_info }}
\n
Nome della persona responsabile dell'amministrazione / delle questioni generali
{{ booking.operator_responsibilities.administration.operator.name }}
\n
E-Mail della persona responsabile dell'amministrazione / delle questioni generali
{{ booking.operator_responsibilities.administration.operator.email }}
\n
Informazioni di contatto della persona responsabile dell'amministrazione / delle questioni generali
{{ booking.operator_responsibilities.administration.operator.contact_info }}
\n
Nome della persona responsabile della fatturazione
{{ booking.operator_responsibilities.billing.operator.name }}
\n
E-Mail della persona responsabile della fatturazione
{{ booking.operator_responsibilities.billing.operator.email }}
\n
Informazioni di contattodella persona responsabile della fatturazione
{{ booking.operator_responsibilities.billing.operator.contact_info }}
\n
\n
Organizzazione
\n
\n
Indirizzo dell'organizzazione, sede legale
{{ organisation.address }}
\n
Elenco di tutte le categorie di affitto dell'organizzazione
{{ organisation.booking_categories }}
\n
E-Mail dell'organizzazione
{{ organisation.email }}
\n
Numero di conto postale
{{ organisation.esr_beneficiary_account }}
\n
IBAN
{{ organisation.iban }}
\n
Link al documento sulla privacy
{{ organisation.links.privacy_statement_pdf }}
\n
Link al GTC
{{ organisation.links.terms_pdf }}
\n
Nome dell'organizzazione
{{ organisation.name }}
\n
\n
Costi
\n
\n
Consumo
{{ cost_estimation.used | currency }}
\n
Fatturato
{{ cost_estimation.total | currency }}
\n
Acconto
{{ cost_estimation.deposit | currency }}
\n
\n\n Usare la logica nel testo:\n\n
{% if booking.home_ids contains 1 %}Passaggio visibile solo se l'ID della casa di prenotazione è uguale a 1{% endif %}
\n
\n  {% if booking.category.key == 'camp' %}\n    Vi auguriamo di divertirvi molto nel vostro campo nella nostra casa!\n  {% else %}\n    Vi auguriamo un piacevole soggiorno nella nostra casa!\n  {% endif %}\n  
\n\n28\n47\n" + help_html: "

Utilizzare le variabili nel testo:

\n\n
\n  Buongiorno {{ booking.tenant.first_name }}!\n
\n\n

Sono disponibili le seguenti variabili:

\n
Prenotazione
\n
\n
Inizio dell'occupazione
{{ booking.begins_at | datetime_format }}
{{ booking.begins_at | datetime_format: \"%A, %d.%m.%Y %H:%M\" }}
\n
Fine dell'occupazione
{{ booking.ends_at | datetime_format }}
{{ booking.ends_at | datetime_format: \"%A, %d.%m.%Y %H:%M\" }}
\n \n
Numero previsto di persone
{{ booking.approximate_headcount }}
\n
Motivo della cancellazione
{{ booking.cancellation_reason }}
\n
Natura vincolante della richiesta d'occupazione
{{ booking.committed_request }}
\n\n
ID del oggetto principale di affitto/dt>
{{ booking.home.id }}
\n
ID di tutte i oggetti di affitto occupati
{{ booking.home_ids }}
\n
Nome del del oggetto principale di affitto
{{ booking.home.name }}
\n
Indirizzo del del oggetto principale di affitto
{{ booking.home.address }}
\n\n
Nome di tutti oggetti principali di affitto occupati
{{ booking.homes | map: \"name\" | join: \", \" }}
\n
Elenco dei oggetti principali di affitto occupati
    {% for home in booking.homes %}
  • {{ home.name }}
  • {% endfor %}
\n\n
Indirizzo per la fattura
{{ booking.invoice_address }}
\n
Scadenza fino alla data / ora
{{ booking.deadline.at | datetime_format }}
\n
Periodo prolungabile per n secondi
{{ booking.deadline.postponable_for }}
\n
Link per l'inquilino
{{ booking.links.edit }}
\n
Link per il propietario
{{ booking.links.manage }}
\n
Tipo di occupazione
{{ booking.occupancy_type }}
\n
Chiave della categoria di affitto
{{ booking.category.key }}
\n
Designazione della categoria di affitto
{{ booking.category.title }}
\n
Descrizione della categoria di affitto
{{ booking.category.description }}
\n
Descrizione dello scopo della affitto
{{ booking.purpose_description }}
\n
Numero di riferimento della prenotazione
{{ booking.ref }}
\n
Osservazioni dell'inquilino
{{ booking.remarks }}
\n
Adresszusatz des Mieters
{{ booking.tenant.address_addon }}
\n
Località del inquilino
{{ booking.tenant.city }}
\n
E-Mail del inquilino
{{ booking.tenant.email }}
\n
Nome del inquilino
{{ booking.tenant.first_name }}
\n
Cognome del inquilino
{{ booking.tenant.last_name }}
\n
Totem scout del inquilino
{{ booking.tenant.nickname }}
\n
Saluto con nome dell'inquilino
{{ booking.tenant.salutation_name }}
\n
Indirizzo dell'inquilino
{{ booking.tenant.street_address }}
\n
NPA dell'inquilino
{{ booking.tenant.zipcode }}
\n
Organizzazione dell'inquilino
{{ booking.tenant.tenant_organisation }}
\n
Nome della persona responsabile della consegna della casa
{{ booking.operator_responsibilities.home_handover.operator.name }}
\n
E-Mail della persona responsabile della consegna della casa
{{ booking.operator_responsibilities.home_handover.operator.email }}
\n
Informazioni di contatto della persona responsabile della consegna della casa
{{ booking.operator_responsibilities.home_handover.operator.contact_info }}
\n
Nome della persona responsabile della ripresa della casa
{{ booking.operator_responsibilities.home_return.operator.name }}
\n
E-Mail della persona responsabile della ripresa della casa
{{ booking.operator_responsibilities.home_return.operator.email }}
\n
Informazioni di contatto della persona responsabile della ripresa della casa
{{ booking.operator_responsibilities.home_return.operator.contact_info }}
\n
Nome della persona responsabile dell'amministrazione / delle questioni generali
{{ booking.operator_responsibilities.administration.operator.name }}
\n
E-Mail della persona responsabile dell'amministrazione / delle questioni generali
{{ booking.operator_responsibilities.administration.operator.email }}
\n
Informazioni di contatto della persona responsabile dell'amministrazione / delle questioni generali
{{ booking.operator_responsibilities.administration.operator.contact_info }}
\n
Nome della persona responsabile della fatturazione
{{ booking.operator_responsibilities.billing.operator.name }}
\n
E-Mail della persona responsabile della fatturazione
{{ booking.operator_responsibilities.billing.operator.email }}
\n
Informazioni di contattodella persona responsabile della fatturazione
{{ booking.operator_responsibilities.billing.operator.contact_info }}
\n
\n
Organizzazione
\n
\n
Indirizzo dell'organizzazione, sede legale
{{ organisation.address }}
\n
Elenco di tutte le categorie di affitto dell'organizzazione
{{ organisation.booking_categories }}
\n
E-Mail dell'organizzazione
{{ organisation.email }}
\n
Numero di conto postale
{{ organisation.esr_beneficiary_account }}
\n
IBAN
{{ organisation.iban }}
\n
QR-IBAN
{{ organisation.qr_iban }}
\n
Link al documento sulla privacy
{{ organisation.links.privacy_statement_pdf }}
\n
Link al GTC
{{ organisation.links.terms_pdf }}
\n
Nome dell'organizzazione
{{ organisation.name }}
\n
\n
Costi
\n
\n
Consumo
{{ cost_estimation.used | currency }}
\n
Fatturato
{{ cost_estimation.total | currency }}
\n
Acconto
{{ cost_estimation.deposit | currency }}
\n
\n\n Usare la logica nel testo:\n\n
{% if booking.home_ids contains 1 %}Passaggio visibile solo se l'ID della casa di prenotazione è uguale a 1{% endif %}
\n
\n  {% if booking.category.key == 'camp' %}\n    Vi auguriamo di divertirvi molto nel vostro campo nella nostra casa!\n  {% else %}\n    Vi auguriamo un piacevole soggiorno nella nostra casa!\n  {% endif %}\n  
\n\n28\n47\n" help_title: Aiuto per le variabili index: booking_action: From 78ed13fb695f1ebce0493d1cf42f85107879ac61 Mon Sep 17 00:00:00 2001 From: Diego Steiner Date: Thu, 18 Jan 2024 13:41:17 +0000 Subject: [PATCH 05/12] feature: add costs to contract variables --- app/models/payment.rb | 3 ++- .../manage/cost_estimation_serializer.rb | 2 +- app/services/cost_estimation.rb | 8 ++++++-- spec/factories/invoices.rb | 16 ++++++++++++++-- spec/services/cost_estimation_spec.rb | 12 ++++++++++++ 5 files changed, 35 insertions(+), 6 deletions(-) diff --git a/app/models/payment.rb b/app/models/payment.rb index 5819f8e0f..8b82284bf 100644 --- a/app/models/payment.rb +++ b/app/models/payment.rb @@ -55,7 +55,8 @@ class Payment < ApplicationRecord end def duplicates - Payment.where(booking:, paid_at:, amount:, camt_instr_id:).where.not(id: [id]) + Payment.where(booking:, paid_at:, amount:, camt_instr_id:, invoice_id:) + .where.not(id: [id]) end def confirm! diff --git a/app/serializers/manage/cost_estimation_serializer.rb b/app/serializers/manage/cost_estimation_serializer.rb index 75be36566..cf07dacb9 100644 --- a/app/serializers/manage/cost_estimation_serializer.rb +++ b/app/serializers/manage/cost_estimation_serializer.rb @@ -2,6 +2,6 @@ module Manage class CostEstimationSerializer < ApplicationSerializer - fields :used, :invoiced, :deposited, :per_day, :per_person, :per_person_per_day, :days + fields :used, :invoiced, :invoiced_deposits, :per_day, :per_person, :per_person_per_day, :days end end diff --git a/app/services/cost_estimation.rb b/app/services/cost_estimation.rb index 0f245b58e..c20976f6a 100644 --- a/app/services/cost_estimation.rb +++ b/app/services/cost_estimation.rb @@ -16,13 +16,17 @@ def invoiced invoices = Invoices::Invoice.of(booking).kept return if invoices.blank? - @invoiced ||= deposited + invoices.sum(:amount) + @invoiced ||= invoices.sum(:amount) end - def deposited + def invoiced_deposits Invoices::Deposit.of(booking).kept.sum(:amount) || 0 end + def paid + booking.payments.where(write_off: false).sum(:amount) + end + def per_day return if invoiced.nil? diff --git a/spec/factories/invoices.rb b/spec/factories/invoices.rb index 7d53d68b8..ca6b5fbdf 100644 --- a/spec/factories/invoices.rb +++ b/spec/factories/invoices.rb @@ -43,8 +43,20 @@ text { Faker::Lorem.sentences } type { Invoices::Invoice } - after(:build) do |invoice| - build_list(:invoice_part, 3, invoice:) + after(:build) do |invoice, evaluator| + if evaluator.amount&.positive? + build(:invoice_part, amount: evaluator.amount, invoice:) + else + build_list(:invoice_part, 3, invoice:) + end + end + + factory :deposit do + type { Invoices::Deposit } + end + + factory :offer do + type { Invoices::Offer } end end end diff --git a/spec/services/cost_estimation_spec.rb b/spec/services/cost_estimation_spec.rb index 6514badd7..30020ac31 100644 --- a/spec/services/cost_estimation_spec.rb +++ b/spec/services/cost_estimation_spec.rb @@ -19,4 +19,16 @@ expect(estimation.projection).to be > 0 end end + + describe '#invoiced' do + let!(:invoices) { create_list(:invoice, 2, booking:, amount: 500) } + let!(:deposits) { create_list(:deposit, 2, booking:, amount: 250) } + let!(:payments) { invoices.map { |invoice| create(:payment, invoice:, amount: 100) } } + + it 'returns sums for invoices' do + expect(estimation.invoiced).to eq(1000) + expect(estimation.invoiced_deposits).to eq(500) + expect(estimation.paid).to eq(200) + end + end end From af8d6d40955c214ac99de5f8aa1631d0f5f035b9 Mon Sep 17 00:00:00 2001 From: Diego Steiner Date: Fri, 19 Jan 2024 08:37:20 +0000 Subject: [PATCH 06/12] fix: error regression fixes --- app/models/notification.rb | 5 +++-- config/locales/.translation_io | 2 +- config/locales/de.yml | 22 +++++++++++++++++++++- config/locales/fr.yml | 4 ++++ config/locales/it.yml | 4 ++++ 5 files changed, 33 insertions(+), 4 deletions(-) diff --git a/app/models/notification.rb b/app/models/notification.rb index b9d30df85..58bb5439d 100644 --- a/app/models/notification.rb +++ b/app/models/notification.rb @@ -43,8 +43,9 @@ class Notification < ApplicationRecord validate do next if booking.nil? || to.blank? next if booking.roles.keys.include?(to.to_sym) + next if deliver_to.present? - # next if Devise.email_regexp =~ to.to_s + # next if Array.wrap(deliver_to).all? { Devise.email_regexp.match(_1) } errors.add(:to, :invalid) end @@ -107,7 +108,7 @@ def deliver_bcc end def deliver_to - [resolve_to.try(:email).presence || resolve_to.to_s.presence].flatten.compact + [resolve_to.try(:email).presence].flatten.compact end def locale diff --git a/config/locales/.translation_io b/config/locales/.translation_io index a2415a48b..925ee80a3 100644 --- a/config/locales/.translation_io +++ b/config/locales/.translation_io @@ -5,4 +5,4 @@ # ignore the conflicts and "sync" again, it will fix this file for you. --- -timestamp: 1705413911 +timestamp: 1705653374 diff --git a/config/locales/de.yml b/config/locales/de.yml index 9ae145e38..92494cfb6 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -1712,6 +1712,26 @@ de: ' default_title: Offerte description: Text für Offerte + manage_cancelation_pending_notification: + default_body: | +

Hallo

+ +

Die Reservation {{ booking.ref }} wird storniert

+ +

Reservationsdetails

+ +
    +
  • Buchungsreferenz: {{ booking.ref }}
  • +
  • Lagerhaus: {{ booking.home.name }}
  • +
  • Reservation: {{ booking.begins_at | datetime_format }} bis {{ booking.ends_at | datetime_format }}
  • +
  • Organisation: {{ booking.tenant_organisation }}
  • +
  • Mietkategorie: {{ booking.category.title }}
  • +
  • Bemerkungen: {{ booking.remarks }}
  • +
+ +

Buchung verwalten

+ default_title: Stornierung Reservation {{ booking.ref }} + description: Benachrichtigung für stornierte Reservation (Verwaltung) manage_definitive_request_notification: default_body: |

Hallo

@@ -1750,7 +1770,7 @@ de:

Buchung verwalten

- default_title: Neue Mietanfrage + default_title: Neue Mietanfrage {{ booking.ref }} description: Benachrichtigung für neue Mietanfrage (Verwaltung) notification_footer: default_body: '' diff --git a/config/locales/fr.yml b/config/locales/fr.yml index d174b8c4c..3bce50c00 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -1457,6 +1457,10 @@ fr: default_body: default_title: Offre description: Texte pour l'offre + manage_cancelation_pending_notification: + default_body: + default_title: + description: manage_definitive_request_notification: default_body: default_title: Demande de location {{ booking.ref }} définitive diff --git a/config/locales/it.yml b/config/locales/it.yml index de98fe49c..5c592ed4b 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -1578,6 +1578,10 @@ it: default_body:

Offerta

default_title: Offerta description: Testo per l'offerta + manage_cancelation_pending_notification: + default_body: + default_title: + description: manage_definitive_request_notification: default_body: |

Salve

From bc824ca7e981f99c8da456eca5b442c72c80b84a Mon Sep 17 00:00:00 2001 From: Diego Steiner Date: Fri, 19 Jan 2024 09:04:05 +0000 Subject: [PATCH 07/12] fix: migrations --- .../20220104142509_add_iban_to_organisations_and_tenants.rb | 2 +- .../20240115190948_remove_qr_iban_from_organisations.rb | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/db/migrate/20220104142509_add_iban_to_organisations_and_tenants.rb b/db/migrate/20220104142509_add_iban_to_organisations_and_tenants.rb index 95116785d..ffab6395e 100644 --- a/db/migrate/20220104142509_add_iban_to_organisations_and_tenants.rb +++ b/db/migrate/20220104142509_add_iban_to_organisations_and_tenants.rb @@ -1,4 +1,4 @@ -class AddIbanToOrganisationsAndTenants < ActiveRecord::Migration[6.1] +class AddIBANToOrganisationsAndTenants < ActiveRecord::Migration[6.1] def change add_column :tenants, :iban, :string, null: true add_column :organisations, :qr_iban, :string, null: true diff --git a/db/migrate/20240115190948_remove_qr_iban_from_organisations.rb b/db/migrate/20240115190948_remove_qr_iban_from_organisations.rb index 7af775341..d787b153d 100644 --- a/db/migrate/20240115190948_remove_qr_iban_from_organisations.rb +++ b/db/migrate/20240115190948_remove_qr_iban_from_organisations.rb @@ -2,8 +2,8 @@ class RemoveQrIBANFromOrganisations < ActiveRecord::Migration[7.1] def change reversible do |direction| direction.up do - Organisation.where.not(qr_iban: nil).find_each do |organisation| - organisation.update(iban: organisation.qr_iban) + Organisation.find_each do |organisation| + organisation.update(iban: organisation.qr_iban) if organisation.qr_iban.present? end end end From 28be40dbb0ef871c12e0a728372ddc5427cd704f Mon Sep 17 00:00:00 2001 From: Diego Steiner Date: Sun, 28 Jan 2024 12:34:33 +0000 Subject: [PATCH 08/12] feature: add default transition_to for manage bookings --- app/controllers/manage/bookings_controller.rb | 3 ++- app/models/organisation_settings.rb | 7 +++++-- app/params/manage/organisation_params.rb | 2 +- app/views/manage/organisations/_form.html.slim | 2 ++ config/locales/de.yml | 3 +-- config/locales/en.yml | 2 -- config/locales/fr.yml | 2 -- config/locales/it.yml | 2 -- 8 files changed, 11 insertions(+), 12 deletions(-) diff --git a/app/controllers/manage/bookings_controller.rb b/app/controllers/manage/bookings_controller.rb index 68df7442e..be5f497e8 100644 --- a/app/controllers/manage/bookings_controller.rb +++ b/app/controllers/manage/bookings_controller.rb @@ -25,7 +25,8 @@ def calendar def new @booking = preparation_service.prepare_new(booking_params) - @booking.assign_attributes(organisation: current_organisation, transition_to: :provisional_request) + @booking.assign_attributes(organisation: current_organisation, + transition_to: current_organisation.settings.default_manage_transition_to_state) @booking.booking_questions = BookingQuestion.applying_to_booking(@booking) respond_with :manage, @booking diff --git a/app/models/organisation_settings.rb b/app/models/organisation_settings.rb index 86055de8c..59f644ced 100644 --- a/app/models/organisation_settings.rb +++ b/app/models/organisation_settings.rb @@ -16,8 +16,7 @@ class OrganisationSettings < Settings attribute :tentative_occupancy_color, :string, default: '#e8bc56' attribute :occupied_occupancy_color, :string, default: '#e85f5f' || '#f2a2a2' attribute :closed_occupancy_color, :string, default: '#929292' - attribute :begins_at_default_time, DurationType.new, default: -> { 8.hours } - attribute :ends_at_default_time, DurationType.new, default: -> { 3.days } + attribute :default_manage_transition_to_state, :string, default: -> { BookingStates::ProvisionalRequest.to_sym } attribute :default_calendar_view, :string, default: 'months' attribute :default_begins_at_time, :string, default: -> { '08:00' } attribute :default_ends_at_time, :string, default: -> { '16:00' } @@ -48,4 +47,8 @@ def self.time_hash(value) time_array = value&.split(':') { hour: time_array&.first, minutes: time_array&.second } end + + def manage_transition_to_states(organisation) + organisation.booking_flow_class.successors['initial'].map { BookingStates.all.fetch(_1.to_sym) }.compact_blank + end end diff --git a/app/params/manage/organisation_params.rb b/app/params/manage/organisation_params.rb index 424c36c09..d6760ea98 100644 --- a/app/params/manage/organisation_params.rb +++ b/app/params/manage/organisation_params.rb @@ -15,7 +15,7 @@ def self.settings_permitted_keys last_minute_warning upcoming_soon_window invoice_payment_deadline deposit_payment_deadline deadline_postponable_for payment_overdue_deadline occupied_occupancy_color tentative_occupancy_color closed_occupancy_color - begins_at_default_time ends_at_default_time default_calendar_view + default_calendar_view default_manage_transition_to_state default_begins_at_time default_ends_at_time show_outbox] + [{ occupied_occupancy_states: [] }] end diff --git a/app/views/manage/organisations/_form.html.slim b/app/views/manage/organisations/_form.html.slim index 26c5a8ee5..3ea066971 100644 --- a/app/views/manage/organisations/_form.html.slim +++ b/app/views/manage/organisations/_form.html.slim @@ -56,6 +56,8 @@ = sf.text_field :default_begins_at_time, value: settings.default_begins_at_time = sf.text_field :default_ends_at_time, value: settings.default_ends_at_time + = sf.select :default_manage_transition_to_state, settings.manage_transition_to_states(@organisation).map { [_1.t(:label), _1.to_sym] }, value: settings.default_manage_transition_to_state + = sf.select :default_calendar_view, %i[months year].map { |view| [view, view] } = sf.collection_check_boxes :occupied_occupancy_states, BookingStates.occupied_occupancy_able.values, :to_s, ->(state) { state&.t(:label) } diff --git a/config/locales/de.yml b/config/locales/de.yml index 92494cfb6..be5d9ea2d 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -43,14 +43,13 @@ de: booking_margin: Abstand zwischen Buchungen organisation_settings: awaiting_contract_deadline: Frist für Vertragseingänge - begins_at_default_time: Standardzeit für den Beginn der Belegung (ab Mitternacht) closed_occupancy_color: Farbe für Schliessungen deadline_postponable_for: Fristverlängerung default_begins_at_time: Standardzeit für den Beginn der Belegung default_calendar_view: Standard Kalenderansicht default_ends_at_time: Standardzeit für das Ende der Belegung + default_manage_transition_to_state: Standard Status für Buchungen durch Verwaltung deposit_payment_deadline: Standardmässige Zahlungsfrist (Anzahlung) - ends_at_default_time: Standardzeit für das Ende der Belegung (ab Beginn) invoice_payment_deadline: Standardmässige Zahlungsfrist last_minute_warning: Frist für Kurzfristige Reservationsanfragen occupied_occupancy_color: Farbe für definitive Belegungen diff --git a/config/locales/en.yml b/config/locales/en.yml index 26eac7235..26af444a0 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -37,11 +37,9 @@ en: booking_margin: Abstand zwischen Buchungen organisation_settings: awaiting_contract_deadline: Frist für Vertragseingänge - begins_at_default_time: Standardzeit für den Beginn der Belegung (ab Mitternacht) closed_occupancy_color: Farbe für Schliessungen deadline_postponable_for: Fristverlängerung deposit_payment_deadline: Standardmässige Zahlungsfrist (Anzahlung) - ends_at_default_time: Standardzeit für das Ende der Belegung (ab Beginn) invoice_payment_deadline: Standardmässige Zahlungsfrist last_minute_warning: Frist für Kurzfristige Reservationsanfragen occupied_occupancy_color: Farbe für definitive Belegungen diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 3bce50c00..34fdbc76e 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -43,14 +43,12 @@ fr: booking_margin: Espacement/période entre les réservations organisation_settings: awaiting_contract_deadline: Délai de réception du contrat - begins_at_default_time: Heure de début de location par défaut (à partir de minuit) closed_occupancy_color: Couleur pour les clôtures deadline_postponable_for: Prolongation du délai default_begins_at_time: Heure de début de l'occupation par défaut default_calendar_view: Affichage du calendrier par défaut default_ends_at_time: Heure de fin d'occupation par défaut deposit_payment_deadline: Délai de paiement standard (acompte) - ends_at_default_time: Heure de fin de location par défaut (à partir du début) invoice_payment_deadline: Délai de paiement standard last_minute_warning: Délai pour les demandes de réservation de dernière minute occupied_occupancy_color: Couleur pour les locations définitives diff --git a/config/locales/it.yml b/config/locales/it.yml index 5c592ed4b..b248c1998 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -43,14 +43,12 @@ it: booking_margin: Durata tra le prenotazioni organisation_settings: awaiting_contract_deadline: Periodo per i contratti in entrata - begins_at_default_time: Ora standard per l'inizio dell'occupazione (da mezzanotte) closed_occupancy_color: Colore per le chiusure deadline_postponable_for: Proroga del periodo default_begins_at_time: default_calendar_view: default_ends_at_time: deposit_payment_deadline: Periodo di pagamento standard (acconto) - ends_at_default_time: Ora standard per la fine dell'occupazione (dall'inizio) invoice_payment_deadline: Periodo di pagamento standard last_minute_warning: Periodo per le richieste di prenotazione a breve termine occupied_occupancy_color: Colore per le occupazioni definitive From 50d8e434464249782cb3ac3023a04f598020d961 Mon Sep 17 00:00:00 2001 From: Diego Steiner Date: Sun, 28 Jan 2024 12:56:43 +0000 Subject: [PATCH 09/12] feature: attach designated_documents to accepted notification mails --- .../manage/designated_documents_controller.rb | 2 +- .../booking_states/definitive_request.rb | 4 +- .../booking_states/provisional_request.rb | 4 +- app/models/designated_document.rb | 1 + .../manage/designated_document_serializer.rb | 2 +- app/services/attachment_manager.rb | 3 +- .../designated_documents/_form.html.slim | 1 + config/locales/de.yml | 1 + ...ccepted_booking_to_designated_documents.rb | 5 + db/schema.rb | 101 +++++++++++++++++- spec/factories/designated_documents.rb | 1 + spec/models/designated_document_spec.rb | 1 + 12 files changed, 120 insertions(+), 6 deletions(-) create mode 100644 db/migrate/20240128123553_add_send_with_accepted_booking_to_designated_documents.rb diff --git a/app/controllers/manage/designated_documents_controller.rb b/app/controllers/manage/designated_documents_controller.rb index 15ecafc82..790e6e58b 100644 --- a/app/controllers/manage/designated_documents_controller.rb +++ b/app/controllers/manage/designated_documents_controller.rb @@ -39,7 +39,7 @@ def destroy def designated_document_params params[:designated_document]&.permit(:designation, :file, :locale, :remarks, :name, - :send_with_contract, :send_with_last_infos, + :send_with_accepted, :send_with_contract, :send_with_last_infos, attaching_conditions_attributes: BookingConditionParams.permitted_keys + %i[id _destroy]) end diff --git a/app/domain/booking_states/definitive_request.rb b/app/domain/booking_states/definitive_request.rb index cff7d059f..bb51d0f28 100644 --- a/app/domain/booking_states/definitive_request.rb +++ b/app/domain/booking_states/definitive_request.rb @@ -49,7 +49,9 @@ def self.to_sym booking.deadline&.clear OperatorResponsibility.assign(booking, :home_handover, :home_return) MailTemplate.use(:manage_definitive_request_notification, booking, to: :administration, &:autodeliver) - MailTemplate.use(:definitive_request_notification, booking, to: :tenant, &:autodeliver) + mail = MailTemplate.use(:definitive_request_notification, booking, to: :tenant) + mail&.attach :accepted_documents if booking.state_transitions.last(2).map(&:to_state) == [OpenRequest.to_s, to_s] + mail&.autodeliver end def relevant_time diff --git a/app/domain/booking_states/provisional_request.rb b/app/domain/booking_states/provisional_request.rb index 59b8450ac..dd9006e64 100644 --- a/app/domain/booking_states/provisional_request.rb +++ b/app/domain/booking_states/provisional_request.rb @@ -28,7 +28,9 @@ def self.to_sym booking.tentative! next if booking.committed_request - MailTemplate.use(:provisional_request_notification, booking, to: :tenant, &:autodeliver) + mail = MailTemplate.use(:provisional_request_notification, booking, to: :tenant) + mail&.attach :accepted_documents if booking.state_transitions.last(2).map(&:to_state) == [OpenRequest.to_s, to_s] + mail&.autodeliver end infer_transition(to: :definitive_request) do |booking| diff --git a/app/models/designated_document.rb b/app/models/designated_document.rb index d553c5857..1b1387792 100644 --- a/app/models/designated_document.rb +++ b/app/models/designated_document.rb @@ -9,6 +9,7 @@ # locale :string # name :string # remarks :text +# send_with_accepted :boolean default(FALSE), not null # send_with_contract :boolean default(FALSE), not null # send_with_last_infos :boolean default(FALSE) # created_at :datetime not null diff --git a/app/serializers/manage/designated_document_serializer.rb b/app/serializers/manage/designated_document_serializer.rb index 554df694c..c630b9a39 100644 --- a/app/serializers/manage/designated_document_serializer.rb +++ b/app/serializers/manage/designated_document_serializer.rb @@ -2,7 +2,7 @@ module Manage class DesignatedDocumentSerializer < ApplicationSerializer - fields :designation, :locale, :name, :send_with_contract, :send_with_last_infos + fields :designation, :locale, :name, :send_with_accepted, :send_with_contract, :send_with_last_infos field :file_url do |designated_document| url.url_for(designated_document.file) end diff --git a/app/services/attachment_manager.rb b/app/services/attachment_manager.rb index 9403b1df9..b56bc645f 100644 --- a/app/services/attachment_manager.rb +++ b/app/services/attachment_manager.rb @@ -8,7 +8,8 @@ class AttachmentManager unsent_offers: ->(booking) { booking.invoices.offers.unsent }, contract: ->(booking) { booking.contract }, last_info_documents: ->(booking) { DesignatedDocument.for_booking(booking).where(send_with_last_infos: true) }, - contract_documents: ->(booking) { DesignatedDocument.for_booking(booking).where(send_with_contract: true) } + contract_documents: ->(booking) { DesignatedDocument.for_booking(booking).where(send_with_contract: true) }, + accepted_documents: ->(booking) { DesignatedDocument.for_booking(booking).where(send_with_accepted: true) } }.freeze def initialize(booking, target:) diff --git a/app/views/manage/designated_documents/_form.html.slim b/app/views/manage/designated_documents/_form.html.slim index d2accedf6..3daf410e4 100644 --- a/app/views/manage/designated_documents/_form.html.slim +++ b/app/views/manage/designated_documents/_form.html.slim @@ -3,6 +3,7 @@ = f.select :locale, I18n.available_locales.map { [_1, _1] }, include_blank: t('.all_locales') = f.text_field :name = f.file_field :file, required: @designated_document.file.blank? + = f.check_box :send_with_accepted = f.check_box :send_with_contract = f.check_box :send_with_last_infos = f.text_area :remarks diff --git a/config/locales/de.yml b/config/locales/de.yml index be5d9ea2d..c87e5f84f 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -189,6 +189,7 @@ de: locale: Sprache name: Name remarks: Bemerkungen + send_with_accepted: Mit dem Akzeptieren der Buchung versenden send_with_contract: Mit dem Vertrag versenden send_with_last_infos: Mit letzen Infos (baldige Belegung) versenden updated_at: Letzte Änderung diff --git a/db/migrate/20240128123553_add_send_with_accepted_booking_to_designated_documents.rb b/db/migrate/20240128123553_add_send_with_accepted_booking_to_designated_documents.rb new file mode 100644 index 000000000..3cb6ac050 --- /dev/null +++ b/db/migrate/20240128123553_add_send_with_accepted_booking_to_designated_documents.rb @@ -0,0 +1,5 @@ +class AddSendWithAcceptedBookingToDesignatedDocuments < ActiveRecord::Migration[7.1] + def change + add_column :designated_documents, :send_with_accepted, :boolean, default: false, null: false + end +end diff --git a/db/schema.rb b/db/schema.rb index 0289b1d89..2127267e9 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.1].define(version: 2024_01_15_190948) do +ActiveRecord::Schema[7.1].define(version: 2024_01_28_123553) do # These are extensions that must be enabled in order to support this database enable_extension "pgcrypto" enable_extension "plpgsql" @@ -281,6 +281,7 @@ t.string "name" t.boolean "send_with_contract", default: false, null: false t.boolean "send_with_last_infos", default: false + t.boolean "send_with_accepted", default: false, null: false t.index ["organisation_id"], name: "index_designated_documents_on_organisation_id" end @@ -493,6 +494,99 @@ t.index ["type"], name: "index_rich_text_templates_on_type" end + create_table "solid_queue_blocked_executions", force: :cascade do |t| + t.bigint "job_id", null: false + t.string "queue_name", null: false + t.integer "priority", default: 0, null: false + t.string "concurrency_key", null: false + t.datetime "expires_at", null: false + t.datetime "created_at", null: false + t.index ["expires_at", "concurrency_key"], name: "index_solid_queue_blocked_executions_for_maintenance" + t.index ["job_id"], name: "index_solid_queue_blocked_executions_on_job_id", unique: true + end + + create_table "solid_queue_claimed_executions", force: :cascade do |t| + t.bigint "job_id", null: false + t.bigint "process_id" + t.datetime "created_at", null: false + t.index ["job_id"], name: "index_solid_queue_claimed_executions_on_job_id", unique: true + t.index ["process_id", "job_id"], name: "index_solid_queue_claimed_executions_on_process_id_and_job_id" + end + + create_table "solid_queue_failed_executions", force: :cascade do |t| + t.bigint "job_id", null: false + t.text "error" + t.datetime "created_at", null: false + t.index ["job_id"], name: "index_solid_queue_failed_executions_on_job_id", unique: true + end + + create_table "solid_queue_jobs", force: :cascade do |t| + t.string "queue_name", null: false + t.string "class_name", null: false + t.text "arguments" + t.integer "priority", default: 0, null: false + t.string "active_job_id" + t.datetime "scheduled_at" + t.datetime "finished_at" + t.string "concurrency_key" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.index ["active_job_id"], name: "index_solid_queue_jobs_on_active_job_id" + t.index ["class_name"], name: "index_solid_queue_jobs_on_class_name" + t.index ["finished_at"], name: "index_solid_queue_jobs_on_finished_at" + t.index ["queue_name", "finished_at"], name: "index_solid_queue_jobs_for_filtering" + t.index ["scheduled_at", "finished_at"], name: "index_solid_queue_jobs_for_alerting" + end + + create_table "solid_queue_pauses", force: :cascade do |t| + t.string "queue_name", null: false + t.datetime "created_at", null: false + t.index ["queue_name"], name: "index_solid_queue_pauses_on_queue_name", unique: true + end + + create_table "solid_queue_processes", force: :cascade do |t| + t.string "kind", null: false + t.datetime "last_heartbeat_at", null: false + t.bigint "supervisor_id" + t.integer "pid", null: false + t.string "hostname" + t.text "metadata" + t.datetime "created_at", null: false + t.index ["last_heartbeat_at"], name: "index_solid_queue_processes_on_last_heartbeat_at" + t.index ["supervisor_id"], name: "index_solid_queue_processes_on_supervisor_id" + end + + create_table "solid_queue_ready_executions", force: :cascade do |t| + t.bigint "job_id", null: false + t.string "queue_name", null: false + t.integer "priority", default: 0, null: false + t.datetime "created_at", null: false + t.index ["job_id"], name: "index_solid_queue_ready_executions_on_job_id", unique: true + t.index ["priority", "job_id"], name: "index_solid_queue_poll_all" + t.index ["queue_name", "priority", "job_id"], name: "index_solid_queue_poll_by_queue" + end + + create_table "solid_queue_scheduled_executions", force: :cascade do |t| + t.bigint "job_id", null: false + t.string "queue_name", null: false + t.integer "priority", default: 0, null: false + t.datetime "scheduled_at", null: false + t.datetime "created_at", null: false + t.index ["job_id"], name: "index_solid_queue_scheduled_executions_on_job_id", unique: true + t.index ["scheduled_at", "priority", "job_id"], name: "index_solid_queue_dispatch_all" + end + + create_table "solid_queue_semaphores", force: :cascade do |t| + t.string "key", null: false + t.integer "value", default: 1, null: false + t.datetime "expires_at", null: false + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.index ["expires_at"], name: "index_solid_queue_semaphores_on_expires_at" + t.index ["key", "value"], name: "index_solid_queue_semaphores_on_key_and_value" + t.index ["key"], name: "index_solid_queue_semaphores_on_key", unique: true + end + create_table "tarifs", force: :cascade do |t| t.string "type" t.boolean "pin", default: true @@ -635,6 +729,11 @@ add_foreign_key "payments", "invoices" add_foreign_key "plan_b_backups", "organisations" add_foreign_key "rich_text_templates", "organisations" + add_foreign_key "solid_queue_blocked_executions", "solid_queue_jobs", column: "job_id", on_delete: :cascade + add_foreign_key "solid_queue_claimed_executions", "solid_queue_jobs", column: "job_id", on_delete: :cascade + add_foreign_key "solid_queue_failed_executions", "solid_queue_jobs", column: "job_id", on_delete: :cascade + add_foreign_key "solid_queue_ready_executions", "solid_queue_jobs", column: "job_id", on_delete: :cascade + add_foreign_key "solid_queue_scheduled_executions", "solid_queue_jobs", column: "job_id", on_delete: :cascade add_foreign_key "tarifs", "booking_questions", column: "prefill_usage_booking_question_id" add_foreign_key "tarifs", "organisations" add_foreign_key "tenants", "organisations" diff --git a/spec/factories/designated_documents.rb b/spec/factories/designated_documents.rb index 6cd8f1a37..7159fd7be 100644 --- a/spec/factories/designated_documents.rb +++ b/spec/factories/designated_documents.rb @@ -9,6 +9,7 @@ # locale :string # name :string # remarks :text +# send_with_accepted :boolean default(FALSE), not null # send_with_contract :boolean default(FALSE), not null # send_with_last_infos :boolean default(FALSE) # created_at :datetime not null diff --git a/spec/models/designated_document_spec.rb b/spec/models/designated_document_spec.rb index 5c230730e..0013915ef 100644 --- a/spec/models/designated_document_spec.rb +++ b/spec/models/designated_document_spec.rb @@ -9,6 +9,7 @@ # locale :string # name :string # remarks :text +# send_with_accepted :boolean default(FALSE), not null # send_with_contract :boolean default(FALSE), not null # send_with_last_infos :boolean default(FALSE) # created_at :datetime not null From 7d54bc28167ffa4da195560d5799193857172bc8 Mon Sep 17 00:00:00 2001 From: Diego Steiner Date: Sun, 28 Jan 2024 12:57:20 +0000 Subject: [PATCH 10/12] chore: sync translations --- config/locales/.translation_io | 2 +- config/locales/fr.yml | 2 ++ config/locales/it.yml | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/config/locales/.translation_io b/config/locales/.translation_io index 925ee80a3..1ed51b3da 100644 --- a/config/locales/.translation_io +++ b/config/locales/.translation_io @@ -5,4 +5,4 @@ # ignore the conflicts and "sync" again, it will fix this file for you. --- -timestamp: 1705653374 +timestamp: 1706446582 diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 34fdbc76e..08d79a96e 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -48,6 +48,7 @@ fr: default_begins_at_time: Heure de début de l'occupation par défaut default_calendar_view: Affichage du calendrier par défaut default_ends_at_time: Heure de fin d'occupation par défaut + default_manage_transition_to_state: deposit_payment_deadline: Délai de paiement standard (acompte) invoice_payment_deadline: Délai de paiement standard last_minute_warning: Délai pour les demandes de réservation de dernière minute @@ -188,6 +189,7 @@ fr: locale: Langue name: Nom remarks: Remarques + send_with_accepted: send_with_contract: Envoyer avec le contrat send_with_last_infos: Envoyer avec les dernières informations (location prochaine) updated_at: Dernière modification diff --git a/config/locales/it.yml b/config/locales/it.yml index b248c1998..05f664272 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -48,6 +48,7 @@ it: default_begins_at_time: default_calendar_view: default_ends_at_time: + default_manage_transition_to_state: deposit_payment_deadline: Periodo di pagamento standard (acconto) invoice_payment_deadline: Periodo di pagamento standard last_minute_warning: Periodo per le richieste di prenotazione a breve termine @@ -188,6 +189,7 @@ it: locale: Lingua name: Nome remarks: Osservazioni + send_with_accepted: send_with_contract: Inviare con il contratto send_with_last_infos: Invia con le ultime informazioni (occupazione a breve) updated_at: Ultima modifica From 2bb523dcb4a503231a177a918345de443c62a84a Mon Sep 17 00:00:00 2001 From: Diego Steiner Date: Sun, 28 Jan 2024 15:25:20 +0000 Subject: [PATCH 11/12] fix: qr iban --- app/models/payment_infos/qr_bill.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/payment_infos/qr_bill.rb b/app/models/payment_infos/qr_bill.rb index fa07a90d5..7aea118ae 100644 --- a/app/models/payment_infos/qr_bill.rb +++ b/app/models/payment_infos/qr_bill.rb @@ -71,7 +71,7 @@ def debitor_address_lines end def creditor_account - organisation.iban.presence + organisation.iban.to_s.presence end def currency From 6333021b04c329db8b9e81a715f62a4f80dcae07 Mon Sep 17 00:00:00 2001 From: Diego Steiner Date: Sun, 28 Jan 2024 15:25:51 +0000 Subject: [PATCH 12/12] chore: bump version --- CHANGELOG.md | 8 ++++++++ VERSION | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 968366adf..9a25489af 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,14 @@ ## Unreleased +## Version 24.1.1 + +Released on 28.01.2023 + +- Feature: Set default state for new bookings in manager +- Feature: Add designated documents for accepted notification +- Bugfixes + ## Version 23.12.2 Released on 28.12.2023 diff --git a/VERSION b/VERSION index 45b2a1156..0e1dbf968 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -V23.12.2 +V24.1.1