diff --git a/src/Umbraco.Cms.Api.Common/Configuration/ConfigureApiExplorerOptions.cs b/src/Umbraco.Cms.Api.Common/Configuration/ConfigureApiExplorerOptions.cs index 2b9179202b..94769e5330 100644 --- a/src/Umbraco.Cms.Api.Common/Configuration/ConfigureApiExplorerOptions.cs +++ b/src/Umbraco.Cms.Api.Common/Configuration/ConfigureApiExplorerOptions.cs @@ -1,11 +1,10 @@ -using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.ApiExplorer; using Microsoft.AspNetCore.Mvc.Versioning; using Microsoft.Extensions.Options; namespace Umbraco.Cms.Api.Common.Configuration; -public class ConfigureApiExplorerOptions : IConfigureOptions +public sealed class ConfigureApiExplorerOptions : IConfigureOptions { private readonly IOptions _apiVersioningOptions; diff --git a/src/Umbraco.Cms.Api.Common/Configuration/ConfigureApiVersioningOptions.cs b/src/Umbraco.Cms.Api.Common/Configuration/ConfigureApiVersioningOptions.cs index 028d731444..6e77391a43 100644 --- a/src/Umbraco.Cms.Api.Common/Configuration/ConfigureApiVersioningOptions.cs +++ b/src/Umbraco.Cms.Api.Common/Configuration/ConfigureApiVersioningOptions.cs @@ -4,7 +4,7 @@ using Microsoft.Extensions.Options; namespace Umbraco.Cms.Api.Common.Configuration; -public class ConfigureApiVersioningOptions : IConfigureOptions +public sealed class ConfigureApiVersioningOptions : IConfigureOptions { public void Configure(ApiVersioningOptions options) { diff --git a/src/Umbraco.Cms.Api.Delivery/Accessors/RequestContextOutputExpansionStrategyAccessor.cs b/src/Umbraco.Cms.Api.Delivery/Accessors/RequestContextOutputExpansionStrategyAccessor.cs index 146e356684..cc4bb7933d 100644 --- a/src/Umbraco.Cms.Api.Delivery/Accessors/RequestContextOutputExpansionStrategyAccessor.cs +++ b/src/Umbraco.Cms.Api.Delivery/Accessors/RequestContextOutputExpansionStrategyAccessor.cs @@ -3,7 +3,7 @@ using Umbraco.Cms.Core.DeliveryApi; namespace Umbraco.Cms.Api.Delivery.Accessors; -public class RequestContextOutputExpansionStrategyAccessor : RequestContextServiceAccessorBase, IOutputExpansionStrategyAccessor +internal sealed class RequestContextOutputExpansionStrategyAccessor : RequestContextServiceAccessorBase, IOutputExpansionStrategyAccessor { public RequestContextOutputExpansionStrategyAccessor(IHttpContextAccessor httpContextAccessor) : base(httpContextAccessor) diff --git a/src/Umbraco.Cms.Api.Delivery/Accessors/RequestContextRequestStartItemProviderAccessor.cs b/src/Umbraco.Cms.Api.Delivery/Accessors/RequestContextRequestStartItemProviderAccessor.cs index b993a25f5c..de83331c11 100644 --- a/src/Umbraco.Cms.Api.Delivery/Accessors/RequestContextRequestStartItemProviderAccessor.cs +++ b/src/Umbraco.Cms.Api.Delivery/Accessors/RequestContextRequestStartItemProviderAccessor.cs @@ -3,7 +3,7 @@ using Umbraco.Cms.Core.DeliveryApi; namespace Umbraco.Cms.Api.Delivery.Accessors; -public class RequestContextRequestStartItemProviderAccessor : RequestContextServiceAccessorBase, IRequestStartItemProviderAccessor +internal sealed class RequestContextRequestStartItemProviderAccessor : RequestContextServiceAccessorBase, IRequestStartItemProviderAccessor { public RequestContextRequestStartItemProviderAccessor(IHttpContextAccessor httpContextAccessor) : base(httpContextAccessor) diff --git a/src/Umbraco.Cms.Api.Delivery/Controllers/ContentApiControllerBase.cs b/src/Umbraco.Cms.Api.Delivery/Controllers/ContentApiControllerBase.cs index ea85c5f544..1213def424 100644 --- a/src/Umbraco.Cms.Api.Delivery/Controllers/ContentApiControllerBase.cs +++ b/src/Umbraco.Cms.Api.Delivery/Controllers/ContentApiControllerBase.cs @@ -1,6 +1,9 @@ using Microsoft.AspNetCore.Mvc; +using Umbraco.Cms.Api.Common.Builders; using Umbraco.Cms.Api.Delivery.Routing; +using Umbraco.Cms.Core; using Umbraco.Cms.Core.DeliveryApi; +using Umbraco.Cms.Core.Services.OperationStatus; namespace Umbraco.Cms.Api.Delivery.Controllers; @@ -17,4 +20,25 @@ public abstract class ContentApiControllerBase : DeliveryApiControllerBase ApiPublishedContentCache = apiPublishedContentCache; ApiContentResponseBuilder = apiContentResponseBuilder; } + + protected IActionResult ApiContentQueryOperationStatusResult(ApiContentQueryOperationStatus status) => + status switch + { + ApiContentQueryOperationStatus.FilterOptionNotFound => BadRequest(new ProblemDetailsBuilder() + .WithTitle("Filter option not found") + .WithDetail("One of the attempted 'filter' options does not exist") + .Build()), + ApiContentQueryOperationStatus.IndexNotFound => BadRequest(new ProblemDetailsBuilder() + .WithTitle("Examine index not found") + .WithDetail($"No index found with name {Constants.UmbracoIndexes.DeliveryApiContentIndexName}") + .Build()), + ApiContentQueryOperationStatus.SelectorOptionNotFound => BadRequest(new ProblemDetailsBuilder() + .WithTitle("Selector option not found") + .WithDetail("The attempted 'fetch' option does not exist") + .Build()), + ApiContentQueryOperationStatus.SortOptionNotFound => BadRequest(new ProblemDetailsBuilder() + .WithTitle("Sort option not found") + .WithDetail("One of the attempted 'sort' options does not exist") + .Build()), + }; } diff --git a/src/Umbraco.Cms.Api.Delivery/Controllers/QueryContentApiController.cs b/src/Umbraco.Cms.Api.Delivery/Controllers/QueryContentApiController.cs index e220269310..c1a6d8e197 100644 --- a/src/Umbraco.Cms.Api.Delivery/Controllers/QueryContentApiController.cs +++ b/src/Umbraco.Cms.Api.Delivery/Controllers/QueryContentApiController.cs @@ -1,9 +1,11 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Umbraco.Cms.Api.Common.ViewModels.Pagination; +using Umbraco.Cms.Core; using Umbraco.Cms.Core.DeliveryApi; using Umbraco.Cms.Core.Models.DeliveryApi; using Umbraco.Cms.Core.Models.PublishedContent; +using Umbraco.Cms.Core.Services.OperationStatus; using Umbraco.New.Cms.Core.Models; namespace Umbraco.Cms.Api.Delivery.Controllers; @@ -31,15 +33,22 @@ public class QueryContentApiController : ContentApiControllerBase [HttpGet] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - [ProducesResponseType(StatusCodes.Status400BadRequest)] - public async Task>> Query( + [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] + public async Task Query( string? fetch, [FromQuery] string[] filter, [FromQuery] string[] sort, int skip = 0, int take = 10) { - PagedModel pagedResult = _apiContentQueryService.ExecuteQuery(fetch, filter, sort, skip, take); + Attempt, ApiContentQueryOperationStatus> queryAttempt = _apiContentQueryService.ExecuteQuery(fetch, filter, sort, skip, take); + + if (queryAttempt.Success is false) + { + return ApiContentQueryOperationStatusResult(queryAttempt.Status); + } + + PagedModel pagedResult = queryAttempt.Result; IEnumerable contentItems = ApiPublishedContentCache.GetByIds(pagedResult.Items); IApiContentResponse[] apiContentItems = contentItems.Select(ApiContentResponseBuilder.Build).ToArray(); diff --git a/src/Umbraco.Cms.Api.Delivery/Filters/DeliveryApiAccessAttribute.cs b/src/Umbraco.Cms.Api.Delivery/Filters/DeliveryApiAccessAttribute.cs index e67b9eb444..01f0b04074 100644 --- a/src/Umbraco.Cms.Api.Delivery/Filters/DeliveryApiAccessAttribute.cs +++ b/src/Umbraco.Cms.Api.Delivery/Filters/DeliveryApiAccessAttribute.cs @@ -4,7 +4,7 @@ using Umbraco.Cms.Core.DeliveryApi; namespace Umbraco.Cms.Api.Delivery.Filters; -public class DeliveryApiAccessAttribute : TypeFilterAttribute +internal sealed class DeliveryApiAccessAttribute : TypeFilterAttribute { public DeliveryApiAccessAttribute() : base(typeof(DeliveryApiAccessFilter)) diff --git a/src/Umbraco.Cms.Api.Delivery/Filters/LocalizeFromAcceptLanguageHeaderAttribute.cs b/src/Umbraco.Cms.Api.Delivery/Filters/LocalizeFromAcceptLanguageHeaderAttribute.cs index 7f3d8c2146..7bd2fec9bd 100644 --- a/src/Umbraco.Cms.Api.Delivery/Filters/LocalizeFromAcceptLanguageHeaderAttribute.cs +++ b/src/Umbraco.Cms.Api.Delivery/Filters/LocalizeFromAcceptLanguageHeaderAttribute.cs @@ -5,7 +5,7 @@ using Umbraco.Extensions; namespace Umbraco.Cms.Api.Delivery.Filters; -public class LocalizeFromAcceptLanguageHeaderAttribute : TypeFilterAttribute +internal sealed class LocalizeFromAcceptLanguageHeaderAttribute : TypeFilterAttribute { public LocalizeFromAcceptLanguageHeaderAttribute() : base(typeof(LocalizeFromAcceptLanguageHeaderAttributeFilter)) diff --git a/src/Umbraco.Cms.Api.Delivery/Indexing/Filters/ContentTypeFilterIndexer.cs b/src/Umbraco.Cms.Api.Delivery/Indexing/Filters/ContentTypeFilterIndexer.cs index 1bedda335f..60f5e6a9ed 100644 --- a/src/Umbraco.Cms.Api.Delivery/Indexing/Filters/ContentTypeFilterIndexer.cs +++ b/src/Umbraco.Cms.Api.Delivery/Indexing/Filters/ContentTypeFilterIndexer.cs @@ -3,7 +3,7 @@ using Umbraco.Cms.Core.Models; namespace Umbraco.Cms.Api.Delivery.Indexing.Filters; -internal sealed class ContentTypeFilterIndexer : IContentIndexHandler +public sealed class ContentTypeFilterIndexer : IContentIndexHandler { internal const string FieldName = "contentType"; diff --git a/src/Umbraco.Cms.Api.Delivery/Indexing/Selectors/AncestorsSelectorIndexer.cs b/src/Umbraco.Cms.Api.Delivery/Indexing/Selectors/AncestorsSelectorIndexer.cs new file mode 100644 index 0000000000..d6b8b86c8a --- /dev/null +++ b/src/Umbraco.Cms.Api.Delivery/Indexing/Selectors/AncestorsSelectorIndexer.cs @@ -0,0 +1,17 @@ +using Umbraco.Cms.Core.DeliveryApi; +using Umbraco.Cms.Core.Models; + +namespace Umbraco.Cms.Api.Delivery.Indexing.Selectors; + +public sealed class AncestorsSelectorIndexer : IContentIndexHandler +{ + // NOTE: "id" is a reserved field name + internal const string FieldName = "itemId"; + + public IEnumerable GetFieldValues(IContent content) + => new[] { new IndexFieldValue { FieldName = FieldName, Value = content.Key } }; + + public IEnumerable GetFields() + => new[] { new IndexField { FieldName = FieldName, FieldType = FieldType.String } }; +} + diff --git a/src/Umbraco.Cms.Api.Delivery/Indexing/Selectors/ChildrenSelectorIndexer.cs b/src/Umbraco.Cms.Api.Delivery/Indexing/Selectors/ChildrenSelectorIndexer.cs index 04e261abfe..9ff352a940 100644 --- a/src/Umbraco.Cms.Api.Delivery/Indexing/Selectors/ChildrenSelectorIndexer.cs +++ b/src/Umbraco.Cms.Api.Delivery/Indexing/Selectors/ChildrenSelectorIndexer.cs @@ -5,7 +5,7 @@ using Umbraco.Cms.Core.Services; namespace Umbraco.Cms.Api.Delivery.Indexing.Selectors; -internal sealed class ChildrenSelectorIndexer : IContentIndexHandler +public sealed class ChildrenSelectorIndexer : IContentIndexHandler { private readonly IEntityService _entityService; diff --git a/src/Umbraco.Cms.Api.Delivery/Indexing/Selectors/DescendantsSelectorIndexer.cs b/src/Umbraco.Cms.Api.Delivery/Indexing/Selectors/DescendantsSelectorIndexer.cs index 91f3780c1b..e61b75639d 100644 --- a/src/Umbraco.Cms.Api.Delivery/Indexing/Selectors/DescendantsSelectorIndexer.cs +++ b/src/Umbraco.Cms.Api.Delivery/Indexing/Selectors/DescendantsSelectorIndexer.cs @@ -6,7 +6,7 @@ using Umbraco.Extensions; namespace Umbraco.Cms.Api.Delivery.Indexing.Selectors; -internal sealed class DescendantsSelectorIndexer : IContentIndexHandler +public sealed class DescendantsSelectorIndexer : IContentIndexHandler { internal const string FieldName = "ancestorIds"; diff --git a/src/Umbraco.Cms.Api.Delivery/Indexing/Sorts/PathSortIndexer.cs b/src/Umbraco.Cms.Api.Delivery/Indexing/Sorts/CreateDateSortIndexer.cs similarity index 68% rename from src/Umbraco.Cms.Api.Delivery/Indexing/Sorts/PathSortIndexer.cs rename to src/Umbraco.Cms.Api.Delivery/Indexing/Sorts/CreateDateSortIndexer.cs index 11f1b2479d..2d16ccb66e 100644 --- a/src/Umbraco.Cms.Api.Delivery/Indexing/Sorts/PathSortIndexer.cs +++ b/src/Umbraco.Cms.Api.Delivery/Indexing/Sorts/CreateDateSortIndexer.cs @@ -3,13 +3,13 @@ using Umbraco.Cms.Core.Models; namespace Umbraco.Cms.Api.Delivery.Indexing.Sorts; -internal sealed class PathSortIndexer : IContentIndexHandler +public sealed class CreateDateSortIndexer : IContentIndexHandler { - internal const string FieldName = "path"; + internal const string FieldName = "createDate"; public IEnumerable GetFieldValues(IContent content) - => new[] { new IndexFieldValue { FieldName = FieldName, Value = content.Path } }; + => new[] { new IndexFieldValue { FieldName = FieldName, Value = content.CreateDate } }; public IEnumerable GetFields() - => new[] { new IndexField { FieldName = FieldName, FieldType = FieldType.StringSortable } }; + => new[] { new IndexField { FieldName = FieldName, FieldType = FieldType.Date } }; } diff --git a/src/Umbraco.Cms.Api.Delivery/Indexing/Sorts/LevelSortIndexer.cs b/src/Umbraco.Cms.Api.Delivery/Indexing/Sorts/LevelSortIndexer.cs index d62960e3ec..89f3f3f0d1 100644 --- a/src/Umbraco.Cms.Api.Delivery/Indexing/Sorts/LevelSortIndexer.cs +++ b/src/Umbraco.Cms.Api.Delivery/Indexing/Sorts/LevelSortIndexer.cs @@ -3,7 +3,7 @@ using Umbraco.Cms.Core.Models; namespace Umbraco.Cms.Api.Delivery.Indexing.Sorts; -internal sealed class LevelSortIndexer : IContentIndexHandler +public sealed class LevelSortIndexer : IContentIndexHandler { internal const string FieldName = "level"; diff --git a/src/Umbraco.Cms.Api.Delivery/Indexing/Sorts/NameSortIndexer.cs b/src/Umbraco.Cms.Api.Delivery/Indexing/Sorts/NameSortIndexer.cs index 7b388e12ce..b61e01aa7e 100644 --- a/src/Umbraco.Cms.Api.Delivery/Indexing/Sorts/NameSortIndexer.cs +++ b/src/Umbraco.Cms.Api.Delivery/Indexing/Sorts/NameSortIndexer.cs @@ -3,7 +3,7 @@ using Umbraco.Cms.Core.Models; namespace Umbraco.Cms.Api.Delivery.Indexing.Sorts; -internal sealed class NameSortIndexer : IContentIndexHandler +public sealed class NameSortIndexer : IContentIndexHandler { internal const string FieldName = "name"; diff --git a/src/Umbraco.Cms.Api.Delivery/Indexing/Sorts/SortOrderSortIndexer.cs b/src/Umbraco.Cms.Api.Delivery/Indexing/Sorts/SortOrderSortIndexer.cs index 346e65de69..70d0669bda 100644 --- a/src/Umbraco.Cms.Api.Delivery/Indexing/Sorts/SortOrderSortIndexer.cs +++ b/src/Umbraco.Cms.Api.Delivery/Indexing/Sorts/SortOrderSortIndexer.cs @@ -3,7 +3,7 @@ using Umbraco.Cms.Core.Models; namespace Umbraco.Cms.Api.Delivery.Indexing.Sorts; -internal sealed class SortOrderSortIndexer : IContentIndexHandler +public sealed class SortOrderSortIndexer : IContentIndexHandler { internal const string FieldName = "sortOrder"; diff --git a/src/Umbraco.Cms.Api.Delivery/Indexing/Sorts/UpdateDateSortIndexer.cs b/src/Umbraco.Cms.Api.Delivery/Indexing/Sorts/UpdateDateSortIndexer.cs new file mode 100644 index 0000000000..073543cd5f --- /dev/null +++ b/src/Umbraco.Cms.Api.Delivery/Indexing/Sorts/UpdateDateSortIndexer.cs @@ -0,0 +1,15 @@ +using Umbraco.Cms.Core.DeliveryApi; +using Umbraco.Cms.Core.Models; + +namespace Umbraco.Cms.Api.Delivery.Indexing.Sorts; + +public sealed class UpdateDateSortIndexer : IContentIndexHandler +{ + internal const string FieldName = "updateDate"; + + public IEnumerable GetFieldValues(IContent content) + => new[] { new IndexFieldValue { FieldName = FieldName, Value = content.UpdateDate } }; + + public IEnumerable GetFields() + => new[] { new IndexField { FieldName = FieldName, FieldType = FieldType.Date } }; +} diff --git a/src/Umbraco.Cms.Api.Delivery/Json/DeliveryApiJsonTypeResolver.cs b/src/Umbraco.Cms.Api.Delivery/Json/DeliveryApiJsonTypeResolver.cs index 899ea98380..2de5359a00 100644 --- a/src/Umbraco.Cms.Api.Delivery/Json/DeliveryApiJsonTypeResolver.cs +++ b/src/Umbraco.Cms.Api.Delivery/Json/DeliveryApiJsonTypeResolver.cs @@ -7,19 +7,19 @@ namespace Umbraco.Cms.Api.Delivery.Json; // see https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json/polymorphism?pivots=dotnet-7-0 // TODO: if this type resolver is to be used for extendable content models (custom IApiContent implementations) we need to work out an extension model for known derived types -public class DeliveryApiJsonTypeResolver : DefaultJsonTypeInfoResolver +internal sealed class DeliveryApiJsonTypeResolver : DefaultJsonTypeInfoResolver { public override JsonTypeInfo GetTypeInfo(Type type, JsonSerializerOptions options) { JsonTypeInfo jsonTypeInfo = base.GetTypeInfo(type, options); - if (jsonTypeInfo.Type == typeof(IApiContent)) - { - ConfigureJsonPolymorphismOptions(jsonTypeInfo, typeof(ApiContent)); - } - else if (jsonTypeInfo.Type == typeof(IApiContentResponse)) - { - ConfigureJsonPolymorphismOptions(jsonTypeInfo, typeof(ApiContentResponse)); + if (jsonTypeInfo.Type == typeof(IApiContent)) + { + ConfigureJsonPolymorphismOptions(jsonTypeInfo, typeof(ApiContent)); + } + else if (jsonTypeInfo.Type == typeof(IApiContentResponse)) + { + ConfigureJsonPolymorphismOptions(jsonTypeInfo, typeof(ApiContentResponse)); } return jsonTypeInfo; diff --git a/src/Umbraco.Cms.Api.Delivery/Querying/Filters/ContentTypeFilter.cs b/src/Umbraco.Cms.Api.Delivery/Querying/Filters/ContentTypeFilter.cs index a3651e2137..c75c50c42c 100644 --- a/src/Umbraco.Cms.Api.Delivery/Querying/Filters/ContentTypeFilter.cs +++ b/src/Umbraco.Cms.Api.Delivery/Querying/Filters/ContentTypeFilter.cs @@ -3,7 +3,7 @@ using Umbraco.Cms.Core.DeliveryApi; namespace Umbraco.Cms.Api.Delivery.Querying.Filters; -internal sealed class ContentTypeFilter : IFilterHandler +public sealed class ContentTypeFilter : IFilterHandler { private const string ContentTypeSpecifier = "contentType:"; diff --git a/src/Umbraco.Cms.Api.Delivery/Querying/Filters/NameFilter.cs b/src/Umbraco.Cms.Api.Delivery/Querying/Filters/NameFilter.cs index a2fcdd6872..40733de7f0 100644 --- a/src/Umbraco.Cms.Api.Delivery/Querying/Filters/NameFilter.cs +++ b/src/Umbraco.Cms.Api.Delivery/Querying/Filters/NameFilter.cs @@ -1,8 +1,9 @@ +using Umbraco.Cms.Api.Delivery.Indexing.Sorts; using Umbraco.Cms.Core.DeliveryApi; namespace Umbraco.Cms.Api.Delivery.Querying.Filters; -internal sealed class NameFilter : IFilterHandler +public sealed class NameFilter : IFilterHandler { private const string NameSpecifier = "name:"; @@ -17,7 +18,7 @@ internal sealed class NameFilter : IFilterHandler var filterOption = new FilterOption { - FieldName = "name", + FieldName = NameSortIndexer.FieldName, Value = string.Empty }; diff --git a/src/Umbraco.Cms.Api.Delivery/Querying/QueryOptionBase.cs b/src/Umbraco.Cms.Api.Delivery/Querying/QueryOptionBase.cs index daf6d9fe16..8934889715 100644 --- a/src/Umbraco.Cms.Api.Delivery/Querying/QueryOptionBase.cs +++ b/src/Umbraco.Cms.Api.Delivery/Querying/QueryOptionBase.cs @@ -1,4 +1,3 @@ -using System; using Umbraco.Cms.Core.DeliveryApi; using Umbraco.Cms.Core.Models.PublishedContent; using Umbraco.Cms.Core.PublishedCache; diff --git a/src/Umbraco.Cms.Api.Delivery/Querying/Selectors/AncestorsSelector.cs b/src/Umbraco.Cms.Api.Delivery/Querying/Selectors/AncestorsSelector.cs index 4539a8f3d6..542567bf0d 100644 --- a/src/Umbraco.Cms.Api.Delivery/Querying/Selectors/AncestorsSelector.cs +++ b/src/Umbraco.Cms.Api.Delivery/Querying/Selectors/AncestorsSelector.cs @@ -1,3 +1,4 @@ +using Umbraco.Cms.Api.Delivery.Indexing.Selectors; using Umbraco.Cms.Core.DeliveryApi; using Umbraco.Cms.Core.Models.PublishedContent; using Umbraco.Cms.Core.PublishedCache; @@ -5,7 +6,7 @@ using Umbraco.Extensions; namespace Umbraco.Cms.Api.Delivery.Querying.Selectors; -internal sealed class AncestorsSelector : QueryOptionBase, ISelectorHandler +public sealed class AncestorsSelector : QueryOptionBase, ISelectorHandler { private const string AncestorsSpecifier = "ancestors:"; private readonly IPublishedSnapshotAccessor _publishedSnapshotAccessor; @@ -33,7 +34,7 @@ internal sealed class AncestorsSelector : QueryOptionBase, ISelectorHandler // it means that CanHandle() returned true, meaning that this Selector should be able to handle the selector value return new SelectorOption { - FieldName = "id", + FieldName = AncestorsSelectorIndexer.FieldName, Value = string.Empty }; } @@ -44,7 +45,7 @@ internal sealed class AncestorsSelector : QueryOptionBase, ISelectorHandler return new SelectorOption { - FieldName = "id", + FieldName = AncestorsSelectorIndexer.FieldName, Value = string.Join(" ", ancestorKeys) }; } diff --git a/src/Umbraco.Cms.Api.Delivery/Querying/Selectors/ChildrenSelector.cs b/src/Umbraco.Cms.Api.Delivery/Querying/Selectors/ChildrenSelector.cs index 008870a2d8..58e965d5d2 100644 --- a/src/Umbraco.Cms.Api.Delivery/Querying/Selectors/ChildrenSelector.cs +++ b/src/Umbraco.Cms.Api.Delivery/Querying/Selectors/ChildrenSelector.cs @@ -4,7 +4,7 @@ using Umbraco.Cms.Core.PublishedCache; namespace Umbraco.Cms.Api.Delivery.Querying.Selectors; -internal sealed class ChildrenSelector : QueryOptionBase, ISelectorHandler +public sealed class ChildrenSelector : QueryOptionBase, ISelectorHandler { private const string ChildrenSpecifier = "children:"; diff --git a/src/Umbraco.Cms.Api.Delivery/Querying/Selectors/DescendantsSelector.cs b/src/Umbraco.Cms.Api.Delivery/Querying/Selectors/DescendantsSelector.cs index dcd1aff0ee..c2c84dfb3e 100644 --- a/src/Umbraco.Cms.Api.Delivery/Querying/Selectors/DescendantsSelector.cs +++ b/src/Umbraco.Cms.Api.Delivery/Querying/Selectors/DescendantsSelector.cs @@ -4,7 +4,7 @@ using Umbraco.Cms.Core.PublishedCache; namespace Umbraco.Cms.Api.Delivery.Querying.Selectors; -internal sealed class DescendantsSelector : QueryOptionBase, ISelectorHandler +public sealed class DescendantsSelector : QueryOptionBase, ISelectorHandler { private const string DescendantsSpecifier = "descendants:"; diff --git a/src/Umbraco.Cms.Api.Delivery/Querying/Sorts/PathSort.cs b/src/Umbraco.Cms.Api.Delivery/Querying/Sorts/CreateDateSort.cs similarity index 69% rename from src/Umbraco.Cms.Api.Delivery/Querying/Sorts/PathSort.cs rename to src/Umbraco.Cms.Api.Delivery/Querying/Sorts/CreateDateSort.cs index 4340c433f7..f04b060810 100644 --- a/src/Umbraco.Cms.Api.Delivery/Querying/Sorts/PathSort.cs +++ b/src/Umbraco.Cms.Api.Delivery/Querying/Sorts/CreateDateSort.cs @@ -1,12 +1,12 @@ -using Umbraco.Cms.Api.Delivery.Indexing.Sorts; +using Umbraco.Cms.Api.Delivery.Indexing.Sorts; using Umbraco.Cms.Core; using Umbraco.Cms.Core.DeliveryApi; namespace Umbraco.Cms.Api.Delivery.Querying.Sorts; -internal sealed class PathSort : ISortHandler +public sealed class CreateDateSort : ISortHandler { - private const string SortOptionSpecifier = "path:"; + private const string SortOptionSpecifier = "createDate:"; /// public bool CanHandle(string query) @@ -19,9 +19,9 @@ internal sealed class PathSort : ISortHandler return new SortOption { - FieldName = PathSortIndexer.FieldName, + FieldName = CreateDateSortIndexer.FieldName, Direction = sortDirection.StartsWith("asc") ? Direction.Ascending : Direction.Descending, - FieldType = FieldType.String + FieldType = FieldType.Date }; } } diff --git a/src/Umbraco.Cms.Api.Delivery/Querying/Sorts/LevelSort.cs b/src/Umbraco.Cms.Api.Delivery/Querying/Sorts/LevelSort.cs index d14eaedf92..8b8ce4fe24 100644 --- a/src/Umbraco.Cms.Api.Delivery/Querying/Sorts/LevelSort.cs +++ b/src/Umbraco.Cms.Api.Delivery/Querying/Sorts/LevelSort.cs @@ -4,7 +4,7 @@ using Umbraco.Cms.Core.DeliveryApi; namespace Umbraco.Cms.Api.Delivery.Querying.Sorts; -internal sealed class LevelSort : ISortHandler +public sealed class LevelSort : ISortHandler { private const string SortOptionSpecifier = "level:"; diff --git a/src/Umbraco.Cms.Api.Delivery/Querying/Sorts/NameSort.cs b/src/Umbraco.Cms.Api.Delivery/Querying/Sorts/NameSort.cs index f17acab353..88ba8a688a 100644 --- a/src/Umbraco.Cms.Api.Delivery/Querying/Sorts/NameSort.cs +++ b/src/Umbraco.Cms.Api.Delivery/Querying/Sorts/NameSort.cs @@ -4,7 +4,7 @@ using Umbraco.Cms.Core.DeliveryApi; namespace Umbraco.Cms.Api.Delivery.Querying.Sorts; -internal sealed class NameSort : ISortHandler +public sealed class NameSort : ISortHandler { private const string SortOptionSpecifier = "name:"; diff --git a/src/Umbraco.Cms.Api.Delivery/Querying/Sorts/SortOrderSort.cs b/src/Umbraco.Cms.Api.Delivery/Querying/Sorts/SortOrderSort.cs index 8f687d7cd3..3a0dd503ca 100644 --- a/src/Umbraco.Cms.Api.Delivery/Querying/Sorts/SortOrderSort.cs +++ b/src/Umbraco.Cms.Api.Delivery/Querying/Sorts/SortOrderSort.cs @@ -4,7 +4,7 @@ using Umbraco.Cms.Core.DeliveryApi; namespace Umbraco.Cms.Api.Delivery.Querying.Sorts; -internal sealed class SortOrderSort : ISortHandler +public sealed class SortOrderSort : ISortHandler { private const string SortOptionSpecifier = "sortOrder:"; diff --git a/src/Umbraco.Cms.Api.Delivery/Querying/Sorts/UpdateDateSort.cs b/src/Umbraco.Cms.Api.Delivery/Querying/Sorts/UpdateDateSort.cs new file mode 100644 index 0000000000..dd5c8262fd --- /dev/null +++ b/src/Umbraco.Cms.Api.Delivery/Querying/Sorts/UpdateDateSort.cs @@ -0,0 +1,27 @@ +using Umbraco.Cms.Api.Delivery.Indexing.Sorts; +using Umbraco.Cms.Core; +using Umbraco.Cms.Core.DeliveryApi; + +namespace Umbraco.Cms.Api.Delivery.Querying.Sorts; + +public sealed class UpdateDateSort : ISortHandler +{ + private const string SortOptionSpecifier = "updateDate:"; + + /// + public bool CanHandle(string query) + => query.StartsWith(SortOptionSpecifier, StringComparison.OrdinalIgnoreCase); + + /// + public SortOption BuildSortOption(string sort) + { + var sortDirection = sort.Substring(SortOptionSpecifier.Length); + + return new SortOption + { + FieldName = UpdateDateSortIndexer.FieldName, + Direction = sortDirection.StartsWith("asc") ? Direction.Ascending : Direction.Descending, + FieldType = FieldType.Date + }; + } +} diff --git a/src/Umbraco.Cms.Api.Delivery/Routing/VersionedDeliveryApiRouteAttribute.cs b/src/Umbraco.Cms.Api.Delivery/Routing/VersionedDeliveryApiRouteAttribute.cs index 2f9a3f055a..468970cfe1 100644 --- a/src/Umbraco.Cms.Api.Delivery/Routing/VersionedDeliveryApiRouteAttribute.cs +++ b/src/Umbraco.Cms.Api.Delivery/Routing/VersionedDeliveryApiRouteAttribute.cs @@ -2,7 +2,7 @@ using Umbraco.Cms.Api.Common.Routing; namespace Umbraco.Cms.Api.Delivery.Routing; -public class VersionedDeliveryApiRouteAttribute : BackOfficeRouteAttribute +internal sealed class VersionedDeliveryApiRouteAttribute : BackOfficeRouteAttribute { public VersionedDeliveryApiRouteAttribute(string template) : base($"delivery/api/v{{version:apiVersion}}/{template.TrimStart('/')}") diff --git a/src/Umbraco.Cms.Api.Delivery/Services/ApiContentQueryService.cs b/src/Umbraco.Cms.Api.Delivery/Services/ApiContentQueryService.cs index 00683e2213..efff5ef6b7 100644 --- a/src/Umbraco.Cms.Api.Delivery/Services/ApiContentQueryService.cs +++ b/src/Umbraco.Cms.Api.Delivery/Services/ApiContentQueryService.cs @@ -1,15 +1,20 @@ using Examine; using Examine.Search; -using Umbraco.Cms.Api.Delivery.Indexing.Sorts; +using Umbraco.Cms.Api.Delivery.Indexing.Selectors; using Umbraco.Cms.Core; using Umbraco.Cms.Core.DeliveryApi; +using Umbraco.Cms.Core.Models.PublishedContent; +using Umbraco.Cms.Core.Services.OperationStatus; +using Umbraco.Cms.Infrastructure.Examine; using Umbraco.New.Cms.Core.Models; namespace Umbraco.Cms.Api.Delivery.Services; internal sealed class ApiContentQueryService : IApiContentQueryService // Examine-specific implementation - can be swapped out { + private const string ItemIdFieldName = "itemId"; private readonly IExamineManager _examineManager; + private readonly IRequestStartItemProviderAccessor _requestStartItemProviderAccessor; private readonly SelectorHandlerCollection _selectorHandlers; private readonly FilterHandlerCollection _filterHandlers; private readonly SortHandlerCollection _sortHandlers; @@ -17,11 +22,13 @@ internal sealed class ApiContentQueryService : IApiContentQueryService // Examin public ApiContentQueryService( IExamineManager examineManager, + IRequestStartItemProviderAccessor requestStartItemProviderAccessor, SelectorHandlerCollection selectorHandlers, FilterHandlerCollection filterHandlers, SortHandlerCollection sortHandlers) { _examineManager = examineManager; + _requestStartItemProviderAccessor = requestStartItemProviderAccessor; _selectorHandlers = selectorHandlers; _filterHandlers = filterHandlers; _sortHandlers = sortHandlers; @@ -32,13 +39,13 @@ internal sealed class ApiContentQueryService : IApiContentQueryService // Examin } /// - public PagedModel ExecuteQuery(string? fetch, IEnumerable filters, IEnumerable sorts, int skip, int take) + public Attempt, ApiContentQueryOperationStatus> ExecuteQuery(string? fetch, IEnumerable filters, IEnumerable sorts, int skip, int take) { var emptyResult = new PagedModel(); if (!_examineManager.TryGetIndex(Constants.UmbracoIndexes.DeliveryApiContentIndexName, out IIndex? apiIndex)) { - return emptyResult; + return Attempt.FailWithStatus(ApiContentQueryOperationStatus.IndexNotFound, emptyResult); } IQuery baseQuery = apiIndex.Searcher.CreateQuery(); @@ -49,31 +56,49 @@ internal sealed class ApiContentQueryService : IApiContentQueryService // Examin // If no Selector could be found, we return no results if (queryOperation is null) { - return emptyResult; + return Attempt.FailWithStatus(ApiContentQueryOperationStatus.SelectorOptionNotFound, emptyResult); } // Handle Filtering - HandleFiltering(filters, queryOperation); + var canApplyFiltering = CanHandleFiltering(filters, queryOperation); + + // If there is an invalid Filter option, we return no results + if (canApplyFiltering is false) + { + return Attempt.FailWithStatus(ApiContentQueryOperationStatus.FilterOptionNotFound, emptyResult); + } // Handle Sorting IOrdering? sortQuery = HandleSorting(sorts, queryOperation); - ISearchResults? results = (sortQuery ?? DefaultSort(queryOperation))?.Execute(QueryOptions.SkipTake(skip, take)); + // If there is an invalid Sort option, we return no results + if (sortQuery is null) + { + return Attempt.FailWithStatus(ApiContentQueryOperationStatus.SortOptionNotFound, emptyResult); + } + + ISearchResults? results = sortQuery + .SelectField(ItemIdFieldName) + .Execute(QueryOptions.SkipTake(skip, take)); if (results is null) { - return emptyResult; - } - else - { - Guid[] items = results.Select(x => Guid.Parse(x.Id)).ToArray(); - return new PagedModel(results.TotalItemCount, items); + // The query yield no results + return Attempt.SucceedWithStatus(ApiContentQueryOperationStatus.Success, emptyResult); } + + Guid[] items = results + .Where(r => r.Values.ContainsKey(ItemIdFieldName)) + .Select(r => Guid.Parse(r.Values[ItemIdFieldName])) + .ToArray(); + + return Attempt.SucceedWithStatus(ApiContentQueryOperationStatus.Success, new PagedModel(results.TotalItemCount, items)); } private IBooleanOperation? HandleSelector(string? fetch, IQuery baseQuery) { - IBooleanOperation? queryOperation; + string? fieldName = null; + string? fieldValue = null; if (fetch is not null) { @@ -85,58 +110,71 @@ internal sealed class ApiContentQueryService : IApiContentQueryService // Examin return null; } - var value = string.IsNullOrWhiteSpace(selector.Value) == false + fieldName = selector.FieldName; + fieldValue = string.IsNullOrWhiteSpace(selector.Value) == false ? selector.Value : _fallbackGuidValue; - queryOperation = baseQuery.Field(selector.FieldName, value); - } - else - { - // TODO: If no params or no fetch value, get everything from the index - make a default selector and register it by the end of the collection - // TODO: This selects everything without regard to the current start-item header - make sure we honour that if it is present - // This is a temp Examine solution - queryOperation = baseQuery.Field("__IndexType", "content"); } - return queryOperation; + // Take into account the "start-item" header if present, as it defines a starting root node to query from + if (fieldName is null && _requestStartItemProviderAccessor.TryGetValue(out IRequestStartItemProvider? requestStartItemProvider)) + { + IPublishedContent? startItem = requestStartItemProvider.GetStartItem(); + if (startItem is not null) + { + // Reusing the boolean operation of the "Descendants" selector, as we want to get all the nodes from the given starting point + fieldName = DescendantsSelectorIndexer.FieldName; + fieldValue = startItem.Key.ToString(); + } + } + + // If no params or no fetch value, get everything from the index - this is a way to do that with Examine + fieldName ??= UmbracoExamineFieldNames.CategoryFieldName; + fieldValue ??= "content"; + + return baseQuery.Field(fieldName, fieldValue); } - private void HandleFiltering(IEnumerable filters, IBooleanOperation queryOperation) + private bool CanHandleFiltering(IEnumerable filters, IBooleanOperation queryOperation) { foreach (var filterValue in filters) { IFilterHandler? filterHandler = _filterHandlers.FirstOrDefault(h => h.CanHandle(filterValue)); FilterOption? filter = filterHandler?.BuildFilterOption(filterValue); - if (filter is not null) + if (filter is null) { - var value = string.IsNullOrWhiteSpace(filter.Value) == false - ? filter.Value - : _fallbackGuidValue; + return false; + } - switch (filter.Operator) - { - case FilterOperation.Is: - queryOperation.And().Field(filter.FieldName, - (IExamineValue)new ExamineValue(Examineness.Explicit, - value)); // TODO: doesn't work for explicit word(s) match - break; - case FilterOperation.IsNot: - queryOperation.Not().Field(filter.FieldName, - (IExamineValue)new ExamineValue(Examineness.Explicit, - value)); // TODO: doesn't work for explicit word(s) match - break; - // TODO: Fix - case FilterOperation.Contains: - break; - // TODO: Fix - case FilterOperation.DoesNotContain: - break; - default: - continue; - } + var value = string.IsNullOrWhiteSpace(filter.Value) == false + ? filter.Value + : _fallbackGuidValue; + + switch (filter.Operator) + { + case FilterOperation.Is: + queryOperation.And().Field(filter.FieldName, + (IExamineValue)new ExamineValue(Examineness.Explicit, + value)); // TODO: doesn't work for explicit word(s) match + break; + case FilterOperation.IsNot: + queryOperation.Not().Field(filter.FieldName, + (IExamineValue)new ExamineValue(Examineness.Explicit, + value)); // TODO: doesn't work for explicit word(s) match + break; + // TODO: Fix + case FilterOperation.Contains: + break; + // TODO: Fix + case FilterOperation.DoesNotContain: + break; + default: + continue; } } + + return true; } private IOrdering? HandleSorting(IEnumerable sorts, IBooleanOperation queryCriteria) @@ -150,7 +188,7 @@ internal sealed class ApiContentQueryService : IApiContentQueryService // Examin if (sort is null) { - continue; + return null; } SortType sortType = sort.FieldType switch @@ -170,13 +208,7 @@ internal sealed class ApiContentQueryService : IApiContentQueryService // Examin }; } - return orderingQuery; - } - - private IOrdering? DefaultSort(IBooleanOperation queryCriteria) - { - var defaultSorts = new[] { $"{PathSortIndexer.FieldName}:asc", $"{SortOrderSortIndexer.FieldName}:asc" }; - - return HandleSorting(defaultSorts, queryCriteria); + // Keep the index sorting as default + return orderingQuery ?? queryCriteria.OrderBy(); } } diff --git a/src/Umbraco.Cms.Api.Management/DependencyInjection/TrackedReferencesBuilderExtensions.cs b/src/Umbraco.Cms.Api.Management/DependencyInjection/TrackedReferencesBuilderExtensions.cs index 2ff1fa14e4..9bb387d2f4 100644 --- a/src/Umbraco.Cms.Api.Management/DependencyInjection/TrackedReferencesBuilderExtensions.cs +++ b/src/Umbraco.Cms.Api.Management/DependencyInjection/TrackedReferencesBuilderExtensions.cs @@ -4,7 +4,7 @@ using Umbraco.Cms.Api.Management.Mapping.Relation; using Umbraco.Cms.Api.Management.Mapping.TrackedReferences; using Umbraco.Cms.Core.DependencyInjection; using Umbraco.Cms.Core.Mapping; -using Umbraco.New.Cms.Infrastructure.Persistence.Mappers; +using Umbraco.Cms.Infrastructure.Mapping; namespace Umbraco.Cms.Api.Management.DependencyInjection; diff --git a/src/Umbraco.Core/DeliveryApi/Accessors/NoopOutputExpansionStrategyAccessor.cs b/src/Umbraco.Core/DeliveryApi/Accessors/NoopOutputExpansionStrategyAccessor.cs index 4ae4a19260..4b4aad50c0 100644 --- a/src/Umbraco.Core/DeliveryApi/Accessors/NoopOutputExpansionStrategyAccessor.cs +++ b/src/Umbraco.Core/DeliveryApi/Accessors/NoopOutputExpansionStrategyAccessor.cs @@ -2,7 +2,7 @@ namespace Umbraco.Cms.Core.DeliveryApi.Accessors; -public class NoopOutputExpansionStrategyAccessor : IOutputExpansionStrategyAccessor +public sealed class NoopOutputExpansionStrategyAccessor : IOutputExpansionStrategyAccessor { public bool TryGetValue([NotNullWhen(true)] out IOutputExpansionStrategy? outputExpansionStrategy) { diff --git a/src/Umbraco.Core/DeliveryApi/ApiContentBuilder.cs b/src/Umbraco.Core/DeliveryApi/ApiContentBuilder.cs index 2082da3a2a..11ea4faf77 100644 --- a/src/Umbraco.Core/DeliveryApi/ApiContentBuilder.cs +++ b/src/Umbraco.Core/DeliveryApi/ApiContentBuilder.cs @@ -3,7 +3,7 @@ using Umbraco.Cms.Core.Models.PublishedContent; namespace Umbraco.Cms.Core.DeliveryApi; -public class ApiContentBuilder : ApiContentBuilderBase, IApiContentBuilder +public sealed class ApiContentBuilder : ApiContentBuilderBase, IApiContentBuilder { public ApiContentBuilder(IApiContentNameProvider apiContentNameProvider, IApiContentRouteBuilder apiContentRouteBuilder, IOutputExpansionStrategyAccessor outputExpansionStrategyAccessor) : base(apiContentNameProvider, apiContentRouteBuilder, outputExpansionStrategyAccessor) diff --git a/src/Umbraco.Core/DeliveryApi/ApiContentNameProvider.cs b/src/Umbraco.Core/DeliveryApi/ApiContentNameProvider.cs index f1fa370027..ec4d37ad1e 100644 --- a/src/Umbraco.Core/DeliveryApi/ApiContentNameProvider.cs +++ b/src/Umbraco.Core/DeliveryApi/ApiContentNameProvider.cs @@ -2,7 +2,7 @@ using Umbraco.Cms.Core.Models.PublishedContent; namespace Umbraco.Cms.Core.DeliveryApi; -public class ApiContentNameProvider : IApiContentNameProvider +public sealed class ApiContentNameProvider : IApiContentNameProvider { public string GetName(IPublishedContent content) => content.Name; } diff --git a/src/Umbraco.Core/DeliveryApi/ApiContentResponseBuilder.cs b/src/Umbraco.Core/DeliveryApi/ApiContentResponseBuilder.cs index 0e475aef71..dfa93e55d0 100644 --- a/src/Umbraco.Core/DeliveryApi/ApiContentResponseBuilder.cs +++ b/src/Umbraco.Core/DeliveryApi/ApiContentResponseBuilder.cs @@ -4,7 +4,7 @@ using Umbraco.Extensions; namespace Umbraco.Cms.Core.DeliveryApi; -public class ApiContentResponseBuilder : ApiContentBuilderBase, IApiContentResponseBuilder +public sealed class ApiContentResponseBuilder : ApiContentBuilderBase, IApiContentResponseBuilder { private readonly IApiContentRouteBuilder _apiContentRouteBuilder; diff --git a/src/Umbraco.Core/DeliveryApi/ApiContentRouteBuilder.cs b/src/Umbraco.Core/DeliveryApi/ApiContentRouteBuilder.cs index 7fe6aec063..34146bf5cf 100644 --- a/src/Umbraco.Core/DeliveryApi/ApiContentRouteBuilder.cs +++ b/src/Umbraco.Core/DeliveryApi/ApiContentRouteBuilder.cs @@ -2,21 +2,28 @@ using Umbraco.Cms.Core.Configuration.Models; using Umbraco.Cms.Core.Models.DeliveryApi; using Umbraco.Cms.Core.Models.PublishedContent; +using Umbraco.Cms.Core.PublishedCache; using Umbraco.Cms.Core.Routing; using Umbraco.Extensions; namespace Umbraco.Cms.Core.DeliveryApi; -public class ApiContentRouteBuilder : IApiContentRouteBuilder +public sealed class ApiContentRouteBuilder : IApiContentRouteBuilder { private readonly IPublishedUrlProvider _publishedUrlProvider; private readonly GlobalSettings _globalSettings; private readonly IVariationContextAccessor _variationContextAccessor; + private readonly IPublishedSnapshotAccessor _publishedSnapshotAccessor; - public ApiContentRouteBuilder(IPublishedUrlProvider publishedUrlProvider, IOptions globalSettings, IVariationContextAccessor variationContextAccessor) + public ApiContentRouteBuilder( + IPublishedUrlProvider publishedUrlProvider, + IOptions globalSettings, + IVariationContextAccessor variationContextAccessor, + IPublishedSnapshotAccessor publishedSnapshotAccessor) { _publishedUrlProvider = publishedUrlProvider; _variationContextAccessor = variationContextAccessor; + _publishedSnapshotAccessor = publishedSnapshotAccessor; _globalSettings = globalSettings.Value; } @@ -30,8 +37,17 @@ public class ApiContentRouteBuilder : IApiContentRouteBuilder IPublishedContent root = content.Root(); var rootPath = root.UrlSegment(_variationContextAccessor, culture) ?? string.Empty; - var contentPath = _publishedUrlProvider.GetUrl(content, UrlMode.Relative, culture).EnsureStartsWith("/"); + var contentPath = _publishedUrlProvider.GetUrl(content, UrlMode.Relative, culture); + // in some scenarios the published content is actually routable, but due to the built-in handling of i.e. lacking culture setup + // the URL provider resolves the content URL as empty string or "#". since the Delivery API handles routing explicitly, + // we can perform fallback to the content route. + if (contentPath.IsNullOrWhiteSpace() || "#".Equals(contentPath)) + { + contentPath = _publishedSnapshotAccessor.GetRequiredPublishedSnapshot().Content?.GetRouteById(content.Id, culture) ?? contentPath; + } + + contentPath = contentPath.EnsureStartsWith("/"); if (_globalSettings.HideTopLevelNodeFromPath == false) { contentPath = contentPath.TrimStart(rootPath.EnsureStartsWith("/")).EnsureStartsWith("/"); diff --git a/src/Umbraco.Core/DeliveryApi/ApiElementBuilder.cs b/src/Umbraco.Core/DeliveryApi/ApiElementBuilder.cs index b2f81b2c9a..c24dde469a 100644 --- a/src/Umbraco.Core/DeliveryApi/ApiElementBuilder.cs +++ b/src/Umbraco.Core/DeliveryApi/ApiElementBuilder.cs @@ -3,7 +3,7 @@ using Umbraco.Cms.Core.Models.PublishedContent; namespace Umbraco.Cms.Core.DeliveryApi; -public class ApiElementBuilder : IApiElementBuilder +public sealed class ApiElementBuilder : IApiElementBuilder { private readonly IOutputExpansionStrategyAccessor _outputExpansionStrategyAccessor; diff --git a/src/Umbraco.Core/DeliveryApi/ApiMediaBuilder.cs b/src/Umbraco.Core/DeliveryApi/ApiMediaBuilder.cs index 53a0968ea0..81c894a635 100644 --- a/src/Umbraco.Core/DeliveryApi/ApiMediaBuilder.cs +++ b/src/Umbraco.Core/DeliveryApi/ApiMediaBuilder.cs @@ -3,7 +3,7 @@ using Umbraco.Cms.Core.Models.PublishedContent; namespace Umbraco.Cms.Core.DeliveryApi; -public class ApiMediaBuilder : IApiMediaBuilder +public sealed class ApiMediaBuilder : IApiMediaBuilder { private readonly IApiContentNameProvider _apiContentNameProvider; private readonly IApiMediaUrlProvider _apiMediaUrlProvider; diff --git a/src/Umbraco.Core/DeliveryApi/ApiMediaUrlProvider.cs b/src/Umbraco.Core/DeliveryApi/ApiMediaUrlProvider.cs index 4bf3ec9a28..20373b1d3b 100644 --- a/src/Umbraco.Core/DeliveryApi/ApiMediaUrlProvider.cs +++ b/src/Umbraco.Core/DeliveryApi/ApiMediaUrlProvider.cs @@ -3,7 +3,7 @@ using Umbraco.Cms.Core.Routing; namespace Umbraco.Cms.Core.DeliveryApi; -public class ApiMediaUrlProvider : IApiMediaUrlProvider +public sealed class ApiMediaUrlProvider : IApiMediaUrlProvider { private readonly IPublishedUrlProvider _publishedUrlProvider; diff --git a/src/Umbraco.Core/DeliveryApi/ApiPublishedContentCache.cs b/src/Umbraco.Core/DeliveryApi/ApiPublishedContentCache.cs index db45ed74eb..5c138dbf7e 100644 --- a/src/Umbraco.Core/DeliveryApi/ApiPublishedContentCache.cs +++ b/src/Umbraco.Core/DeliveryApi/ApiPublishedContentCache.cs @@ -6,7 +6,7 @@ using Umbraco.Extensions; namespace Umbraco.Cms.Core.DeliveryApi; -public class ApiPublishedContentCache : IApiPublishedContentCache +public sealed class ApiPublishedContentCache : IApiPublishedContentCache { private readonly IPublishedSnapshotAccessor _publishedSnapshotAccessor; private readonly IRequestPreviewService _requestPreviewService; @@ -70,5 +70,5 @@ public class ApiPublishedContentCache : IApiPublishedContentCache : null; private bool IsAllowedContentType(IPublishedContent content) - => _deliveryApiSettings.DisallowedContentTypeAliases.InvariantContains(content.ContentType.Alias) is false; + => _deliveryApiSettings.IsAllowedContentType(content); } diff --git a/src/Umbraco.Core/DeliveryApi/ContentIndexHandlerCollection.cs b/src/Umbraco.Core/DeliveryApi/ContentIndexHandlerCollection.cs index 1186349997..55326102f4 100644 --- a/src/Umbraco.Core/DeliveryApi/ContentIndexHandlerCollection.cs +++ b/src/Umbraco.Core/DeliveryApi/ContentIndexHandlerCollection.cs @@ -2,7 +2,7 @@ namespace Umbraco.Cms.Core.DeliveryApi; -public class ContentIndexHandlerCollection : BuilderCollectionBase +public sealed class ContentIndexHandlerCollection : BuilderCollectionBase { public ContentIndexHandlerCollection(Func> items) : base(items) diff --git a/src/Umbraco.Core/DeliveryApi/ContentIndexHandlerCollectionBuilder.cs b/src/Umbraco.Core/DeliveryApi/ContentIndexHandlerCollectionBuilder.cs index 625cdbf25e..95744d9a23 100644 --- a/src/Umbraco.Core/DeliveryApi/ContentIndexHandlerCollectionBuilder.cs +++ b/src/Umbraco.Core/DeliveryApi/ContentIndexHandlerCollectionBuilder.cs @@ -2,7 +2,7 @@ namespace Umbraco.Cms.Core.DeliveryApi; -public class ContentIndexHandlerCollectionBuilder +public sealed class ContentIndexHandlerCollectionBuilder : LazyCollectionBuilderBase { protected override ContentIndexHandlerCollectionBuilder This => this; diff --git a/src/Umbraco.Core/DeliveryApi/FilterHandlerCollection.cs b/src/Umbraco.Core/DeliveryApi/FilterHandlerCollection.cs index 73b4dda3a6..97bdae9619 100644 --- a/src/Umbraco.Core/DeliveryApi/FilterHandlerCollection.cs +++ b/src/Umbraco.Core/DeliveryApi/FilterHandlerCollection.cs @@ -2,7 +2,7 @@ using Umbraco.Cms.Core.Composing; namespace Umbraco.Cms.Core.DeliveryApi; -public class FilterHandlerCollection : BuilderCollectionBase +public sealed class FilterHandlerCollection : BuilderCollectionBase { public FilterHandlerCollection(Func> items) : base(items) diff --git a/src/Umbraco.Core/DeliveryApi/FilterHandlerCollectionBuilder.cs b/src/Umbraco.Core/DeliveryApi/FilterHandlerCollectionBuilder.cs index 118b49dfee..76adbfa21e 100644 --- a/src/Umbraco.Core/DeliveryApi/FilterHandlerCollectionBuilder.cs +++ b/src/Umbraco.Core/DeliveryApi/FilterHandlerCollectionBuilder.cs @@ -2,7 +2,7 @@ using Umbraco.Cms.Core.Composing; namespace Umbraco.Cms.Core.DeliveryApi; -public class FilterHandlerCollectionBuilder +public sealed class FilterHandlerCollectionBuilder : LazyCollectionBuilderBase { protected override FilterHandlerCollectionBuilder This => this; diff --git a/src/Umbraco.Core/DeliveryApi/FilterOption.cs b/src/Umbraco.Core/DeliveryApi/FilterOption.cs index 7f0a979501..5bc3ef0df4 100644 --- a/src/Umbraco.Core/DeliveryApi/FilterOption.cs +++ b/src/Umbraco.Core/DeliveryApi/FilterOption.cs @@ -1,6 +1,6 @@ namespace Umbraco.Cms.Core.DeliveryApi; -public class FilterOption +public sealed class FilterOption { public required string FieldName { get; set; } diff --git a/src/Umbraco.Core/DeliveryApi/IApiContentQueryService.cs b/src/Umbraco.Core/DeliveryApi/IApiContentQueryService.cs index 142cd4734f..e026264ba2 100644 --- a/src/Umbraco.Core/DeliveryApi/IApiContentQueryService.cs +++ b/src/Umbraco.Core/DeliveryApi/IApiContentQueryService.cs @@ -1,3 +1,4 @@ +using Umbraco.Cms.Core.Services.OperationStatus; using Umbraco.New.Cms.Core.Models; namespace Umbraco.Cms.Core.DeliveryApi; @@ -8,13 +9,13 @@ namespace Umbraco.Cms.Core.DeliveryApi; public interface IApiContentQueryService { /// - /// Returns a collection of item ids that passed the search criteria as a paged model. + /// Returns an attempt with a collection of item ids that passed the search criteria as a paged model. /// /// Optional fetch query parameter value. /// Optional filter query parameters values. /// Optional sort query parameters values. /// The amount of items to skip. /// The amount of items to take. - /// A paged model of item ids that are returned after applying the search queries. - PagedModel ExecuteQuery(string? fetch, IEnumerable filters, IEnumerable sorts, int skip, int take); + /// A paged model of item ids that are returned after applying the search queries in an attempt. + Attempt, ApiContentQueryOperationStatus> ExecuteQuery(string? fetch, IEnumerable filters, IEnumerable sorts, int skip, int take); } diff --git a/src/Umbraco.Core/DeliveryApi/IndexField.cs b/src/Umbraco.Core/DeliveryApi/IndexField.cs index ff102d1f2c..2df9005131 100644 --- a/src/Umbraco.Core/DeliveryApi/IndexField.cs +++ b/src/Umbraco.Core/DeliveryApi/IndexField.cs @@ -1,6 +1,6 @@ namespace Umbraco.Cms.Core.DeliveryApi; -public class IndexField +public sealed class IndexField { public required string FieldName { get; set; } diff --git a/src/Umbraco.Core/DeliveryApi/IndexFieldValue.cs b/src/Umbraco.Core/DeliveryApi/IndexFieldValue.cs index ab3e5bd6db..1e76eff4df 100644 --- a/src/Umbraco.Core/DeliveryApi/IndexFieldValue.cs +++ b/src/Umbraco.Core/DeliveryApi/IndexFieldValue.cs @@ -1,6 +1,6 @@ namespace Umbraco.Cms.Core.DeliveryApi; -public class IndexFieldValue +public sealed class IndexFieldValue { public required string FieldName { get; set; } diff --git a/src/Umbraco.Core/DeliveryApi/NoopApiContentQueryService.cs b/src/Umbraco.Core/DeliveryApi/NoopApiContentQueryService.cs index f95aa8a06e..96c60eeae7 100644 --- a/src/Umbraco.Core/DeliveryApi/NoopApiContentQueryService.cs +++ b/src/Umbraco.Core/DeliveryApi/NoopApiContentQueryService.cs @@ -1,3 +1,4 @@ +using Umbraco.Cms.Core.Services.OperationStatus; using Umbraco.New.Cms.Core.Models; namespace Umbraco.Cms.Core.DeliveryApi; @@ -5,6 +6,6 @@ namespace Umbraco.Cms.Core.DeliveryApi; public sealed class NoopApiContentQueryService : IApiContentQueryService { /// - public PagedModel ExecuteQuery(string? fetch, IEnumerable filters, IEnumerable sorts, int skip, int take) - => new(); + public Attempt, ApiContentQueryOperationStatus> ExecuteQuery(string? fetch, IEnumerable filters, IEnumerable sorts, int skip, int take) + => Attempt.SucceedWithStatus(ApiContentQueryOperationStatus.Success, new PagedModel()); } diff --git a/src/Umbraco.Core/DeliveryApi/SelectorHandlerCollection.cs b/src/Umbraco.Core/DeliveryApi/SelectorHandlerCollection.cs index ee97e2e187..06943c3a35 100644 --- a/src/Umbraco.Core/DeliveryApi/SelectorHandlerCollection.cs +++ b/src/Umbraco.Core/DeliveryApi/SelectorHandlerCollection.cs @@ -2,7 +2,7 @@ using Umbraco.Cms.Core.Composing; namespace Umbraco.Cms.Core.DeliveryApi; -public class SelectorHandlerCollection : BuilderCollectionBase +public sealed class SelectorHandlerCollection : BuilderCollectionBase { public SelectorHandlerCollection(Func> items) : base(items) diff --git a/src/Umbraco.Core/DeliveryApi/SelectorHandlerCollectionBuilder.cs b/src/Umbraco.Core/DeliveryApi/SelectorHandlerCollectionBuilder.cs index 0af9550915..164da26966 100644 --- a/src/Umbraco.Core/DeliveryApi/SelectorHandlerCollectionBuilder.cs +++ b/src/Umbraco.Core/DeliveryApi/SelectorHandlerCollectionBuilder.cs @@ -2,7 +2,7 @@ using Umbraco.Cms.Core.Composing; namespace Umbraco.Cms.Core.DeliveryApi; -public class SelectorHandlerCollectionBuilder +public sealed class SelectorHandlerCollectionBuilder : LazyCollectionBuilderBase { protected override SelectorHandlerCollectionBuilder This => this; diff --git a/src/Umbraco.Core/DeliveryApi/SelectorOption.cs b/src/Umbraco.Core/DeliveryApi/SelectorOption.cs index 547267983d..07620032ec 100644 --- a/src/Umbraco.Core/DeliveryApi/SelectorOption.cs +++ b/src/Umbraco.Core/DeliveryApi/SelectorOption.cs @@ -1,6 +1,6 @@ namespace Umbraco.Cms.Core.DeliveryApi; -public class SelectorOption +public sealed class SelectorOption { public required string FieldName { get; set; } diff --git a/src/Umbraco.Core/DeliveryApi/SortHandlerCollection.cs b/src/Umbraco.Core/DeliveryApi/SortHandlerCollection.cs index 8878c6336d..77b649d387 100644 --- a/src/Umbraco.Core/DeliveryApi/SortHandlerCollection.cs +++ b/src/Umbraco.Core/DeliveryApi/SortHandlerCollection.cs @@ -2,7 +2,7 @@ using Umbraco.Cms.Core.Composing; namespace Umbraco.Cms.Core.DeliveryApi; -public class SortHandlerCollection : BuilderCollectionBase +public sealed class SortHandlerCollection : BuilderCollectionBase { public SortHandlerCollection(Func> items) : base(items) diff --git a/src/Umbraco.Core/DeliveryApi/SortHandlerCollectionBuilder.cs b/src/Umbraco.Core/DeliveryApi/SortHandlerCollectionBuilder.cs index 767d5e59a6..be4189989a 100644 --- a/src/Umbraco.Core/DeliveryApi/SortHandlerCollectionBuilder.cs +++ b/src/Umbraco.Core/DeliveryApi/SortHandlerCollectionBuilder.cs @@ -2,7 +2,7 @@ using Umbraco.Cms.Core.Composing; namespace Umbraco.Cms.Core.DeliveryApi; -public class SortHandlerCollectionBuilder +public sealed class SortHandlerCollectionBuilder : LazyCollectionBuilderBase { protected override SortHandlerCollectionBuilder This => this; diff --git a/src/Umbraco.Core/DeliveryApi/SortOption.cs b/src/Umbraco.Core/DeliveryApi/SortOption.cs index 5c1ee79418..81670b5641 100644 --- a/src/Umbraco.Core/DeliveryApi/SortOption.cs +++ b/src/Umbraco.Core/DeliveryApi/SortOption.cs @@ -1,6 +1,6 @@ namespace Umbraco.Cms.Core.DeliveryApi; -public class SortOption +public sealed class SortOption { public required string FieldName { get; set; } diff --git a/src/Umbraco.Core/EmbeddedResources/Lang/da.xml b/src/Umbraco.Core/EmbeddedResources/Lang/da.xml index 564f500b6b..50e4667078 100644 --- a/src/Umbraco.Core/EmbeddedResources/Lang/da.xml +++ b/src/Umbraco.Core/EmbeddedResources/Lang/da.xml @@ -2232,7 +2232,7 @@ Mange hilsner fra Umbraco robotten Vælg de forskellige antal kolonner denne blok må optage i layoutet. Dette forhindre ikke blokken i at optræde i et mindre område. TIlgængelige række-størrelser Vælg hvor mange rækker denne blok på optage i layoutet. - Tillad på rodniveay + Tillad på rodniveau Gør denne blok tilgængelig i layoutets rodniveau. Hvis dette ikke er valgt, kan denne blok kun bruges inden for andre blokkes definerede områder. Blok-områder Layout-kolonner @@ -2240,7 +2240,7 @@ Mange hilsner fra Umbraco robotten Opsætning af områder Hvis det skal være muligt at indsætte nye blokke indeni denne blok, skal der oprettes ét eller flere områder til at indsætte de nye blokke i. Ikke tilladt placering. - Standart layout stylesheet + Standardlayout stylesheet Ikke tilladt indhold blev afvist diff --git a/src/Umbraco.Core/EmbeddedResources/Lang/sv.xml b/src/Umbraco.Core/EmbeddedResources/Lang/sv.xml index 3d89a94af1..ec52c0343c 100644 --- a/src/Umbraco.Core/EmbeddedResources/Lang/sv.xml +++ b/src/Umbraco.Core/EmbeddedResources/Lang/sv.xml @@ -134,7 +134,7 @@ Spara och skicka för godkännande Schemaläggning Välj - Förhandsgranska + Spara och förhandsgranska Förhandsgranskning är avstängt på grund av att det inte finns någon mall tilldelad Gör något annat Välj stil diff --git a/src/Umbraco.Core/Extensions/DeliveryApiSettingsExtensions.cs b/src/Umbraco.Core/Extensions/DeliveryApiSettingsExtensions.cs new file mode 100644 index 0000000000..f0e35f0d6e --- /dev/null +++ b/src/Umbraco.Core/Extensions/DeliveryApiSettingsExtensions.cs @@ -0,0 +1,19 @@ +using Umbraco.Cms.Core.Configuration.Models; +using Umbraco.Cms.Core.Models.PublishedContent; + +namespace Umbraco.Extensions; + +public static class DeliveryApiSettingsExtensions +{ + public static bool IsAllowedContentType(this DeliveryApiSettings settings, IPublishedContent content) + => settings.IsAllowedContentType(content.ContentType.Alias); + + public static bool IsDisallowedContentType(this DeliveryApiSettings settings, IPublishedContent content) + => settings.IsDisallowedContentType(content.ContentType.Alias); + + public static bool IsAllowedContentType(this DeliveryApiSettings settings, string contentTypeAlias) + => settings.IsDisallowedContentType(contentTypeAlias) is false; + + public static bool IsDisallowedContentType(this DeliveryApiSettings settings, string contentTypeAlias) + => settings.DisallowedContentTypeAliases.InvariantContains(contentTypeAlias); +} diff --git a/src/Umbraco.Core/Models/ContentEditing/MemberBasic.cs b/src/Umbraco.Core/Models/ContentEditing/MemberBasic.cs index 7ef1ce5f72..49eaf51eb5 100644 --- a/src/Umbraco.Core/Models/ContentEditing/MemberBasic.cs +++ b/src/Umbraco.Core/Models/ContentEditing/MemberBasic.cs @@ -13,6 +13,24 @@ public class MemberBasic : ContentItemBasic [DataMember(Name = "email")] public string? Email { get; set; } + [DataMember(Name = "failedPasswordAttempts")] + public int FailedPasswordAttempts { get; set; } + + [DataMember(Name = "approved")] + public bool Approved { get; set; } + + [DataMember(Name = "lockedOut")] + public bool LockedOut { get; set; } + + [DataMember(Name = "lastLockoutDate")] + public DateTime? LastLockoutDate { get; set; } + + [DataMember(Name = "lastLoginDate")] + public DateTime? LastLoginDate { get; set; } + + [DataMember(Name = "lastPasswordChangeDate")] + public DateTime? LastPasswordChangeDate { get; set; } + [DataMember(Name = "properties")] public override IEnumerable Properties { diff --git a/src/Umbraco.Core/Models/DeliveryApi/ApiBlockGridArea.cs b/src/Umbraco.Core/Models/DeliveryApi/ApiBlockGridArea.cs index 96855849ef..c3ac9155f0 100644 --- a/src/Umbraco.Core/Models/DeliveryApi/ApiBlockGridArea.cs +++ b/src/Umbraco.Core/Models/DeliveryApi/ApiBlockGridArea.cs @@ -1,6 +1,6 @@ namespace Umbraco.Cms.Core.Models.DeliveryApi; -public class ApiBlockGridArea +public sealed class ApiBlockGridArea { public ApiBlockGridArea(string alias, int rowSpan, int columnSpan, IEnumerable items) { diff --git a/src/Umbraco.Core/Models/DeliveryApi/ApiBlockGridItem.cs b/src/Umbraco.Core/Models/DeliveryApi/ApiBlockGridItem.cs index 4e84c06f01..8bb026e5df 100644 --- a/src/Umbraco.Core/Models/DeliveryApi/ApiBlockGridItem.cs +++ b/src/Umbraco.Core/Models/DeliveryApi/ApiBlockGridItem.cs @@ -1,6 +1,6 @@ namespace Umbraco.Cms.Core.Models.DeliveryApi; -public class ApiBlockGridItem : ApiBlockItem +public sealed class ApiBlockGridItem : ApiBlockItem { public ApiBlockGridItem(IApiElement content, IApiElement? settings, int rowSpan, int columnSpan, int areaGridColumns, IEnumerable areas) : base(content, settings) diff --git a/src/Umbraco.Core/Models/DeliveryApi/ApiBlockGridModel.cs b/src/Umbraco.Core/Models/DeliveryApi/ApiBlockGridModel.cs index 2b1887b18d..9fcd280082 100644 --- a/src/Umbraco.Core/Models/DeliveryApi/ApiBlockGridModel.cs +++ b/src/Umbraco.Core/Models/DeliveryApi/ApiBlockGridModel.cs @@ -1,6 +1,6 @@ namespace Umbraco.Cms.Core.Models.DeliveryApi; -public class ApiBlockGridModel +public sealed class ApiBlockGridModel { public ApiBlockGridModel(int gridColumns, IEnumerable items) { diff --git a/src/Umbraco.Core/Models/DeliveryApi/ApiBlockListModel.cs b/src/Umbraco.Core/Models/DeliveryApi/ApiBlockListModel.cs index caa0002899..8cf64909a5 100644 --- a/src/Umbraco.Core/Models/DeliveryApi/ApiBlockListModel.cs +++ b/src/Umbraco.Core/Models/DeliveryApi/ApiBlockListModel.cs @@ -1,6 +1,6 @@ namespace Umbraco.Cms.Core.Models.DeliveryApi; -public class ApiBlockListModel +public sealed class ApiBlockListModel { public ApiBlockListModel(IEnumerable items) => Items = items; diff --git a/src/Umbraco.Core/Models/DeliveryApi/ApiContentRoute.cs b/src/Umbraco.Core/Models/DeliveryApi/ApiContentRoute.cs index 7e15ea6696..45fcaaba4b 100644 --- a/src/Umbraco.Core/Models/DeliveryApi/ApiContentRoute.cs +++ b/src/Umbraco.Core/Models/DeliveryApi/ApiContentRoute.cs @@ -1,6 +1,6 @@ namespace Umbraco.Cms.Core.Models.DeliveryApi; -public class ApiContentRoute : IApiContentRoute +public sealed class ApiContentRoute : IApiContentRoute { public ApiContentRoute(string path, ApiContentStartItem startItem) { diff --git a/src/Umbraco.Core/Models/DeliveryApi/ApiContentStartItem.cs b/src/Umbraco.Core/Models/DeliveryApi/ApiContentStartItem.cs index 5a7f2b7082..96a9b49642 100644 --- a/src/Umbraco.Core/Models/DeliveryApi/ApiContentStartItem.cs +++ b/src/Umbraco.Core/Models/DeliveryApi/ApiContentStartItem.cs @@ -1,6 +1,6 @@ namespace Umbraco.Cms.Core.Models.DeliveryApi; -public class ApiContentStartItem : IApiContentStartItem +public sealed class ApiContentStartItem : IApiContentStartItem { public ApiContentStartItem(Guid id, string path) { diff --git a/src/Umbraco.Core/Models/DeliveryApi/ApiLink.cs b/src/Umbraco.Core/Models/DeliveryApi/ApiLink.cs index 1b0acef86a..d255f6ab32 100644 --- a/src/Umbraco.Core/Models/DeliveryApi/ApiLink.cs +++ b/src/Umbraco.Core/Models/DeliveryApi/ApiLink.cs @@ -1,6 +1,6 @@ namespace Umbraco.Cms.Core.Models.DeliveryApi; -public class ApiLink +public sealed class ApiLink { public static ApiLink Content(string title, string? target, Guid destinationId, string destinationType, IApiContentRoute route) => new(LinkType.Content, null, title, target, destinationId, destinationType, route); diff --git a/src/Umbraco.Core/Models/DeliveryApi/ApiMedia.cs b/src/Umbraco.Core/Models/DeliveryApi/ApiMedia.cs index 7ad66f313e..df076f50a3 100644 --- a/src/Umbraco.Core/Models/DeliveryApi/ApiMedia.cs +++ b/src/Umbraco.Core/Models/DeliveryApi/ApiMedia.cs @@ -1,6 +1,6 @@ namespace Umbraco.Cms.Core.Models.DeliveryApi; -public class ApiMedia : IApiMedia +public sealed class ApiMedia : IApiMedia { public ApiMedia(Guid id, string name, string mediaType, string url, IDictionary properties) { diff --git a/src/Umbraco.Core/Models/DeliveryApi/RichTextElement.cs b/src/Umbraco.Core/Models/DeliveryApi/RichTextElement.cs index 3f33b4364f..b3d06be98c 100644 --- a/src/Umbraco.Core/Models/DeliveryApi/RichTextElement.cs +++ b/src/Umbraco.Core/Models/DeliveryApi/RichTextElement.cs @@ -1,6 +1,6 @@ namespace Umbraco.Cms.Core.Models.DeliveryApi; -public class RichTextElement +public sealed class RichTextElement { public RichTextElement(string tag, string text, Dictionary attributes, IEnumerable elements) { diff --git a/src/Umbraco.Core/Security/AuthenticationExtensions.cs b/src/Umbraco.Core/Security/AuthenticationExtensions.cs index 2b8294e8db..7e66a05b2e 100644 --- a/src/Umbraco.Core/Security/AuthenticationExtensions.cs +++ b/src/Umbraco.Core/Security/AuthenticationExtensions.cs @@ -7,26 +7,56 @@ using System.Security.Principal; namespace Umbraco.Extensions; +/// +/// Extension methods for . +/// public static class AuthenticationExtensions { /// - /// Ensures that the thread culture is set based on the back office user's culture + /// Ensures that the thread culture is set based on the back office user's culture. /// + /// The identity. public static void EnsureCulture(this IIdentity identity) { CultureInfo? culture = GetCulture(identity); - if (!(culture is null)) + if (culture is not null) { Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture = culture; } } + /// + /// Gets the culture string from the back office user. + /// + /// The identity. + /// + /// The culture string. + /// + public static string? GetCultureString(this IIdentity identity) + { + if (identity is ClaimsIdentity umbIdentity && + umbIdentity.VerifyBackOfficeIdentity(out _) && + umbIdentity.IsAuthenticated) + { + return umbIdentity.GetCultureString(); + } + + return null; + } + + /// + /// Gets the culture from the back office user. + /// + /// The identity. + /// + /// The culture. + /// public static CultureInfo? GetCulture(this IIdentity identity) { - if (identity is ClaimsIdentity umbIdentity && umbIdentity.VerifyBackOfficeIdentity(out _) && - umbIdentity.IsAuthenticated && umbIdentity.GetCultureString() is not null) + string? culture = identity.GetCultureString(); + if (!string.IsNullOrEmpty(culture)) { - return CultureInfo.GetCultureInfo(umbIdentity.GetCultureString()!); + return CultureInfo.GetCultureInfo(culture); } return null; diff --git a/src/Umbraco.Core/Services/OperationStatus/ApiContentQueryOperationStatus.cs b/src/Umbraco.Core/Services/OperationStatus/ApiContentQueryOperationStatus.cs new file mode 100644 index 0000000000..0c3c859070 --- /dev/null +++ b/src/Umbraco.Core/Services/OperationStatus/ApiContentQueryOperationStatus.cs @@ -0,0 +1,10 @@ +namespace Umbraco.Cms.Core.Services.OperationStatus; + +public enum ApiContentQueryOperationStatus +{ + Success, + FilterOptionNotFound, + IndexNotFound, + SelectorOptionNotFound, + SortOptionNotFound +} diff --git a/src/Umbraco.Examine.Lucene/DeliveryApiContentIndex.cs b/src/Umbraco.Examine.Lucene/DeliveryApiContentIndex.cs index a9b4ae3bd6..3a7f31f32c 100644 --- a/src/Umbraco.Examine.Lucene/DeliveryApiContentIndex.cs +++ b/src/Umbraco.Examine.Lucene/DeliveryApiContentIndex.cs @@ -1,3 +1,4 @@ +using Examine; using Examine.Lucene; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; @@ -6,7 +7,7 @@ using Umbraco.Cms.Core.Services; namespace Umbraco.Cms.Infrastructure.Examine; -public class DeliveryApiContentIndex : UmbracoExamineIndex +public class DeliveryApiContentIndex : UmbracoContentIndexBase { public DeliveryApiContentIndex( ILoggerFactory loggerFactory, @@ -16,5 +17,13 @@ public class DeliveryApiContentIndex : UmbracoExamineIndex IRuntimeState runtimeState) : base(loggerFactory, name, indexOptions, hostingEnvironment, runtimeState) { + PublishedValuesOnly = true; + EnableDefaultEventHandler = true; + } + + protected override void OnTransformingIndexValues(IndexingItemEventArgs e) + { + // UmbracoExamineIndex (base class down the hierarchy) performs some magic transformations here for paths and icons; + // we don't want that for the Delivery API, so we'll have to override this method and simply do nothing. } } diff --git a/src/Umbraco.Examine.Lucene/UmbracoContentIndex.cs b/src/Umbraco.Examine.Lucene/UmbracoContentIndex.cs index 7aa2eea5fc..9bd6b76dc7 100644 --- a/src/Umbraco.Examine.Lucene/UmbracoContentIndex.cs +++ b/src/Umbraco.Examine.Lucene/UmbracoContentIndex.cs @@ -3,7 +3,6 @@ using Examine; using Examine.Lucene; -using Examine.Search; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Umbraco.Cms.Core.Hosting; @@ -14,11 +13,8 @@ namespace Umbraco.Cms.Infrastructure.Examine; /// /// An indexer for Umbraco content and media /// -public class UmbracoContentIndex : UmbracoExamineIndex, IUmbracoContentIndex +public class UmbracoContentIndex : UmbracoContentIndexBase, IUmbracoContentIndex { - private readonly ISet _idOnlyFieldSet = new HashSet { "id" }; - private readonly ILogger _logger; - public UmbracoContentIndex( ILoggerFactory loggerFactory, string name, @@ -29,7 +25,6 @@ public class UmbracoContentIndex : UmbracoExamineIndex, IUmbracoContentIndex : base(loggerFactory, name, indexOptions, hostingEnvironment, runtimeState) { LanguageService = languageService; - _logger = loggerFactory.CreateLogger(); LuceneDirectoryIndexOptions namedOptions = indexOptions.Get(name); if (namedOptions == null) @@ -109,43 +104,4 @@ public class UmbracoContentIndex : UmbracoExamineIndex, IUmbracoContentIndex onComplete(new IndexOperationEventArgs(this, 0)); } } - - /// - /// - /// Deletes a node from the index. - /// - /// - /// When a content node is deleted, we also need to delete it's children from the index so we need to perform a - /// custom Lucene search to find all decendents and create Delete item queues for them too. - /// - /// ID of the node to delete - /// - protected override void PerformDeleteFromIndex(IEnumerable itemIds, Action? onComplete) - { - var idsAsList = itemIds.ToList(); - - for (var i = 0; i < idsAsList.Count; i++) - { - var nodeId = idsAsList[i]; - - //find all descendants based on path - var descendantPath = $@"\-1\,*{nodeId}\,*"; - var rawQuery = $"{UmbracoExamineFieldNames.IndexPathFieldName}:{descendantPath}"; - IQuery? c = Searcher.CreateQuery(); - IBooleanOperation? filtered = c.NativeQuery(rawQuery); - IOrdering? selectedFields = filtered.SelectFields(_idOnlyFieldSet); - ISearchResults? results = selectedFields.Execute(); - - _logger.LogDebug("DeleteFromIndex with query: {Query} (found {TotalItems} results)", rawQuery, results.TotalItemCount); - - var toRemove = results.Select(x => x.Id).ToList(); - // delete those descendants (ensure base. is used here so we aren't calling ourselves!) - base.PerformDeleteFromIndex(toRemove, null); - - // remove any ids from our list that were part of the descendants - idsAsList.RemoveAll(x => toRemove.Contains(x)); - } - - base.PerformDeleteFromIndex(idsAsList, onComplete); - } } diff --git a/src/Umbraco.Examine.Lucene/UmbracoContentIndexBase.cs b/src/Umbraco.Examine.Lucene/UmbracoContentIndexBase.cs new file mode 100644 index 0000000000..813d4cc8f6 --- /dev/null +++ b/src/Umbraco.Examine.Lucene/UmbracoContentIndexBase.cs @@ -0,0 +1,63 @@ +using Examine; +using Examine.Lucene; +using Examine.Search; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; +using Umbraco.Cms.Core.Hosting; +using Umbraco.Cms.Core.Services; + +namespace Umbraco.Cms.Infrastructure.Examine; + +public abstract class UmbracoContentIndexBase : UmbracoExamineIndex +{ + private readonly ISet _idOnlyFieldSet = new HashSet { "id" }; + private readonly ILogger _logger; + + protected UmbracoContentIndexBase( + ILoggerFactory loggerFactory, + string name, + IOptionsMonitor indexOptions, + IHostingEnvironment hostingEnvironment, + IRuntimeState runtimeState) + : base(loggerFactory, name, indexOptions, hostingEnvironment, runtimeState) => + _logger = loggerFactory.CreateLogger(); + + /// + /// + /// Deletes a node from the index. + /// + /// + /// When a content node is deleted, we also need to delete it's children from the index so we need to perform a + /// custom Lucene search to find all decendents and create Delete item queues for them too. + /// + /// ID of the node to delete + /// + protected override void PerformDeleteFromIndex(IEnumerable itemIds, Action? onComplete) + { + var idsAsList = itemIds.ToList(); + + for (var i = 0; i < idsAsList.Count; i++) + { + var nodeId = idsAsList[i]; + + //find all descendants based on path + var descendantPath = $@"\-1\,*{nodeId}\,*"; + var rawQuery = $"{UmbracoExamineFieldNames.IndexPathFieldName}:{descendantPath}"; + IQuery? c = Searcher.CreateQuery(); + IBooleanOperation? filtered = c.NativeQuery(rawQuery); + IOrdering? selectedFields = filtered.SelectFields(_idOnlyFieldSet); + ISearchResults? results = selectedFields.Execute(); + + _logger.LogDebug("DeleteFromIndex with query: {Query} (found {TotalItems} results)", rawQuery, results.TotalItemCount); + + var toRemove = results.Select(x => x.Id).ToList(); + // delete those descendants (ensure base. is used here so we aren't calling ourselves!) + base.PerformDeleteFromIndex(toRemove, null); + + // remove any ids from our list that were part of the descendants + idsAsList.RemoveAll(x => toRemove.Contains(x)); + } + + base.PerformDeleteFromIndex(idsAsList, onComplete); + } +} diff --git a/src/Umbraco.Infrastructure/DeliveryApi/ApiRichTextParser.cs b/src/Umbraco.Infrastructure/DeliveryApi/ApiRichTextParser.cs index e2b3a59f8f..8c56afd6e9 100644 --- a/src/Umbraco.Infrastructure/DeliveryApi/ApiRichTextParser.cs +++ b/src/Umbraco.Infrastructure/DeliveryApi/ApiRichTextParser.cs @@ -11,7 +11,7 @@ using Umbraco.Extensions; namespace Umbraco.Cms.Infrastructure.DeliveryApi; -public partial class ApiRichTextParser : IApiRichTextParser +internal sealed partial class ApiRichTextParser : IApiRichTextParser { private readonly IApiContentRouteBuilder _apiContentRouteBuilder; private readonly IPublishedSnapshotAccessor _publishedSnapshotAccessor; diff --git a/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.CoreServices.cs b/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.CoreServices.cs index e1b83417ad..3ddf90c188 100644 --- a/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.CoreServices.cs +++ b/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.CoreServices.cs @@ -62,7 +62,6 @@ using Umbraco.Cms.Infrastructure.Security; using Umbraco.Cms.Infrastructure.Serialization; using Umbraco.Cms.Infrastructure.Services.Implement; using Umbraco.Extensions; -using ApiRichTextParser = Umbraco.Cms.Infrastructure.DeliveryApi.ApiRichTextParser; using IScopeProvider = Umbraco.Cms.Infrastructure.Scoping.IScopeProvider; namespace Umbraco.Cms.Infrastructure.DependencyInjection; diff --git a/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.MappingProfiles.cs b/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.MappingProfiles.cs index 05fc2f125c..86c35d1099 100644 --- a/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.MappingProfiles.cs +++ b/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.MappingProfiles.cs @@ -3,6 +3,7 @@ using Umbraco.Cms.Core.DependencyInjection; using Umbraco.Cms.Core.Mapping; using Umbraco.Cms.Core.Models.Mapping; using Umbraco.Cms.Core.Security; +using Umbraco.Cms.Infrastructure.Mapping; using Umbraco.Extensions; namespace Umbraco.Cms.Infrastructure.DependencyInjection; @@ -23,6 +24,7 @@ public static partial class UmbracoBuilderExtensions .Add() .Add() .Add() + .Add() .Add() .Add() .Add() diff --git a/src/Umbraco.Infrastructure/Examine/DeliveryApiContentIndexFieldDefinitionBuilder.cs b/src/Umbraco.Infrastructure/Examine/DeliveryApiContentIndexFieldDefinitionBuilder.cs index 6179cd1d80..e4bd1710f9 100644 --- a/src/Umbraco.Infrastructure/Examine/DeliveryApiContentIndexFieldDefinitionBuilder.cs +++ b/src/Umbraco.Infrastructure/Examine/DeliveryApiContentIndexFieldDefinitionBuilder.cs @@ -4,7 +4,7 @@ using Umbraco.Extensions; namespace Umbraco.Cms.Infrastructure.Examine; -public class DeliveryApiContentIndexFieldDefinitionBuilder : IDeliveryApiContentIndexFieldDefinitionBuilder +internal sealed class DeliveryApiContentIndexFieldDefinitionBuilder : IDeliveryApiContentIndexFieldDefinitionBuilder { private readonly ContentIndexHandlerCollection _contentIndexHandlerCollection; @@ -14,9 +14,12 @@ public class DeliveryApiContentIndexFieldDefinitionBuilder : IDeliveryApiContent public FieldDefinitionCollection Build() { // mandatory field definitions go here + // see also the field definitions in the Delivery API content index value set builder var fieldDefinitions = new List { - new("id", FieldDefinitionTypes.FullText) + new("id", FieldDefinitionTypes.Integer), + new(UmbracoExamineFieldNames.IndexPathFieldName, FieldDefinitionTypes.Raw), + new(UmbracoExamineFieldNames.NodeNameFieldName, FieldDefinitionTypes.Raw) }; // add custom fields from index handlers (selectors, filters, sorts) diff --git a/src/Umbraco.Infrastructure/Examine/DeliveryApiContentIndexPopulator.cs b/src/Umbraco.Infrastructure/Examine/DeliveryApiContentIndexPopulator.cs index 26e4491369..47080971f8 100644 --- a/src/Umbraco.Infrastructure/Examine/DeliveryApiContentIndexPopulator.cs +++ b/src/Umbraco.Infrastructure/Examine/DeliveryApiContentIndexPopulator.cs @@ -1,23 +1,33 @@ using Examine; +using Microsoft.Extensions.Options; using Umbraco.Cms.Core; +using Umbraco.Cms.Core.Configuration.Models; using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Persistence.Querying; using Umbraco.Cms.Core.Services; using Umbraco.Cms.Infrastructure.Persistence; +using Umbraco.Extensions; namespace Umbraco.Cms.Infrastructure.Examine; -public class DeliveryApiContentIndexPopulator : IndexPopulator +internal sealed class DeliveryApiContentIndexPopulator : IndexPopulator { private readonly IContentService _contentService; private readonly IUmbracoDatabaseFactory _umbracoDatabaseFactory; private readonly IDeliveryApiContentIndexValueSetBuilder _deliveryContentIndexValueSetBuilder; + private DeliveryApiSettings _deliveryApiSettings; - public DeliveryApiContentIndexPopulator(IContentService contentService, IDeliveryApiContentIndexValueSetBuilder deliveryContentIndexValueSetBuilder, IUmbracoDatabaseFactory umbracoDatabaseFactory) + public DeliveryApiContentIndexPopulator( + IContentService contentService, + IDeliveryApiContentIndexValueSetBuilder deliveryContentIndexValueSetBuilder, + IUmbracoDatabaseFactory umbracoDatabaseFactory, + IOptionsMonitor deliveryApiSettings) { _contentService = contentService; _deliveryContentIndexValueSetBuilder = deliveryContentIndexValueSetBuilder; _umbracoDatabaseFactory = umbracoDatabaseFactory; + _deliveryApiSettings = deliveryApiSettings.CurrentValue; + deliveryApiSettings.OnChange(settings => _deliveryApiSettings = settings); RegisterIndex(Constants.UmbracoIndexes.DeliveryApiContentIndexName); } @@ -38,19 +48,31 @@ public class DeliveryApiContentIndexPopulator : IndexPopulator { descendants = _contentService.GetPagedDescendants(Constants.System.Root, pageIndex, pageSize, out _, publishedQuery, Ordering.By("Path")).ToArray(); - // children of unpublished content can still be published; we need to filter them out, as they're not supposed to go into the index. + // there are a few rules we need to abide to when populating the index: + // - children of unpublished content can still be published; we need to filter them out, as they're not supposed to go into the index. + // - content of disallowed content types are not allowed in the index, but their children are // as we're querying published content and ordering by path, we can construct a list of "allowed" published content IDs like this. + var allowedDescendants = new List(); foreach (IContent content in descendants) { + if (_deliveryApiSettings.IsDisallowedContentType(content.ContentType.Alias)) + { + // the content type is disallowed; make sure we consider all its children as candidates for the index anyway + publishedContentIds.Add(content.Id); + continue; + } + + // content at root level is by definition published, because we only fetch published content in the query above. + // content not at root level should be included only if their parents are included (unbroken chain of published content) if (content.Level == 1 || publishedContentIds.Contains(content.ParentId)) { publishedContentIds.Add(content.Id); + allowedDescendants.Add(content); } } - // now we can utilize the list of "allowed" published content to filter out the ones we don't want in the index. - IContent[] allowedDescendants = descendants.Where(content => publishedContentIds.Contains(content.Id)).ToArray(); - ValueSet[] valueSets = _deliveryContentIndexValueSetBuilder.GetValueSets(allowedDescendants).ToArray(); + // now build the value sets based on the "allowed" published content only + ValueSet[] valueSets = _deliveryContentIndexValueSetBuilder.GetValueSets(allowedDescendants.ToArray()).ToArray(); foreach (IIndex index in indexes) { diff --git a/src/Umbraco.Infrastructure/Examine/DeliveryApiContentIndexValueSetBuilder.cs b/src/Umbraco.Infrastructure/Examine/DeliveryApiContentIndexValueSetBuilder.cs index e5b2aafbc5..87d0bbf9fa 100644 --- a/src/Umbraco.Infrastructure/Examine/DeliveryApiContentIndexValueSetBuilder.cs +++ b/src/Umbraco.Infrastructure/Examine/DeliveryApiContentIndexValueSetBuilder.cs @@ -1,4 +1,6 @@ using Examine; +using Microsoft.Extensions.Options; +using Umbraco.Cms.Core.Configuration.Models; using Umbraco.Cms.Core.DeliveryApi; using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Services; @@ -7,17 +9,24 @@ using Umbraco.Extensions; namespace Umbraco.Cms.Infrastructure.Examine; -public class DeliveryApiContentIndexValueSetBuilder : IDeliveryApiContentIndexValueSetBuilder +internal sealed class DeliveryApiContentIndexValueSetBuilder : IDeliveryApiContentIndexValueSetBuilder { private readonly ContentIndexHandlerCollection _contentIndexHandlerCollection; private readonly IScopeProvider _scopeProvider; private readonly IPublicAccessService _publicAccessService; + private DeliveryApiSettings _deliveryApiSettings; - public DeliveryApiContentIndexValueSetBuilder(ContentIndexHandlerCollection contentIndexHandlerCollection, IScopeProvider scopeProvider, IPublicAccessService publicAccessService) + public DeliveryApiContentIndexValueSetBuilder( + ContentIndexHandlerCollection contentIndexHandlerCollection, + IScopeProvider scopeProvider, + IPublicAccessService publicAccessService, + IOptionsMonitor deliveryApiSettings) { _contentIndexHandlerCollection = contentIndexHandlerCollection; _scopeProvider = scopeProvider; _publicAccessService = publicAccessService; + _deliveryApiSettings = deliveryApiSettings.CurrentValue; + deliveryApiSettings.OnChange(settings => _deliveryApiSettings = settings); } /// @@ -28,8 +37,9 @@ public class DeliveryApiContentIndexValueSetBuilder : IDeliveryApiContentIndexVa // mandatory index values go here var indexValues = new Dictionary { - ["id"] = content.Key, - [UmbracoExamineFieldNames.NodeNameFieldName] = content.PublishName ?? string.Empty + ["id"] = content.Id, // required for unpublishing/deletion handling + [UmbracoExamineFieldNames.IndexPathFieldName] = content.Path, // required for unpublishing/deletion handling + [UmbracoExamineFieldNames.NodeNameFieldName] = content.PublishName ?? string.Empty, // primarily needed for backoffice index browsing }; // add custom field values from index handlers (selectors, filters, sorts) @@ -43,17 +53,26 @@ public class DeliveryApiContentIndexValueSetBuilder : IDeliveryApiContentIndexVa indexValues[fieldValue.FieldName] = fieldValue.Value; } - yield return new ValueSet(content.Key.ToString(), IndexTypes.Content, content.ContentType.Alias, indexValues); + // NOTE: must use content.Id here, not content.Key - otherwise automatic clean-up i.e. on deletion or unpublishing will not work + yield return new ValueSet(content.Id.ToString(), IndexTypes.Content, content.ContentType.Alias, indexValues); } } private bool CanIndex(IContent content) { + // is the content in a state that is allowed in the index? if (content.Published is false || content.Trashed) { return false; } + // is the content type allowed in the index? + if (_deliveryApiSettings.IsDisallowedContentType(content.ContentType.Alias)) + { + return false; + } + + // is the content protected? using (_scopeProvider.CreateScope(autoComplete: true)) { if (_publicAccessService.IsProtected(content.Path).Success) diff --git a/src/Umbraco.Infrastructure/Examine/ExamineUmbracoIndexingHandler.cs b/src/Umbraco.Infrastructure/Examine/ExamineUmbracoIndexingHandler.cs index 0bd6a56c3d..78fa0c7417 100644 --- a/src/Umbraco.Infrastructure/Examine/ExamineUmbracoIndexingHandler.cs +++ b/src/Umbraco.Infrastructure/Examine/ExamineUmbracoIndexingHandler.cs @@ -31,6 +31,7 @@ internal class ExamineUmbracoIndexingHandler : IUmbracoIndexingHandler private readonly IValueSetBuilder _memberValueSetBuilder; private readonly IProfilingLogger _profilingLogger; private readonly IPublishedContentValueSetBuilder _publishedContentValueSetBuilder; + private readonly IDeliveryApiContentIndexValueSetBuilder _deliveryApiContentIndexValueSetBuilder; private readonly ICoreScopeProvider _scopeProvider; public ExamineUmbracoIndexingHandler( @@ -43,7 +44,8 @@ internal class ExamineUmbracoIndexingHandler : IUmbracoIndexingHandler IContentValueSetBuilder contentValueSetBuilder, IPublishedContentValueSetBuilder publishedContentValueSetBuilder, IValueSetBuilder mediaValueSetBuilder, - IValueSetBuilder memberValueSetBuilder) + IValueSetBuilder memberValueSetBuilder, + IDeliveryApiContentIndexValueSetBuilder deliveryApiContentIndexValueSetBuilder) { _mainDom = mainDom; _logger = logger; @@ -55,6 +57,7 @@ internal class ExamineUmbracoIndexingHandler : IUmbracoIndexingHandler _publishedContentValueSetBuilder = publishedContentValueSetBuilder; _mediaValueSetBuilder = mediaValueSetBuilder; _memberValueSetBuilder = memberValueSetBuilder; + _deliveryApiContentIndexValueSetBuilder = deliveryApiContentIndexValueSetBuilder; _enabled = new Lazy(IsEnabled); } @@ -273,7 +276,6 @@ internal class ExamineUmbracoIndexingHandler : IUmbracoIndexingHandler public override void Execute() => Execute(_backgroundTaskQueue, _examineUmbracoIndexingHandler, _content, _isPublished); - // TODO: Delivery API index needs updating here public static void Execute(IBackgroundTaskQueue backgroundTaskQueue, ExamineUmbracoIndexingHandler examineUmbracoIndexingHandler, IContent content, bool isPublished) => backgroundTaskQueue.QueueBackgroundWorkItem(cancellationToken => @@ -305,6 +307,19 @@ internal class ExamineUmbracoIndexingHandler : IUmbracoIndexingHandler index.IndexItems(valueSet); } + if (cancellationToken.IsCancellationRequested) + { + return Task.CompletedTask; + } + + if (isPublished && examineUmbracoIndexingHandler._examineManager.TryGetIndex( + Core.Constants.UmbracoIndexes.DeliveryApiContentIndexName, + out IIndex deliveryApiContentIndex)) + { + IEnumerable valueSets = examineUmbracoIndexingHandler._deliveryApiContentIndexValueSetBuilder.GetValueSets(content); + deliveryApiContentIndex.IndexItems(valueSets); + } + return Task.CompletedTask; }); } diff --git a/src/Umbraco.New.Cms.Infrastructure/Persistence/Mappers/RelationModelMapDefinition.cs b/src/Umbraco.Infrastructure/Mapping/RelationModelMapDefinition.cs similarity index 94% rename from src/Umbraco.New.Cms.Infrastructure/Persistence/Mappers/RelationModelMapDefinition.cs rename to src/Umbraco.Infrastructure/Mapping/RelationModelMapDefinition.cs index fb2833f9b6..8ace25c07f 100644 --- a/src/Umbraco.New.Cms.Infrastructure/Persistence/Mappers/RelationModelMapDefinition.cs +++ b/src/Umbraco.Infrastructure/Mapping/RelationModelMapDefinition.cs @@ -2,7 +2,7 @@ using Umbraco.Cms.Core.Models; using Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement; -namespace Umbraco.New.Cms.Infrastructure.Persistence.Mappers; +namespace Umbraco.Cms.Infrastructure.Mapping; public class RelationModelMapDefinition : IMapDefinition { diff --git a/src/Umbraco.Infrastructure/Migrations/Upgrade/UmbracoPlan.cs b/src/Umbraco.Infrastructure/Migrations/Upgrade/UmbracoPlan.cs index 5ca065fbd3..48e44bffe0 100644 --- a/src/Umbraco.Infrastructure/Migrations/Upgrade/UmbracoPlan.cs +++ b/src/Umbraco.Infrastructure/Migrations/Upgrade/UmbracoPlan.cs @@ -71,6 +71,9 @@ public class UmbracoPlan : MigrationPlan // To 11.3.0 To("{BB3889ED-E2DE-49F2-8F71-5FD8616A2661}"); + // To 11.4.0 + To("{FFB6B9B0-F1A8-45E9-9CD7-25700577D1CA}"); + // To 12.0.0 To("{888A0D5D-51E4-4C7E-AA0A-01306523C7FB}"); To("{539F2F83-FBA7-4C48-81A3-75081A56BB9D}"); diff --git a/src/Umbraco.Infrastructure/Migrations/Upgrade/V_11_4_0/AlterKeyValueDataType.cs b/src/Umbraco.Infrastructure/Migrations/Upgrade/V_11_4_0/AlterKeyValueDataType.cs new file mode 100644 index 0000000000..413711ad1d --- /dev/null +++ b/src/Umbraco.Infrastructure/Migrations/Upgrade/V_11_4_0/AlterKeyValueDataType.cs @@ -0,0 +1,37 @@ +using System.Reflection; +using NPoco; +using Umbraco.Cms.Infrastructure.Persistence; +using Umbraco.Cms.Infrastructure.Persistence.Dtos; + +namespace Umbraco.Cms.Infrastructure.Migrations.Upgrade.V_11_4_0; + +public class AlterKeyValueDataType : MigrationBase +{ + private readonly IMigrationContext _context; + + public AlterKeyValueDataType(IMigrationContext context) + : base(context) => _context = context; + + protected override void Migrate() + { + // SQLite doesn't need this upgrade + if (_context.Database.DatabaseType.IsSqlite()) + { + return; + } + + string tableName = KeyValueDto.TableName; + string colName = "value"; + + // Determine the current datatype of the column within the database + string colDataType = Database.ExecuteScalar($"SELECT TOP(1) CHARACTER_MAXIMUM_LENGTH FROM INFORMATION_SCHEMA.COLUMNS" + + $" WHERE TABLE_NAME = '{tableName}' AND COLUMN_NAME = '{colName}'"); + + // 255 is the old length, -1 indicate MAX length + if (colDataType == "255") + { + // Upgrade to MAX length + Database.Execute($"ALTER TABLE {tableName} ALTER COLUMN {colName} nvarchar(MAX)"); + } + } +} diff --git a/src/Umbraco.Infrastructure/Models/DeliveryApi/ApiImageCropperValue.cs b/src/Umbraco.Infrastructure/Models/DeliveryApi/ApiImageCropperValue.cs index 7e64f41665..5cb6ee535e 100644 --- a/src/Umbraco.Infrastructure/Models/DeliveryApi/ApiImageCropperValue.cs +++ b/src/Umbraco.Infrastructure/Models/DeliveryApi/ApiImageCropperValue.cs @@ -2,7 +2,7 @@ using Umbraco.Cms.Core.PropertyEditors.ValueConverters; namespace Umbraco.Cms.Core.Models.DeliveryApi; -public class ApiImageCropperValue +internal sealed class ApiImageCropperValue { public ApiImageCropperValue(string url, ImageCropperValue.ImageCropperFocalPoint? focalPoint, IEnumerable? crops) { diff --git a/src/Umbraco.Infrastructure/Models/DeliveryApi/ApiMediaWithCrops.cs b/src/Umbraco.Infrastructure/Models/DeliveryApi/ApiMediaWithCrops.cs index 239108f416..6315766a1c 100644 --- a/src/Umbraco.Infrastructure/Models/DeliveryApi/ApiMediaWithCrops.cs +++ b/src/Umbraco.Infrastructure/Models/DeliveryApi/ApiMediaWithCrops.cs @@ -2,7 +2,7 @@ using Umbraco.Cms.Core.PropertyEditors.ValueConverters; namespace Umbraco.Cms.Core.Models.DeliveryApi; -public class ApiMediaWithCrops : IApiMedia +internal sealed class ApiMediaWithCrops : IApiMedia { private readonly IApiMedia _inner; diff --git a/src/Umbraco.Infrastructure/ModelsBuilder/AutoModelsNotificationHandler.cs b/src/Umbraco.Infrastructure/ModelsBuilder/AutoModelsNotificationHandler.cs index 5f7d018b67..d879306226 100644 --- a/src/Umbraco.Infrastructure/ModelsBuilder/AutoModelsNotificationHandler.cs +++ b/src/Umbraco.Infrastructure/ModelsBuilder/AutoModelsNotificationHandler.cs @@ -1,7 +1,10 @@ +using System.ComponentModel; +using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Umbraco.Cms.Core.Configuration; using Umbraco.Cms.Core.Configuration.Models; +using Umbraco.Cms.Core.DependencyInjection; using Umbraco.Cms.Core.Events; using Umbraco.Cms.Core.Notifications; using Umbraco.Cms.Core.Runtime; @@ -26,7 +29,35 @@ public sealed class AutoModelsNotificationHandler : INotificationHandler _logger; private readonly IMainDom _mainDom; private readonly ModelsGenerationError _mbErrors; - private readonly ModelsGenerator _modelGenerator; + private readonly IModelsGenerator _modelGenerator; + + // TODO: Remove in v13 + private readonly ModelsGenerator? _concreteModelGenerator; + + [Obsolete("This constructor is obsolete and will be removed in v13. Use the constructor with IModelsGenerator instead.")] + [Browsable(false)] + public AutoModelsNotificationHandler( + ILogger logger, + IOptionsMonitor config, + ModelsGenerator modelGenerator, + ModelsGenerationError mbErrors, + IMainDom mainDom) + : this(logger, config, StaticServiceProvider.Instance.GetRequiredService(), mbErrors, mainDom) + { + } + + [Obsolete("This constructor is obsolete and will be removed in v13. Use the constructor with only IModelsGenerator instead.")] + [Browsable(false)] + public AutoModelsNotificationHandler( + ILogger logger, + IOptionsMonitor config, + ModelsGenerator concreteModelGenerator, + IModelsGenerator modelGenerator, + ModelsGenerationError mbErrors, + IMainDom mainDom) + : this(logger, config, modelGenerator, mbErrors, mainDom) + { + } /// /// Initializes a new instance of the class. @@ -34,7 +65,7 @@ public sealed class AutoModelsNotificationHandler : INotificationHandler logger, IOptionsMonitor config, - ModelsGenerator modelGenerator, + IModelsGenerator modelGenerator, ModelsGenerationError mbErrors, IMainDom mainDom) { diff --git a/src/Umbraco.Infrastructure/ModelsBuilder/Building/IModelsGenerator.cs b/src/Umbraco.Infrastructure/ModelsBuilder/Building/IModelsGenerator.cs new file mode 100644 index 0000000000..4bbaa19614 --- /dev/null +++ b/src/Umbraco.Infrastructure/ModelsBuilder/Building/IModelsGenerator.cs @@ -0,0 +1,7 @@ +namespace Umbraco.Cms.Infrastructure.ModelsBuilder.Building +{ + public interface IModelsGenerator + { + void GenerateModels(); + } +} diff --git a/src/Umbraco.Infrastructure/ModelsBuilder/Building/ModelsGenerator.cs b/src/Umbraco.Infrastructure/ModelsBuilder/Building/ModelsGenerator.cs index 0b2997e994..0a668f2d45 100644 --- a/src/Umbraco.Infrastructure/ModelsBuilder/Building/ModelsGenerator.cs +++ b/src/Umbraco.Infrastructure/ModelsBuilder/Building/ModelsGenerator.cs @@ -6,7 +6,7 @@ using Umbraco.Extensions; namespace Umbraco.Cms.Infrastructure.ModelsBuilder.Building; -public class ModelsGenerator +public class ModelsGenerator : IModelsGenerator { private readonly IHostingEnvironment _hostingEnvironment; private readonly OutOfDateModelsStatus _outOfDateModels; diff --git a/src/Umbraco.Infrastructure/Persistence/Dtos/KeyValueDto.cs b/src/Umbraco.Infrastructure/Persistence/Dtos/KeyValueDto.cs index 5576b5ca43..5c985a0174 100644 --- a/src/Umbraco.Infrastructure/Persistence/Dtos/KeyValueDto.cs +++ b/src/Umbraco.Infrastructure/Persistence/Dtos/KeyValueDto.cs @@ -11,12 +11,15 @@ namespace Umbraco.Cms.Infrastructure.Persistence.Dtos; [ExplicitColumns] internal class KeyValueDto { + public const string TableName = Constants.DatabaseSchema.Tables.KeyValue; + [Column("key")] [Length(256)] [PrimaryKeyColumn(AutoIncrement = false, Clustered = true)] public string Key { get; set; } = null!; [Column("value")] + [SpecialDbType(SpecialDbTypes.NVARCHARMAX)] [NullSetting(NullSetting = NullSettings.Null)] public string? Value { get; set; } diff --git a/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MemberRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MemberRepository.cs index 200af7ad70..c89344716f 100644 --- a/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MemberRepository.cs +++ b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MemberRepository.cs @@ -280,6 +280,36 @@ public class MemberRepository : ContentRepositoryBase(x => x.Alias); } + if (ordering.OrderBy.InvariantEquals("failedPasswordAttempts")) + { + return SqlSyntax.GetFieldName(x => x.FailedPasswordAttempts); + } + + if (ordering.OrderBy.InvariantEquals("approved")) + { + return SqlSyntax.GetFieldName(x => x.IsApproved); + } + + if (ordering.OrderBy.InvariantEquals("lockedOut")) + { + return SqlSyntax.GetFieldName(x => x.IsLockedOut); + } + + if (ordering.OrderBy.InvariantEquals("lastLockoutDate")) + { + return SqlSyntax.GetFieldName(x => x.LastLockoutDate); + } + + if (ordering.OrderBy.InvariantEquals("lastLoginDate")) + { + return SqlSyntax.GetFieldName(x => x.LastLoginDate); + } + + if (ordering.OrderBy.InvariantEquals("lastPasswordChangeDate")) + { + return SqlSyntax.GetFieldName(x => x.LastPasswordChangeDate); + } + return base.ApplySystemOrdering(ref sql, ordering); } diff --git a/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/TagRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/TagRepository.cs index bc78596762..ecc6600d4c 100644 --- a/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/TagRepository.cs +++ b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/TagRepository.cs @@ -131,7 +131,7 @@ internal class TagRepository : EntityRepositoryBase, ITagRepository var sql1 = $@"INSERT INTO cmsTags (tag, {group}, languageId) SELECT tagSet.tag, tagSet.{group}, tagSet.languageId FROM {tagSetSql} -LEFT OUTER JOIN cmsTags ON (tagSet.tag LIKE cmsTags.tag AND tagSet.{group} = cmsTags.{group} AND COALESCE(tagSet.languageId, -1) = COALESCE(cmsTags.languageId, -1)) +LEFT OUTER JOIN cmsTags ON (tagSet.tag = cmsTags.tag AND tagSet.{group} = cmsTags.{group} AND COALESCE(tagSet.languageId, -1) = COALESCE(cmsTags.languageId, -1)) WHERE cmsTags.id IS NULL"; Database.Execute(sql1); @@ -321,7 +321,7 @@ WHERE r.tagId IS NULL"; Sql sql = GetTaggedEntitiesSql(objectType, culture); sql = sql - .WhereLike(dto => dto.Text, tag); + .Where(dto => dto.Text == tag); if (group.IsNullOrWhiteSpace() == false) { diff --git a/src/Umbraco.Infrastructure/PropertyEditors/NestedPropertyIndexValueFactoryBase.cs b/src/Umbraco.Infrastructure/PropertyEditors/NestedPropertyIndexValueFactoryBase.cs index cc2f8143b8..fa3ae836c1 100644 --- a/src/Umbraco.Infrastructure/PropertyEditors/NestedPropertyIndexValueFactoryBase.cs +++ b/src/Umbraco.Infrastructure/PropertyEditors/NestedPropertyIndexValueFactoryBase.cs @@ -40,6 +40,23 @@ internal abstract class NestedPropertyIndexValueFactoryBase contentType .PropertyGroups .SelectMany(x => x.PropertyTypes!) + .Select(propertyType => + { + // We want to ensure that the nested properties are set vary by culture if the parent is + // This is because it's perfectly valid to have a nested property type that's set to invariant even if the parent varies. + // For instance in a block list, the list it self can vary, but the elements can be invariant, at the same time. + if (culture is not null) + { + propertyType.Variations |= ContentVariation.Culture; + } + + if (segment is not null) + { + propertyType.Variations |= ContentVariation.Segment; + } + + return propertyType; + }) .ToDictionary(x => x.Alias); result.AddRange(GetNestedResults( diff --git a/src/Umbraco.Web.BackOffice/Mapping/MemberMapDefinition.cs b/src/Umbraco.Web.BackOffice/Mapping/MemberMapDefinition.cs index 541c6f2710..7164974878 100644 --- a/src/Umbraco.Web.BackOffice/Mapping/MemberMapDefinition.cs +++ b/src/Umbraco.Web.BackOffice/Mapping/MemberMapDefinition.cs @@ -88,6 +88,12 @@ public class MemberMapDefinition : IMapDefinition target.Udi = Udi.Create(Constants.UdiEntityType.Member, source.Key); target.UpdateDate = source.UpdateDate; target.Username = source.Username; + target.FailedPasswordAttempts = source.FailedPasswordAttempts; + target.Approved = source.IsApproved; + target.LockedOut = source.IsLockedOut; + target.LastLockoutDate = source.LastLockoutDate; + target.LastLoginDate = source.LastLoginDate; + target.LastPasswordChangeDate = source.LastPasswordChangeDate; } // Umbraco.Code.MapAll -Icon -Trashed -ParentId -Alias diff --git a/src/Umbraco.Web.BackOffice/ModelsBuilder/ModelsBuilderDashboardController.cs b/src/Umbraco.Web.BackOffice/ModelsBuilder/ModelsBuilderDashboardController.cs index 1444307c2e..94d0919a4f 100644 --- a/src/Umbraco.Web.BackOffice/ModelsBuilder/ModelsBuilderDashboardController.cs +++ b/src/Umbraco.Web.BackOffice/ModelsBuilder/ModelsBuilderDashboardController.cs @@ -1,9 +1,12 @@ +using System.ComponentModel; using System.Runtime.Serialization; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; using Umbraco.Cms.Core.Configuration; using Umbraco.Cms.Core.Configuration.Models; +using Umbraco.Cms.Core.DependencyInjection; using Umbraco.Cms.Infrastructure.ModelsBuilder; using Umbraco.Cms.Infrastructure.ModelsBuilder.Building; using Umbraco.Cms.Web.BackOffice.Controllers; @@ -33,11 +36,40 @@ public class ModelsBuilderDashboardController : UmbracoAuthorizedJsonController private readonly ModelsBuilderSettings _config; private readonly DashboardReport _dashboardReport; private readonly ModelsGenerationError _mbErrors; - private readonly ModelsGenerator _modelGenerator; + private readonly IModelsGenerator _modelGenerator; private readonly OutOfDateModelsStatus _outOfDateModels; - public ModelsBuilderDashboardController(IOptions config, ModelsGenerator modelsGenerator, - OutOfDateModelsStatus outOfDateModels, ModelsGenerationError mbErrors) + // TODO: Remove in v13 + private readonly ModelsGenerator? _concreteModelGenerator; + + [Obsolete("This constructor is obsolete and will be removed in v13. Use the constructor with IModelsGenerator instead.")] + [Browsable(false)] + public ModelsBuilderDashboardController( + IOptions config, + ModelsGenerator modelsGenerator, + OutOfDateModelsStatus outOfDateModels, + ModelsGenerationError mbErrors) + : this(config, StaticServiceProvider.Instance.GetRequiredService(), outOfDateModels, mbErrors) + { + } + + [Obsolete("This constructor is obsolete and will be removed in v13. Use the constructor with only IModelsGenerator instead.")] + [Browsable(false)] + public ModelsBuilderDashboardController( + IOptions config, + ModelsGenerator concreteModelGenerator, + IModelsGenerator modelsGenerator, + OutOfDateModelsStatus outOfDateModels, + ModelsGenerationError mbErrors) + : this(config, modelsGenerator, outOfDateModels, mbErrors) + { + } + + [ActivatorUtilitiesConstructor] + public ModelsBuilderDashboardController(IOptions config, + IModelsGenerator modelsGenerator, + OutOfDateModelsStatus outOfDateModels, + ModelsGenerationError mbErrors) { _config = config.Value; _modelGenerator = modelsGenerator; diff --git a/src/Umbraco.Web.Common/Localization/DynamicRequestCultureProviderBase.cs b/src/Umbraco.Web.Common/Localization/DynamicRequestCultureProviderBase.cs new file mode 100644 index 0000000000..84bf1531b7 --- /dev/null +++ b/src/Umbraco.Web.Common/Localization/DynamicRequestCultureProviderBase.cs @@ -0,0 +1,86 @@ +using System.Globalization; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Localization; +using Microsoft.Extensions.Primitives; + +namespace Umbraco.Cms.Web.Common.Localization; + +/// +/// Base implementation that dynamically adds the determined cultures to the supported cultures. +/// +public abstract class DynamicRequestCultureProviderBase : RequestCultureProvider +{ + private readonly RequestLocalizationOptions _options; + private readonly object _lockerSupportedCultures = new(); + private readonly object _lockerSupportedUICultures = new(); + + /// + /// Initializes a new instance of the class. + /// + /// The request localization options. + protected DynamicRequestCultureProviderBase(RequestLocalizationOptions requestLocalizationOptions) + => _options = Options = requestLocalizationOptions; + + /// + public override Task DetermineProviderCultureResult(HttpContext httpContext) + { + ProviderCultureResult? result = GetProviderCultureResult(httpContext); + if (result is not null) + { + // We need to dynamically change the supported cultures since we won't ever know what languages are used since + // they are dynamic within Umbraco. We have to handle this for both UI and Region cultures, in case people run different region and UI languages + // This code to check existence is borrowed from aspnetcore to avoid creating a CultureInfo + // https://github.com/dotnet/aspnetcore/blob/b795ac3546eb3e2f47a01a64feb3020794ca33bb/src/Middleware/Localization/src/RequestLocalizationMiddleware.cs#L165 + TryAddLocked(_options.SupportedCultures, result.Cultures, _lockerSupportedCultures, (culture) => + { + _options.SupportedCultures ??= new List(); + _options.SupportedCultures.Add(CultureInfo.GetCultureInfo(culture.ToString())); + }); + + TryAddLocked(_options.SupportedUICultures, result.UICultures, _lockerSupportedUICultures, (culture) => + { + _options.SupportedUICultures ??= new List(); + _options.SupportedUICultures.Add(CultureInfo.GetCultureInfo(culture.ToString())); + }); + + return Task.FromResult(result); + } + + return NullProviderCultureResult; + } + + /// + /// Gets the provider culture result. + /// + /// The HTTP context. + /// + /// The provider culture result. + /// + protected abstract ProviderCultureResult? GetProviderCultureResult(HttpContext httpContext); + + /// + /// Executes the within a double-checked lock when the a culture in does not exist in . + /// + /// The supported cultures. + /// The cultures. + /// The locker object to use. + /// The add action to execute. + private static void TryAddLocked(IEnumerable? supportedCultures, IEnumerable cultures, object locker, Action addAction) + { + foreach (StringSegment culture in cultures) + { + Func predicate = x => culture.Equals(x.Name, StringComparison.OrdinalIgnoreCase); + if (supportedCultures?.Any(predicate) is not true) + { + lock (locker) + { + if (supportedCultures?.Any(predicate) is not true) + { + addAction(culture); + } + } + } + } + } +} diff --git a/src/Umbraco.Web.Common/Localization/UmbracoBackOfficeIdentityCultureProvider.cs b/src/Umbraco.Web.Common/Localization/UmbracoBackOfficeIdentityCultureProvider.cs index 3e84774c7b..95b5a8d13e 100644 --- a/src/Umbraco.Web.Common/Localization/UmbracoBackOfficeIdentityCultureProvider.cs +++ b/src/Umbraco.Web.Common/Localization/UmbracoBackOfficeIdentityCultureProvider.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System.Globalization; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Localization; @@ -10,50 +9,21 @@ using Umbraco.Extensions; namespace Umbraco.Cms.Web.Common.Localization; /// -/// Sets the request culture to the culture of the back office user if one is determined to be in the request +/// Sets the request culture to the culture of the back office user, if one is determined to be in the request. /// -public class UmbracoBackOfficeIdentityCultureProvider : RequestCultureProvider +public class UmbracoBackOfficeIdentityCultureProvider : DynamicRequestCultureProviderBase { - private readonly RequestLocalizationOptions _localizationOptions; - private readonly object _locker = new(); - /// - /// Initializes a new instance of the class. + /// Initializes a new instance of the class. /// - public UmbracoBackOfficeIdentityCultureProvider(RequestLocalizationOptions localizationOptions) => - _localizationOptions = localizationOptions; + /// The localization options. + public UmbracoBackOfficeIdentityCultureProvider(RequestLocalizationOptions localizationOptions) + : base(localizationOptions) + { } /// - public override Task DetermineProviderCultureResult(HttpContext httpContext) - { - CultureInfo? culture = httpContext.User.Identity?.GetCulture(); - - if (culture is null) - { - return NullProviderCultureResult; - } - - lock (_locker) - { - // We need to dynamically change the supported cultures since we won't ever know what languages are used since - // they are dynamic within Umbraco. We have to handle this for both UI and Region cultures, in case people run different region and UI languages - var cultureExists = _localizationOptions.SupportedCultures?.Contains(culture) ?? false; - - if (!cultureExists) - { - // add this as a supporting culture - _localizationOptions.SupportedCultures?.Add(culture); - } - - var uiCultureExists = _localizationOptions.SupportedCultures?.Contains(culture) ?? false; - - if (!uiCultureExists) - { - // add this as a supporting culture - _localizationOptions.SupportedUICultures?.Add(culture); - } - - return Task.FromResult(new ProviderCultureResult(culture.Name)); - } - } + protected sealed override ProviderCultureResult? GetProviderCultureResult(HttpContext httpContext) + => httpContext.User.Identity?.GetCultureString() is string culture + ? new ProviderCultureResult(culture) + : null; } diff --git a/src/Umbraco.Web.Common/Localization/UmbracoPublishedContentCultureProvider.cs b/src/Umbraco.Web.Common/Localization/UmbracoPublishedContentCultureProvider.cs index a3252c66e6..c2ad4805c0 100644 --- a/src/Umbraco.Web.Common/Localization/UmbracoPublishedContentCultureProvider.cs +++ b/src/Umbraco.Web.Common/Localization/UmbracoPublishedContentCultureProvider.cs @@ -1,69 +1,27 @@ -using System.Globalization; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Localization; -using Microsoft.Extensions.Primitives; using Umbraco.Cms.Core.Routing; using Umbraco.Cms.Web.Common.Routing; namespace Umbraco.Cms.Web.Common.Localization; /// -/// Sets the request culture to the culture of the if one is found in the request +/// Sets the request culture to the culture of the , if one is found in the request. /// -public class UmbracoPublishedContentCultureProvider : RequestCultureProvider +public class UmbracoPublishedContentCultureProvider : DynamicRequestCultureProviderBase { - private readonly RequestLocalizationOptions _localizationOptions; - private readonly object _locker = new(); - /// - /// Initializes a new instance of the class. + /// Initializes a new instance of the class. /// - public UmbracoPublishedContentCultureProvider(RequestLocalizationOptions localizationOptions) => - _localizationOptions = localizationOptions; + /// The localization options. + public UmbracoPublishedContentCultureProvider(RequestLocalizationOptions localizationOptions) + : base(localizationOptions) + { } /// - public override Task DetermineProviderCultureResult(HttpContext httpContext) - { - UmbracoRouteValues? routeValues = httpContext.Features.Get(); - if (routeValues != null) - { - var culture = routeValues.PublishedRequest.Culture; - if (culture != null) - { - lock (_locker) - { - // We need to dynamically change the supported cultures since we won't ever know what languages are used since - // they are dynamic within Umbraco. We have to handle this for both UI and Region cultures, in case people run different region and UI languages - // This code to check existence is borrowed from aspnetcore to avoid creating a CultureInfo - // https://github.com/dotnet/aspnetcore/blob/b795ac3546eb3e2f47a01a64feb3020794ca33bb/src/Middleware/Localization/src/RequestLocalizationMiddleware.cs#L165 - CultureInfo? existingCulture = _localizationOptions.SupportedCultures?.FirstOrDefault( - supportedCulture => - StringSegment.Equals(supportedCulture.Name, culture, StringComparison.OrdinalIgnoreCase)); - - if (existingCulture == null) - { - // add this as a supporting culture - var ci = CultureInfo.GetCultureInfo(culture); - _localizationOptions.SupportedCultures?.Add(ci); - } - - CultureInfo? existingUICulture = _localizationOptions.SupportedUICultures?.FirstOrDefault( - supportedCulture => - StringSegment.Equals(supportedCulture.Name, culture, StringComparison.OrdinalIgnoreCase)); - - if (existingUICulture == null) - { - // add this as a supporting culture - var ci = CultureInfo.GetCultureInfo(culture); - _localizationOptions.SupportedUICultures?.Add(ci); - } - } - - return Task.FromResult(new ProviderCultureResult(culture)); - } - } - - return NullProviderCultureResult; - } + protected sealed override ProviderCultureResult? GetProviderCultureResult(HttpContext httpContext) + => httpContext.Features.Get()?.PublishedRequest.Culture is string culture + ? new ProviderCultureResult(culture) + : null; } diff --git a/src/Umbraco.Web.Common/Localization/UmbracoRequestLocalizationOptions.cs b/src/Umbraco.Web.Common/Localization/UmbracoRequestLocalizationOptions.cs index 802a68607d..59c11dc986 100644 --- a/src/Umbraco.Web.Common/Localization/UmbracoRequestLocalizationOptions.cs +++ b/src/Umbraco.Web.Common/Localization/UmbracoRequestLocalizationOptions.cs @@ -1,28 +1,28 @@ using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Localization; using Microsoft.Extensions.Options; using Umbraco.Cms.Core.Configuration.Models; namespace Umbraco.Cms.Web.Common.Localization; /// -/// Custom Umbraco options configuration for +/// Custom Umbraco options configuration for . /// public class UmbracoRequestLocalizationOptions : IConfigureOptions { private readonly GlobalSettings _globalSettings; /// - /// Initializes a new instance of the class. + /// Initializes a new instance of the class. /// - public UmbracoRequestLocalizationOptions(IOptions globalSettings) => - _globalSettings = globalSettings.Value; + /// The global settings. + public UmbracoRequestLocalizationOptions(IOptions globalSettings) + => _globalSettings = globalSettings.Value; /// public void Configure(RequestLocalizationOptions options) { - // set the default culture to what is in config - options.DefaultRequestCulture = new RequestCulture(_globalSettings.DefaultUILanguage); + // Set the default culture to what is in config + options.SetDefaultCulture(_globalSettings.DefaultUILanguage); options.RequestCultureProviders.Insert(0, new UmbracoBackOfficeIdentityCultureProvider(options)); options.RequestCultureProviders.Insert(1, new UmbracoPublishedContentCultureProvider(options)); diff --git a/src/Umbraco.Web.Common/ModelsBuilder/DependencyInjection/UmbracoBuilderDependencyInjectionExtensions.cs b/src/Umbraco.Web.Common/ModelsBuilder/DependencyInjection/UmbracoBuilderDependencyInjectionExtensions.cs index 48a4478dc4..818e51aada 100644 --- a/src/Umbraco.Web.Common/ModelsBuilder/DependencyInjection/UmbracoBuilderDependencyInjectionExtensions.cs +++ b/src/Umbraco.Web.Common/ModelsBuilder/DependencyInjection/UmbracoBuilderDependencyInjectionExtensions.cs @@ -133,6 +133,8 @@ public static class UmbracoBuilderDependencyInjectionExtensions builder.Services.TryAddSingleton(); // Register required services for ModelsBuilderDashboardController + builder.Services.AddSingleton(); + // TODO: Remove in v13 - this is only here in case someone is already using this generator directly builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index 9d8a759ec5..b6e62cbd1f 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -6,10 +6,10 @@ "": { "name": "ui", "dependencies": { - "@microsoft/signalr": "7.0.2", - "@umbraco-ui/uui": "1.1.0", - "@umbraco-ui/uui-css": "1.1.0", - "ace-builds": "1.15.0", + "@microsoft/signalr": "7.0.5", + "@umbraco-ui/uui": "1.2.1", + "@umbraco-ui/uui-css": "1.2.1", + "ace-builds": "1.18.0", "angular": "1.8.3", "angular-animate": "1.8.3", "angular-aria": "1.8.3", @@ -31,32 +31,32 @@ "diff": "5.1.0", "flatpickr": "4.6.13", "font-awesome": "4.7.0", - "jquery": "3.6.3", + "jquery": "3.6.4", "jquery-ui-dist": "1.13.2", "jquery-ui-touch-punch": "0.2.3", "lazyload-js": "1.0.0", "moment": "2.29.4", "ng-file-upload": "12.2.13", "nouislider": "15.7.0", - "spectrum-colorpicker2": "2.0.9", - "tinymce": "6.3.1", + "spectrum-colorpicker2": "2.0.10", + "tinymce": "6.4.2", "typeahead.js": "0.11.1", "underscore": "1.13.6", "wicg-inert": "3.1.2" }, "devDependencies": { - "@babel/core": "7.20.12", - "@babel/preset-env": "7.20.2", - "autoprefixer": "10.4.13", - "cssnano": "5.1.14", - "eslint": "8.33.0", + "@babel/core": "7.21.4", + "@babel/preset-env": "7.21.4", + "autoprefixer": "10.4.14", + "cssnano": "6.0.0", + "eslint": "8.39.0", "gulp": "4.0.2", "gulp-angular-embed-templates": "2.3.0", "gulp-babel": "8.0.0", "gulp-clean-css": "4.3.0", "gulp-cli": "2.3.0", "gulp-concat": "2.6.1", - "gulp-eslint-new": "1.7.1", + "gulp-eslint-new": "1.7.2", "gulp-imagemin": "7.1.0", "gulp-less": "5.0.0", "gulp-minify": "3.1.0", @@ -68,9 +68,9 @@ "gulp-watch": "5.0.1", "gulp-wrap": "0.15.0", "gulp-wrap-js": "0.4.1", - "jasmine-core": "4.5.0", - "jsdom": "21.1.0", - "karma": "6.4.1", + "jasmine-core": "4.6.0", + "jsdom": "21.1.1", + "karma": "6.4.2", "karma-jasmine": "5.1.0", "karma-jsdom-launcher": "14.0.0", "karma-junit-reporter": "2.0.1", @@ -78,7 +78,7 @@ "less": "4.1.3", "lodash": "4.17.21", "merge-stream": "2.0.0", - "postcss": "8.4.21", + "postcss": "8.4.23", "run-sequence": "2.2.1" }, "engines": { @@ -87,21 +87,22 @@ } }, "node_modules/@ampproject/remapping": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", - "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.0" + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", "dev": true, "dependencies": { "@babel/highlight": "^7.18.6" @@ -111,30 +112,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.20.10", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz", - "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.4.tgz", + "integrity": "sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", - "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.4.tgz", + "integrity": "sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==", "dev": true, "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helpers": "^7.20.7", - "@babel/parser": "^7.20.7", + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.4", + "@babel/helper-compilation-targets": "^7.21.4", + "@babel/helper-module-transforms": "^7.21.2", + "@babel/helpers": "^7.21.0", + "@babel/parser": "^7.21.4", "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.12", - "@babel/types": "^7.20.7", + "@babel/traverse": "^7.21.4", + "@babel/types": "^7.21.4", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -159,13 +160,14 @@ } }, "node_modules/@babel/generator": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz", - "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz", + "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==", "dev": true, "dependencies": { - "@babel/types": "^7.20.7", + "@babel/types": "^7.21.4", "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" }, "engines": { @@ -198,13 +200,13 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", - "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz", + "integrity": "sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-validator-option": "^7.18.6", + "@babel/compat-data": "^7.21.4", + "@babel/helper-validator-option": "^7.21.0", "browserslist": "^4.21.3", "lru-cache": "^5.1.1", "semver": "^6.3.0" @@ -241,17 +243,18 @@ "dev": true }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.19.0.tgz", - "integrity": "sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.4.tgz", + "integrity": "sha512-46QrX2CQlaFRF4TkwfTt6nJD7IHq8539cCL7SDpqWSDeJKY1xylKKY5F/33mJhLZ3mFvKv2gGrVS6NkyF6qs+Q==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-member-expression-to-functions": "^7.21.0", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.9", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", "@babel/helper-split-export-declaration": "^7.18.6" }, "engines": { @@ -262,13 +265,13 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz", - "integrity": "sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.4.tgz", + "integrity": "sha512-M00OuhU+0GyZ5iBBN9czjugzWrEq2vDpf/zCYHxxf93ul/Q5rv+a5h+/+0WnI1AebHNVtl5bFV0qsJoH23DbfA==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.1.0" + "regexpu-core": "^5.3.1" }, "engines": { "node": ">=6.9.0" @@ -325,13 +328,13 @@ } }, "node_modules/@babel/helper-function-name": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", + "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", "dev": true, "dependencies": { - "@babel/template": "^7.18.10", - "@babel/types": "^7.19.0" + "@babel/template": "^7.20.7", + "@babel/types": "^7.21.0" }, "engines": { "node": ">=6.9.0" @@ -350,12 +353,12 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.20.7.tgz", - "integrity": "sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz", + "integrity": "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==", "dev": true, "dependencies": { - "@babel/types": "^7.20.7" + "@babel/types": "^7.21.0" }, "engines": { "node": ">=6.9.0" @@ -374,9 +377,9 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", - "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", + "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", @@ -385,8 +388,8 @@ "@babel/helper-split-export-declaration": "^7.18.6", "@babel/helper-validator-identifier": "^7.19.1", "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.10", - "@babel/types": "^7.20.7" + "@babel/traverse": "^7.21.2", + "@babel/types": "^7.21.2" }, "engines": { "node": ">=6.9.0" @@ -461,12 +464,12 @@ } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz", - "integrity": "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", "dev": true, "dependencies": { - "@babel/types": "^7.18.9" + "@babel/types": "^7.20.0" }, "engines": { "node": ">=6.9.0" @@ -503,9 +506,9 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", "dev": true, "engines": { "node": ">=6.9.0" @@ -527,14 +530,14 @@ } }, "node_modules/@babel/helpers": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.7.tgz", - "integrity": "sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", + "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", "dev": true, "dependencies": { "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/traverse": "^7.21.0", + "@babel/types": "^7.21.0" }, "engines": { "node": ">=6.9.0" @@ -555,9 +558,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz", - "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz", + "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -582,14 +585,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz", - "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", + "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", - "@babel/plugin-proposal-optional-chaining": "^7.18.9" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-proposal-optional-chaining": "^7.20.7" }, "engines": { "node": ">=6.9.0" @@ -633,13 +636,13 @@ } }, "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", - "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", + "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "engines": { @@ -698,12 +701,12 @@ } }, "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz", - "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", + "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { @@ -781,13 +784,13 @@ } }, "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz", - "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { @@ -814,14 +817,14 @@ } }, "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz", - "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", + "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { @@ -1040,12 +1043,12 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", - "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz", + "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -1055,14 +1058,14 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", - "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", + "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", "dev": true, "dependencies": { "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-remap-async-to-generator": "^7.18.6" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -1087,9 +1090,9 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.11.tgz", - "integrity": "sha512-tA4N427a7fjf1P0/2I4ScsHGc5jcHPbb30xMbaTke2gxDuWpUfXDuX1FEymJwKk4tuGUvGcejAR6HdZVqmmPyw==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", + "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" @@ -1102,15 +1105,15 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.7.tgz", - "integrity": "sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", + "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-compilation-targets": "^7.20.7", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", + "@babel/helper-function-name": "^7.21.0", "@babel/helper-optimise-call-expression": "^7.18.6", "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-replace-supers": "^7.20.7", @@ -1125,12 +1128,13 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz", - "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz", + "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/template": "^7.20.7" }, "engines": { "node": ">=6.9.0" @@ -1140,9 +1144,9 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz", - "integrity": "sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==", + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", + "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" @@ -1202,12 +1206,12 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", - "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz", + "integrity": "sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -1280,12 +1284,12 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.20.11.tgz", - "integrity": "sha512-S8e1f7WQ7cimJQ51JkAaDrEtohVEitXjgCGAS2N8S31Y42E+kWwfSz83LYz57QdBm7q9diARVqanIaH2oVgQnw==", + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz", + "integrity": "sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-module-transforms": "^7.21.2", "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-simple-access": "^7.20.2" }, @@ -1331,13 +1335,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz", - "integrity": "sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", + "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.19.0", - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-create-regexp-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -1378,9 +1382,9 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz", - "integrity": "sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==", + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", + "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" @@ -1408,13 +1412,13 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz", - "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", + "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "regenerator-transform": "^0.15.0" + "@babel/helper-plugin-utils": "^7.20.2", + "regenerator-transform": "^0.15.1" }, "engines": { "node": ">=6.9.0" @@ -1454,13 +1458,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz", - "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", + "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" }, "engines": { "node": ">=6.9.0" @@ -1546,31 +1550,31 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", - "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.4.tgz", + "integrity": "sha512-2W57zHs2yDLm6GD5ZpvNn71lZ0B/iypSdIeq25OurDKji6AdzV07qp4s3n1/x5BqtiGaTrPN3nerlSCaC5qNTw==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.20.1", - "@babel/helper-compilation-targets": "^7.20.0", + "@babel/compat-data": "^7.21.4", + "@babel/helper-compilation-targets": "^7.21.4", "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-option": "^7.18.6", + "@babel/helper-validator-option": "^7.21.0", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.20.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7", + "@babel/plugin-proposal-async-generator-functions": "^7.20.7", "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.21.0", "@babel/plugin-proposal-dynamic-import": "^7.18.6", "@babel/plugin-proposal-export-namespace-from": "^7.18.9", "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.2", + "@babel/plugin-proposal-object-rest-spread": "^7.20.7", "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-optional-chaining": "^7.21.0", "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.21.0", "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", @@ -1587,40 +1591,40 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.18.6", - "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.20.7", + "@babel/plugin-transform-async-to-generator": "^7.20.7", "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.20.2", - "@babel/plugin-transform-classes": "^7.20.2", - "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.20.2", + "@babel/plugin-transform-block-scoping": "^7.21.0", + "@babel/plugin-transform-classes": "^7.21.0", + "@babel/plugin-transform-computed-properties": "^7.20.7", + "@babel/plugin-transform-destructuring": "^7.21.3", "@babel/plugin-transform-dotall-regex": "^7.18.6", "@babel/plugin-transform-duplicate-keys": "^7.18.9", "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-for-of": "^7.21.0", "@babel/plugin-transform-function-name": "^7.18.9", "@babel/plugin-transform-literals": "^7.18.9", "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.19.6", - "@babel/plugin-transform-modules-commonjs": "^7.19.6", - "@babel/plugin-transform-modules-systemjs": "^7.19.6", + "@babel/plugin-transform-modules-amd": "^7.20.11", + "@babel/plugin-transform-modules-commonjs": "^7.21.2", + "@babel/plugin-transform-modules-systemjs": "^7.20.11", "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5", "@babel/plugin-transform-new-target": "^7.18.6", "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.20.1", + "@babel/plugin-transform-parameters": "^7.21.3", "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.20.5", "@babel/plugin-transform-reserved-words": "^7.18.6", "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.19.0", + "@babel/plugin-transform-spread": "^7.20.7", "@babel/plugin-transform-sticky-regex": "^7.18.6", "@babel/plugin-transform-template-literals": "^7.18.9", "@babel/plugin-transform-typeof-symbol": "^7.18.9", "@babel/plugin-transform-unicode-escapes": "^7.18.10", "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.20.2", + "@babel/types": "^7.21.4", "babel-plugin-polyfill-corejs2": "^0.3.3", "babel-plugin-polyfill-corejs3": "^0.6.0", "babel-plugin-polyfill-regenerator": "^0.4.1", @@ -1659,13 +1663,19 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, "node_modules/@babel/runtime": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.0.tgz", - "integrity": "sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", + "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", "dev": true, "dependencies": { - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.13.11" }, "engines": { "node": ">=6.9.0" @@ -1686,19 +1696,19 @@ } }, "node_modules/@babel/traverse": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.12.tgz", - "integrity": "sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.4.tgz", + "integrity": "sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.4", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", + "@babel/helper-function-name": "^7.21.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", + "@babel/parser": "^7.21.4", + "@babel/types": "^7.21.4", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1707,9 +1717,9 @@ } }, "node_modules/@babel/types": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", - "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz", + "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.19.4", @@ -1729,15 +1739,39 @@ "node": ">=0.1.90" } }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz", + "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", - "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", + "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.4.0", + "espree": "^9.5.1", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -1759,9 +1793,9 @@ "dev": true }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.19.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", - "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -1785,6 +1819,15 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/@eslint/js": { + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.39.0.tgz", + "integrity": "sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/@gulp-sourcemaps/identity-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-2.0.1.tgz", @@ -1928,9 +1971,9 @@ } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", - "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true, "engines": { "node": ">=6.0.0" @@ -1946,25 +1989,25 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", - "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.15", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", - "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", "dev": true, "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, "node_modules/@lit-labs/ssr-dom-shim": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.0.0.tgz", - "integrity": "sha512-ic93MBXfApIFTrup4a70M/+ddD8xdt2zxxj9sRwHQzhS9ag/syqkD8JPdTXsc1gUy2K8TTirhlCqyTEM/sifNw==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.1.tgz", + "integrity": "sha512-kXOeFbfCm4fFf2A3WwVEeQj55tMZa8c8/f9AKHMobQMkzNUfUj+antR3fRPaZJawsa1aZiP/Da3ndpZrwEe4rQ==" }, "node_modules/@lit/reactive-element": { "version": "1.6.1", @@ -1975,9 +2018,9 @@ } }, "node_modules/@microsoft/signalr": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@microsoft/signalr/-/signalr-7.0.2.tgz", - "integrity": "sha512-U+o33K2m6nnMojZzBrjrApKgYfiQ0A0t4I2F5oFJObgfzRSDS9v0YoYgkmva5nbPftUp3YcR5XmH0S/1+BZT6Q==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/@microsoft/signalr/-/signalr-7.0.5.tgz", + "integrity": "sha512-j84syCKlXkQAOQhyrzRmW7w/M2UXQ6OKcXXFIVNjmiiZbEGIvSvJDRAuyMFjArdQOXz+etJgd58H/prTbyTCrA==", "dependencies": { "abort-controller": "^3.0.0", "eventsource": "^2.0.2", @@ -2073,9 +2116,9 @@ "dev": true }, "node_modules/@types/eslint": { - "version": "8.4.10", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", - "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.37.0.tgz", + "integrity": "sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ==", "dev": true, "dependencies": { "@types/estree": "*", @@ -2083,9 +2126,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", - "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", + "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", "dev": true }, "node_modules/@types/glob": { @@ -2124,726 +2167,785 @@ "optional": true }, "node_modules/@types/trusted-types": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz", - "integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz", + "integrity": "sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==" }, "node_modules/@umbraco-ui/uui": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui/-/uui-1.1.0.tgz", - "integrity": "sha512-PWy5Z/15tokLtMmchqmyVZFcroZJpqcuhfIu21wb1+/dX7tG8PV4D/PHFkpHaC9MkvrlkI25Kp4K0caxeIxnJw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui/-/uui-1.2.1.tgz", + "integrity": "sha512-851qpmWJpTzDLKqtHNTQ7S3MJQxt3xJw1KOX4iWfvFIMbVAC2yQCZwAsTcTANBMxqCCy6ZDaFs/2P69BsNwLIw==", "dependencies": { - "@umbraco-ui/uui-action-bar": "1.1.0", - "@umbraco-ui/uui-avatar": "1.1.0", - "@umbraco-ui/uui-avatar-group": "1.1.0", - "@umbraco-ui/uui-badge": "1.1.0", - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-boolean-input": "1.1.0", - "@umbraco-ui/uui-box": "1.1.0", - "@umbraco-ui/uui-breadcrumbs": "1.1.0", - "@umbraco-ui/uui-button": "1.1.0", - "@umbraco-ui/uui-button-group": "1.1.0", - "@umbraco-ui/uui-button-inline-create": "1.1.0", - "@umbraco-ui/uui-card": "1.1.0", - "@umbraco-ui/uui-card-content-node": "1.1.0", - "@umbraco-ui/uui-card-media": "1.1.0", - "@umbraco-ui/uui-card-user": "1.1.0", - "@umbraco-ui/uui-caret": "1.1.0", - "@umbraco-ui/uui-checkbox": "1.1.0", - "@umbraco-ui/uui-combobox": "1.2.0", - "@umbraco-ui/uui-combobox-list": "1.1.0", - "@umbraco-ui/uui-css": "1.1.0", - "@umbraco-ui/uui-dialog": "1.1.0", - "@umbraco-ui/uui-dialog-layout": "1.1.0", - "@umbraco-ui/uui-file-dropzone": "1.1.0", - "@umbraco-ui/uui-file-preview": "1.1.0", - "@umbraco-ui/uui-form": "1.1.0", - "@umbraco-ui/uui-form-layout-item": "1.1.0", - "@umbraco-ui/uui-form-validation-message": "1.1.0", - "@umbraco-ui/uui-icon": "1.1.0", - "@umbraco-ui/uui-icon-registry": "1.1.0", - "@umbraco-ui/uui-icon-registry-essential": "1.1.0", - "@umbraco-ui/uui-input": "1.1.0", - "@umbraco-ui/uui-input-file": "1.1.0", - "@umbraco-ui/uui-input-lock": "1.1.0", - "@umbraco-ui/uui-input-password": "1.1.0", - "@umbraco-ui/uui-keyboard-shortcut": "1.1.0", - "@umbraco-ui/uui-label": "1.1.0", - "@umbraco-ui/uui-loader": "1.1.0", - "@umbraco-ui/uui-loader-bar": "1.1.0", - "@umbraco-ui/uui-loader-circle": "1.1.0", - "@umbraco-ui/uui-menu-item": "1.1.0", - "@umbraco-ui/uui-pagination": "1.1.0", - "@umbraco-ui/uui-popover": "1.1.0", - "@umbraco-ui/uui-progress-bar": "1.1.0", - "@umbraco-ui/uui-radio": "1.1.0", - "@umbraco-ui/uui-range-slider": "0.1.0", - "@umbraco-ui/uui-ref": "1.1.0", - "@umbraco-ui/uui-ref-list": "1.1.0", - "@umbraco-ui/uui-ref-node": "1.1.0", - "@umbraco-ui/uui-ref-node-data-type": "1.1.0", - "@umbraco-ui/uui-ref-node-document-type": "1.1.0", - "@umbraco-ui/uui-ref-node-form": "1.1.0", - "@umbraco-ui/uui-ref-node-member": "1.1.0", - "@umbraco-ui/uui-ref-node-package": "1.1.0", - "@umbraco-ui/uui-ref-node-user": "1.1.0", - "@umbraco-ui/uui-scroll-container": "1.1.0", - "@umbraco-ui/uui-select": "1.1.0", - "@umbraco-ui/uui-slider": "1.1.0", - "@umbraco-ui/uui-symbol-expand": "1.1.0", - "@umbraco-ui/uui-symbol-file": "1.1.0", - "@umbraco-ui/uui-symbol-file-dropzone": "1.1.0", - "@umbraco-ui/uui-symbol-file-thumbnail": "1.1.0", - "@umbraco-ui/uui-symbol-folder": "1.1.0", - "@umbraco-ui/uui-symbol-lock": "1.1.0", - "@umbraco-ui/uui-symbol-more": "1.1.0", - "@umbraco-ui/uui-symbol-sort": "1.1.0", - "@umbraco-ui/uui-table": "1.1.0", - "@umbraco-ui/uui-tabs": "1.1.0", - "@umbraco-ui/uui-tag": "1.1.0", - "@umbraco-ui/uui-textarea": "1.1.0", - "@umbraco-ui/uui-toast-notification": "1.1.0", - "@umbraco-ui/uui-toast-notification-container": "1.1.0", - "@umbraco-ui/uui-toast-notification-layout": "1.1.0", - "@umbraco-ui/uui-toggle": "1.1.0" + "@umbraco-ui/uui-action-bar": "1.2.1", + "@umbraco-ui/uui-avatar": "1.2.1", + "@umbraco-ui/uui-avatar-group": "1.2.1", + "@umbraco-ui/uui-badge": "1.2.1", + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-boolean-input": "1.2.1", + "@umbraco-ui/uui-box": "1.2.1", + "@umbraco-ui/uui-breadcrumbs": "1.2.1", + "@umbraco-ui/uui-button": "1.2.1", + "@umbraco-ui/uui-button-group": "1.2.1", + "@umbraco-ui/uui-button-inline-create": "1.2.1", + "@umbraco-ui/uui-card": "1.2.1", + "@umbraco-ui/uui-card-content-node": "1.2.1", + "@umbraco-ui/uui-card-media": "1.2.1", + "@umbraco-ui/uui-card-user": "1.2.1", + "@umbraco-ui/uui-caret": "1.2.1", + "@umbraco-ui/uui-checkbox": "1.2.1", + "@umbraco-ui/uui-color-area": "1.2.1", + "@umbraco-ui/uui-color-picker": "1.2.1", + "@umbraco-ui/uui-color-slider": "1.2.1", + "@umbraco-ui/uui-color-swatch": "1.2.1", + "@umbraco-ui/uui-color-swatches": "1.2.1", + "@umbraco-ui/uui-combobox": "1.2.1", + "@umbraco-ui/uui-combobox-list": "1.2.1", + "@umbraco-ui/uui-css": "1.2.1", + "@umbraco-ui/uui-dialog": "1.2.1", + "@umbraco-ui/uui-dialog-layout": "1.2.1", + "@umbraco-ui/uui-file-dropzone": "1.2.1", + "@umbraco-ui/uui-file-preview": "1.2.1", + "@umbraco-ui/uui-form": "1.2.1", + "@umbraco-ui/uui-form-layout-item": "1.2.1", + "@umbraco-ui/uui-form-validation-message": "1.2.1", + "@umbraco-ui/uui-icon": "1.2.1", + "@umbraco-ui/uui-icon-registry": "1.2.1", + "@umbraco-ui/uui-icon-registry-essential": "1.2.1", + "@umbraco-ui/uui-input": "1.2.1", + "@umbraco-ui/uui-input-file": "1.2.1", + "@umbraco-ui/uui-input-lock": "1.2.1", + "@umbraco-ui/uui-input-password": "1.2.1", + "@umbraco-ui/uui-keyboard-shortcut": "1.2.1", + "@umbraco-ui/uui-label": "1.2.1", + "@umbraco-ui/uui-loader": "1.2.1", + "@umbraco-ui/uui-loader-bar": "1.2.1", + "@umbraco-ui/uui-loader-circle": "1.2.1", + "@umbraco-ui/uui-menu-item": "1.2.1", + "@umbraco-ui/uui-modal": "1.2.1", + "@umbraco-ui/uui-pagination": "1.2.1", + "@umbraco-ui/uui-popover": "1.2.1", + "@umbraco-ui/uui-progress-bar": "1.2.1", + "@umbraco-ui/uui-radio": "1.2.1", + "@umbraco-ui/uui-range-slider": "1.2.1", + "@umbraco-ui/uui-ref": "1.2.1", + "@umbraco-ui/uui-ref-list": "1.2.1", + "@umbraco-ui/uui-ref-node": "1.2.1", + "@umbraco-ui/uui-ref-node-data-type": "1.2.1", + "@umbraco-ui/uui-ref-node-document-type": "1.2.1", + "@umbraco-ui/uui-ref-node-form": "1.2.1", + "@umbraco-ui/uui-ref-node-member": "1.2.1", + "@umbraco-ui/uui-ref-node-package": "1.2.1", + "@umbraco-ui/uui-ref-node-user": "1.2.1", + "@umbraco-ui/uui-scroll-container": "1.2.1", + "@umbraco-ui/uui-select": "1.2.1", + "@umbraco-ui/uui-slider": "1.2.1", + "@umbraco-ui/uui-symbol-expand": "1.2.1", + "@umbraco-ui/uui-symbol-file": "1.2.1", + "@umbraco-ui/uui-symbol-file-dropzone": "1.2.1", + "@umbraco-ui/uui-symbol-file-thumbnail": "1.2.1", + "@umbraco-ui/uui-symbol-folder": "1.2.1", + "@umbraco-ui/uui-symbol-lock": "1.2.1", + "@umbraco-ui/uui-symbol-more": "1.2.1", + "@umbraco-ui/uui-symbol-sort": "1.2.1", + "@umbraco-ui/uui-table": "1.2.1", + "@umbraco-ui/uui-tabs": "1.2.1", + "@umbraco-ui/uui-tag": "1.2.1", + "@umbraco-ui/uui-textarea": "1.2.1", + "@umbraco-ui/uui-toast-notification": "1.2.1", + "@umbraco-ui/uui-toast-notification-container": "1.2.1", + "@umbraco-ui/uui-toast-notification-layout": "1.2.1", + "@umbraco-ui/uui-toggle": "1.2.1" } }, "node_modules/@umbraco-ui/uui-action-bar": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-action-bar/-/uui-action-bar-1.1.0.tgz", - "integrity": "sha512-dHDAIiRuTo0gVlOd5twonot48XWSH6IuLUhRPncCSRpArQO146+t2SLPztmMPtsHoSVM546saR3+7zPmb2HKfA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-action-bar/-/uui-action-bar-1.2.1.tgz", + "integrity": "sha512-YhT6mlmCZrdM/gmwdkf6ED0R2ak+qAQl3pAg2QAZS9448s3rj6FYRH/19BK/YoDvdoHZCQYzp92h5zyrv5DN3A==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-button-group": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-button-group": "1.2.1" } }, "node_modules/@umbraco-ui/uui-avatar": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar/-/uui-avatar-1.1.0.tgz", - "integrity": "sha512-wdIEMlkflOP+37NDel8K+H0yfYFmYxeuG09Ctoulel9EUoQuA4sQ9zlqXinLCsat9zs4HJlyoV9DwbWMXKp3TQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar/-/uui-avatar-1.2.1.tgz", + "integrity": "sha512-qIiIxsm0iApqldXR9JBk9sov4geK5GDPf8suUgIr/BiHqtVq0EPcOWY4LyC9LlPaTfB0+PiA7atsLgboi9dHXQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-avatar-group": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar-group/-/uui-avatar-group-1.1.0.tgz", - "integrity": "sha512-HVEWVifsDshkvI5fmSBd7HpvOdKFxpVI8tDDz5ocxr5EhD0b4Wf1Let/1QhBzHRc1+ZiWq8Ef5tIRDkGdXDVdg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar-group/-/uui-avatar-group-1.2.1.tgz", + "integrity": "sha512-p///csKjUb3/sXN1KjIEHM48gki+Qhcpvsi0zls2OUhn1Qt2I/1AaAd2IofI3QzEFIXdFuQqz9XpSbkOJZWTOg==", "dependencies": { - "@umbraco-ui/uui-avatar": "1.1.0", - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-avatar": "1.2.1", + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-badge": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-badge/-/uui-badge-1.1.0.tgz", - "integrity": "sha512-r0X8tOO0lJHuoiuR4gLWEFV6NLWI7FO1lMWQPqXhxGr9cnfCVQgPKA0rMMWlnabBnNXwvb6F8HI5OTFaVAnLNA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-badge/-/uui-badge-1.2.1.tgz", + "integrity": "sha512-uoEwHJ+x9EB8NFmPi8OT++1xcMwYa9HH276fj0Pf9RlylqmWFj4X4SIwVlhIoQymTMNKeSSc6rY3q36jTzElCw==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-base": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-base/-/uui-base-1.1.0.tgz", - "integrity": "sha512-uLb3+hbGhnLxjo8UuuaVCCwApR/5Z10atAWwc5m/Q+WSdW/sEVnpLGuI6B1m1vz/RGJVjBDwXl8IET3Nq/vcrA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-base/-/uui-base-1.2.1.tgz", + "integrity": "sha512-4oiHzczUC/S+AXlnOKxMCIS06TyHBVIWTrh2H836/xXDjesdvbwxDh0+ILO+TWrxFRl+3CiGsLoGREcQHQfaOg==", "dependencies": { "lit": "^2.3.1" } }, "node_modules/@umbraco-ui/uui-boolean-input": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-boolean-input/-/uui-boolean-input-1.1.0.tgz", - "integrity": "sha512-c2ZGdZFy7Y7ciLrkHmR5FkwHsQn93M+wCECxkXipo/TbBfneOd/2kFIYuiLYhn2fit+bbdXEaEc45fjOsuzUIg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-boolean-input/-/uui-boolean-input-1.2.1.tgz", + "integrity": "sha512-dGJCc8eRpXpTizN7stht7ZztteZKiarVGfokqtDmja2Zh94t3S8FoARCv1ydmMbXs/xta6uBh95ndZukJ9T1Gw==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-box": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-box/-/uui-box-1.1.0.tgz", - "integrity": "sha512-JXXikfNWMVHhZss6T4lmI3TufH4Vtq7vGwuvRHp+NdI/F2dcLcEuHJbjp/uMMbbsqtZ1sdbmaL0hJFk1x8gK5A==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-box/-/uui-box-1.2.1.tgz", + "integrity": "sha512-JWvzr+HMPyvShzCF3YpjlqYJFv4vrDPYNjRgfm58JAagMN/MHtrfgkUTWQw7UkAJQf1+fjXD+61wfwyZCWrmCw==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-css": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-css": "1.2.1" } }, "node_modules/@umbraco-ui/uui-breadcrumbs": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-breadcrumbs/-/uui-breadcrumbs-1.1.0.tgz", - "integrity": "sha512-PBFiFhOeM8sQkDTsHI1b2OktD2P6UgEMJA93s2vtajgjNRrw4xEYmSOQJClT5n9nToZGkLjr1TCigcdzizov8Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-breadcrumbs/-/uui-breadcrumbs-1.2.1.tgz", + "integrity": "sha512-GcBrKIvjcrguXYqS0e0oaFrdtuaulpBY4AmN8T0UgSykVYOCJ9ufmAg29vj7BTxxcdTwIozYVuhB/wGacQ6F2A==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-button": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button/-/uui-button-1.1.0.tgz", - "integrity": "sha512-sexyW4QpUOMyNiBZ+K1V4znKRvkBvNe5zhG8HiZiZDIGIXTeFozyil8Rh0usxav+O1YTTklrs6gtf1Ll8KTkIw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button/-/uui-button-1.2.1.tgz", + "integrity": "sha512-hmguxJeJU+Z6/+NnTcgt6mvO4PQy/b+b7vKVqXKfWKPdb9jInwBCz5E6cfVQhK2FyqKWgP2iE2caTAEB/U0sIg==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-icon-registry-essential": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-icon-registry-essential": "1.2.1" } }, "node_modules/@umbraco-ui/uui-button-group": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-group/-/uui-button-group-1.1.0.tgz", - "integrity": "sha512-Iuti8GTRiMS3k73PyYerYjKSpWEaA0EZpbJvpnbAHS6INJN0PEUwK69wVcdWchpTd/Qyi4H0HlkQbudgHdKe2A==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-group/-/uui-button-group-1.2.1.tgz", + "integrity": "sha512-eCHHPqcIvbZxoqaYU0/Htg7tv8D7NVPzuW9brjDzT+UUjPy9GANj3MBgCh9RphJtJJoRWFtwax4hOfFnJdm3mA==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-button-inline-create": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-inline-create/-/uui-button-inline-create-1.1.0.tgz", - "integrity": "sha512-1Bc+MrLjLDS09yw5G4qhBf5t5R8jgvGoC/ozaRio4D6DXAksMA6FsDDmm2nBDg2ajLyf1DWvhwy5ScUgKyydYQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-inline-create/-/uui-button-inline-create-1.2.1.tgz", + "integrity": "sha512-+EZpE4Tg3r9m5SzsYaqVZjvnpoLTMYds9BfyZqngxNkg4L0AMMucDWM/mgGsKPE0TK+908mv6Dw3sS59ER2Jog==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-card": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card/-/uui-card-1.1.0.tgz", - "integrity": "sha512-d3JXO1AAzP8YK4xoR5GEScCgKW8XG6VdAji/dXlUnu+5n9L8F+wEe5db7woIiIXVv/m0a88awfBpd+RtlA4Lmg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card/-/uui-card-1.2.1.tgz", + "integrity": "sha512-bqCs9PkyxGRiwiDgR24XRhNBj+X7yVqe0jYnBIq18dzrXXeBCmAvnUpsw3vPM9FeVNfKBpqo+RgEKQoQuAZjew==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-card-content-node": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-content-node/-/uui-card-content-node-1.1.0.tgz", - "integrity": "sha512-cqaydgUZaiaQgeKaAWihxclS0hdX0j34fZlAAZU+IAr9P7V9vMGyGu9en1tJE/lvTp4MkmyWCHYhTJC1+onJmQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-content-node/-/uui-card-content-node-1.2.1.tgz", + "integrity": "sha512-xkKRo/m7duLoErO4Km69SJFRlZPhJ1Cx3XpBKWJkq4h+FLLiZCdyzcmPNrwS22dQ7icboXMFVqe9CCBbklOkRw==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-card": "1.1.0", - "@umbraco-ui/uui-icon": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-card": "1.2.1", + "@umbraco-ui/uui-icon": "1.2.1" } }, "node_modules/@umbraco-ui/uui-card-media": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-media/-/uui-card-media-1.1.0.tgz", - "integrity": "sha512-Z84KXB9HAVAD7w+vH8svvMLWzPsKKcqpJOX9CDUj0QCqpVYr97r4IMmM9Vt4oZxcNBVq+8UAcO9m+cD/Dnhc9Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-media/-/uui-card-media-1.2.1.tgz", + "integrity": "sha512-Y5WE6jMFVKtDBwHv/3W1Dgeg3WfXSVpnxG3PUw+WSucstldxSBcAYiGaxJfsx5fxpYQjX+Z4xQq7Slez9fSI0g==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-card": "1.1.0", - "@umbraco-ui/uui-symbol-file": "1.1.0", - "@umbraco-ui/uui-symbol-folder": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-card": "1.2.1", + "@umbraco-ui/uui-symbol-file": "1.2.1", + "@umbraco-ui/uui-symbol-folder": "1.2.1" } }, "node_modules/@umbraco-ui/uui-card-user": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-user/-/uui-card-user-1.1.0.tgz", - "integrity": "sha512-SGUhDVPZY0dRkf0pYa5lZbK6YnSSHHBMtFdKGYW5DEfu4ijlJrJfsBKlmFQt3PcQ2i1Yl0loTHaLq3CO6u/kPw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-user/-/uui-card-user-1.2.1.tgz", + "integrity": "sha512-m5Iq4OwjAQ4Ybboac/21sDJgWXdQQwcLqV2xLo7sF8JFs+ZZ/bGaocZrpAcNQXfMCcq/gAI+gT7L7GbWIoVWUQ==", "dependencies": { - "@umbraco-ui/uui-avatar": "1.1.0", - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-card": "1.1.0" + "@umbraco-ui/uui-avatar": "1.2.1", + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-card": "1.2.1" } }, "node_modules/@umbraco-ui/uui-caret": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-caret/-/uui-caret-1.1.0.tgz", - "integrity": "sha512-JzNL36kXWHwOa2evWQJ20kGQlX+NBQmUm0fa1LHkrwA9n91vH9JwKGID4oqTi0ukmcOucwPKFhYHt/YhNNNMHw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-caret/-/uui-caret-1.2.1.tgz", + "integrity": "sha512-soFbO7K8vSMQ2z5PRcOLgIastcQIH0I3i0P3aMN1cIMNwKxye/GhqVPPh76sOZ5G4GUvm9PDVT15dlIq+N76qA==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-checkbox": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-checkbox/-/uui-checkbox-1.1.0.tgz", - "integrity": "sha512-0N4IuuBlYoybTNEaBVIRnaYQ/z9R0q6MCk47NPXW0WwmK9F2NaklxfBpVCRZ+g1ZfspBUPLAhKjn0SMIvoAk3Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-checkbox/-/uui-checkbox-1.2.1.tgz", + "integrity": "sha512-jwQ8gktq4qMCnq+Io+ivqCz3idTxgQ5ohWyMF5sO5a8EAAMD+GE4RMZLTB9B5C8DclBB+q/TyUBQfv8gxD8b/Q==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-boolean-input": "1.1.0", - "@umbraco-ui/uui-icon-registry-essential": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-boolean-input": "1.2.1", + "@umbraco-ui/uui-icon-registry-essential": "1.2.1" + } + }, + "node_modules/@umbraco-ui/uui-color-area": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-area/-/uui-color-area-1.2.1.tgz", + "integrity": "sha512-ZoQwXLgvp27U0AeVOA8xiWsiAh0JrQjEO6aK/7XI1AAioiZ0D/hJPMkFqztc6cIdYy8qa3E15VGyS+XICU/H+A==", + "dependencies": { + "@umbraco-ui/uui-base": "1.2.1", + "colord": "^2.9.3" + } + }, + "node_modules/@umbraco-ui/uui-color-picker": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-picker/-/uui-color-picker-1.2.1.tgz", + "integrity": "sha512-IJl5DgcSdsHtHg1aYpu8jS0CrxUdLai0N/t9LrAci20CiJyJ4QzD8gN7OutHB/auwW/2P4/Yu/Y0MJ7eGyB+/g==", + "dependencies": { + "@umbraco-ui/uui-base": "1.2.1", + "colord": "^2.9.3" + } + }, + "node_modules/@umbraco-ui/uui-color-slider": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-slider/-/uui-color-slider-1.2.1.tgz", + "integrity": "sha512-BrhYBQcGExWvUAaEf6I0DDn77jygHy9fDkZFpLmvjyoSnM0CMGlcE22444dyO2DQ3+hrVFgOZVmHvDjiFRWrEg==", + "dependencies": { + "@umbraco-ui/uui-base": "1.2.1" + } + }, + "node_modules/@umbraco-ui/uui-color-swatch": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatch/-/uui-color-swatch-1.2.1.tgz", + "integrity": "sha512-92zdpi995HVix88J70n7Kuwnldy6+83Qg5jBjDusmLPgz0vpW8rolqLfnTB93GA/l7Nk07DpTiI9BJKQ/0LFKQ==", + "dependencies": { + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-icon-registry-essential": "1.2.1", + "colord": "^2.9.3" + } + }, + "node_modules/@umbraco-ui/uui-color-swatches": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatches/-/uui-color-swatches-1.2.1.tgz", + "integrity": "sha512-fgpWWFxZtA3p39N7kRkzO58eZD48PJz9lFv3A8JAim65HKSJcuyA0Rl2FT3WE5xk1/8eS4UcsiEuoMJ5brEAYQ==", + "dependencies": { + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-color-swatch": "1.2.1" } }, "node_modules/@umbraco-ui/uui-combobox": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox/-/uui-combobox-1.2.0.tgz", - "integrity": "sha512-OPM5xf8F1CoiPjBqWJ5IRYKXrgGFCuwLoIZq1dhL/9V/9n5402ucZMELpMHwXrXlpK4WffjzobFuManX6nuvcg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox/-/uui-combobox-1.2.1.tgz", + "integrity": "sha512-0as8/mKyzwAYXNPPJPADi2UMahMrP70o6z/y49Hwnd3V5Lx6laFJXB/jZGGYx7/Q8lgsH84fpcOGJsIqUpTpwA==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-button": "1.1.0", - "@umbraco-ui/uui-combobox-list": "1.1.0", - "@umbraco-ui/uui-icon": "1.1.0", - "@umbraco-ui/uui-scroll-container": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-button": "1.2.1", + "@umbraco-ui/uui-combobox-list": "1.2.1", + "@umbraco-ui/uui-icon": "1.2.1", + "@umbraco-ui/uui-scroll-container": "1.2.1" } }, "node_modules/@umbraco-ui/uui-combobox-list": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox-list/-/uui-combobox-list-1.1.0.tgz", - "integrity": "sha512-bOQ4lBlfeiCabqRq2zLl7mcx2QMY7Td5CD1qjkO/qrGB9HVZcqHYRvmCPf4wM/bDhV1DZL/vI7iOfAKTB27jSA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox-list/-/uui-combobox-list-1.2.1.tgz", + "integrity": "sha512-Kd5hX3fuOUi/S8MCjD0Jm9iubBVpks6tuhnkicLTEe7X6B7aoK1BUF6rKDbCHuF37j2vqD/0D1SAlt9k1bWpIA==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-css": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-css/-/uui-css-1.1.0.tgz", - "integrity": "sha512-phS0jWH6ACvXcfPJV7HaKXpqgb4ujGwf7qxAjIvb7iK5CnGiKct/icmfJ+7Fe8XYWtgiMUj+f36E4/69XoR3nQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-css/-/uui-css-1.2.1.tgz", + "integrity": "sha512-byPYIpEJ/LQEIFVuULtwrNVM9uZBRfZNvB23F+1Bz2CNPKvvaIGnvrlKFDh8ybCoNgRwI2nZaVjsx6rjQkv8TQ==", "dependencies": { "lit": "^2.2.2" } }, "node_modules/@umbraco-ui/uui-dialog": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog/-/uui-dialog-1.1.0.tgz", - "integrity": "sha512-vNB/N2YeE4rLFTQfeSV88RjNv+9+iUa7qRhpFbcfDEAUZcECgYJU8EffE7W7RsLTOcQoxMaOZKFUBw2BiV9NHA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog/-/uui-dialog-1.2.1.tgz", + "integrity": "sha512-yGdQG3aC3PVxWiegE47wtEOiW8EmE2bXPiyTUQH5yXvJSZ634hwRq1JXDPgC3h3DD+m4ooUFn08y0yp1Y9VC6w==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-css": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-css": "1.2.1" } }, "node_modules/@umbraco-ui/uui-dialog-layout": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog-layout/-/uui-dialog-layout-1.1.0.tgz", - "integrity": "sha512-tMfP1i7Z9d+gBkGBQD5l1vddOUnPfad1MfTqCpc6poGb54fSGR052lfuNfM+DvKfczFmeqTWhhGFx5MSxgZ+Ew==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog-layout/-/uui-dialog-layout-1.2.1.tgz", + "integrity": "sha512-5ftMUkDCXqgaUCY6SD29R6Q33Q7xSc/J1+rfOf34+X0UOpVjRXEoWGbkmu3QKdhqQK8FwkIIi492dJrVZxWn0w==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-file-dropzone": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-dropzone/-/uui-file-dropzone-1.1.0.tgz", - "integrity": "sha512-eFItMycXlW6ppTsRIlg3NstJ6HttCNYJoOO9fVxi1j+wdscxU+C5eqLh5K2Z7EgJdjUM9zwykLBdIY4x+Wr+Jg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-dropzone/-/uui-file-dropzone-1.2.1.tgz", + "integrity": "sha512-PAPn9NiB3F+RVY8zbolVNnZT2gfJl669lLlcf4Vd0pPzvmUG62N/uAThiZFeihhu5LoJYYJXyUO2ECj2UFkHpQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-symbol-file-dropzone": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-symbol-file-dropzone": "1.2.1" } }, "node_modules/@umbraco-ui/uui-file-preview": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-preview/-/uui-file-preview-1.1.0.tgz", - "integrity": "sha512-wj+vZCCBuDcupaM48l0VULQsstmV3UMCcoiD6h7VYEppQLS7RGvIcgxo8OFkrrA3FotGURq3T74iRI0p4Ra5qQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-preview/-/uui-file-preview-1.2.1.tgz", + "integrity": "sha512-L2HZRzkxakc37j3QC1V+s9VZjmuBA4PMMjTf/TYRDpE7kRPAoqPoaHmyr/iTy9uSC8N0vrenfrOMudbOionHhQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-symbol-file": "1.1.0", - "@umbraco-ui/uui-symbol-file-thumbnail": "1.1.0", - "@umbraco-ui/uui-symbol-folder": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-symbol-file": "1.2.1", + "@umbraco-ui/uui-symbol-file-thumbnail": "1.2.1", + "@umbraco-ui/uui-symbol-folder": "1.2.1" } }, "node_modules/@umbraco-ui/uui-form": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form/-/uui-form-1.1.0.tgz", - "integrity": "sha512-2TFL96thzbMVPu2WuQtrXvb+BweWUF5+Wx7NsixKu3q8HCp5QGttk7DPFXf2llG9UVlF922ImnSbt9viPCg2QA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form/-/uui-form-1.2.1.tgz", + "integrity": "sha512-LoWI+ZcUIZUyREb6//BkEEhYraQnFpLaDUdkfyD5kecSDXXb8jK6CE3TqjJia4B7pWgYBB3nu9QBs4czjUVVaw==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-form-layout-item": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-layout-item/-/uui-form-layout-item-1.1.0.tgz", - "integrity": "sha512-DXIJE0X9SkpANIbNWh2CWzHoYaTNbf11sFfysoP+QNzs/Xab0FlGMaQ4XVwRVMfftFnjzIQnhKQLCJcFzV2/rA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-layout-item/-/uui-form-layout-item-1.2.1.tgz", + "integrity": "sha512-y/R9rKdITryPrWp24xXDKD7DxW/Q5vJATpw3BgTcJhjUPoRh7IltiXlWnXwFI7Pqkb/9xZF6P6brlDe4UVoxgA==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-form-validation-message": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-form-validation-message": "1.2.1" } }, "node_modules/@umbraco-ui/uui-form-validation-message": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-validation-message/-/uui-form-validation-message-1.1.0.tgz", - "integrity": "sha512-WPGxJnp2SFU9OuKylGEqD9IOE1JHl9WQ3YzAn+rxkUpASSmQndUrTfVHJpEP+heFB9yVlzXNX3OXjgcvJw4zew==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-validation-message/-/uui-form-validation-message-1.2.1.tgz", + "integrity": "sha512-wx5NBIazmjwbWrACRO3BTOqA6XZijQkBADbCMzVGj0g3ziXyKcd904qvQ4hWek2F5/NsW6xFYIFXehVj4YmTBQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-icon": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon/-/uui-icon-1.1.0.tgz", - "integrity": "sha512-t/TXB7p1cFphN9QZG6tdKGFgCZntxlzBqUvXKJ9Ge8ZCdp1pFozLTBPuEELv5z0CN+JgZMMlXXisvYD5j9C9og==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon/-/uui-icon-1.2.1.tgz", + "integrity": "sha512-bH2HoEs0Vx36Nl+iWVgEXYO0+vdDGwAPPJHYI1RvEt28NdTmQjKOB7iUBlSl0afW9AhURvReQ6OASG7Lm8Z6mg==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-icon-registry": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry/-/uui-icon-registry-1.1.0.tgz", - "integrity": "sha512-JWQQYjXs3nGgXOpmIjrUKiuSeD37TeSYCoLfFH9NL41V5/MkSPgyE0eHASKyo2BRsx+cslFMNPV52TEjw9BGtA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry/-/uui-icon-registry-1.2.1.tgz", + "integrity": "sha512-vgYFT6L8BsneAhFeZCKBSy4m1vWfkq+pbhMYhJy/t/cz1LtzKswbukJKa9xJLry3rU3y+4BiqQIf/6A/62SrsA==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-icon": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-icon": "1.2.1" } }, "node_modules/@umbraco-ui/uui-icon-registry-essential": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry-essential/-/uui-icon-registry-essential-1.1.0.tgz", - "integrity": "sha512-S6h9+7/iHYcmJw8MW5hwTXmL7iPHYHohl+frnXzFnkItD7YDmrpfy3K6GYcENIWvOXLhGXa+JWnPz6m0N4WiZg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry-essential/-/uui-icon-registry-essential-1.2.1.tgz", + "integrity": "sha512-OcdE153HvV4/hirr4ddPVNn91FL2OvZ7kjL5CJZtOnACbXQTjSkYyLdk+MLEAo6TcJ3yr7u+7QWZ51RP/DpVyQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-icon-registry": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-icon-registry": "1.2.1" } }, "node_modules/@umbraco-ui/uui-input": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input/-/uui-input-1.1.0.tgz", - "integrity": "sha512-3iX/E0OXsGdGPb0coYwNusbI6+63FKKkTN6W7Gxd2fsskuEBfXyDtJ1Uxzb/7Pf/GSr7zIVeS6/lSq4m7j6Otg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input/-/uui-input-1.2.1.tgz", + "integrity": "sha512-vXMbI0gyqvOgy6+gV0JTBTebXguml1vVcJMD3AYnhFXIMS7YfmEojRc29RMluue+Exeoa9sA1am/oVUbeKgUaQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-input-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-file/-/uui-input-file-1.1.0.tgz", - "integrity": "sha512-Ru14anq2Jqk344ROUietNNGBo9YtRL6vRHHSntWXi57k7fXZ+mViv0KLMGHaizgqRnO7EF+e3y1hg/AcZcoRTQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-file/-/uui-input-file-1.2.1.tgz", + "integrity": "sha512-Sim071j9s59d5Mp/euXcZAMdlpVWavCGxYYwErzRFYpQYPxji14WRMOzKuhszVCaEeGoPz/4mmSnzRJsWGIgGA==", "dependencies": { - "@umbraco-ui/uui-action-bar": "1.1.0", - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-button": "1.1.0", - "@umbraco-ui/uui-file-dropzone": "1.1.0", - "@umbraco-ui/uui-icon": "1.1.0", - "@umbraco-ui/uui-icon-registry-essential": "1.1.0" + "@umbraco-ui/uui-action-bar": "1.2.1", + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-button": "1.2.1", + "@umbraco-ui/uui-file-dropzone": "1.2.1", + "@umbraco-ui/uui-icon": "1.2.1", + "@umbraco-ui/uui-icon-registry-essential": "1.2.1" } }, "node_modules/@umbraco-ui/uui-input-lock": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-lock/-/uui-input-lock-1.1.0.tgz", - "integrity": "sha512-7925LeQiaVGndXsb3Lna3kKMN9xFcmY+N3Hpe4jWDpdWA91KTlbcvhRmRhLzb1I0N8Af8e2LbnqvRH8mFCIlqA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-lock/-/uui-input-lock-1.2.1.tgz", + "integrity": "sha512-h8jkApn3gNXqWybWWz7tq40o1dU7TsBvHrCoot8VmsU9vaUnAPs9DsFI5bqZFIMcLH4QuNrWSbNEKWNtmT7RMw==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-button": "1.1.0", - "@umbraco-ui/uui-icon": "1.1.0", - "@umbraco-ui/uui-input": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-button": "1.2.1", + "@umbraco-ui/uui-icon": "1.2.1", + "@umbraco-ui/uui-input": "1.2.1" } }, "node_modules/@umbraco-ui/uui-input-password": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-password/-/uui-input-password-1.1.0.tgz", - "integrity": "sha512-JpPk1ryu8Cu4on0bA908YD8nZ4TeB6qs4lnIYjBvrb1olR/7YjiUXUZKwS7apyW2hU5hkCvpIFjR4VNayXE3iA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-password/-/uui-input-password-1.2.1.tgz", + "integrity": "sha512-LoQ0F6UJgzDOjosZGsezwSOyEDt5aKKDa8napJR6zQoKSUOkdJFI8N/vZcmPA1tCQkngS15DQpHM01lXx584uQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-icon-registry-essential": "1.1.0", - "@umbraco-ui/uui-input": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-icon-registry-essential": "1.2.1", + "@umbraco-ui/uui-input": "1.2.1" } }, "node_modules/@umbraco-ui/uui-keyboard-shortcut": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-keyboard-shortcut/-/uui-keyboard-shortcut-1.1.0.tgz", - "integrity": "sha512-vUwn3IID2q6O2IbLzGql3rDBUi/Y27bCTkSYJJguO+qpu1d/cNuYg3r7fUkcHSh1rSZaWacZiTRa0tM96pIurQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-keyboard-shortcut/-/uui-keyboard-shortcut-1.2.1.tgz", + "integrity": "sha512-9k/OZG63h3N1NZVayH1+Gw02LZap5DmYOGDldY+xASZQAdmt88vPbZcYvyCGNWpEX7aFzpB8QOEud2rNgNpMFw==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-label": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-label/-/uui-label-1.1.0.tgz", - "integrity": "sha512-WT7oyXrIS4d4EHc4+OuOzXZk8qzG7V0RpgRwrRsN1GAsuxuS3uRwL0JjWK/PiHs1Mf4khjcVCZN5HhuqhNy/3Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-label/-/uui-label-1.2.1.tgz", + "integrity": "sha512-m1FZsBo5TdiFk+pNG62Ynqr7+HVlASSO+TvlsTO3Xqnxkz78usNcl7reqoDvyCsOM2gTO23dttBdgn7hxKGnHA==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-loader": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader/-/uui-loader-1.1.0.tgz", - "integrity": "sha512-5+4yD5Q0sNzqW7Eizs+PAOBgN9LL3fcVEtW/I2GpfDqPz2llTIqmI6rFHGhNEaI61jTHzBvii82DkEawG7syxQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader/-/uui-loader-1.2.1.tgz", + "integrity": "sha512-fooCD178lu4pVS6zGb1S7K5uMNP7PTBfNFsZ+9Nx37ErP2x2j8DCNiwQ2EwrLp0v+1kvdbL0QuMWxa+9vz3ycQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-loader-bar": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-bar/-/uui-loader-bar-1.1.0.tgz", - "integrity": "sha512-UPxg+GmEkVY/18DVEioQBJO/9FHoqHBNtgIxL0zYyqF9AyKfRmnZ21+EXuVj67nIiFasc2Z/keCko6RWSU814w==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-bar/-/uui-loader-bar-1.2.1.tgz", + "integrity": "sha512-Gfxqb/YIbrxnLBlGMXpgAjmB6VGwQPFB30MKrkT1ySb4OzYteJc3L+MMUKKHglABavJbiN34CoaRIHLSOha7fw==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-loader-circle": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-circle/-/uui-loader-circle-1.1.0.tgz", - "integrity": "sha512-lVfeZSoH2s44A6/mSkzMk7RdzMZnkArD1R4pnhUFqAL+Y29b4c6/BBvgAsQJBTQkQSWjufh2ay4dyXuiQRXNFg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-circle/-/uui-loader-circle-1.2.1.tgz", + "integrity": "sha512-UaM4YLLe7IFQNgI50lAXnZyO5DGUaDKddO5Na+z3HJ5cNr98CDSiyHUyMM1bS4d2FVYzX/I3WPS+0aeKGlg0eQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-menu-item": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-menu-item/-/uui-menu-item-1.1.0.tgz", - "integrity": "sha512-gNQgOrxBuVapgfRo6i19PGIq9dKHh3jkjDULpdY880HktuTXB19MjQ6+sKaz6bb+t/euAgv1btbUmhuFtDiXkA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-menu-item/-/uui-menu-item-1.2.1.tgz", + "integrity": "sha512-RiiJYz+jsmCo0+FinC4SacFgjlqI2w7Dma5PLXzPFWT8Vn/d/Gp+7qfT5ge236OYbih5Zu1HtvI3WrMC/husCA==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-loader-bar": "1.1.0", - "@umbraco-ui/uui-symbol-expand": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-loader-bar": "1.2.1", + "@umbraco-ui/uui-symbol-expand": "1.2.1" + } + }, + "node_modules/@umbraco-ui/uui-modal": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-modal/-/uui-modal-1.2.1.tgz", + "integrity": "sha512-Bd1wPMJsMtp8psaU+opiGyAF9Nt98IE44uaLnuNZgT3mZ5ouvPQvL+PrlrbSRPQeBsEiwEf4AdPbmRZdtgjzBg==", + "dependencies": { + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-pagination": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-pagination/-/uui-pagination-1.1.0.tgz", - "integrity": "sha512-4qZ7/Biik1h6S9A/J0LPezrfl7X5sYGTdS7BiyZ2YkUyu8miO3/1pEw2DY210vBo5vFqlM+x9ZOitdiFAy7jzA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-pagination/-/uui-pagination-1.2.1.tgz", + "integrity": "sha512-euwG9yD41Ib64n/K38DVeTJqo6/EVbOJO+0ZLASVKYTckJ2/YQM63Xb6GdOG/QPauJphDYPdnOYcxYuIonCL7g==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-button": "1.1.0", - "@umbraco-ui/uui-button-group": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-button": "1.2.1", + "@umbraco-ui/uui-button-group": "1.2.1" } }, "node_modules/@umbraco-ui/uui-popover": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-popover/-/uui-popover-1.1.0.tgz", - "integrity": "sha512-rCNuzH6xHEyadzzFeqWAr31bqr8DldWgtuE5+2+k4CwLBZnFIFLwTdvyVifXFTY0b+KZopgsySadsMZDlk7zaQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-popover/-/uui-popover-1.2.1.tgz", + "integrity": "sha512-TvvkYduAAdPASTOxWCfNmGBvcec8zdO++dQ9SM7K8rJXj+g1YnKbLgLh6KFhY25/WrsmyGt9jhTIvB0w0NHi8Q==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-progress-bar": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-progress-bar/-/uui-progress-bar-1.1.0.tgz", - "integrity": "sha512-7KmJQwffT8GtMM8cs+LajIVlgFEt9SvZtxSQhOXbc3k1ydchNC4NhhblV7Y5hNwspfBWls+hmEWfEd7+rwUFmw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-progress-bar/-/uui-progress-bar-1.2.1.tgz", + "integrity": "sha512-ljr34WaQPsoyHgVMVwWopFkY/j/LZ0hS0DsUio4xzgfUhwNH0B/FrysJDvJK5snZhk5ROTxjv4vCr1d73iNHog==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-radio": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-radio/-/uui-radio-1.1.0.tgz", - "integrity": "sha512-ds7GR+fRtXKMeXh7AiYdPbLv/pAzL4eHSxE37QwzQ2Q1hdm9gHgkoy2rn+MpjcEu59NbqdbA0GyR4UMQm2sZLg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-radio/-/uui-radio-1.2.1.tgz", + "integrity": "sha512-Eo0hBtVs4d+c+0/Djf44O/tjhXMCKtHBxwB7F+IaS5h1XD8/svyXGxXtu9CFrdk9WqXFvR/br0CRM1vwxP/y+A==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-range-slider": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-range-slider/-/uui-range-slider-0.1.0.tgz", - "integrity": "sha512-+cAmEWl9MGKTdCNYaJiov+jgJ+vmXTJsVntRayuhpKTUAxd3Q6zup+y+ht6IF4D6TVUHrg6n9B+Y7YVw7giR4g==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-range-slider/-/uui-range-slider-1.2.1.tgz", + "integrity": "sha512-Xz3qw7R0etdgZSIRCYH7Vj3nEfjwqZI5hmt6/rdAskamJCDoAWcnqCsW6LxyeDSD5OozmLgprp2jJQnL7UnfFA==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-ref": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref/-/uui-ref-1.1.0.tgz", - "integrity": "sha512-TEgpsP6XmTnzJygqtU3lWHn+rgtjJBmwrDsGmoF/aVLK4voZbRrYxnRJKCWtKztbqSVbgIPHoTlBcb9Yry/sqQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref/-/uui-ref-1.2.1.tgz", + "integrity": "sha512-SDJxJzCSyFIAeY+fASPmM20KGHstQNw92UK6vp31BjTnZbirFZQwy9qCOUWxJuJ3x98RQS1SCFkOUHSWcjffXA==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-ref-list": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-list/-/uui-ref-list-1.1.0.tgz", - "integrity": "sha512-XhEjdp3mv7g/0MGN7q9WeliuAsM/LSk/4uon/h72svD0HjxM2DFzVfNw7xI9y3XFok9jpkQn/dEE6aANiYLTvQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-list/-/uui-ref-list-1.2.1.tgz", + "integrity": "sha512-M6KH5GKG/+RtBkLS1XIasSzARiR6b6Or9FK6DfniRtEYrsVtCyS/IgyYwxuXZNmtuQStT5QUNBRWLmgmYBbDpA==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-ref-node": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node/-/uui-ref-node-1.1.0.tgz", - "integrity": "sha512-/2yOkjDimptJ3Fnij9wgrjm1DQ6ETegjf5FNZ3bNa3Q5O/AGzyc+oSgHGeX1nIQYfm6d2hx+hSibXYUb80r2/A==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node/-/uui-ref-node-1.2.1.tgz", + "integrity": "sha512-m5MWOFOnYXPaD4tt2Bw4Rw8Q9B8Lnn8Vxw86jPzF/E4ooBHOg9dxKKfmP066Uoi6WNu92WGmzrgC8L0PMOrz7Q==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-icon": "1.1.0", - "@umbraco-ui/uui-ref": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-icon": "1.2.1", + "@umbraco-ui/uui-ref": "1.2.1" } }, "node_modules/@umbraco-ui/uui-ref-node-data-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-data-type/-/uui-ref-node-data-type-1.1.0.tgz", - "integrity": "sha512-M9jxkulDt49k9n2w+34m8Ut8d3q/fUDzQAUs/a6rMeO1flCxooLzbMt0JMcZ0a1Z7jWa9aZcGLu77SipefH2Zg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-data-type/-/uui-ref-node-data-type-1.2.1.tgz", + "integrity": "sha512-bhyX6lBTVKvyLZI7OpHt+ZmV6VyN7FNjDyJhHsAMlrajzIFGP/uCShzPTcqq476ITEfNUNV+ZTFbi366HdRgEQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-ref-node": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-ref-node": "1.2.1" } }, "node_modules/@umbraco-ui/uui-ref-node-document-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-document-type/-/uui-ref-node-document-type-1.1.0.tgz", - "integrity": "sha512-ZlKaxwq89hFP97WapXjGLX4nWgYPYtHkmYfDCr7dNOnCJ+JukoV6IznlzCVBvrUH/ItGHS7dPCi+c3QTA22v6A==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-document-type/-/uui-ref-node-document-type-1.2.1.tgz", + "integrity": "sha512-MZBbjqM7wTs5PI8dbT07FcW1BE2F3qI5XGHekMEzEuWm2XrJmTWSBCVl6YwJnlTbSJFJk34cH8tGW/WpdbqI0Q==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-ref-node": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-ref-node": "1.2.1" } }, "node_modules/@umbraco-ui/uui-ref-node-form": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-form/-/uui-ref-node-form-1.1.0.tgz", - "integrity": "sha512-4HC8l5JvtCy606dpmgqJVIHAZ36EU2K+bijnA5JhRqd949lltTApsUtqgFxliy+CnnxSN4fIG6eqdfZRLBJ8Hg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-form/-/uui-ref-node-form-1.2.1.tgz", + "integrity": "sha512-FX8bcZTk0kKViP2e1BBPZc2a6+pN830sHHpv/WUNsiRr65PDrLMCJIXFNMFNqrkvPE3Ps7ltgAcwt7SrX/gkLg==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-ref-node": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-ref-node": "1.2.1" } }, "node_modules/@umbraco-ui/uui-ref-node-member": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-member/-/uui-ref-node-member-1.1.0.tgz", - "integrity": "sha512-2lX5GsbMyDNDxe1CH8WSC5X7bVSIL6nKdFeGfgHEbz874Fml5gco4fQZNkXpSyfJVIZ165tnRhPhXaBwZPFu0w==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-member/-/uui-ref-node-member-1.2.1.tgz", + "integrity": "sha512-Gu8XjkFcHfzmNsY1xJlGiA13SdtBJb64TExOM3vcEezTtxbMnEJcZ4yXvUe5vFhETEYSbG19plIFh1YSaRWPww==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-ref-node": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-ref-node": "1.2.1" } }, "node_modules/@umbraco-ui/uui-ref-node-package": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-package/-/uui-ref-node-package-1.1.0.tgz", - "integrity": "sha512-Pv0kZGQDk7WnpQ9XGMLByreYbq4FHxxLMlbOuduoFXVMuId5veQlgU27Wqt1z7oc4F/Wwg3k0v1a8P4G9iklQQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-package/-/uui-ref-node-package-1.2.1.tgz", + "integrity": "sha512-tLaDRFhNp27AGQrJjbMQV3go8UptkqGKQ101NNObX2NEDUI5vKdVwJu6+A+oVc6lzDdaPFgRXYaeGM8ety3CgQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-ref-node": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-ref-node": "1.2.1" } }, "node_modules/@umbraco-ui/uui-ref-node-user": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-user/-/uui-ref-node-user-1.1.0.tgz", - "integrity": "sha512-ZTzAyReZJtiJEfh6f6uwMMt22KQVrE9HDlhowaQKjhF57CMiD2+Jlws6C5JmBmB0vYf13TyKqLXBKQd6kUV+/w==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-user/-/uui-ref-node-user-1.2.1.tgz", + "integrity": "sha512-PK53lN/m+2T8XbVwzIvXt39K3NVsqhE706HuaLMemvz8LOnXIkywLevzGiNJluxHrrhLXsflz9TIlJeEO5Vfjw==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-ref-node": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-ref-node": "1.2.1" } }, "node_modules/@umbraco-ui/uui-scroll-container": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-scroll-container/-/uui-scroll-container-1.1.0.tgz", - "integrity": "sha512-ge1YxNFfgwCRyJxU80MAV/ZriAmqT9qCB9RWdVJkiU5tobYo7XmuGikYO25DqheH+ly6dZjHypwmnyT9B3cJbg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-scroll-container/-/uui-scroll-container-1.2.1.tgz", + "integrity": "sha512-Aav1w6kRh69VEqdEHjz5QsW3YWzMxM2ReN9+u7duQbbDFpgn3xlU9GSOFy0JFu7qsbUwo8bj9iWBzpsPAy96Jw==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-select": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-select/-/uui-select-1.1.0.tgz", - "integrity": "sha512-VfgdPGID8pCa9+lwMujp8Mp+r+0CycpnMf4tMpNrIG4bmJgICnBbXc1vpk/Qc1TguwN9WnYkckZbE5t6g+7njQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-select/-/uui-select-1.2.1.tgz", + "integrity": "sha512-2AqUZ3S1/SG9bG7HlLtHx12V5ZBA1oiJUZZbbFDUqXAVU8ykkVat5C29uB3UrcCq+Jq/sq5KAxMQS5ucM6qQKA==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-slider": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-slider/-/uui-slider-1.1.0.tgz", - "integrity": "sha512-mhvZohP+OX1NsvM5UOkTste0Zkoo+557f3IeIMuUR4hiG6CV1AJU4YZ3geT0Vcbbw/3xKQ8ndsHa4S8kES7vrw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-slider/-/uui-slider-1.2.1.tgz", + "integrity": "sha512-h0jtMU0CQscmPahmn3TNPpML3UvIrOO05eG850SLN2roXTGTuhNWMUj7oKtu7p8NS9FR0F/EFe8ukL3QBUyaBQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-symbol-expand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-expand/-/uui-symbol-expand-1.1.0.tgz", - "integrity": "sha512-0MGimlTxzWfMM98wJG4qtzJgsOp8X8fPdAN6tpoJ53HwX/boxgXasFA80kfKgb3w95XLGWO2IdToDmbXAf76CQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-expand/-/uui-symbol-expand-1.2.1.tgz", + "integrity": "sha512-nmTCeTgX+Ct5c633fWI/l6WOl64Ubej+g6ocKLAijHksru4vuFN8hovNemJh144mrZnsRVvd8lKsqAX4IbP/jA==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-symbol-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file/-/uui-symbol-file-1.1.0.tgz", - "integrity": "sha512-ZfpHrWMWEaZyG72AVnL+iaQ+F8ZAYBMqeoG9aBk0JDWTZvvtDuzzDEK3MGk/qM/CDdEbxwE07s+kCPcHVd89sw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file/-/uui-symbol-file-1.2.1.tgz", + "integrity": "sha512-UehhchMIH2t21pqRAO/BpxhuqGgtBHiCv6lNy3CEsm71i9zsQHfqVwW1FHdJVuWvdQfhDu8UM1yYAYFys/7Bcg==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-symbol-file-dropzone": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-dropzone/-/uui-symbol-file-dropzone-1.1.0.tgz", - "integrity": "sha512-Wk1dXeMUAjkU9r9vVRhc1l/ythLb37D9u2xceg9GK5Nb7z5sObR4Aca72KZ2NvXnEIiFidMYvBBESycsn3RLZA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-dropzone/-/uui-symbol-file-dropzone-1.2.1.tgz", + "integrity": "sha512-zLvSqtOi0O5J8+AWuuUClwzGPXzfuYeCRHQSuyUD4E9kz4g1a0DCu5HzkLQuFZHNhK/WerWX84N3qd1FOo/1XA==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-symbol-file-thumbnail": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-thumbnail/-/uui-symbol-file-thumbnail-1.1.0.tgz", - "integrity": "sha512-OhKG/mNeUqifeMorwcWWXajGQfnrX4F+jBZrSWVs+88kgehvE4ozqjwGH+SBbnSlFMwIOq/DM7LS97WdjxlaIg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-thumbnail/-/uui-symbol-file-thumbnail-1.2.1.tgz", + "integrity": "sha512-XVpYGw6AuR00cV2u4v/W1YsBP1mckidG+sAbRmtf2pGy6oSYzxvKXSELbV9CPDIwoD3D3eCDKvK84NRQAfL74A==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-symbol-folder": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-folder/-/uui-symbol-folder-1.1.0.tgz", - "integrity": "sha512-uurR6Awel45fyqrv2dOryOscT3h+5wgyC/Pl6V+FzJbg+bW7CTLdQksK/LSNIjc7uj8iIG1cLF//VPexl0vGjQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-folder/-/uui-symbol-folder-1.2.1.tgz", + "integrity": "sha512-E1Izm9eVCPFAdAXqKvgZUBH7BYLfLQgLLLf29R75poy6U3hjaZXGrmySZdmTxQUgMKkmhpCPSgl6rbZGSFO5Ig==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-symbol-lock": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-lock/-/uui-symbol-lock-1.1.0.tgz", - "integrity": "sha512-t1zY2yh0b/udwDTfzi4fwT2fnOZSKooq59hEnEUyiVK4xyd/PzmY888SowjRXiELnOLkAOG8eg8KGyZGfgHT1Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-lock/-/uui-symbol-lock-1.2.1.tgz", + "integrity": "sha512-AV6kAAfeuAx8hnlrMz045hlI+c4OvmkhxpV2UKLocdaoILvCDbnJmkkl3dd1HBXq0dbi7EpVViYBreQ0v/4ybg==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-symbol-more": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-more/-/uui-symbol-more-1.1.0.tgz", - "integrity": "sha512-YLCQ+NgYfdDNgpi8RKLPdvpftc3IXgpi4e+9KfXX11bZr0FRGHehZWh/peoBTOuBYIgfTxWMVYdHuCEmP+FslA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-more/-/uui-symbol-more-1.2.1.tgz", + "integrity": "sha512-ngWhG5ZK3p+fvd+GXKnrowohF5Xh8c9IL50WRDijMYHA6cAmlbtyGIqxMeDbR7XQFeoqpIcoe8rrweESV83Imw==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-symbol-sort": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-sort/-/uui-symbol-sort-1.1.0.tgz", - "integrity": "sha512-qiz6DiawN71kGIuZF2FTTn6vKzI3lSQ/P2wQBqZFleKgPwmg2eLaCAFZsRB9jZu8eblhUwVzXolPvYSninvuWA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-sort/-/uui-symbol-sort-1.2.1.tgz", + "integrity": "sha512-xR6ThUY2mM8ixNXo1AztveimmKvhk3xNuY67xNPmQVi+4KjbnTTnk0hjKqti6gqzl2mPgBtLoJACQnpEHSkzwA==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-table": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-table/-/uui-table-1.1.0.tgz", - "integrity": "sha512-oer+JRv9v2LZ9uDgZp7J2V6RdSeq5R817bBFkonpx7Bg7he8GWiYJitIUtMa8itLl7ghwdcBfjgPL0yJmhI2Ag==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-table/-/uui-table-1.2.1.tgz", + "integrity": "sha512-qN+GbXUS2RJGuCTJJHGh3shDFufHLRUP6/TjzhiTz8R70OfBu8oJAAENqMNITPwAp6gmfapkk3INuYHLNHfzBg==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-tabs": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tabs/-/uui-tabs-1.1.0.tgz", - "integrity": "sha512-FXWVve92Nyz8eDYYlQrZ4ch+6MBcpKq5RfcMxAi9BSSwpZnnkbbPGQxyIbs/TK3FYLc0eB9R1Dmmr1yJDXUX9A==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tabs/-/uui-tabs-1.2.1.tgz", + "integrity": "sha512-pRFBuqJOK6D7Okt66KA8K5P6FcjyXwMkGVyuSqKy0dvUxH7Q11yNj4ZbweLKhYXd4Fm952ZV4izXEdU7R+AHBw==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-tag": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tag/-/uui-tag-1.1.0.tgz", - "integrity": "sha512-BTnGjXWhsdJvh1ch51PnZG3pXtn1HrHOxByPGuaRrgDM3iJbceuI6wj6h+N+O+wV9eacJqbc33ic/qpVhcdYeQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tag/-/uui-tag-1.2.1.tgz", + "integrity": "sha512-JguPjx9l/6qwi2q7WZJB6OYJTVKTuF5cVtOU9S0shW2k+FJzTxl2oRgTKoaKKgNNoUdUtSR06czqwWKcPRkr1A==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-textarea": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-textarea/-/uui-textarea-1.1.0.tgz", - "integrity": "sha512-3QjJR9sLURImSxrkcwD4dzV9CSEHD0kEwdrFLSQyRS2D2fHgEgQV6FbUAhI1WNRwTB1ZP23Vx4oClfdsqs010w==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-textarea/-/uui-textarea-1.2.1.tgz", + "integrity": "sha512-Tj7hQ9/hEs1NBAL5Bmrc6Yq0OoV4ONp1woIV1tvnUnGcBqLyXeemnsoL8u/m1ZDJh+78QuEunAvAXYQVATLrHw==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-toast-notification": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification/-/uui-toast-notification-1.1.0.tgz", - "integrity": "sha512-uaX3uNY+M4lOLASy/0lVLCK8/4hjkT+aTEqwgYxrTaVCDWJMaJQnxhpGrx4dZpoMGir4q5HLHgxXs7r/hBwB2w==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification/-/uui-toast-notification-1.2.1.tgz", + "integrity": "sha512-LDchVJzMwgzZi/55RD17nFZ+axHJ+bIvysQldgZz1E2XliVKfM/uHpHfFiMXYnC74H2VQUDM2iJ6OyPMz1HWGA==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-button": "1.1.0", - "@umbraco-ui/uui-css": "1.1.0", - "@umbraco-ui/uui-icon": "1.1.0", - "@umbraco-ui/uui-icon-registry-essential": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-button": "1.2.1", + "@umbraco-ui/uui-css": "1.2.1", + "@umbraco-ui/uui-icon": "1.2.1", + "@umbraco-ui/uui-icon-registry-essential": "1.2.1" } }, "node_modules/@umbraco-ui/uui-toast-notification-container": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-container/-/uui-toast-notification-container-1.1.0.tgz", - "integrity": "sha512-q/GiBHuV5sSiGXbV5gledukHdOCrGpMK+egNAmtOAkmkfd0/59+/rX6wtUxgDXe7Xd5WVYViQDlTqNTYbzY1aw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-container/-/uui-toast-notification-container-1.2.1.tgz", + "integrity": "sha512-N9iENigcDbEGdwpzBOQZy5ClCwWwpJb6v+3ikfXa6rXI7a4v9AiQRkxZTmjjUfs/E6CItxdYFJiKcBKd/nEISQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-toast-notification": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-toast-notification": "1.2.1" } }, "node_modules/@umbraco-ui/uui-toast-notification-layout": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-layout/-/uui-toast-notification-layout-1.1.0.tgz", - "integrity": "sha512-6tNsmQP3UDOcjbpBrGYsc4vGrU1YPv9/NhQce8YfNM6vwnjF6f/aTHDqADG0hCEijyS0MvK1jPttbU67Zm3Rmg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-layout/-/uui-toast-notification-layout-1.2.1.tgz", + "integrity": "sha512-SCrsW4LGoI8HEz+Idml5J7RBANfKULiy9ZCo8/77nvukNkNpfVqzI+X2W4m+qVRIqk5khB6OAQjNAX62ef0e3A==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-css": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-css": "1.2.1" } }, "node_modules/@umbraco-ui/uui-toggle": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toggle/-/uui-toggle-1.1.0.tgz", - "integrity": "sha512-uuRtsUNHBoj8wz3xxax9DHpf+GAnjiNTBN0ZIcCaHvRzhRJf2vX0Bdh3joPGOoQLSd0B575I3GXkSOSIOYLxYQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toggle/-/uui-toggle-1.2.1.tgz", + "integrity": "sha512-1or1YplOyq3siFGwKJC7GQXGPjt659ixoKkaB9XQ1CeR9avJ5xjutY0OYM8wLiw3SCOHD06QTnuX5hGz6l2slw==", "dependencies": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-boolean-input": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-boolean-input": "1.2.1" } }, "node_modules/abab": { @@ -2877,14 +2979,14 @@ } }, "node_modules/ace-builds": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.15.0.tgz", - "integrity": "sha512-L1RXgqxDvzbJ7H8Y2v9lb4kHaZRn5JNTECG+oZTH2EDewMmpQMLDC4GnFKIh3+xb/gk2nVPO7gGwpTYPw91QzA==" + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.18.0.tgz", + "integrity": "sha512-ETLeQ3X1XvcWckOZFR+KvTectZyEwDm2p+CckWazS+xsK3THHVxn/PkfkPr37OTNKVY/yJRx29JGERV77YQYXw==" }, "node_modules/acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -3481,9 +3583,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.13", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", - "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", + "version": "10.4.14", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", + "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", "dev": true, "funding": [ { @@ -3496,8 +3598,8 @@ } ], "dependencies": { - "browserslist": "^4.21.4", - "caniuse-lite": "^1.0.30001426", + "browserslist": "^4.21.5", + "caniuse-lite": "^1.0.30001464", "fraction.js": "^4.2.0", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", @@ -4118,9 +4220,9 @@ } }, "node_modules/browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", "dev": true, "funding": [ { @@ -4133,10 +4235,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" }, "bin": { "browserslist": "cli.js" @@ -4418,9 +4520,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001445", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001445.tgz", - "integrity": "sha512-8sdQIdMztYmzfTMO6KfLny878Ln9c2M0fc7EH60IjlP4Dc4PiCy7K2Vl3ITmWgOyPgVQKa5x+UP/KqFsxj4mBg==", + "version": "1.0.30001481", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001481.tgz", + "integrity": "sha512-KCqHwRnaa1InZBtqXzP98LPg0ajCVujMKjqKDhZEthIpAsJl/YEIa3YvXjGXPVqzZVguccuu7ga9KOE1J9rKPQ==", "dev": true, "funding": [ { @@ -4430,6 +4532,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ] }, @@ -4841,8 +4947,7 @@ "node_modules/colord": { "version": "2.9.3", "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", - "dev": true + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" }, "node_modules/colornames": { "version": "1.1.1", @@ -5124,9 +5229,9 @@ } }, "node_modules/css-declaration-sorter": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz", - "integrity": "sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.0.tgz", + "integrity": "sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew==", "dev": true, "engines": { "node": "^10 || ^12 || >=14" @@ -5297,17 +5402,16 @@ } }, "node_modules/cssnano": { - "version": "5.1.14", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.14.tgz", - "integrity": "sha512-Oou7ihiTocbKqi0J1bB+TRJIQX5RMR3JghA8hcWSw9mjBLQ5Y3RWqEDoYG3sRNlAbCIXpqMoZGbq5KDR3vdzgw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.0.0.tgz", + "integrity": "sha512-RGlcbzGhzEBCHuQe3k+Udyj5M00z0pm9S+VurHXFEOXxH+y0sVrJH2sMzoyz2d8N1EScazg+DVvmgyx0lurwwA==", "dev": true, "dependencies": { - "cssnano-preset-default": "^5.2.13", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" + "cssnano-preset-default": "^6.0.0", + "lilconfig": "^2.1.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "funding": { "type": "opencollective", @@ -5318,55 +5422,55 @@ } }, "node_modules/cssnano-preset-default": { - "version": "5.2.13", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.13.tgz", - "integrity": "sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.0.0.tgz", + "integrity": "sha512-BDxlaFzObRDXUiCCBQUNQcI+f1/aX2mgoNtXGjV6PG64POcHoDUoX+LgMWw+Q4609QhxwkcSnS65YFs42RA6qQ==", "dev": true, "dependencies": { "css-declaration-sorter": "^6.3.1", - "cssnano-utils": "^3.1.0", + "cssnano-utils": "^4.0.0", "postcss-calc": "^8.2.3", - "postcss-colormin": "^5.3.0", - "postcss-convert-values": "^5.1.3", - "postcss-discard-comments": "^5.1.2", - "postcss-discard-duplicates": "^5.1.0", - "postcss-discard-empty": "^5.1.1", - "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.7", - "postcss-merge-rules": "^5.1.3", - "postcss-minify-font-values": "^5.1.0", - "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.4", - "postcss-minify-selectors": "^5.2.1", - "postcss-normalize-charset": "^5.1.0", - "postcss-normalize-display-values": "^5.1.0", - "postcss-normalize-positions": "^5.1.1", - "postcss-normalize-repeat-style": "^5.1.1", - "postcss-normalize-string": "^5.1.0", - "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.1", - "postcss-normalize-url": "^5.1.0", - "postcss-normalize-whitespace": "^5.1.1", - "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.1", - "postcss-reduce-transforms": "^5.1.0", - "postcss-svgo": "^5.1.0", - "postcss-unique-selectors": "^5.1.1" + "postcss-colormin": "^6.0.0", + "postcss-convert-values": "^6.0.0", + "postcss-discard-comments": "^6.0.0", + "postcss-discard-duplicates": "^6.0.0", + "postcss-discard-empty": "^6.0.0", + "postcss-discard-overridden": "^6.0.0", + "postcss-merge-longhand": "^6.0.0", + "postcss-merge-rules": "^6.0.0", + "postcss-minify-font-values": "^6.0.0", + "postcss-minify-gradients": "^6.0.0", + "postcss-minify-params": "^6.0.0", + "postcss-minify-selectors": "^6.0.0", + "postcss-normalize-charset": "^6.0.0", + "postcss-normalize-display-values": "^6.0.0", + "postcss-normalize-positions": "^6.0.0", + "postcss-normalize-repeat-style": "^6.0.0", + "postcss-normalize-string": "^6.0.0", + "postcss-normalize-timing-functions": "^6.0.0", + "postcss-normalize-unicode": "^6.0.0", + "postcss-normalize-url": "^6.0.0", + "postcss-normalize-whitespace": "^6.0.0", + "postcss-ordered-values": "^6.0.0", + "postcss-reduce-initial": "^6.0.0", + "postcss-reduce-transforms": "^6.0.0", + "postcss-svgo": "^6.0.0", + "postcss-unique-selectors": "^6.0.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/cssnano-utils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", - "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.0.tgz", + "integrity": "sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw==", "dev": true, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" @@ -5377,6 +5481,7 @@ "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", "dev": true, + "optional": true, "dependencies": { "css-tree": "^1.1.2" }, @@ -5389,6 +5494,7 @@ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", "dev": true, + "optional": true, "dependencies": { "mdn-data": "2.0.14", "source-map": "^0.6.1" @@ -5401,41 +5507,31 @@ "version": "2.0.14", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "dev": true + "dev": true, + "optional": true }, "node_modules/csso/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/cssom": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", - "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", - "dev": true - }, "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-3.0.0.tgz", + "integrity": "sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==", "dev": true, "dependencies": { - "cssom": "~0.3.6" + "rrweb-cssom": "^0.6.0" }, "engines": { - "node": ">=8" + "node": ">=14" } }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - }, "node_modules/currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", @@ -5466,17 +5562,17 @@ } }, "node_modules/data-urls": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", - "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-4.0.0.tgz", + "integrity": "sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==", "dev": true, "dependencies": { "abab": "^2.0.6", "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0" + "whatwg-url": "^12.0.0" }, "engines": { - "node": ">=12" + "node": ">=14" } }, "node_modules/date-format": { @@ -6120,9 +6216,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.253", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.253.tgz", - "integrity": "sha512-1pezJ2E1UyBTGbA7fUlHdPSXQw1k+82VhTFLG5G0AUqLGvsZqFzleOblceqegZzxYX4kC7hGEEdzIQI9RZ1Cuw==", + "version": "1.4.376", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.376.tgz", + "integrity": "sha512-TFeOKd98TpJzRHkr4Aorn16QkMnuCQuGAE6IZ0wYF+qkbSfMPqjplvRppR02tMUpVxZz8nyBNvVm9lIZsqrbPQ==", "dev": true }, "node_modules/emits": { @@ -6434,12 +6530,15 @@ } }, "node_modules/eslint": { - "version": "8.33.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.33.0.tgz", - "integrity": "sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==", + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.39.0.tgz", + "integrity": "sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.4.1", + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.2", + "@eslint/js": "8.39.0", "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -6449,11 +6548,10 @@ "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.0", + "espree": "^9.5.1", + "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", @@ -6474,7 +6572,6 @@ "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", - "regexpp": "^3.2.0", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" @@ -6490,9 +6587,9 @@ } }, "node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", @@ -6500,6 +6597,9 @@ }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-scope/node_modules/estraverse": { @@ -6511,40 +6611,16 @@ "node": ">=4.0" } }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint/node_modules/ansi-styles": { @@ -6804,14 +6880,14 @@ } }, "node_modules/espree": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", - "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", + "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", "dev": true, "dependencies": { "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -6834,9 +6910,9 @@ } }, "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, "dependencies": { "estraverse": "^5.1.0" @@ -6846,9 +6922,9 @@ } }, "node_modules/esquery/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, "engines": { "node": ">=4.0" @@ -8533,16 +8609,16 @@ } }, "node_modules/gulp-eslint-new": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/gulp-eslint-new/-/gulp-eslint-new-1.7.1.tgz", - "integrity": "sha512-moP6Q/ecxm40ZyMFw9qoC6poqt3Y2C1HcoUDRH2+b9UJu0/3BnOciRDgerm1DH5oh0dSPlP0/uZ6dFEAkYdSOw==", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/gulp-eslint-new/-/gulp-eslint-new-1.7.2.tgz", + "integrity": "sha512-3CAR6q7L4UaCRvui/4AhmsuKIFvkuNew0Qsu4HWYCGEJ1u02PoZpsqyfWHlZ6AyBqXdw+V+dBa6Oab5vOxmhKA==", "dev": true, "dependencies": { - "@types/eslint": "^8.4.10", + "@types/eslint": "^8.21.0", "@types/node": ">=12", "eslint": "8", "fancy-log": "^2.0.0", - "plugin-error": "^2.0.0", + "plugin-error": "^2.0.1", "semver": "^7.3.8", "ternary-stream": "^3.0.0", "vinyl-fs": "^3.0.3" @@ -8576,9 +8652,9 @@ } }, "node_modules/gulp-eslint-new/node_modules/plugin-error": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-2.0.0.tgz", - "integrity": "sha512-o4bwIOmuFwUg2MU6xt7plGEQY3YyENx6kvwaFZBrUpamA91FdS9w3U+pU0y4OuDoBQe+jf3RLGSfQebSRBEVsQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-2.0.1.tgz", + "integrity": "sha512-zMakqvIDyY40xHOvzXka0kUvf40nYIuwRE8dWhti2WtjQZ31xAgBZBhxsK7vK3QbRXS1Xms/LO7B5cuAsfB2Gg==", "dev": true, "dependencies": { "ansi-colors": "^1.0.1" @@ -10572,15 +10648,15 @@ } }, "node_modules/jasmine-core": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.5.0.tgz", - "integrity": "sha512-9PMzyvhtocxb3aXJVOPqBDswdgyAeSB81QnLop4npOpbqnheaTEwPc9ZloQeVswugPManznQBjD8kWDTjlnHuw==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.0.tgz", + "integrity": "sha512-O236+gd0ZXS8YAjFx8xKaJ94/erqUliEkJTDedyE7iHvv4ZVqi+q+8acJxu05/WJDKm512EUNn809In37nWlAQ==", "dev": true }, "node_modules/jquery": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.3.tgz", - "integrity": "sha512-bZ5Sy3YzKo9Fyc8wH2iIQK4JImJ6R0GWI9kL1/k7Z91ZBNgkRXE6U0JfHIizZbort8ZunhSI3jw9I6253ahKfg==" + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.4.tgz", + "integrity": "sha512-v28EW9DWDFpzcD9O5iyJXg3R3+q+mET5JhnjJzQUZMHOv67bpSIHq81GEYpPNZHG+XXHsfSme3nxp/hndKEcsQ==" }, "node_modules/jquery-ui-dist": { "version": "1.13.2", @@ -10638,18 +10714,17 @@ } }, "node_modules/jsdom": { - "version": "21.1.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-21.1.0.tgz", - "integrity": "sha512-m0lzlP7qOtthD918nenK3hdItSd2I+V3W9IrBcB36sqDwG+KnUs66IF5GY7laGWUnlM9vTsD0W1QwSEBYWWcJg==", + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-21.1.1.tgz", + "integrity": "sha512-Jjgdmw48RKcdAIQyUD1UdBh2ecH7VqwaXPN3ehoZN6MqgVbMn+lRm1aAT1AsdJRAJpwfa4IpwgzySn61h2qu3w==", "dev": true, "dependencies": { "abab": "^2.0.6", - "acorn": "^8.8.1", + "acorn": "^8.8.2", "acorn-globals": "^7.0.0", - "cssom": "^0.5.0", - "cssstyle": "^2.3.0", - "data-urls": "^3.0.2", - "decimal.js": "^10.4.2", + "cssstyle": "^3.0.0", + "data-urls": "^4.0.0", + "decimal.js": "^10.4.3", "domexception": "^4.0.0", "escodegen": "^2.0.0", "form-data": "^4.0.0", @@ -10658,7 +10733,8 @@ "https-proxy-agent": "^5.0.1", "is-potential-custom-element-name": "^1.0.1", "nwsapi": "^2.2.2", - "parse5": "^7.1.1", + "parse5": "^7.1.2", + "rrweb-cssom": "^0.6.0", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", "tough-cookie": "^4.1.2", @@ -10666,8 +10742,8 @@ "webidl-conversions": "^7.0.0", "whatwg-encoding": "^2.0.0", "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0", - "ws": "^8.11.0", + "whatwg-url": "^12.0.1", + "ws": "^8.13.0", "xml-name-validator": "^4.0.0" }, "engines": { @@ -10737,9 +10813,9 @@ } }, "node_modules/jsdom/node_modules/ws": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.0.tgz", - "integrity": "sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", "dev": true, "engines": { "node": ">=10.0.0" @@ -10828,9 +10904,9 @@ "dev": true }, "node_modules/karma": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.1.tgz", - "integrity": "sha512-Cj57NKOskK7wtFWSlMvZf459iX+kpYIPXmkNUzP2WAFcA7nhr/ALn5R7sw3w+1udFDcpMx/tuB8d5amgm3ijaA==", + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.2.tgz", + "integrity": "sha512-C6SU/53LB31BEgRg+omznBEMY4SjHU3ricV6zBcAe1EeILKkeScr+fZXtaI5WyDbkVowJxxAI6h73NcFPmXolQ==", "dev": true, "dependencies": { "@colors/colors": "1.5.0", @@ -11394,37 +11470,38 @@ } }, "node_modules/lilconfig": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", - "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", "dev": true, "engines": { "node": ">=10" } }, "node_modules/lit": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/lit/-/lit-2.6.1.tgz", - "integrity": "sha512-DT87LD64f8acR7uVp7kZfhLRrHkfC/N4BVzAtnw9Yg8087mbBJ//qedwdwX0kzDbxgPccWRW6mFwGbRQIxy0pw==", + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lit/-/lit-2.7.3.tgz", + "integrity": "sha512-0a+u+vVbmgSfPu+fyvqjMPBX0Kwbyj9QOv9MbQFZhWGlV2cyk3lEwgfUQgYN+i/lx++1Z3wZknSIp3QCKxHLyg==", "dependencies": { "@lit/reactive-element": "^1.6.0", - "lit-element": "^3.2.0", - "lit-html": "^2.6.0" + "lit-element": "^3.3.0", + "lit-html": "^2.7.0" } }, "node_modules/lit-element": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.2.2.tgz", - "integrity": "sha512-6ZgxBR9KNroqKb6+htkyBwD90XGRiqKDHVrW/Eh0EZ+l+iC+u+v+w3/BA5NGi4nizAVHGYvQBHUDuSmLjPp7NQ==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.2.tgz", + "integrity": "sha512-xXAeVWKGr4/njq0rGC9dethMnYCq5hpKYrgQZYTzawt9YQhMiXfD+T1RgrdY3NamOxwq2aXlb0vOI6e29CKgVQ==", "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.1.0", "@lit/reactive-element": "^1.3.0", - "lit-html": "^2.2.0" + "lit-html": "^2.7.0" } }, "node_modules/lit-html": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.6.1.tgz", - "integrity": "sha512-Z3iw+E+3KKFn9t2YKNjsXNEu/LRLI98mtH/C6lnFg7kvaqPIzPn124Yd4eT/43lyqrejpc5Wb6BHq3fdv4S8Rw==", + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.7.3.tgz", + "integrity": "sha512-9DyLzcn/kbRGowz2vFmSANFbRZTxYUgYYFqzie89w6GLpPUiBCDHfcdeRUV/k3Q2ueYxNjfv46yPCtKAEAPOVw==", "dependencies": { "@types/trusted-types": "^2.0.2" } @@ -12219,10 +12296,16 @@ "optional": true }, "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -12482,9 +12565,9 @@ "dev": true }, "node_modules/node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", "dev": true }, "node_modules/node.extend": { @@ -12530,18 +12613,6 @@ "node": ">=0.10.0" } }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/nouislider": { "version": "15.7.0", "resolved": "https://registry.npmjs.org/nouislider/-/nouislider-15.7.0.tgz", @@ -13189,9 +13260,9 @@ } }, "node_modules/parse5": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", - "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", "dev": true, "dependencies": { "entities": "^4.4.0" @@ -13201,9 +13272,9 @@ } }, "node_modules/parse5/node_modules/entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, "engines": { "node": ">=0.12" @@ -13433,9 +13504,9 @@ } }, "node_modules/postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "version": "8.4.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz", + "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==", "dev": true, "funding": [ { @@ -13445,10 +13516,14 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "nanoid": "^3.3.4", + "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -13470,82 +13545,82 @@ } }, "node_modules/postcss-colormin": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", - "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.0.0.tgz", + "integrity": "sha512-EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw==", "dev": true, "dependencies": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", "colord": "^2.9.1", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-convert-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", - "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.0.0.tgz", + "integrity": "sha512-U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw==", "dev": true, "dependencies": { "browserslist": "^4.21.4", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-discard-comments": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", - "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.0.tgz", + "integrity": "sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw==", "dev": true, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-discard-duplicates": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", - "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.0.tgz", + "integrity": "sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA==", "dev": true, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-discard-empty": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", - "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.0.tgz", + "integrity": "sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ==", "dev": true, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-discard-overridden": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", - "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.0.tgz", + "integrity": "sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw==", "dev": true, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" @@ -13581,279 +13656,278 @@ } }, "node_modules/postcss-merge-longhand": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", - "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.0.tgz", + "integrity": "sha512-4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.1.1" + "stylehacks": "^6.0.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-merge-rules": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.3.tgz", - "integrity": "sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.0.0.tgz", + "integrity": "sha512-rCXkklftzEkniyv3f4mRCQzxD6oE4Quyh61uyWTUbCJ26Pv2hoz+fivJSsSBWxDBeScR4fKCfF3HHTcD7Ybqnw==", "dev": true, "dependencies": { "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", - "cssnano-utils": "^3.1.0", + "cssnano-utils": "^4.0.0", "postcss-selector-parser": "^6.0.5" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-minify-font-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", - "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.0.0.tgz", + "integrity": "sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-minify-gradients": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", - "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.0.tgz", + "integrity": "sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA==", "dev": true, "dependencies": { "colord": "^2.9.1", - "cssnano-utils": "^3.1.0", + "cssnano-utils": "^4.0.0", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-minify-params": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", - "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.0.0.tgz", + "integrity": "sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ==", "dev": true, "dependencies": { "browserslist": "^4.21.4", - "cssnano-utils": "^3.1.0", + "cssnano-utils": "^4.0.0", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-minify-selectors": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", - "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.0.tgz", + "integrity": "sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g==", "dev": true, "dependencies": { "postcss-selector-parser": "^6.0.5" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-normalize-charset": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", - "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.0.tgz", + "integrity": "sha512-cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ==", "dev": true, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-normalize-display-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", - "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.0.tgz", + "integrity": "sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-normalize-positions": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", - "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.0.tgz", + "integrity": "sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-normalize-repeat-style": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", - "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.0.tgz", + "integrity": "sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-normalize-string": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", - "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.0.tgz", + "integrity": "sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-normalize-timing-functions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", - "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.0.tgz", + "integrity": "sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-normalize-unicode": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", - "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.0.tgz", + "integrity": "sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg==", "dev": true, "dependencies": { "browserslist": "^4.21.4", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-normalize-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", - "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.0.tgz", + "integrity": "sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw==", "dev": true, "dependencies": { - "normalize-url": "^6.0.1", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-normalize-whitespace": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", - "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.0.tgz", + "integrity": "sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-ordered-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", - "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.0.tgz", + "integrity": "sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg==", "dev": true, "dependencies": { - "cssnano-utils": "^3.1.0", + "cssnano-utils": "^4.0.0", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-reduce-initial": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.1.tgz", - "integrity": "sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.0.0.tgz", + "integrity": "sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA==", "dev": true, "dependencies": { "browserslist": "^4.21.4", "caniuse-api": "^3.0.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-reduce-transforms": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", - "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.0.tgz", + "integrity": "sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" @@ -13873,16 +13947,16 @@ } }, "node_modules/postcss-svgo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", - "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.0.tgz", + "integrity": "sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0", - "svgo": "^2.7.0" + "svgo": "^3.0.2" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >= 18" }, "peerDependencies": { "postcss": "^8.2.15" @@ -13898,15 +13972,15 @@ } }, "node_modules/postcss-svgo/node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", "dev": true, "dependencies": { "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", "nth-check": "^2.0.1" }, "funding": { @@ -13914,27 +13988,60 @@ } }, "node_modules/postcss-svgo/node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", "dev": true, "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" }, "engines": { - "node": ">=8.0.0" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" } }, - "node_modules/postcss-svgo/node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "node_modules/postcss-svgo/node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", "dev": true, "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/postcss-svgo/node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/postcss-svgo/node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true + }, + "node_modules/postcss-svgo/node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" }, "funding": { "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" @@ -13953,12 +14060,12 @@ ] }, "node_modules/postcss-svgo/node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "dev": true, "dependencies": { - "domelementtype": "^2.2.0" + "domelementtype": "^2.3.0" }, "engines": { "node": ">= 4" @@ -13968,74 +14075,71 @@ } }, "node_modules/postcss-svgo/node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", + "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", "dev": true, "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.1" }, "funding": { "url": "https://github.com/fb55/domutils?sponsor=1" } }, "node_modules/postcss-svgo/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, + "engines": { + "node": ">=0.12" + }, "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } }, "node_modules/postcss-svgo/node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", "dev": true }, - "node_modules/postcss-svgo/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/postcss-svgo/node_modules/svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.0.2.tgz", + "integrity": "sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==", "dev": true, "dependencies": { "@trysound/sax": "0.2.0", "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" + "css-select": "^5.1.0", + "css-tree": "^2.2.1", + "csso": "^5.0.5", + "picocolors": "^1.0.0" }, "bin": { "svgo": "bin/svgo" }, "engines": { - "node": ">=10.13.0" + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" } }, "node_modules/postcss-unique-selectors": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", - "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.0.tgz", + "integrity": "sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw==", "dev": true, "dependencies": { "postcss-selector-parser": "^6.0.5" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" @@ -14161,9 +14265,9 @@ } }, "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "engines": { "node": ">=6" } @@ -14420,15 +14524,15 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", "dev": true }, "node_modules/regenerator-transform": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", - "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", "dev": true, "dependencies": { "@babel/runtime": "^7.8.4" @@ -14496,41 +14600,23 @@ "node": ">=0.10.0" } }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, "node_modules/regexpu-core": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.1.tgz", - "integrity": "sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", "dev": true, "dependencies": { + "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", "regenerate-unicode-properties": "^10.1.0", - "regjsgen": "^0.7.1", "regjsparser": "^0.9.1", "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" + "unicode-match-property-value-ecmascript": "^2.1.0" }, "engines": { "node": ">=4" } }, - "node_modules/regjsgen": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", - "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==", - "dev": true - }, "node_modules/regjsparser": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", @@ -14761,6 +14847,12 @@ "rimraf": "bin.js" } }, + "node_modules/rrweb-cssom": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", + "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==", + "dev": true + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -15454,9 +15546,9 @@ "dev": true }, "node_modules/spectrum-colorpicker2": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/spectrum-colorpicker2/-/spectrum-colorpicker2-2.0.9.tgz", - "integrity": "sha512-tyNppC56VQHdoKtWdkEkqQfLg9D1hhBea/laO3ffJGrBs3uwFmCxpcBK3a2IOpxZnioykiT+bGlT3SsI7UySRw==" + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/spectrum-colorpicker2/-/spectrum-colorpicker2-2.0.10.tgz", + "integrity": "sha512-WXyR8qT2tZ71u1W2cdwOPd28jGpuxjwJBeLVTN8xVEWsgQDotlK6DuUwocOyL9qAxTh9570qxTfZYbY7m2wuvQ==" }, "node_modules/split-string": { "version": "3.1.0", @@ -15582,7 +15674,8 @@ "version": "0.1.8", "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "dev": true + "dev": true, + "optional": true }, "node_modules/stack-trace": { "version": "0.0.10", @@ -15910,16 +16003,16 @@ "optional": true }, "node_modules/stylehacks": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", - "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.0.0.tgz", + "integrity": "sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw==", "dev": true, "dependencies": { "browserslist": "^4.21.4", "postcss-selector-parser": "^6.0.4" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" @@ -16182,9 +16275,9 @@ "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" }, "node_modules/tinymce": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/tinymce/-/tinymce-6.3.1.tgz", - "integrity": "sha512-+oCwXuTxAdJXVJ0130OxQz0JDNsqg3deuzgeUo8X5Vb27EzCJgXwO5eWvCxvkxpQo4oiHMVlM4tUIpTUHufHGQ==" + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/tinymce/-/tinymce-6.4.2.tgz", + "integrity": "sha512-te+4c8PoAwTKPMBQtMQehnSZlOO9Ay5tDgaRFJKBehYb6SlX2PYZ0v3oe/cmiv5EfqdwZLkEMXk2MNOeApZZLg==" }, "node_modules/to-absolute-glob": { "version": "2.0.2", @@ -16348,15 +16441,15 @@ } }, "node_modules/tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", + "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", "dev": true, "dependencies": { - "punycode": "^2.1.1" + "punycode": "^2.3.0" }, "engines": { - "node": ">=12" + "node": ">=14" } }, "node_modules/trim-newlines": { @@ -16577,9 +16670,9 @@ } }, "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "dev": true, "engines": { "node": ">=4" @@ -16703,9 +16796,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz", - "integrity": "sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", "dev": true, "funding": [ { @@ -16715,6 +16808,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { @@ -16722,7 +16819,7 @@ "picocolors": "^1.0.0" }, "bin": { - "browserslist-lint": "cli.js" + "update-browserslist-db": "cli.js" }, "peerDependencies": { "browserslist": ">= 4.21.0" @@ -17087,16 +17184,16 @@ } }, "node_modules/whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-12.0.1.tgz", + "integrity": "sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==", "dev": true, "dependencies": { - "tr46": "^3.0.0", + "tr46": "^4.1.1", "webidl-conversions": "^7.0.0" }, "engines": { - "node": ">=12" + "node": ">=14" } }, "node_modules/which": { @@ -17393,45 +17490,46 @@ }, "dependencies": { "@ampproject/remapping": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", - "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, "requires": { - "@jridgewell/trace-mapping": "^0.3.0" + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" } }, "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", "dev": true, "requires": { "@babel/highlight": "^7.18.6" } }, "@babel/compat-data": { - "version": "7.20.10", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz", - "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.4.tgz", + "integrity": "sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==", "dev": true }, "@babel/core": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", - "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.4.tgz", + "integrity": "sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==", "dev": true, "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helpers": "^7.20.7", - "@babel/parser": "^7.20.7", + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.4", + "@babel/helper-compilation-targets": "^7.21.4", + "@babel/helper-module-transforms": "^7.21.2", + "@babel/helpers": "^7.21.0", + "@babel/parser": "^7.21.4", "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.12", - "@babel/types": "^7.20.7", + "@babel/traverse": "^7.21.4", + "@babel/types": "^7.21.4", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -17448,13 +17546,14 @@ } }, "@babel/generator": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz", - "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz", + "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==", "dev": true, "requires": { - "@babel/types": "^7.20.7", + "@babel/types": "^7.21.4", "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" } }, @@ -17478,13 +17577,13 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", - "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz", + "integrity": "sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==", "dev": true, "requires": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-validator-option": "^7.18.6", + "@babel/compat-data": "^7.21.4", + "@babel/helper-validator-option": "^7.21.0", "browserslist": "^4.21.3", "lru-cache": "^5.1.1", "semver": "^6.3.0" @@ -17514,28 +17613,29 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.19.0.tgz", - "integrity": "sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.4.tgz", + "integrity": "sha512-46QrX2CQlaFRF4TkwfTt6nJD7IHq8539cCL7SDpqWSDeJKY1xylKKY5F/33mJhLZ3mFvKv2gGrVS6NkyF6qs+Q==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-member-expression-to-functions": "^7.21.0", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.9", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", "@babel/helper-split-export-declaration": "^7.18.6" } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz", - "integrity": "sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.4.tgz", + "integrity": "sha512-M00OuhU+0GyZ5iBBN9czjugzWrEq2vDpf/zCYHxxf93ul/Q5rv+a5h+/+0WnI1AebHNVtl5bFV0qsJoH23DbfA==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.1.0" + "regexpu-core": "^5.3.1" } }, "@babel/helper-define-polyfill-provider": { @@ -17576,13 +17676,13 @@ } }, "@babel/helper-function-name": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", + "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", "dev": true, "requires": { - "@babel/template": "^7.18.10", - "@babel/types": "^7.19.0" + "@babel/template": "^7.20.7", + "@babel/types": "^7.21.0" } }, "@babel/helper-hoist-variables": { @@ -17595,12 +17695,12 @@ } }, "@babel/helper-member-expression-to-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.20.7.tgz", - "integrity": "sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz", + "integrity": "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==", "dev": true, "requires": { - "@babel/types": "^7.20.7" + "@babel/types": "^7.21.0" } }, "@babel/helper-module-imports": { @@ -17613,9 +17713,9 @@ } }, "@babel/helper-module-transforms": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", - "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", + "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.18.9", @@ -17624,8 +17724,8 @@ "@babel/helper-split-export-declaration": "^7.18.6", "@babel/helper-validator-identifier": "^7.19.1", "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.10", - "@babel/types": "^7.20.7" + "@babel/traverse": "^7.21.2", + "@babel/types": "^7.21.2" } }, "@babel/helper-optimise-call-expression": { @@ -17679,12 +17779,12 @@ } }, "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz", - "integrity": "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", "dev": true, "requires": { - "@babel/types": "^7.18.9" + "@babel/types": "^7.20.0" } }, "@babel/helper-split-export-declaration": { @@ -17709,9 +17809,9 @@ "dev": true }, "@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", "dev": true }, "@babel/helper-wrap-function": { @@ -17727,14 +17827,14 @@ } }, "@babel/helpers": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.7.tgz", - "integrity": "sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", + "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", "dev": true, "requires": { "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/traverse": "^7.21.0", + "@babel/types": "^7.21.0" } }, "@babel/highlight": { @@ -17749,9 +17849,9 @@ } }, "@babel/parser": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz", - "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz", + "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==", "dev": true }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { @@ -17764,14 +17864,14 @@ } }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz", - "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", + "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", - "@babel/plugin-proposal-optional-chaining": "^7.18.9" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-proposal-optional-chaining": "^7.20.7" } }, "@babel/plugin-proposal-async-generator-functions": { @@ -17797,13 +17897,13 @@ } }, "@babel/plugin-proposal-class-static-block": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", - "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", + "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-class-static-block": "^7.14.5" } }, @@ -17838,12 +17938,12 @@ } }, "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz", - "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", + "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, @@ -17891,13 +17991,13 @@ } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz", - "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, @@ -17912,14 +18012,14 @@ } }, "@babel/plugin-proposal-private-property-in-object": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz", - "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", + "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" } }, @@ -18069,23 +18169,23 @@ } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", - "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz", + "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.20.2" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", - "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", + "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-remap-async-to-generator": "^7.18.6" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9" } }, "@babel/plugin-transform-block-scoped-functions": { @@ -18098,24 +18198,24 @@ } }, "@babel/plugin-transform-block-scoping": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.11.tgz", - "integrity": "sha512-tA4N427a7fjf1P0/2I4ScsHGc5jcHPbb30xMbaTke2gxDuWpUfXDuX1FEymJwKk4tuGUvGcejAR6HdZVqmmPyw==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", + "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.20.2" } }, "@babel/plugin-transform-classes": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.7.tgz", - "integrity": "sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", + "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-compilation-targets": "^7.20.7", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", + "@babel/helper-function-name": "^7.21.0", "@babel/helper-optimise-call-expression": "^7.18.6", "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-replace-supers": "^7.20.7", @@ -18124,18 +18224,19 @@ } }, "@babel/plugin-transform-computed-properties": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz", - "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz", + "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/template": "^7.20.7" } }, "@babel/plugin-transform-destructuring": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz", - "integrity": "sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==", + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", + "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.20.2" @@ -18171,12 +18272,12 @@ } }, "@babel/plugin-transform-for-of": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", - "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz", + "integrity": "sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.20.2" } }, "@babel/plugin-transform-function-name": { @@ -18219,12 +18320,12 @@ } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.20.11.tgz", - "integrity": "sha512-S8e1f7WQ7cimJQ51JkAaDrEtohVEitXjgCGAS2N8S31Y42E+kWwfSz83LYz57QdBm7q9diARVqanIaH2oVgQnw==", + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz", + "integrity": "sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-module-transforms": "^7.21.2", "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-simple-access": "^7.20.2" } @@ -18252,13 +18353,13 @@ } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz", - "integrity": "sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", + "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.19.0", - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-create-regexp-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2" } }, "@babel/plugin-transform-new-target": { @@ -18281,9 +18382,9 @@ } }, "@babel/plugin-transform-parameters": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz", - "integrity": "sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==", + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", + "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.20.2" @@ -18299,13 +18400,13 @@ } }, "@babel/plugin-transform-regenerator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz", - "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", + "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "regenerator-transform": "^0.15.0" + "@babel/helper-plugin-utils": "^7.20.2", + "regenerator-transform": "^0.15.1" } }, "@babel/plugin-transform-reserved-words": { @@ -18327,13 +18428,13 @@ } }, "@babel/plugin-transform-spread": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz", - "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", + "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" } }, "@babel/plugin-transform-sticky-regex": { @@ -18383,31 +18484,31 @@ } }, "@babel/preset-env": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", - "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.4.tgz", + "integrity": "sha512-2W57zHs2yDLm6GD5ZpvNn71lZ0B/iypSdIeq25OurDKji6AdzV07qp4s3n1/x5BqtiGaTrPN3nerlSCaC5qNTw==", "dev": true, "requires": { - "@babel/compat-data": "^7.20.1", - "@babel/helper-compilation-targets": "^7.20.0", + "@babel/compat-data": "^7.21.4", + "@babel/helper-compilation-targets": "^7.21.4", "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-option": "^7.18.6", + "@babel/helper-validator-option": "^7.21.0", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.20.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7", + "@babel/plugin-proposal-async-generator-functions": "^7.20.7", "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.21.0", "@babel/plugin-proposal-dynamic-import": "^7.18.6", "@babel/plugin-proposal-export-namespace-from": "^7.18.9", "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.2", + "@babel/plugin-proposal-object-rest-spread": "^7.20.7", "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-optional-chaining": "^7.21.0", "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.21.0", "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", @@ -18424,40 +18525,40 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.18.6", - "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.20.7", + "@babel/plugin-transform-async-to-generator": "^7.20.7", "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.20.2", - "@babel/plugin-transform-classes": "^7.20.2", - "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.20.2", + "@babel/plugin-transform-block-scoping": "^7.21.0", + "@babel/plugin-transform-classes": "^7.21.0", + "@babel/plugin-transform-computed-properties": "^7.20.7", + "@babel/plugin-transform-destructuring": "^7.21.3", "@babel/plugin-transform-dotall-regex": "^7.18.6", "@babel/plugin-transform-duplicate-keys": "^7.18.9", "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-for-of": "^7.21.0", "@babel/plugin-transform-function-name": "^7.18.9", "@babel/plugin-transform-literals": "^7.18.9", "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.19.6", - "@babel/plugin-transform-modules-commonjs": "^7.19.6", - "@babel/plugin-transform-modules-systemjs": "^7.19.6", + "@babel/plugin-transform-modules-amd": "^7.20.11", + "@babel/plugin-transform-modules-commonjs": "^7.21.2", + "@babel/plugin-transform-modules-systemjs": "^7.20.11", "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5", "@babel/plugin-transform-new-target": "^7.18.6", "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.20.1", + "@babel/plugin-transform-parameters": "^7.21.3", "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.20.5", "@babel/plugin-transform-reserved-words": "^7.18.6", "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.19.0", + "@babel/plugin-transform-spread": "^7.20.7", "@babel/plugin-transform-sticky-regex": "^7.18.6", "@babel/plugin-transform-template-literals": "^7.18.9", "@babel/plugin-transform-typeof-symbol": "^7.18.9", "@babel/plugin-transform-unicode-escapes": "^7.18.10", "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.20.2", + "@babel/types": "^7.21.4", "babel-plugin-polyfill-corejs2": "^0.3.3", "babel-plugin-polyfill-corejs3": "^0.6.0", "babel-plugin-polyfill-regenerator": "^0.4.1", @@ -18486,13 +18587,19 @@ "esutils": "^2.0.2" } }, + "@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, "@babel/runtime": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.0.tgz", - "integrity": "sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", + "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", "dev": true, "requires": { - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.13.11" } }, "@babel/template": { @@ -18507,27 +18614,27 @@ } }, "@babel/traverse": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.12.tgz", - "integrity": "sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.4.tgz", + "integrity": "sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==", "dev": true, "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.4", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", + "@babel/helper-function-name": "^7.21.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", + "@babel/parser": "^7.21.4", + "@babel/types": "^7.21.4", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", - "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz", + "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==", "dev": true, "requires": { "@babel/helper-string-parser": "^7.19.4", @@ -18541,15 +18648,30 @@ "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", "dev": true }, + "@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.3.0" + } + }, + "@eslint-community/regexpp": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz", + "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==", + "dev": true + }, "@eslint/eslintrc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", - "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", + "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.4.0", + "espree": "^9.5.1", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -18565,9 +18687,9 @@ "dev": true }, "globals": { - "version": "13.19.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", - "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -18584,6 +18706,12 @@ } } }, + "@eslint/js": { + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.39.0.tgz", + "integrity": "sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==", + "dev": true + }, "@gulp-sourcemaps/identity-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-2.0.1.tgz", @@ -18693,9 +18821,9 @@ } }, "@jridgewell/resolve-uri": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", - "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true }, "@jridgewell/set-array": { @@ -18705,25 +18833,25 @@ "dev": true }, "@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", - "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", "dev": true }, "@jridgewell/trace-mapping": { - "version": "0.3.15", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", - "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", "dev": true, "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, "@lit-labs/ssr-dom-shim": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.0.0.tgz", - "integrity": "sha512-ic93MBXfApIFTrup4a70M/+ddD8xdt2zxxj9sRwHQzhS9ag/syqkD8JPdTXsc1gUy2K8TTirhlCqyTEM/sifNw==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.1.tgz", + "integrity": "sha512-kXOeFbfCm4fFf2A3WwVEeQj55tMZa8c8/f9AKHMobQMkzNUfUj+antR3fRPaZJawsa1aZiP/Da3ndpZrwEe4rQ==" }, "@lit/reactive-element": { "version": "1.6.1", @@ -18734,9 +18862,9 @@ } }, "@microsoft/signalr": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@microsoft/signalr/-/signalr-7.0.2.tgz", - "integrity": "sha512-U+o33K2m6nnMojZzBrjrApKgYfiQ0A0t4I2F5oFJObgfzRSDS9v0YoYgkmva5nbPftUp3YcR5XmH0S/1+BZT6Q==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/@microsoft/signalr/-/signalr-7.0.5.tgz", + "integrity": "sha512-j84syCKlXkQAOQhyrzRmW7w/M2UXQ6OKcXXFIVNjmiiZbEGIvSvJDRAuyMFjArdQOXz+etJgd58H/prTbyTCrA==", "requires": { "abort-controller": "^3.0.0", "eventsource": "^2.0.2", @@ -18814,9 +18942,9 @@ "dev": true }, "@types/eslint": { - "version": "8.4.10", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", - "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.37.0.tgz", + "integrity": "sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ==", "dev": true, "requires": { "@types/estree": "*", @@ -18824,9 +18952,9 @@ } }, "@types/estree": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", - "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", + "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", "dev": true }, "@types/glob": { @@ -18865,726 +18993,785 @@ "optional": true }, "@types/trusted-types": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz", - "integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz", + "integrity": "sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==" }, "@umbraco-ui/uui": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui/-/uui-1.1.0.tgz", - "integrity": "sha512-PWy5Z/15tokLtMmchqmyVZFcroZJpqcuhfIu21wb1+/dX7tG8PV4D/PHFkpHaC9MkvrlkI25Kp4K0caxeIxnJw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui/-/uui-1.2.1.tgz", + "integrity": "sha512-851qpmWJpTzDLKqtHNTQ7S3MJQxt3xJw1KOX4iWfvFIMbVAC2yQCZwAsTcTANBMxqCCy6ZDaFs/2P69BsNwLIw==", "requires": { - "@umbraco-ui/uui-action-bar": "1.1.0", - "@umbraco-ui/uui-avatar": "1.1.0", - "@umbraco-ui/uui-avatar-group": "1.1.0", - "@umbraco-ui/uui-badge": "1.1.0", - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-boolean-input": "1.1.0", - "@umbraco-ui/uui-box": "1.1.0", - "@umbraco-ui/uui-breadcrumbs": "1.1.0", - "@umbraco-ui/uui-button": "1.1.0", - "@umbraco-ui/uui-button-group": "1.1.0", - "@umbraco-ui/uui-button-inline-create": "1.1.0", - "@umbraco-ui/uui-card": "1.1.0", - "@umbraco-ui/uui-card-content-node": "1.1.0", - "@umbraco-ui/uui-card-media": "1.1.0", - "@umbraco-ui/uui-card-user": "1.1.0", - "@umbraco-ui/uui-caret": "1.1.0", - "@umbraco-ui/uui-checkbox": "1.1.0", - "@umbraco-ui/uui-combobox": "1.2.0", - "@umbraco-ui/uui-combobox-list": "1.1.0", - "@umbraco-ui/uui-css": "1.1.0", - "@umbraco-ui/uui-dialog": "1.1.0", - "@umbraco-ui/uui-dialog-layout": "1.1.0", - "@umbraco-ui/uui-file-dropzone": "1.1.0", - "@umbraco-ui/uui-file-preview": "1.1.0", - "@umbraco-ui/uui-form": "1.1.0", - "@umbraco-ui/uui-form-layout-item": "1.1.0", - "@umbraco-ui/uui-form-validation-message": "1.1.0", - "@umbraco-ui/uui-icon": "1.1.0", - "@umbraco-ui/uui-icon-registry": "1.1.0", - "@umbraco-ui/uui-icon-registry-essential": "1.1.0", - "@umbraco-ui/uui-input": "1.1.0", - "@umbraco-ui/uui-input-file": "1.1.0", - "@umbraco-ui/uui-input-lock": "1.1.0", - "@umbraco-ui/uui-input-password": "1.1.0", - "@umbraco-ui/uui-keyboard-shortcut": "1.1.0", - "@umbraco-ui/uui-label": "1.1.0", - "@umbraco-ui/uui-loader": "1.1.0", - "@umbraco-ui/uui-loader-bar": "1.1.0", - "@umbraco-ui/uui-loader-circle": "1.1.0", - "@umbraco-ui/uui-menu-item": "1.1.0", - "@umbraco-ui/uui-pagination": "1.1.0", - "@umbraco-ui/uui-popover": "1.1.0", - "@umbraco-ui/uui-progress-bar": "1.1.0", - "@umbraco-ui/uui-radio": "1.1.0", - "@umbraco-ui/uui-range-slider": "0.1.0", - "@umbraco-ui/uui-ref": "1.1.0", - "@umbraco-ui/uui-ref-list": "1.1.0", - "@umbraco-ui/uui-ref-node": "1.1.0", - "@umbraco-ui/uui-ref-node-data-type": "1.1.0", - "@umbraco-ui/uui-ref-node-document-type": "1.1.0", - "@umbraco-ui/uui-ref-node-form": "1.1.0", - "@umbraco-ui/uui-ref-node-member": "1.1.0", - "@umbraco-ui/uui-ref-node-package": "1.1.0", - "@umbraco-ui/uui-ref-node-user": "1.1.0", - "@umbraco-ui/uui-scroll-container": "1.1.0", - "@umbraco-ui/uui-select": "1.1.0", - "@umbraco-ui/uui-slider": "1.1.0", - "@umbraco-ui/uui-symbol-expand": "1.1.0", - "@umbraco-ui/uui-symbol-file": "1.1.0", - "@umbraco-ui/uui-symbol-file-dropzone": "1.1.0", - "@umbraco-ui/uui-symbol-file-thumbnail": "1.1.0", - "@umbraco-ui/uui-symbol-folder": "1.1.0", - "@umbraco-ui/uui-symbol-lock": "1.1.0", - "@umbraco-ui/uui-symbol-more": "1.1.0", - "@umbraco-ui/uui-symbol-sort": "1.1.0", - "@umbraco-ui/uui-table": "1.1.0", - "@umbraco-ui/uui-tabs": "1.1.0", - "@umbraco-ui/uui-tag": "1.1.0", - "@umbraco-ui/uui-textarea": "1.1.0", - "@umbraco-ui/uui-toast-notification": "1.1.0", - "@umbraco-ui/uui-toast-notification-container": "1.1.0", - "@umbraco-ui/uui-toast-notification-layout": "1.1.0", - "@umbraco-ui/uui-toggle": "1.1.0" + "@umbraco-ui/uui-action-bar": "1.2.1", + "@umbraco-ui/uui-avatar": "1.2.1", + "@umbraco-ui/uui-avatar-group": "1.2.1", + "@umbraco-ui/uui-badge": "1.2.1", + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-boolean-input": "1.2.1", + "@umbraco-ui/uui-box": "1.2.1", + "@umbraco-ui/uui-breadcrumbs": "1.2.1", + "@umbraco-ui/uui-button": "1.2.1", + "@umbraco-ui/uui-button-group": "1.2.1", + "@umbraco-ui/uui-button-inline-create": "1.2.1", + "@umbraco-ui/uui-card": "1.2.1", + "@umbraco-ui/uui-card-content-node": "1.2.1", + "@umbraco-ui/uui-card-media": "1.2.1", + "@umbraco-ui/uui-card-user": "1.2.1", + "@umbraco-ui/uui-caret": "1.2.1", + "@umbraco-ui/uui-checkbox": "1.2.1", + "@umbraco-ui/uui-color-area": "1.2.1", + "@umbraco-ui/uui-color-picker": "1.2.1", + "@umbraco-ui/uui-color-slider": "1.2.1", + "@umbraco-ui/uui-color-swatch": "1.2.1", + "@umbraco-ui/uui-color-swatches": "1.2.1", + "@umbraco-ui/uui-combobox": "1.2.1", + "@umbraco-ui/uui-combobox-list": "1.2.1", + "@umbraco-ui/uui-css": "1.2.1", + "@umbraco-ui/uui-dialog": "1.2.1", + "@umbraco-ui/uui-dialog-layout": "1.2.1", + "@umbraco-ui/uui-file-dropzone": "1.2.1", + "@umbraco-ui/uui-file-preview": "1.2.1", + "@umbraco-ui/uui-form": "1.2.1", + "@umbraco-ui/uui-form-layout-item": "1.2.1", + "@umbraco-ui/uui-form-validation-message": "1.2.1", + "@umbraco-ui/uui-icon": "1.2.1", + "@umbraco-ui/uui-icon-registry": "1.2.1", + "@umbraco-ui/uui-icon-registry-essential": "1.2.1", + "@umbraco-ui/uui-input": "1.2.1", + "@umbraco-ui/uui-input-file": "1.2.1", + "@umbraco-ui/uui-input-lock": "1.2.1", + "@umbraco-ui/uui-input-password": "1.2.1", + "@umbraco-ui/uui-keyboard-shortcut": "1.2.1", + "@umbraco-ui/uui-label": "1.2.1", + "@umbraco-ui/uui-loader": "1.2.1", + "@umbraco-ui/uui-loader-bar": "1.2.1", + "@umbraco-ui/uui-loader-circle": "1.2.1", + "@umbraco-ui/uui-menu-item": "1.2.1", + "@umbraco-ui/uui-modal": "1.2.1", + "@umbraco-ui/uui-pagination": "1.2.1", + "@umbraco-ui/uui-popover": "1.2.1", + "@umbraco-ui/uui-progress-bar": "1.2.1", + "@umbraco-ui/uui-radio": "1.2.1", + "@umbraco-ui/uui-range-slider": "1.2.1", + "@umbraco-ui/uui-ref": "1.2.1", + "@umbraco-ui/uui-ref-list": "1.2.1", + "@umbraco-ui/uui-ref-node": "1.2.1", + "@umbraco-ui/uui-ref-node-data-type": "1.2.1", + "@umbraco-ui/uui-ref-node-document-type": "1.2.1", + "@umbraco-ui/uui-ref-node-form": "1.2.1", + "@umbraco-ui/uui-ref-node-member": "1.2.1", + "@umbraco-ui/uui-ref-node-package": "1.2.1", + "@umbraco-ui/uui-ref-node-user": "1.2.1", + "@umbraco-ui/uui-scroll-container": "1.2.1", + "@umbraco-ui/uui-select": "1.2.1", + "@umbraco-ui/uui-slider": "1.2.1", + "@umbraco-ui/uui-symbol-expand": "1.2.1", + "@umbraco-ui/uui-symbol-file": "1.2.1", + "@umbraco-ui/uui-symbol-file-dropzone": "1.2.1", + "@umbraco-ui/uui-symbol-file-thumbnail": "1.2.1", + "@umbraco-ui/uui-symbol-folder": "1.2.1", + "@umbraco-ui/uui-symbol-lock": "1.2.1", + "@umbraco-ui/uui-symbol-more": "1.2.1", + "@umbraco-ui/uui-symbol-sort": "1.2.1", + "@umbraco-ui/uui-table": "1.2.1", + "@umbraco-ui/uui-tabs": "1.2.1", + "@umbraco-ui/uui-tag": "1.2.1", + "@umbraco-ui/uui-textarea": "1.2.1", + "@umbraco-ui/uui-toast-notification": "1.2.1", + "@umbraco-ui/uui-toast-notification-container": "1.2.1", + "@umbraco-ui/uui-toast-notification-layout": "1.2.1", + "@umbraco-ui/uui-toggle": "1.2.1" } }, "@umbraco-ui/uui-action-bar": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-action-bar/-/uui-action-bar-1.1.0.tgz", - "integrity": "sha512-dHDAIiRuTo0gVlOd5twonot48XWSH6IuLUhRPncCSRpArQO146+t2SLPztmMPtsHoSVM546saR3+7zPmb2HKfA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-action-bar/-/uui-action-bar-1.2.1.tgz", + "integrity": "sha512-YhT6mlmCZrdM/gmwdkf6ED0R2ak+qAQl3pAg2QAZS9448s3rj6FYRH/19BK/YoDvdoHZCQYzp92h5zyrv5DN3A==", "requires": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-button-group": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-button-group": "1.2.1" } }, "@umbraco-ui/uui-avatar": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar/-/uui-avatar-1.1.0.tgz", - "integrity": "sha512-wdIEMlkflOP+37NDel8K+H0yfYFmYxeuG09Ctoulel9EUoQuA4sQ9zlqXinLCsat9zs4HJlyoV9DwbWMXKp3TQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar/-/uui-avatar-1.2.1.tgz", + "integrity": "sha512-qIiIxsm0iApqldXR9JBk9sov4geK5GDPf8suUgIr/BiHqtVq0EPcOWY4LyC9LlPaTfB0+PiA7atsLgboi9dHXQ==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-avatar-group": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar-group/-/uui-avatar-group-1.1.0.tgz", - "integrity": "sha512-HVEWVifsDshkvI5fmSBd7HpvOdKFxpVI8tDDz5ocxr5EhD0b4Wf1Let/1QhBzHRc1+ZiWq8Ef5tIRDkGdXDVdg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar-group/-/uui-avatar-group-1.2.1.tgz", + "integrity": "sha512-p///csKjUb3/sXN1KjIEHM48gki+Qhcpvsi0zls2OUhn1Qt2I/1AaAd2IofI3QzEFIXdFuQqz9XpSbkOJZWTOg==", "requires": { - "@umbraco-ui/uui-avatar": "1.1.0", - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-avatar": "1.2.1", + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-badge": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-badge/-/uui-badge-1.1.0.tgz", - "integrity": "sha512-r0X8tOO0lJHuoiuR4gLWEFV6NLWI7FO1lMWQPqXhxGr9cnfCVQgPKA0rMMWlnabBnNXwvb6F8HI5OTFaVAnLNA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-badge/-/uui-badge-1.2.1.tgz", + "integrity": "sha512-uoEwHJ+x9EB8NFmPi8OT++1xcMwYa9HH276fj0Pf9RlylqmWFj4X4SIwVlhIoQymTMNKeSSc6rY3q36jTzElCw==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-base": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-base/-/uui-base-1.1.0.tgz", - "integrity": "sha512-uLb3+hbGhnLxjo8UuuaVCCwApR/5Z10atAWwc5m/Q+WSdW/sEVnpLGuI6B1m1vz/RGJVjBDwXl8IET3Nq/vcrA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-base/-/uui-base-1.2.1.tgz", + "integrity": "sha512-4oiHzczUC/S+AXlnOKxMCIS06TyHBVIWTrh2H836/xXDjesdvbwxDh0+ILO+TWrxFRl+3CiGsLoGREcQHQfaOg==", "requires": { "lit": "^2.3.1" } }, "@umbraco-ui/uui-boolean-input": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-boolean-input/-/uui-boolean-input-1.1.0.tgz", - "integrity": "sha512-c2ZGdZFy7Y7ciLrkHmR5FkwHsQn93M+wCECxkXipo/TbBfneOd/2kFIYuiLYhn2fit+bbdXEaEc45fjOsuzUIg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-boolean-input/-/uui-boolean-input-1.2.1.tgz", + "integrity": "sha512-dGJCc8eRpXpTizN7stht7ZztteZKiarVGfokqtDmja2Zh94t3S8FoARCv1ydmMbXs/xta6uBh95ndZukJ9T1Gw==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-box": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-box/-/uui-box-1.1.0.tgz", - "integrity": "sha512-JXXikfNWMVHhZss6T4lmI3TufH4Vtq7vGwuvRHp+NdI/F2dcLcEuHJbjp/uMMbbsqtZ1sdbmaL0hJFk1x8gK5A==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-box/-/uui-box-1.2.1.tgz", + "integrity": "sha512-JWvzr+HMPyvShzCF3YpjlqYJFv4vrDPYNjRgfm58JAagMN/MHtrfgkUTWQw7UkAJQf1+fjXD+61wfwyZCWrmCw==", "requires": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-css": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-css": "1.2.1" } }, "@umbraco-ui/uui-breadcrumbs": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-breadcrumbs/-/uui-breadcrumbs-1.1.0.tgz", - "integrity": "sha512-PBFiFhOeM8sQkDTsHI1b2OktD2P6UgEMJA93s2vtajgjNRrw4xEYmSOQJClT5n9nToZGkLjr1TCigcdzizov8Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-breadcrumbs/-/uui-breadcrumbs-1.2.1.tgz", + "integrity": "sha512-GcBrKIvjcrguXYqS0e0oaFrdtuaulpBY4AmN8T0UgSykVYOCJ9ufmAg29vj7BTxxcdTwIozYVuhB/wGacQ6F2A==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-button": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button/-/uui-button-1.1.0.tgz", - "integrity": "sha512-sexyW4QpUOMyNiBZ+K1V4znKRvkBvNe5zhG8HiZiZDIGIXTeFozyil8Rh0usxav+O1YTTklrs6gtf1Ll8KTkIw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button/-/uui-button-1.2.1.tgz", + "integrity": "sha512-hmguxJeJU+Z6/+NnTcgt6mvO4PQy/b+b7vKVqXKfWKPdb9jInwBCz5E6cfVQhK2FyqKWgP2iE2caTAEB/U0sIg==", "requires": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-icon-registry-essential": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-icon-registry-essential": "1.2.1" } }, "@umbraco-ui/uui-button-group": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-group/-/uui-button-group-1.1.0.tgz", - "integrity": "sha512-Iuti8GTRiMS3k73PyYerYjKSpWEaA0EZpbJvpnbAHS6INJN0PEUwK69wVcdWchpTd/Qyi4H0HlkQbudgHdKe2A==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-group/-/uui-button-group-1.2.1.tgz", + "integrity": "sha512-eCHHPqcIvbZxoqaYU0/Htg7tv8D7NVPzuW9brjDzT+UUjPy9GANj3MBgCh9RphJtJJoRWFtwax4hOfFnJdm3mA==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-button-inline-create": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-inline-create/-/uui-button-inline-create-1.1.0.tgz", - "integrity": "sha512-1Bc+MrLjLDS09yw5G4qhBf5t5R8jgvGoC/ozaRio4D6DXAksMA6FsDDmm2nBDg2ajLyf1DWvhwy5ScUgKyydYQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-inline-create/-/uui-button-inline-create-1.2.1.tgz", + "integrity": "sha512-+EZpE4Tg3r9m5SzsYaqVZjvnpoLTMYds9BfyZqngxNkg4L0AMMucDWM/mgGsKPE0TK+908mv6Dw3sS59ER2Jog==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-card": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card/-/uui-card-1.1.0.tgz", - "integrity": "sha512-d3JXO1AAzP8YK4xoR5GEScCgKW8XG6VdAji/dXlUnu+5n9L8F+wEe5db7woIiIXVv/m0a88awfBpd+RtlA4Lmg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card/-/uui-card-1.2.1.tgz", + "integrity": "sha512-bqCs9PkyxGRiwiDgR24XRhNBj+X7yVqe0jYnBIq18dzrXXeBCmAvnUpsw3vPM9FeVNfKBpqo+RgEKQoQuAZjew==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-card-content-node": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-content-node/-/uui-card-content-node-1.1.0.tgz", - "integrity": "sha512-cqaydgUZaiaQgeKaAWihxclS0hdX0j34fZlAAZU+IAr9P7V9vMGyGu9en1tJE/lvTp4MkmyWCHYhTJC1+onJmQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-content-node/-/uui-card-content-node-1.2.1.tgz", + "integrity": "sha512-xkKRo/m7duLoErO4Km69SJFRlZPhJ1Cx3XpBKWJkq4h+FLLiZCdyzcmPNrwS22dQ7icboXMFVqe9CCBbklOkRw==", "requires": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-card": "1.1.0", - "@umbraco-ui/uui-icon": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-card": "1.2.1", + "@umbraco-ui/uui-icon": "1.2.1" } }, "@umbraco-ui/uui-card-media": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-media/-/uui-card-media-1.1.0.tgz", - "integrity": "sha512-Z84KXB9HAVAD7w+vH8svvMLWzPsKKcqpJOX9CDUj0QCqpVYr97r4IMmM9Vt4oZxcNBVq+8UAcO9m+cD/Dnhc9Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-media/-/uui-card-media-1.2.1.tgz", + "integrity": "sha512-Y5WE6jMFVKtDBwHv/3W1Dgeg3WfXSVpnxG3PUw+WSucstldxSBcAYiGaxJfsx5fxpYQjX+Z4xQq7Slez9fSI0g==", "requires": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-card": "1.1.0", - "@umbraco-ui/uui-symbol-file": "1.1.0", - "@umbraco-ui/uui-symbol-folder": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-card": "1.2.1", + "@umbraco-ui/uui-symbol-file": "1.2.1", + "@umbraco-ui/uui-symbol-folder": "1.2.1" } }, "@umbraco-ui/uui-card-user": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-user/-/uui-card-user-1.1.0.tgz", - "integrity": "sha512-SGUhDVPZY0dRkf0pYa5lZbK6YnSSHHBMtFdKGYW5DEfu4ijlJrJfsBKlmFQt3PcQ2i1Yl0loTHaLq3CO6u/kPw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-user/-/uui-card-user-1.2.1.tgz", + "integrity": "sha512-m5Iq4OwjAQ4Ybboac/21sDJgWXdQQwcLqV2xLo7sF8JFs+ZZ/bGaocZrpAcNQXfMCcq/gAI+gT7L7GbWIoVWUQ==", "requires": { - "@umbraco-ui/uui-avatar": "1.1.0", - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-card": "1.1.0" + "@umbraco-ui/uui-avatar": "1.2.1", + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-card": "1.2.1" } }, "@umbraco-ui/uui-caret": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-caret/-/uui-caret-1.1.0.tgz", - "integrity": "sha512-JzNL36kXWHwOa2evWQJ20kGQlX+NBQmUm0fa1LHkrwA9n91vH9JwKGID4oqTi0ukmcOucwPKFhYHt/YhNNNMHw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-caret/-/uui-caret-1.2.1.tgz", + "integrity": "sha512-soFbO7K8vSMQ2z5PRcOLgIastcQIH0I3i0P3aMN1cIMNwKxye/GhqVPPh76sOZ5G4GUvm9PDVT15dlIq+N76qA==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-checkbox": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-checkbox/-/uui-checkbox-1.1.0.tgz", - "integrity": "sha512-0N4IuuBlYoybTNEaBVIRnaYQ/z9R0q6MCk47NPXW0WwmK9F2NaklxfBpVCRZ+g1ZfspBUPLAhKjn0SMIvoAk3Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-checkbox/-/uui-checkbox-1.2.1.tgz", + "integrity": "sha512-jwQ8gktq4qMCnq+Io+ivqCz3idTxgQ5ohWyMF5sO5a8EAAMD+GE4RMZLTB9B5C8DclBB+q/TyUBQfv8gxD8b/Q==", "requires": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-boolean-input": "1.1.0", - "@umbraco-ui/uui-icon-registry-essential": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-boolean-input": "1.2.1", + "@umbraco-ui/uui-icon-registry-essential": "1.2.1" + } + }, + "@umbraco-ui/uui-color-area": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-area/-/uui-color-area-1.2.1.tgz", + "integrity": "sha512-ZoQwXLgvp27U0AeVOA8xiWsiAh0JrQjEO6aK/7XI1AAioiZ0D/hJPMkFqztc6cIdYy8qa3E15VGyS+XICU/H+A==", + "requires": { + "@umbraco-ui/uui-base": "1.2.1", + "colord": "^2.9.3" + } + }, + "@umbraco-ui/uui-color-picker": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-picker/-/uui-color-picker-1.2.1.tgz", + "integrity": "sha512-IJl5DgcSdsHtHg1aYpu8jS0CrxUdLai0N/t9LrAci20CiJyJ4QzD8gN7OutHB/auwW/2P4/Yu/Y0MJ7eGyB+/g==", + "requires": { + "@umbraco-ui/uui-base": "1.2.1", + "colord": "^2.9.3" + } + }, + "@umbraco-ui/uui-color-slider": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-slider/-/uui-color-slider-1.2.1.tgz", + "integrity": "sha512-BrhYBQcGExWvUAaEf6I0DDn77jygHy9fDkZFpLmvjyoSnM0CMGlcE22444dyO2DQ3+hrVFgOZVmHvDjiFRWrEg==", + "requires": { + "@umbraco-ui/uui-base": "1.2.1" + } + }, + "@umbraco-ui/uui-color-swatch": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatch/-/uui-color-swatch-1.2.1.tgz", + "integrity": "sha512-92zdpi995HVix88J70n7Kuwnldy6+83Qg5jBjDusmLPgz0vpW8rolqLfnTB93GA/l7Nk07DpTiI9BJKQ/0LFKQ==", + "requires": { + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-icon-registry-essential": "1.2.1", + "colord": "^2.9.3" + } + }, + "@umbraco-ui/uui-color-swatches": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatches/-/uui-color-swatches-1.2.1.tgz", + "integrity": "sha512-fgpWWFxZtA3p39N7kRkzO58eZD48PJz9lFv3A8JAim65HKSJcuyA0Rl2FT3WE5xk1/8eS4UcsiEuoMJ5brEAYQ==", + "requires": { + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-color-swatch": "1.2.1" } }, "@umbraco-ui/uui-combobox": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox/-/uui-combobox-1.2.0.tgz", - "integrity": "sha512-OPM5xf8F1CoiPjBqWJ5IRYKXrgGFCuwLoIZq1dhL/9V/9n5402ucZMELpMHwXrXlpK4WffjzobFuManX6nuvcg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox/-/uui-combobox-1.2.1.tgz", + "integrity": "sha512-0as8/mKyzwAYXNPPJPADi2UMahMrP70o6z/y49Hwnd3V5Lx6laFJXB/jZGGYx7/Q8lgsH84fpcOGJsIqUpTpwA==", "requires": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-button": "1.1.0", - "@umbraco-ui/uui-combobox-list": "1.1.0", - "@umbraco-ui/uui-icon": "1.1.0", - "@umbraco-ui/uui-scroll-container": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-button": "1.2.1", + "@umbraco-ui/uui-combobox-list": "1.2.1", + "@umbraco-ui/uui-icon": "1.2.1", + "@umbraco-ui/uui-scroll-container": "1.2.1" } }, "@umbraco-ui/uui-combobox-list": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox-list/-/uui-combobox-list-1.1.0.tgz", - "integrity": "sha512-bOQ4lBlfeiCabqRq2zLl7mcx2QMY7Td5CD1qjkO/qrGB9HVZcqHYRvmCPf4wM/bDhV1DZL/vI7iOfAKTB27jSA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox-list/-/uui-combobox-list-1.2.1.tgz", + "integrity": "sha512-Kd5hX3fuOUi/S8MCjD0Jm9iubBVpks6tuhnkicLTEe7X6B7aoK1BUF6rKDbCHuF37j2vqD/0D1SAlt9k1bWpIA==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-css": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-css/-/uui-css-1.1.0.tgz", - "integrity": "sha512-phS0jWH6ACvXcfPJV7HaKXpqgb4ujGwf7qxAjIvb7iK5CnGiKct/icmfJ+7Fe8XYWtgiMUj+f36E4/69XoR3nQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-css/-/uui-css-1.2.1.tgz", + "integrity": "sha512-byPYIpEJ/LQEIFVuULtwrNVM9uZBRfZNvB23F+1Bz2CNPKvvaIGnvrlKFDh8ybCoNgRwI2nZaVjsx6rjQkv8TQ==", "requires": { "lit": "^2.2.2" } }, "@umbraco-ui/uui-dialog": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog/-/uui-dialog-1.1.0.tgz", - "integrity": "sha512-vNB/N2YeE4rLFTQfeSV88RjNv+9+iUa7qRhpFbcfDEAUZcECgYJU8EffE7W7RsLTOcQoxMaOZKFUBw2BiV9NHA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog/-/uui-dialog-1.2.1.tgz", + "integrity": "sha512-yGdQG3aC3PVxWiegE47wtEOiW8EmE2bXPiyTUQH5yXvJSZ634hwRq1JXDPgC3h3DD+m4ooUFn08y0yp1Y9VC6w==", "requires": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-css": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-css": "1.2.1" } }, "@umbraco-ui/uui-dialog-layout": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog-layout/-/uui-dialog-layout-1.1.0.tgz", - "integrity": "sha512-tMfP1i7Z9d+gBkGBQD5l1vddOUnPfad1MfTqCpc6poGb54fSGR052lfuNfM+DvKfczFmeqTWhhGFx5MSxgZ+Ew==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog-layout/-/uui-dialog-layout-1.2.1.tgz", + "integrity": "sha512-5ftMUkDCXqgaUCY6SD29R6Q33Q7xSc/J1+rfOf34+X0UOpVjRXEoWGbkmu3QKdhqQK8FwkIIi492dJrVZxWn0w==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-file-dropzone": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-dropzone/-/uui-file-dropzone-1.1.0.tgz", - "integrity": "sha512-eFItMycXlW6ppTsRIlg3NstJ6HttCNYJoOO9fVxi1j+wdscxU+C5eqLh5K2Z7EgJdjUM9zwykLBdIY4x+Wr+Jg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-dropzone/-/uui-file-dropzone-1.2.1.tgz", + "integrity": "sha512-PAPn9NiB3F+RVY8zbolVNnZT2gfJl669lLlcf4Vd0pPzvmUG62N/uAThiZFeihhu5LoJYYJXyUO2ECj2UFkHpQ==", "requires": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-symbol-file-dropzone": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-symbol-file-dropzone": "1.2.1" } }, "@umbraco-ui/uui-file-preview": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-preview/-/uui-file-preview-1.1.0.tgz", - "integrity": "sha512-wj+vZCCBuDcupaM48l0VULQsstmV3UMCcoiD6h7VYEppQLS7RGvIcgxo8OFkrrA3FotGURq3T74iRI0p4Ra5qQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-preview/-/uui-file-preview-1.2.1.tgz", + "integrity": "sha512-L2HZRzkxakc37j3QC1V+s9VZjmuBA4PMMjTf/TYRDpE7kRPAoqPoaHmyr/iTy9uSC8N0vrenfrOMudbOionHhQ==", "requires": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-symbol-file": "1.1.0", - "@umbraco-ui/uui-symbol-file-thumbnail": "1.1.0", - "@umbraco-ui/uui-symbol-folder": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-symbol-file": "1.2.1", + "@umbraco-ui/uui-symbol-file-thumbnail": "1.2.1", + "@umbraco-ui/uui-symbol-folder": "1.2.1" } }, "@umbraco-ui/uui-form": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form/-/uui-form-1.1.0.tgz", - "integrity": "sha512-2TFL96thzbMVPu2WuQtrXvb+BweWUF5+Wx7NsixKu3q8HCp5QGttk7DPFXf2llG9UVlF922ImnSbt9viPCg2QA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form/-/uui-form-1.2.1.tgz", + "integrity": "sha512-LoWI+ZcUIZUyREb6//BkEEhYraQnFpLaDUdkfyD5kecSDXXb8jK6CE3TqjJia4B7pWgYBB3nu9QBs4czjUVVaw==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-form-layout-item": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-layout-item/-/uui-form-layout-item-1.1.0.tgz", - "integrity": "sha512-DXIJE0X9SkpANIbNWh2CWzHoYaTNbf11sFfysoP+QNzs/Xab0FlGMaQ4XVwRVMfftFnjzIQnhKQLCJcFzV2/rA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-layout-item/-/uui-form-layout-item-1.2.1.tgz", + "integrity": "sha512-y/R9rKdITryPrWp24xXDKD7DxW/Q5vJATpw3BgTcJhjUPoRh7IltiXlWnXwFI7Pqkb/9xZF6P6brlDe4UVoxgA==", "requires": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-form-validation-message": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-form-validation-message": "1.2.1" } }, "@umbraco-ui/uui-form-validation-message": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-validation-message/-/uui-form-validation-message-1.1.0.tgz", - "integrity": "sha512-WPGxJnp2SFU9OuKylGEqD9IOE1JHl9WQ3YzAn+rxkUpASSmQndUrTfVHJpEP+heFB9yVlzXNX3OXjgcvJw4zew==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-validation-message/-/uui-form-validation-message-1.2.1.tgz", + "integrity": "sha512-wx5NBIazmjwbWrACRO3BTOqA6XZijQkBADbCMzVGj0g3ziXyKcd904qvQ4hWek2F5/NsW6xFYIFXehVj4YmTBQ==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-icon": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon/-/uui-icon-1.1.0.tgz", - "integrity": "sha512-t/TXB7p1cFphN9QZG6tdKGFgCZntxlzBqUvXKJ9Ge8ZCdp1pFozLTBPuEELv5z0CN+JgZMMlXXisvYD5j9C9og==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon/-/uui-icon-1.2.1.tgz", + "integrity": "sha512-bH2HoEs0Vx36Nl+iWVgEXYO0+vdDGwAPPJHYI1RvEt28NdTmQjKOB7iUBlSl0afW9AhURvReQ6OASG7Lm8Z6mg==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-icon-registry": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry/-/uui-icon-registry-1.1.0.tgz", - "integrity": "sha512-JWQQYjXs3nGgXOpmIjrUKiuSeD37TeSYCoLfFH9NL41V5/MkSPgyE0eHASKyo2BRsx+cslFMNPV52TEjw9BGtA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry/-/uui-icon-registry-1.2.1.tgz", + "integrity": "sha512-vgYFT6L8BsneAhFeZCKBSy4m1vWfkq+pbhMYhJy/t/cz1LtzKswbukJKa9xJLry3rU3y+4BiqQIf/6A/62SrsA==", "requires": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-icon": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-icon": "1.2.1" } }, "@umbraco-ui/uui-icon-registry-essential": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry-essential/-/uui-icon-registry-essential-1.1.0.tgz", - "integrity": "sha512-S6h9+7/iHYcmJw8MW5hwTXmL7iPHYHohl+frnXzFnkItD7YDmrpfy3K6GYcENIWvOXLhGXa+JWnPz6m0N4WiZg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry-essential/-/uui-icon-registry-essential-1.2.1.tgz", + "integrity": "sha512-OcdE153HvV4/hirr4ddPVNn91FL2OvZ7kjL5CJZtOnACbXQTjSkYyLdk+MLEAo6TcJ3yr7u+7QWZ51RP/DpVyQ==", "requires": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-icon-registry": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-icon-registry": "1.2.1" } }, "@umbraco-ui/uui-input": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input/-/uui-input-1.1.0.tgz", - "integrity": "sha512-3iX/E0OXsGdGPb0coYwNusbI6+63FKKkTN6W7Gxd2fsskuEBfXyDtJ1Uxzb/7Pf/GSr7zIVeS6/lSq4m7j6Otg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input/-/uui-input-1.2.1.tgz", + "integrity": "sha512-vXMbI0gyqvOgy6+gV0JTBTebXguml1vVcJMD3AYnhFXIMS7YfmEojRc29RMluue+Exeoa9sA1am/oVUbeKgUaQ==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-input-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-file/-/uui-input-file-1.1.0.tgz", - "integrity": "sha512-Ru14anq2Jqk344ROUietNNGBo9YtRL6vRHHSntWXi57k7fXZ+mViv0KLMGHaizgqRnO7EF+e3y1hg/AcZcoRTQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-file/-/uui-input-file-1.2.1.tgz", + "integrity": "sha512-Sim071j9s59d5Mp/euXcZAMdlpVWavCGxYYwErzRFYpQYPxji14WRMOzKuhszVCaEeGoPz/4mmSnzRJsWGIgGA==", "requires": { - "@umbraco-ui/uui-action-bar": "1.1.0", - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-button": "1.1.0", - "@umbraco-ui/uui-file-dropzone": "1.1.0", - "@umbraco-ui/uui-icon": "1.1.0", - "@umbraco-ui/uui-icon-registry-essential": "1.1.0" + "@umbraco-ui/uui-action-bar": "1.2.1", + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-button": "1.2.1", + "@umbraco-ui/uui-file-dropzone": "1.2.1", + "@umbraco-ui/uui-icon": "1.2.1", + "@umbraco-ui/uui-icon-registry-essential": "1.2.1" } }, "@umbraco-ui/uui-input-lock": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-lock/-/uui-input-lock-1.1.0.tgz", - "integrity": "sha512-7925LeQiaVGndXsb3Lna3kKMN9xFcmY+N3Hpe4jWDpdWA91KTlbcvhRmRhLzb1I0N8Af8e2LbnqvRH8mFCIlqA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-lock/-/uui-input-lock-1.2.1.tgz", + "integrity": "sha512-h8jkApn3gNXqWybWWz7tq40o1dU7TsBvHrCoot8VmsU9vaUnAPs9DsFI5bqZFIMcLH4QuNrWSbNEKWNtmT7RMw==", "requires": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-button": "1.1.0", - "@umbraco-ui/uui-icon": "1.1.0", - "@umbraco-ui/uui-input": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-button": "1.2.1", + "@umbraco-ui/uui-icon": "1.2.1", + "@umbraco-ui/uui-input": "1.2.1" } }, "@umbraco-ui/uui-input-password": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-password/-/uui-input-password-1.1.0.tgz", - "integrity": "sha512-JpPk1ryu8Cu4on0bA908YD8nZ4TeB6qs4lnIYjBvrb1olR/7YjiUXUZKwS7apyW2hU5hkCvpIFjR4VNayXE3iA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-password/-/uui-input-password-1.2.1.tgz", + "integrity": "sha512-LoQ0F6UJgzDOjosZGsezwSOyEDt5aKKDa8napJR6zQoKSUOkdJFI8N/vZcmPA1tCQkngS15DQpHM01lXx584uQ==", "requires": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-icon-registry-essential": "1.1.0", - "@umbraco-ui/uui-input": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-icon-registry-essential": "1.2.1", + "@umbraco-ui/uui-input": "1.2.1" } }, "@umbraco-ui/uui-keyboard-shortcut": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-keyboard-shortcut/-/uui-keyboard-shortcut-1.1.0.tgz", - "integrity": "sha512-vUwn3IID2q6O2IbLzGql3rDBUi/Y27bCTkSYJJguO+qpu1d/cNuYg3r7fUkcHSh1rSZaWacZiTRa0tM96pIurQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-keyboard-shortcut/-/uui-keyboard-shortcut-1.2.1.tgz", + "integrity": "sha512-9k/OZG63h3N1NZVayH1+Gw02LZap5DmYOGDldY+xASZQAdmt88vPbZcYvyCGNWpEX7aFzpB8QOEud2rNgNpMFw==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-label": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-label/-/uui-label-1.1.0.tgz", - "integrity": "sha512-WT7oyXrIS4d4EHc4+OuOzXZk8qzG7V0RpgRwrRsN1GAsuxuS3uRwL0JjWK/PiHs1Mf4khjcVCZN5HhuqhNy/3Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-label/-/uui-label-1.2.1.tgz", + "integrity": "sha512-m1FZsBo5TdiFk+pNG62Ynqr7+HVlASSO+TvlsTO3Xqnxkz78usNcl7reqoDvyCsOM2gTO23dttBdgn7hxKGnHA==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-loader": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader/-/uui-loader-1.1.0.tgz", - "integrity": "sha512-5+4yD5Q0sNzqW7Eizs+PAOBgN9LL3fcVEtW/I2GpfDqPz2llTIqmI6rFHGhNEaI61jTHzBvii82DkEawG7syxQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader/-/uui-loader-1.2.1.tgz", + "integrity": "sha512-fooCD178lu4pVS6zGb1S7K5uMNP7PTBfNFsZ+9Nx37ErP2x2j8DCNiwQ2EwrLp0v+1kvdbL0QuMWxa+9vz3ycQ==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-loader-bar": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-bar/-/uui-loader-bar-1.1.0.tgz", - "integrity": "sha512-UPxg+GmEkVY/18DVEioQBJO/9FHoqHBNtgIxL0zYyqF9AyKfRmnZ21+EXuVj67nIiFasc2Z/keCko6RWSU814w==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-bar/-/uui-loader-bar-1.2.1.tgz", + "integrity": "sha512-Gfxqb/YIbrxnLBlGMXpgAjmB6VGwQPFB30MKrkT1ySb4OzYteJc3L+MMUKKHglABavJbiN34CoaRIHLSOha7fw==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-loader-circle": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-circle/-/uui-loader-circle-1.1.0.tgz", - "integrity": "sha512-lVfeZSoH2s44A6/mSkzMk7RdzMZnkArD1R4pnhUFqAL+Y29b4c6/BBvgAsQJBTQkQSWjufh2ay4dyXuiQRXNFg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-circle/-/uui-loader-circle-1.2.1.tgz", + "integrity": "sha512-UaM4YLLe7IFQNgI50lAXnZyO5DGUaDKddO5Na+z3HJ5cNr98CDSiyHUyMM1bS4d2FVYzX/I3WPS+0aeKGlg0eQ==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-menu-item": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-menu-item/-/uui-menu-item-1.1.0.tgz", - "integrity": "sha512-gNQgOrxBuVapgfRo6i19PGIq9dKHh3jkjDULpdY880HktuTXB19MjQ6+sKaz6bb+t/euAgv1btbUmhuFtDiXkA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-menu-item/-/uui-menu-item-1.2.1.tgz", + "integrity": "sha512-RiiJYz+jsmCo0+FinC4SacFgjlqI2w7Dma5PLXzPFWT8Vn/d/Gp+7qfT5ge236OYbih5Zu1HtvI3WrMC/husCA==", "requires": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-loader-bar": "1.1.0", - "@umbraco-ui/uui-symbol-expand": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-loader-bar": "1.2.1", + "@umbraco-ui/uui-symbol-expand": "1.2.1" + } + }, + "@umbraco-ui/uui-modal": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-modal/-/uui-modal-1.2.1.tgz", + "integrity": "sha512-Bd1wPMJsMtp8psaU+opiGyAF9Nt98IE44uaLnuNZgT3mZ5ouvPQvL+PrlrbSRPQeBsEiwEf4AdPbmRZdtgjzBg==", + "requires": { + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-pagination": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-pagination/-/uui-pagination-1.1.0.tgz", - "integrity": "sha512-4qZ7/Biik1h6S9A/J0LPezrfl7X5sYGTdS7BiyZ2YkUyu8miO3/1pEw2DY210vBo5vFqlM+x9ZOitdiFAy7jzA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-pagination/-/uui-pagination-1.2.1.tgz", + "integrity": "sha512-euwG9yD41Ib64n/K38DVeTJqo6/EVbOJO+0ZLASVKYTckJ2/YQM63Xb6GdOG/QPauJphDYPdnOYcxYuIonCL7g==", "requires": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-button": "1.1.0", - "@umbraco-ui/uui-button-group": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-button": "1.2.1", + "@umbraco-ui/uui-button-group": "1.2.1" } }, "@umbraco-ui/uui-popover": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-popover/-/uui-popover-1.1.0.tgz", - "integrity": "sha512-rCNuzH6xHEyadzzFeqWAr31bqr8DldWgtuE5+2+k4CwLBZnFIFLwTdvyVifXFTY0b+KZopgsySadsMZDlk7zaQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-popover/-/uui-popover-1.2.1.tgz", + "integrity": "sha512-TvvkYduAAdPASTOxWCfNmGBvcec8zdO++dQ9SM7K8rJXj+g1YnKbLgLh6KFhY25/WrsmyGt9jhTIvB0w0NHi8Q==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-progress-bar": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-progress-bar/-/uui-progress-bar-1.1.0.tgz", - "integrity": "sha512-7KmJQwffT8GtMM8cs+LajIVlgFEt9SvZtxSQhOXbc3k1ydchNC4NhhblV7Y5hNwspfBWls+hmEWfEd7+rwUFmw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-progress-bar/-/uui-progress-bar-1.2.1.tgz", + "integrity": "sha512-ljr34WaQPsoyHgVMVwWopFkY/j/LZ0hS0DsUio4xzgfUhwNH0B/FrysJDvJK5snZhk5ROTxjv4vCr1d73iNHog==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-radio": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-radio/-/uui-radio-1.1.0.tgz", - "integrity": "sha512-ds7GR+fRtXKMeXh7AiYdPbLv/pAzL4eHSxE37QwzQ2Q1hdm9gHgkoy2rn+MpjcEu59NbqdbA0GyR4UMQm2sZLg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-radio/-/uui-radio-1.2.1.tgz", + "integrity": "sha512-Eo0hBtVs4d+c+0/Djf44O/tjhXMCKtHBxwB7F+IaS5h1XD8/svyXGxXtu9CFrdk9WqXFvR/br0CRM1vwxP/y+A==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-range-slider": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-range-slider/-/uui-range-slider-0.1.0.tgz", - "integrity": "sha512-+cAmEWl9MGKTdCNYaJiov+jgJ+vmXTJsVntRayuhpKTUAxd3Q6zup+y+ht6IF4D6TVUHrg6n9B+Y7YVw7giR4g==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-range-slider/-/uui-range-slider-1.2.1.tgz", + "integrity": "sha512-Xz3qw7R0etdgZSIRCYH7Vj3nEfjwqZI5hmt6/rdAskamJCDoAWcnqCsW6LxyeDSD5OozmLgprp2jJQnL7UnfFA==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-ref": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref/-/uui-ref-1.1.0.tgz", - "integrity": "sha512-TEgpsP6XmTnzJygqtU3lWHn+rgtjJBmwrDsGmoF/aVLK4voZbRrYxnRJKCWtKztbqSVbgIPHoTlBcb9Yry/sqQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref/-/uui-ref-1.2.1.tgz", + "integrity": "sha512-SDJxJzCSyFIAeY+fASPmM20KGHstQNw92UK6vp31BjTnZbirFZQwy9qCOUWxJuJ3x98RQS1SCFkOUHSWcjffXA==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-ref-list": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-list/-/uui-ref-list-1.1.0.tgz", - "integrity": "sha512-XhEjdp3mv7g/0MGN7q9WeliuAsM/LSk/4uon/h72svD0HjxM2DFzVfNw7xI9y3XFok9jpkQn/dEE6aANiYLTvQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-list/-/uui-ref-list-1.2.1.tgz", + "integrity": "sha512-M6KH5GKG/+RtBkLS1XIasSzARiR6b6Or9FK6DfniRtEYrsVtCyS/IgyYwxuXZNmtuQStT5QUNBRWLmgmYBbDpA==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-ref-node": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node/-/uui-ref-node-1.1.0.tgz", - "integrity": "sha512-/2yOkjDimptJ3Fnij9wgrjm1DQ6ETegjf5FNZ3bNa3Q5O/AGzyc+oSgHGeX1nIQYfm6d2hx+hSibXYUb80r2/A==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node/-/uui-ref-node-1.2.1.tgz", + "integrity": "sha512-m5MWOFOnYXPaD4tt2Bw4Rw8Q9B8Lnn8Vxw86jPzF/E4ooBHOg9dxKKfmP066Uoi6WNu92WGmzrgC8L0PMOrz7Q==", "requires": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-icon": "1.1.0", - "@umbraco-ui/uui-ref": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-icon": "1.2.1", + "@umbraco-ui/uui-ref": "1.2.1" } }, "@umbraco-ui/uui-ref-node-data-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-data-type/-/uui-ref-node-data-type-1.1.0.tgz", - "integrity": "sha512-M9jxkulDt49k9n2w+34m8Ut8d3q/fUDzQAUs/a6rMeO1flCxooLzbMt0JMcZ0a1Z7jWa9aZcGLu77SipefH2Zg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-data-type/-/uui-ref-node-data-type-1.2.1.tgz", + "integrity": "sha512-bhyX6lBTVKvyLZI7OpHt+ZmV6VyN7FNjDyJhHsAMlrajzIFGP/uCShzPTcqq476ITEfNUNV+ZTFbi366HdRgEQ==", "requires": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-ref-node": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-ref-node": "1.2.1" } }, "@umbraco-ui/uui-ref-node-document-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-document-type/-/uui-ref-node-document-type-1.1.0.tgz", - "integrity": "sha512-ZlKaxwq89hFP97WapXjGLX4nWgYPYtHkmYfDCr7dNOnCJ+JukoV6IznlzCVBvrUH/ItGHS7dPCi+c3QTA22v6A==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-document-type/-/uui-ref-node-document-type-1.2.1.tgz", + "integrity": "sha512-MZBbjqM7wTs5PI8dbT07FcW1BE2F3qI5XGHekMEzEuWm2XrJmTWSBCVl6YwJnlTbSJFJk34cH8tGW/WpdbqI0Q==", "requires": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-ref-node": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-ref-node": "1.2.1" } }, "@umbraco-ui/uui-ref-node-form": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-form/-/uui-ref-node-form-1.1.0.tgz", - "integrity": "sha512-4HC8l5JvtCy606dpmgqJVIHAZ36EU2K+bijnA5JhRqd949lltTApsUtqgFxliy+CnnxSN4fIG6eqdfZRLBJ8Hg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-form/-/uui-ref-node-form-1.2.1.tgz", + "integrity": "sha512-FX8bcZTk0kKViP2e1BBPZc2a6+pN830sHHpv/WUNsiRr65PDrLMCJIXFNMFNqrkvPE3Ps7ltgAcwt7SrX/gkLg==", "requires": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-ref-node": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-ref-node": "1.2.1" } }, "@umbraco-ui/uui-ref-node-member": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-member/-/uui-ref-node-member-1.1.0.tgz", - "integrity": "sha512-2lX5GsbMyDNDxe1CH8WSC5X7bVSIL6nKdFeGfgHEbz874Fml5gco4fQZNkXpSyfJVIZ165tnRhPhXaBwZPFu0w==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-member/-/uui-ref-node-member-1.2.1.tgz", + "integrity": "sha512-Gu8XjkFcHfzmNsY1xJlGiA13SdtBJb64TExOM3vcEezTtxbMnEJcZ4yXvUe5vFhETEYSbG19plIFh1YSaRWPww==", "requires": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-ref-node": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-ref-node": "1.2.1" } }, "@umbraco-ui/uui-ref-node-package": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-package/-/uui-ref-node-package-1.1.0.tgz", - "integrity": "sha512-Pv0kZGQDk7WnpQ9XGMLByreYbq4FHxxLMlbOuduoFXVMuId5veQlgU27Wqt1z7oc4F/Wwg3k0v1a8P4G9iklQQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-package/-/uui-ref-node-package-1.2.1.tgz", + "integrity": "sha512-tLaDRFhNp27AGQrJjbMQV3go8UptkqGKQ101NNObX2NEDUI5vKdVwJu6+A+oVc6lzDdaPFgRXYaeGM8ety3CgQ==", "requires": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-ref-node": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-ref-node": "1.2.1" } }, "@umbraco-ui/uui-ref-node-user": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-user/-/uui-ref-node-user-1.1.0.tgz", - "integrity": "sha512-ZTzAyReZJtiJEfh6f6uwMMt22KQVrE9HDlhowaQKjhF57CMiD2+Jlws6C5JmBmB0vYf13TyKqLXBKQd6kUV+/w==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-user/-/uui-ref-node-user-1.2.1.tgz", + "integrity": "sha512-PK53lN/m+2T8XbVwzIvXt39K3NVsqhE706HuaLMemvz8LOnXIkywLevzGiNJluxHrrhLXsflz9TIlJeEO5Vfjw==", "requires": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-ref-node": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-ref-node": "1.2.1" } }, "@umbraco-ui/uui-scroll-container": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-scroll-container/-/uui-scroll-container-1.1.0.tgz", - "integrity": "sha512-ge1YxNFfgwCRyJxU80MAV/ZriAmqT9qCB9RWdVJkiU5tobYo7XmuGikYO25DqheH+ly6dZjHypwmnyT9B3cJbg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-scroll-container/-/uui-scroll-container-1.2.1.tgz", + "integrity": "sha512-Aav1w6kRh69VEqdEHjz5QsW3YWzMxM2ReN9+u7duQbbDFpgn3xlU9GSOFy0JFu7qsbUwo8bj9iWBzpsPAy96Jw==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-select": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-select/-/uui-select-1.1.0.tgz", - "integrity": "sha512-VfgdPGID8pCa9+lwMujp8Mp+r+0CycpnMf4tMpNrIG4bmJgICnBbXc1vpk/Qc1TguwN9WnYkckZbE5t6g+7njQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-select/-/uui-select-1.2.1.tgz", + "integrity": "sha512-2AqUZ3S1/SG9bG7HlLtHx12V5ZBA1oiJUZZbbFDUqXAVU8ykkVat5C29uB3UrcCq+Jq/sq5KAxMQS5ucM6qQKA==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-slider": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-slider/-/uui-slider-1.1.0.tgz", - "integrity": "sha512-mhvZohP+OX1NsvM5UOkTste0Zkoo+557f3IeIMuUR4hiG6CV1AJU4YZ3geT0Vcbbw/3xKQ8ndsHa4S8kES7vrw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-slider/-/uui-slider-1.2.1.tgz", + "integrity": "sha512-h0jtMU0CQscmPahmn3TNPpML3UvIrOO05eG850SLN2roXTGTuhNWMUj7oKtu7p8NS9FR0F/EFe8ukL3QBUyaBQ==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-symbol-expand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-expand/-/uui-symbol-expand-1.1.0.tgz", - "integrity": "sha512-0MGimlTxzWfMM98wJG4qtzJgsOp8X8fPdAN6tpoJ53HwX/boxgXasFA80kfKgb3w95XLGWO2IdToDmbXAf76CQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-expand/-/uui-symbol-expand-1.2.1.tgz", + "integrity": "sha512-nmTCeTgX+Ct5c633fWI/l6WOl64Ubej+g6ocKLAijHksru4vuFN8hovNemJh144mrZnsRVvd8lKsqAX4IbP/jA==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-symbol-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file/-/uui-symbol-file-1.1.0.tgz", - "integrity": "sha512-ZfpHrWMWEaZyG72AVnL+iaQ+F8ZAYBMqeoG9aBk0JDWTZvvtDuzzDEK3MGk/qM/CDdEbxwE07s+kCPcHVd89sw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file/-/uui-symbol-file-1.2.1.tgz", + "integrity": "sha512-UehhchMIH2t21pqRAO/BpxhuqGgtBHiCv6lNy3CEsm71i9zsQHfqVwW1FHdJVuWvdQfhDu8UM1yYAYFys/7Bcg==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-symbol-file-dropzone": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-dropzone/-/uui-symbol-file-dropzone-1.1.0.tgz", - "integrity": "sha512-Wk1dXeMUAjkU9r9vVRhc1l/ythLb37D9u2xceg9GK5Nb7z5sObR4Aca72KZ2NvXnEIiFidMYvBBESycsn3RLZA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-dropzone/-/uui-symbol-file-dropzone-1.2.1.tgz", + "integrity": "sha512-zLvSqtOi0O5J8+AWuuUClwzGPXzfuYeCRHQSuyUD4E9kz4g1a0DCu5HzkLQuFZHNhK/WerWX84N3qd1FOo/1XA==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-symbol-file-thumbnail": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-thumbnail/-/uui-symbol-file-thumbnail-1.1.0.tgz", - "integrity": "sha512-OhKG/mNeUqifeMorwcWWXajGQfnrX4F+jBZrSWVs+88kgehvE4ozqjwGH+SBbnSlFMwIOq/DM7LS97WdjxlaIg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-thumbnail/-/uui-symbol-file-thumbnail-1.2.1.tgz", + "integrity": "sha512-XVpYGw6AuR00cV2u4v/W1YsBP1mckidG+sAbRmtf2pGy6oSYzxvKXSELbV9CPDIwoD3D3eCDKvK84NRQAfL74A==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-symbol-folder": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-folder/-/uui-symbol-folder-1.1.0.tgz", - "integrity": "sha512-uurR6Awel45fyqrv2dOryOscT3h+5wgyC/Pl6V+FzJbg+bW7CTLdQksK/LSNIjc7uj8iIG1cLF//VPexl0vGjQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-folder/-/uui-symbol-folder-1.2.1.tgz", + "integrity": "sha512-E1Izm9eVCPFAdAXqKvgZUBH7BYLfLQgLLLf29R75poy6U3hjaZXGrmySZdmTxQUgMKkmhpCPSgl6rbZGSFO5Ig==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-symbol-lock": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-lock/-/uui-symbol-lock-1.1.0.tgz", - "integrity": "sha512-t1zY2yh0b/udwDTfzi4fwT2fnOZSKooq59hEnEUyiVK4xyd/PzmY888SowjRXiELnOLkAOG8eg8KGyZGfgHT1Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-lock/-/uui-symbol-lock-1.2.1.tgz", + "integrity": "sha512-AV6kAAfeuAx8hnlrMz045hlI+c4OvmkhxpV2UKLocdaoILvCDbnJmkkl3dd1HBXq0dbi7EpVViYBreQ0v/4ybg==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-symbol-more": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-more/-/uui-symbol-more-1.1.0.tgz", - "integrity": "sha512-YLCQ+NgYfdDNgpi8RKLPdvpftc3IXgpi4e+9KfXX11bZr0FRGHehZWh/peoBTOuBYIgfTxWMVYdHuCEmP+FslA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-more/-/uui-symbol-more-1.2.1.tgz", + "integrity": "sha512-ngWhG5ZK3p+fvd+GXKnrowohF5Xh8c9IL50WRDijMYHA6cAmlbtyGIqxMeDbR7XQFeoqpIcoe8rrweESV83Imw==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-symbol-sort": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-sort/-/uui-symbol-sort-1.1.0.tgz", - "integrity": "sha512-qiz6DiawN71kGIuZF2FTTn6vKzI3lSQ/P2wQBqZFleKgPwmg2eLaCAFZsRB9jZu8eblhUwVzXolPvYSninvuWA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-sort/-/uui-symbol-sort-1.2.1.tgz", + "integrity": "sha512-xR6ThUY2mM8ixNXo1AztveimmKvhk3xNuY67xNPmQVi+4KjbnTTnk0hjKqti6gqzl2mPgBtLoJACQnpEHSkzwA==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-table": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-table/-/uui-table-1.1.0.tgz", - "integrity": "sha512-oer+JRv9v2LZ9uDgZp7J2V6RdSeq5R817bBFkonpx7Bg7he8GWiYJitIUtMa8itLl7ghwdcBfjgPL0yJmhI2Ag==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-table/-/uui-table-1.2.1.tgz", + "integrity": "sha512-qN+GbXUS2RJGuCTJJHGh3shDFufHLRUP6/TjzhiTz8R70OfBu8oJAAENqMNITPwAp6gmfapkk3INuYHLNHfzBg==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-tabs": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tabs/-/uui-tabs-1.1.0.tgz", - "integrity": "sha512-FXWVve92Nyz8eDYYlQrZ4ch+6MBcpKq5RfcMxAi9BSSwpZnnkbbPGQxyIbs/TK3FYLc0eB9R1Dmmr1yJDXUX9A==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tabs/-/uui-tabs-1.2.1.tgz", + "integrity": "sha512-pRFBuqJOK6D7Okt66KA8K5P6FcjyXwMkGVyuSqKy0dvUxH7Q11yNj4ZbweLKhYXd4Fm952ZV4izXEdU7R+AHBw==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-tag": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tag/-/uui-tag-1.1.0.tgz", - "integrity": "sha512-BTnGjXWhsdJvh1ch51PnZG3pXtn1HrHOxByPGuaRrgDM3iJbceuI6wj6h+N+O+wV9eacJqbc33ic/qpVhcdYeQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tag/-/uui-tag-1.2.1.tgz", + "integrity": "sha512-JguPjx9l/6qwi2q7WZJB6OYJTVKTuF5cVtOU9S0shW2k+FJzTxl2oRgTKoaKKgNNoUdUtSR06czqwWKcPRkr1A==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-textarea": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-textarea/-/uui-textarea-1.1.0.tgz", - "integrity": "sha512-3QjJR9sLURImSxrkcwD4dzV9CSEHD0kEwdrFLSQyRS2D2fHgEgQV6FbUAhI1WNRwTB1ZP23Vx4oClfdsqs010w==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-textarea/-/uui-textarea-1.2.1.tgz", + "integrity": "sha512-Tj7hQ9/hEs1NBAL5Bmrc6Yq0OoV4ONp1woIV1tvnUnGcBqLyXeemnsoL8u/m1ZDJh+78QuEunAvAXYQVATLrHw==", "requires": { - "@umbraco-ui/uui-base": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-toast-notification": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification/-/uui-toast-notification-1.1.0.tgz", - "integrity": "sha512-uaX3uNY+M4lOLASy/0lVLCK8/4hjkT+aTEqwgYxrTaVCDWJMaJQnxhpGrx4dZpoMGir4q5HLHgxXs7r/hBwB2w==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification/-/uui-toast-notification-1.2.1.tgz", + "integrity": "sha512-LDchVJzMwgzZi/55RD17nFZ+axHJ+bIvysQldgZz1E2XliVKfM/uHpHfFiMXYnC74H2VQUDM2iJ6OyPMz1HWGA==", "requires": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-button": "1.1.0", - "@umbraco-ui/uui-css": "1.1.0", - "@umbraco-ui/uui-icon": "1.1.0", - "@umbraco-ui/uui-icon-registry-essential": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-button": "1.2.1", + "@umbraco-ui/uui-css": "1.2.1", + "@umbraco-ui/uui-icon": "1.2.1", + "@umbraco-ui/uui-icon-registry-essential": "1.2.1" } }, "@umbraco-ui/uui-toast-notification-container": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-container/-/uui-toast-notification-container-1.1.0.tgz", - "integrity": "sha512-q/GiBHuV5sSiGXbV5gledukHdOCrGpMK+egNAmtOAkmkfd0/59+/rX6wtUxgDXe7Xd5WVYViQDlTqNTYbzY1aw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-container/-/uui-toast-notification-container-1.2.1.tgz", + "integrity": "sha512-N9iENigcDbEGdwpzBOQZy5ClCwWwpJb6v+3ikfXa6rXI7a4v9AiQRkxZTmjjUfs/E6CItxdYFJiKcBKd/nEISQ==", "requires": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-toast-notification": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-toast-notification": "1.2.1" } }, "@umbraco-ui/uui-toast-notification-layout": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-layout/-/uui-toast-notification-layout-1.1.0.tgz", - "integrity": "sha512-6tNsmQP3UDOcjbpBrGYsc4vGrU1YPv9/NhQce8YfNM6vwnjF6f/aTHDqADG0hCEijyS0MvK1jPttbU67Zm3Rmg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-layout/-/uui-toast-notification-layout-1.2.1.tgz", + "integrity": "sha512-SCrsW4LGoI8HEz+Idml5J7RBANfKULiy9ZCo8/77nvukNkNpfVqzI+X2W4m+qVRIqk5khB6OAQjNAX62ef0e3A==", "requires": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-css": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-css": "1.2.1" } }, "@umbraco-ui/uui-toggle": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toggle/-/uui-toggle-1.1.0.tgz", - "integrity": "sha512-uuRtsUNHBoj8wz3xxax9DHpf+GAnjiNTBN0ZIcCaHvRzhRJf2vX0Bdh3joPGOoQLSd0B575I3GXkSOSIOYLxYQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toggle/-/uui-toggle-1.2.1.tgz", + "integrity": "sha512-1or1YplOyq3siFGwKJC7GQXGPjt659ixoKkaB9XQ1CeR9avJ5xjutY0OYM8wLiw3SCOHD06QTnuX5hGz6l2slw==", "requires": { - "@umbraco-ui/uui-base": "1.1.0", - "@umbraco-ui/uui-boolean-input": "1.1.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-boolean-input": "1.2.1" } }, "abab": { @@ -19612,14 +19799,14 @@ } }, "ace-builds": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.15.0.tgz", - "integrity": "sha512-L1RXgqxDvzbJ7H8Y2v9lb4kHaZRn5JNTECG+oZTH2EDewMmpQMLDC4GnFKIh3+xb/gk2nVPO7gGwpTYPw91QzA==" + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.18.0.tgz", + "integrity": "sha512-ETLeQ3X1XvcWckOZFR+KvTectZyEwDm2p+CckWazS+xsK3THHVxn/PkfkPr37OTNKVY/yJRx29JGERV77YQYXw==" }, "acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "dev": true }, "acorn-globals": { @@ -20084,13 +20271,13 @@ "dev": true }, "autoprefixer": { - "version": "10.4.13", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", - "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", + "version": "10.4.14", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", + "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", "dev": true, "requires": { - "browserslist": "^4.21.4", - "caniuse-lite": "^1.0.30001426", + "browserslist": "^4.21.5", + "caniuse-lite": "^1.0.30001464", "fraction.js": "^4.2.0", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", @@ -20601,15 +20788,15 @@ } }, "browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" } }, "buffer": { @@ -20833,9 +21020,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001445", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001445.tgz", - "integrity": "sha512-8sdQIdMztYmzfTMO6KfLny878Ln9c2M0fc7EH60IjlP4Dc4PiCy7K2Vl3ITmWgOyPgVQKa5x+UP/KqFsxj4mBg==", + "version": "1.0.30001481", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001481.tgz", + "integrity": "sha512-KCqHwRnaa1InZBtqXzP98LPg0ajCVujMKjqKDhZEthIpAsJl/YEIa3YvXjGXPVqzZVguccuu7ga9KOE1J9rKPQ==", "dev": true }, "caw": { @@ -21192,8 +21379,7 @@ "colord": { "version": "2.9.3", "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", - "dev": true + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" }, "colornames": { "version": "1.1.1", @@ -21454,9 +21640,9 @@ } }, "css-declaration-sorter": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz", - "integrity": "sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.0.tgz", + "integrity": "sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew==", "dev": true, "requires": {} }, @@ -21564,57 +21750,56 @@ "dev": true }, "cssnano": { - "version": "5.1.14", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.14.tgz", - "integrity": "sha512-Oou7ihiTocbKqi0J1bB+TRJIQX5RMR3JghA8hcWSw9mjBLQ5Y3RWqEDoYG3sRNlAbCIXpqMoZGbq5KDR3vdzgw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.0.0.tgz", + "integrity": "sha512-RGlcbzGhzEBCHuQe3k+Udyj5M00z0pm9S+VurHXFEOXxH+y0sVrJH2sMzoyz2d8N1EScazg+DVvmgyx0lurwwA==", "dev": true, "requires": { - "cssnano-preset-default": "^5.2.13", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" + "cssnano-preset-default": "^6.0.0", + "lilconfig": "^2.1.0" } }, "cssnano-preset-default": { - "version": "5.2.13", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.13.tgz", - "integrity": "sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.0.0.tgz", + "integrity": "sha512-BDxlaFzObRDXUiCCBQUNQcI+f1/aX2mgoNtXGjV6PG64POcHoDUoX+LgMWw+Q4609QhxwkcSnS65YFs42RA6qQ==", "dev": true, "requires": { "css-declaration-sorter": "^6.3.1", - "cssnano-utils": "^3.1.0", + "cssnano-utils": "^4.0.0", "postcss-calc": "^8.2.3", - "postcss-colormin": "^5.3.0", - "postcss-convert-values": "^5.1.3", - "postcss-discard-comments": "^5.1.2", - "postcss-discard-duplicates": "^5.1.0", - "postcss-discard-empty": "^5.1.1", - "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.7", - "postcss-merge-rules": "^5.1.3", - "postcss-minify-font-values": "^5.1.0", - "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.4", - "postcss-minify-selectors": "^5.2.1", - "postcss-normalize-charset": "^5.1.0", - "postcss-normalize-display-values": "^5.1.0", - "postcss-normalize-positions": "^5.1.1", - "postcss-normalize-repeat-style": "^5.1.1", - "postcss-normalize-string": "^5.1.0", - "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.1", - "postcss-normalize-url": "^5.1.0", - "postcss-normalize-whitespace": "^5.1.1", - "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.1", - "postcss-reduce-transforms": "^5.1.0", - "postcss-svgo": "^5.1.0", - "postcss-unique-selectors": "^5.1.1" + "postcss-colormin": "^6.0.0", + "postcss-convert-values": "^6.0.0", + "postcss-discard-comments": "^6.0.0", + "postcss-discard-duplicates": "^6.0.0", + "postcss-discard-empty": "^6.0.0", + "postcss-discard-overridden": "^6.0.0", + "postcss-merge-longhand": "^6.0.0", + "postcss-merge-rules": "^6.0.0", + "postcss-minify-font-values": "^6.0.0", + "postcss-minify-gradients": "^6.0.0", + "postcss-minify-params": "^6.0.0", + "postcss-minify-selectors": "^6.0.0", + "postcss-normalize-charset": "^6.0.0", + "postcss-normalize-display-values": "^6.0.0", + "postcss-normalize-positions": "^6.0.0", + "postcss-normalize-repeat-style": "^6.0.0", + "postcss-normalize-string": "^6.0.0", + "postcss-normalize-timing-functions": "^6.0.0", + "postcss-normalize-unicode": "^6.0.0", + "postcss-normalize-url": "^6.0.0", + "postcss-normalize-whitespace": "^6.0.0", + "postcss-ordered-values": "^6.0.0", + "postcss-reduce-initial": "^6.0.0", + "postcss-reduce-transforms": "^6.0.0", + "postcss-svgo": "^6.0.0", + "postcss-unique-selectors": "^6.0.0" } }, "cssnano-utils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", - "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.0.tgz", + "integrity": "sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw==", "dev": true, "requires": {} }, @@ -21623,6 +21808,7 @@ "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", "dev": true, + "optional": true, "requires": { "css-tree": "^1.1.2" }, @@ -21632,6 +21818,7 @@ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", "dev": true, + "optional": true, "requires": { "mdn-data": "2.0.14", "source-map": "^0.6.1" @@ -21641,37 +21828,25 @@ "version": "2.0.14", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "dev": true + "dev": true, + "optional": true }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "dev": true, + "optional": true } } }, - "cssom": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", - "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", - "dev": true - }, "cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-3.0.0.tgz", + "integrity": "sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==", "dev": true, "requires": { - "cssom": "~0.3.6" - }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - } + "rrweb-cssom": "^0.6.0" } }, "currently-unhandled": { @@ -21701,14 +21876,14 @@ } }, "data-urls": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", - "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-4.0.0.tgz", + "integrity": "sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==", "dev": true, "requires": { "abab": "^2.0.6", "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0" + "whatwg-url": "^12.0.0" } }, "date-format": { @@ -22246,9 +22421,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.253", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.253.tgz", - "integrity": "sha512-1pezJ2E1UyBTGbA7fUlHdPSXQw1k+82VhTFLG5G0AUqLGvsZqFzleOblceqegZzxYX4kC7hGEEdzIQI9RZ1Cuw==", + "version": "1.4.376", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.376.tgz", + "integrity": "sha512-TFeOKd98TpJzRHkr4Aorn16QkMnuCQuGAE6IZ0wYF+qkbSfMPqjplvRppR02tMUpVxZz8nyBNvVm9lIZsqrbPQ==", "dev": true }, "emits": { @@ -22503,12 +22678,15 @@ } }, "eslint": { - "version": "8.33.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.33.0.tgz", - "integrity": "sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==", + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.39.0.tgz", + "integrity": "sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.4.1", + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.2", + "@eslint/js": "8.39.0", "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -22518,11 +22696,10 @@ "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.0", + "espree": "^9.5.1", + "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", @@ -22543,7 +22720,6 @@ "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", - "regexpp": "^3.2.0", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" @@ -22730,9 +22906,9 @@ } }, "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", "dev": true, "requires": { "esrecurse": "^4.3.0", @@ -22747,38 +22923,21 @@ } } }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } - } - }, "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", "dev": true }, "espree": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", - "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", + "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", "dev": true, "requires": { "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.0" } }, "esprima": { @@ -22788,18 +22947,18 @@ "dev": true }, "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, "requires": { "estraverse": "^5.1.0" }, "dependencies": { "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true } } @@ -24154,16 +24313,16 @@ } }, "gulp-eslint-new": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/gulp-eslint-new/-/gulp-eslint-new-1.7.1.tgz", - "integrity": "sha512-moP6Q/ecxm40ZyMFw9qoC6poqt3Y2C1HcoUDRH2+b9UJu0/3BnOciRDgerm1DH5oh0dSPlP0/uZ6dFEAkYdSOw==", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/gulp-eslint-new/-/gulp-eslint-new-1.7.2.tgz", + "integrity": "sha512-3CAR6q7L4UaCRvui/4AhmsuKIFvkuNew0Qsu4HWYCGEJ1u02PoZpsqyfWHlZ6AyBqXdw+V+dBa6Oab5vOxmhKA==", "dev": true, "requires": { - "@types/eslint": "^8.4.10", + "@types/eslint": "^8.21.0", "@types/node": ">=12", "eslint": "8", "fancy-log": "^2.0.0", - "plugin-error": "^2.0.0", + "plugin-error": "^2.0.1", "semver": "^7.3.8", "ternary-stream": "^3.0.0", "vinyl-fs": "^3.0.3" @@ -24188,9 +24347,9 @@ } }, "plugin-error": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-2.0.0.tgz", - "integrity": "sha512-o4bwIOmuFwUg2MU6xt7plGEQY3YyENx6kvwaFZBrUpamA91FdS9w3U+pU0y4OuDoBQe+jf3RLGSfQebSRBEVsQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-2.0.1.tgz", + "integrity": "sha512-zMakqvIDyY40xHOvzXka0kUvf40nYIuwRE8dWhti2WtjQZ31xAgBZBhxsK7vK3QbRXS1Xms/LO7B5cuAsfB2Gg==", "dev": true, "requires": { "ansi-colors": "^1.0.1" @@ -25702,15 +25861,15 @@ } }, "jasmine-core": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.5.0.tgz", - "integrity": "sha512-9PMzyvhtocxb3aXJVOPqBDswdgyAeSB81QnLop4npOpbqnheaTEwPc9ZloQeVswugPManznQBjD8kWDTjlnHuw==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.0.tgz", + "integrity": "sha512-O236+gd0ZXS8YAjFx8xKaJ94/erqUliEkJTDedyE7iHvv4ZVqi+q+8acJxu05/WJDKm512EUNn809In37nWlAQ==", "dev": true }, "jquery": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.3.tgz", - "integrity": "sha512-bZ5Sy3YzKo9Fyc8wH2iIQK4JImJ6R0GWI9kL1/k7Z91ZBNgkRXE6U0JfHIizZbort8ZunhSI3jw9I6253ahKfg==" + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.4.tgz", + "integrity": "sha512-v28EW9DWDFpzcD9O5iyJXg3R3+q+mET5JhnjJzQUZMHOv67bpSIHq81GEYpPNZHG+XXHsfSme3nxp/hndKEcsQ==" }, "jquery-ui-dist": { "version": "1.13.2", @@ -25756,18 +25915,17 @@ } }, "jsdom": { - "version": "21.1.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-21.1.0.tgz", - "integrity": "sha512-m0lzlP7qOtthD918nenK3hdItSd2I+V3W9IrBcB36sqDwG+KnUs66IF5GY7laGWUnlM9vTsD0W1QwSEBYWWcJg==", + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-21.1.1.tgz", + "integrity": "sha512-Jjgdmw48RKcdAIQyUD1UdBh2ecH7VqwaXPN3ehoZN6MqgVbMn+lRm1aAT1AsdJRAJpwfa4IpwgzySn61h2qu3w==", "dev": true, "requires": { "abab": "^2.0.6", - "acorn": "^8.8.1", + "acorn": "^8.8.2", "acorn-globals": "^7.0.0", - "cssom": "^0.5.0", - "cssstyle": "^2.3.0", - "data-urls": "^3.0.2", - "decimal.js": "^10.4.2", + "cssstyle": "^3.0.0", + "data-urls": "^4.0.0", + "decimal.js": "^10.4.3", "domexception": "^4.0.0", "escodegen": "^2.0.0", "form-data": "^4.0.0", @@ -25776,7 +25934,8 @@ "https-proxy-agent": "^5.0.1", "is-potential-custom-element-name": "^1.0.1", "nwsapi": "^2.2.2", - "parse5": "^7.1.1", + "parse5": "^7.1.2", + "rrweb-cssom": "^0.6.0", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", "tough-cookie": "^4.1.2", @@ -25784,8 +25943,8 @@ "webidl-conversions": "^7.0.0", "whatwg-encoding": "^2.0.0", "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0", - "ws": "^8.11.0", + "whatwg-url": "^12.0.1", + "ws": "^8.13.0", "xml-name-validator": "^4.0.0" }, "dependencies": { @@ -25822,9 +25981,9 @@ "optional": true }, "ws": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.0.tgz", - "integrity": "sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", "dev": true, "requires": {} } @@ -25884,9 +26043,9 @@ "dev": true }, "karma": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.1.tgz", - "integrity": "sha512-Cj57NKOskK7wtFWSlMvZf459iX+kpYIPXmkNUzP2WAFcA7nhr/ALn5R7sw3w+1udFDcpMx/tuB8d5amgm3ijaA==", + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.2.tgz", + "integrity": "sha512-C6SU/53LB31BEgRg+omznBEMY4SjHU3ricV6zBcAe1EeILKkeScr+fZXtaI5WyDbkVowJxxAI6h73NcFPmXolQ==", "dev": true, "requires": { "@colors/colors": "1.5.0", @@ -26304,34 +26463,35 @@ } }, "lilconfig": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", - "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", "dev": true }, "lit": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/lit/-/lit-2.6.1.tgz", - "integrity": "sha512-DT87LD64f8acR7uVp7kZfhLRrHkfC/N4BVzAtnw9Yg8087mbBJ//qedwdwX0kzDbxgPccWRW6mFwGbRQIxy0pw==", + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lit/-/lit-2.7.3.tgz", + "integrity": "sha512-0a+u+vVbmgSfPu+fyvqjMPBX0Kwbyj9QOv9MbQFZhWGlV2cyk3lEwgfUQgYN+i/lx++1Z3wZknSIp3QCKxHLyg==", "requires": { "@lit/reactive-element": "^1.6.0", - "lit-element": "^3.2.0", - "lit-html": "^2.6.0" + "lit-element": "^3.3.0", + "lit-html": "^2.7.0" } }, "lit-element": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.2.2.tgz", - "integrity": "sha512-6ZgxBR9KNroqKb6+htkyBwD90XGRiqKDHVrW/Eh0EZ+l+iC+u+v+w3/BA5NGi4nizAVHGYvQBHUDuSmLjPp7NQ==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.2.tgz", + "integrity": "sha512-xXAeVWKGr4/njq0rGC9dethMnYCq5hpKYrgQZYTzawt9YQhMiXfD+T1RgrdY3NamOxwq2aXlb0vOI6e29CKgVQ==", "requires": { + "@lit-labs/ssr-dom-shim": "^1.1.0", "@lit/reactive-element": "^1.3.0", - "lit-html": "^2.2.0" + "lit-html": "^2.7.0" } }, "lit-html": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.6.1.tgz", - "integrity": "sha512-Z3iw+E+3KKFn9t2YKNjsXNEu/LRLI98mtH/C6lnFg7kvaqPIzPn124Yd4eT/43lyqrejpc5Wb6BHq3fdv4S8Rw==", + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.7.3.tgz", + "integrity": "sha512-9DyLzcn/kbRGowz2vFmSANFbRZTxYUgYYFqzie89w6GLpPUiBCDHfcdeRUV/k3Q2ueYxNjfv46yPCtKAEAPOVw==", "requires": { "@types/trusted-types": "^2.0.2" } @@ -26986,9 +27146,9 @@ "optional": true }, "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", "dev": true }, "nanomatch": { @@ -27195,9 +27355,9 @@ } }, "node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", "dev": true }, "node.extend": { @@ -27234,12 +27394,6 @@ "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", "dev": true }, - "normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true - }, "nouislider": { "version": "15.7.0", "resolved": "https://registry.npmjs.org/nouislider/-/nouislider-15.7.0.tgz", @@ -27725,18 +27879,18 @@ "dev": true }, "parse5": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", - "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", "dev": true, "requires": { "entities": "^4.4.0" }, "dependencies": { "entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true } } @@ -27907,12 +28061,12 @@ "dev": true }, "postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "version": "8.4.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz", + "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==", "dev": true, "requires": { - "nanoid": "^3.3.4", + "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" } @@ -27928,21 +28082,21 @@ } }, "postcss-colormin": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", - "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.0.0.tgz", + "integrity": "sha512-EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw==", "dev": true, "requires": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", "colord": "^2.9.1", "postcss-value-parser": "^4.2.0" } }, "postcss-convert-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", - "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.0.0.tgz", + "integrity": "sha512-U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw==", "dev": true, "requires": { "browserslist": "^4.21.4", @@ -27950,30 +28104,30 @@ } }, "postcss-discard-comments": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", - "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.0.tgz", + "integrity": "sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw==", "dev": true, "requires": {} }, "postcss-discard-duplicates": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", - "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.0.tgz", + "integrity": "sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA==", "dev": true, "requires": {} }, "postcss-discard-empty": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", - "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.0.tgz", + "integrity": "sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ==", "dev": true, "requires": {} }, "postcss-discard-overridden": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", - "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.0.tgz", + "integrity": "sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw==", "dev": true, "requires": {} }, @@ -27988,123 +28142,123 @@ } }, "postcss-merge-longhand": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", - "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.0.tgz", + "integrity": "sha512-4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.1.1" + "stylehacks": "^6.0.0" } }, "postcss-merge-rules": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.3.tgz", - "integrity": "sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.0.0.tgz", + "integrity": "sha512-rCXkklftzEkniyv3f4mRCQzxD6oE4Quyh61uyWTUbCJ26Pv2hoz+fivJSsSBWxDBeScR4fKCfF3HHTcD7Ybqnw==", "dev": true, "requires": { "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", - "cssnano-utils": "^3.1.0", + "cssnano-utils": "^4.0.0", "postcss-selector-parser": "^6.0.5" } }, "postcss-minify-font-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", - "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.0.0.tgz", + "integrity": "sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-minify-gradients": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", - "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.0.tgz", + "integrity": "sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA==", "dev": true, "requires": { "colord": "^2.9.1", - "cssnano-utils": "^3.1.0", + "cssnano-utils": "^4.0.0", "postcss-value-parser": "^4.2.0" } }, "postcss-minify-params": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", - "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.0.0.tgz", + "integrity": "sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ==", "dev": true, "requires": { "browserslist": "^4.21.4", - "cssnano-utils": "^3.1.0", + "cssnano-utils": "^4.0.0", "postcss-value-parser": "^4.2.0" } }, "postcss-minify-selectors": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", - "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.0.tgz", + "integrity": "sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g==", "dev": true, "requires": { "postcss-selector-parser": "^6.0.5" } }, "postcss-normalize-charset": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", - "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.0.tgz", + "integrity": "sha512-cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ==", "dev": true, "requires": {} }, "postcss-normalize-display-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", - "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.0.tgz", + "integrity": "sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-positions": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", - "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.0.tgz", + "integrity": "sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-repeat-style": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", - "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.0.tgz", + "integrity": "sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-string": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", - "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.0.tgz", + "integrity": "sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-timing-functions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", - "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.0.tgz", + "integrity": "sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-unicode": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", - "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.0.tgz", + "integrity": "sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg==", "dev": true, "requires": { "browserslist": "^4.21.4", @@ -28112,38 +28266,37 @@ } }, "postcss-normalize-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", - "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.0.tgz", + "integrity": "sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw==", "dev": true, "requires": { - "normalize-url": "^6.0.1", "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-whitespace": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", - "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.0.tgz", + "integrity": "sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-ordered-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", - "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.0.tgz", + "integrity": "sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg==", "dev": true, "requires": { - "cssnano-utils": "^3.1.0", + "cssnano-utils": "^4.0.0", "postcss-value-parser": "^4.2.0" } }, "postcss-reduce-initial": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.1.tgz", - "integrity": "sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.0.0.tgz", + "integrity": "sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA==", "dev": true, "requires": { "browserslist": "^4.21.4", @@ -28151,9 +28304,9 @@ } }, "postcss-reduce-transforms": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", - "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.0.tgz", + "integrity": "sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" @@ -28170,13 +28323,13 @@ } }, "postcss-svgo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", - "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.0.tgz", + "integrity": "sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0", - "svgo": "^2.7.0" + "svgo": "^3.0.2" }, "dependencies": { "commander": { @@ -28186,37 +28339,64 @@ "dev": true }, "css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", "dev": true, "requires": { "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", "nth-check": "^2.0.1" } }, "css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", "dev": true, "requires": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + } + }, + "csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dev": true, + "requires": { + "css-tree": "~2.2.0" + }, + "dependencies": { + "css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dev": true, + "requires": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + } + }, + "mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true + } } }, "dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "dev": true, "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" } }, "domelementtype": { @@ -28226,64 +28406,57 @@ "dev": true }, "domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "dev": true, "requires": { - "domelementtype": "^2.2.0" + "domelementtype": "^2.3.0" } }, "domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", + "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", "dev": true, "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.1" } }, "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true }, "mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", "dev": true }, "svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.0.2.tgz", + "integrity": "sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==", "dev": true, "requires": { "@trysound/sax": "0.2.0", "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" + "css-select": "^5.1.0", + "css-tree": "^2.2.1", + "csso": "^5.0.5", + "picocolors": "^1.0.0" } } } }, "postcss-unique-selectors": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", - "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.0.tgz", + "integrity": "sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw==", "dev": true, "requires": { "postcss-selector-parser": "^6.0.5" @@ -28393,9 +28566,9 @@ } }, "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==" }, "q": { "version": "1.5.1", @@ -28584,15 +28757,15 @@ } }, "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", "dev": true }, "regenerator-transform": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", - "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", "dev": true, "requires": { "@babel/runtime": "^7.8.4" @@ -28647,32 +28820,20 @@ } } }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, "regexpu-core": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.1.tgz", - "integrity": "sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", "dev": true, "requires": { + "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", "regenerate-unicode-properties": "^10.1.0", - "regjsgen": "^0.7.1", "regjsparser": "^0.9.1", "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" + "unicode-match-property-value-ecmascript": "^2.1.0" } }, - "regjsgen": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", - "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==", - "dev": true - }, "regjsparser": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", @@ -28852,6 +29013,12 @@ "glob": "^7.1.3" } }, + "rrweb-cssom": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", + "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==", + "dev": true + }, "run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -29420,9 +29587,9 @@ "dev": true }, "spectrum-colorpicker2": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/spectrum-colorpicker2/-/spectrum-colorpicker2-2.0.9.tgz", - "integrity": "sha512-tyNppC56VQHdoKtWdkEkqQfLg9D1hhBea/laO3ffJGrBs3uwFmCxpcBK3a2IOpxZnioykiT+bGlT3SsI7UySRw==" + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/spectrum-colorpicker2/-/spectrum-colorpicker2-2.0.10.tgz", + "integrity": "sha512-WXyR8qT2tZ71u1W2cdwOPd28jGpuxjwJBeLVTN8xVEWsgQDotlK6DuUwocOyL9qAxTh9570qxTfZYbY7m2wuvQ==" }, "split-string": { "version": "3.1.0", @@ -29525,7 +29692,8 @@ "version": "0.1.8", "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "dev": true + "dev": true, + "optional": true }, "stack-trace": { "version": "0.0.10", @@ -29783,9 +29951,9 @@ "optional": true }, "stylehacks": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", - "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.0.0.tgz", + "integrity": "sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw==", "dev": true, "requires": { "browserslist": "^4.21.4", @@ -30016,9 +30184,9 @@ "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" }, "tinymce": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/tinymce/-/tinymce-6.3.1.tgz", - "integrity": "sha512-+oCwXuTxAdJXVJ0130OxQz0JDNsqg3deuzgeUo8X5Vb27EzCJgXwO5eWvCxvkxpQo4oiHMVlM4tUIpTUHufHGQ==" + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/tinymce/-/tinymce-6.4.2.tgz", + "integrity": "sha512-te+4c8PoAwTKPMBQtMQehnSZlOO9Ay5tDgaRFJKBehYb6SlX2PYZ0v3oe/cmiv5EfqdwZLkEMXk2MNOeApZZLg==" }, "to-absolute-glob": { "version": "2.0.2", @@ -30149,12 +30317,12 @@ } }, "tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", + "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", "dev": true, "requires": { - "punycode": "^2.1.1" + "punycode": "^2.3.0" } }, "trim-newlines": { @@ -30325,9 +30493,9 @@ } }, "unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "dev": true }, "unicode-property-aliases-ecmascript": { @@ -30424,9 +30592,9 @@ "dev": true }, "update-browserslist-db": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz", - "integrity": "sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", "dev": true, "requires": { "escalade": "^3.1.1", @@ -30724,12 +30892,12 @@ "dev": true }, "whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-12.0.1.tgz", + "integrity": "sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==", "dev": true, "requires": { - "tr46": "^3.0.0", + "tr46": "^4.1.1", "webidl-conversions": "^7.0.0" } }, diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index b57ca68ba1..0cf11ac922 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -18,10 +18,10 @@ "npm": ">=8.15" }, "dependencies": { - "@microsoft/signalr": "7.0.2", - "@umbraco-ui/uui": "1.1.0", - "@umbraco-ui/uui-css": "1.1.0", - "ace-builds": "1.15.0", + "@microsoft/signalr": "7.0.5", + "@umbraco-ui/uui": "1.2.1", + "@umbraco-ui/uui-css": "1.2.1", + "ace-builds": "1.18.0", "angular": "1.8.3", "angular-animate": "1.8.3", "angular-aria": "1.8.3", @@ -43,32 +43,32 @@ "diff": "5.1.0", "flatpickr": "4.6.13", "font-awesome": "4.7.0", - "jquery": "3.6.3", + "jquery": "3.6.4", "jquery-ui-dist": "1.13.2", "jquery-ui-touch-punch": "0.2.3", "lazyload-js": "1.0.0", "moment": "2.29.4", "ng-file-upload": "12.2.13", "nouislider": "15.7.0", - "spectrum-colorpicker2": "2.0.9", - "tinymce": "6.3.1", + "spectrum-colorpicker2": "2.0.10", + "tinymce": "6.4.2", "typeahead.js": "0.11.1", "underscore": "1.13.6", "wicg-inert": "3.1.2" }, "devDependencies": { - "@babel/core": "7.20.12", - "@babel/preset-env": "7.20.2", - "autoprefixer": "10.4.13", - "cssnano": "5.1.14", - "eslint": "8.33.0", + "@babel/core": "7.21.4", + "@babel/preset-env": "7.21.4", + "autoprefixer": "10.4.14", + "cssnano": "6.0.0", + "eslint": "8.39.0", "gulp": "4.0.2", "gulp-angular-embed-templates": "2.3.0", "gulp-babel": "8.0.0", "gulp-clean-css": "4.3.0", "gulp-cli": "2.3.0", "gulp-concat": "2.6.1", - "gulp-eslint-new": "1.7.1", + "gulp-eslint-new": "1.7.2", "gulp-imagemin": "7.1.0", "gulp-less": "5.0.0", "gulp-minify": "3.1.0", @@ -80,9 +80,9 @@ "gulp-watch": "5.0.1", "gulp-wrap": "0.15.0", "gulp-wrap-js": "0.4.1", - "jasmine-core": "4.5.0", - "jsdom": "21.1.0", - "karma": "6.4.1", + "jasmine-core": "4.6.0", + "jsdom": "21.1.1", + "karma": "6.4.2", "karma-jasmine": "5.1.0", "karma-jsdom-launcher": "14.0.0", "karma-junit-reporter": "2.0.1", @@ -90,7 +90,7 @@ "less": "4.1.3", "lodash": "4.17.21", "merge-stream": "2.0.0", - "postcss": "8.4.21", + "postcss": "8.4.23", "run-sequence": "2.2.1" } } diff --git a/src/Umbraco.Web.UI.Client/src/views/common/dashboard.html b/src/Umbraco.Web.UI.Client/src/views/common/dashboard.html index c3b60e2f0a..f7ca16500a 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/dashboard.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/dashboard.html @@ -1,6 +1,6 @@
-
+ @@ -32,6 +32,6 @@
- + diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/includeproperties.prevalues.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/includeproperties.prevalues.controller.js index 2eced1f660..d3399a35e1 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/includeproperties.prevalues.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/includeproperties.prevalues.controller.js @@ -10,42 +10,26 @@ function includePropsPreValsController($rootScope, $scope, localizationService, $scope.propertyAliases = []; $scope.selectedField = null; $scope.systemFields = [ - { value: "sortOrder" }, - { value: "updateDate" }, - { value: "updater" }, - { value: "createDate" }, - { value: "owner" }, - { value: "published"}, - { value: "contentTypeAlias" }, - { value: "email" }, - { value: "username" } + { value: "sortOrder", localizedKey: "general_sort" }, + { value: "updateDate", localizedKey: "content_updateDate" }, + { value: "updater", localizedKey: "content_updatedBy" }, + { value: "createDate", localizedKey: "content_createDate" }, + { value: "owner", localizedKey: "content_createBy" }, + { value: "published", localizedKey: "content_isPublished" }, + { value: "contentTypeAlias", localizedKey: "content_documentType" }, + { value: "email", localizedKey: "general_email" }, + { value: "username", localizedKey: "general_username" }, + { value: "failedPasswordAttempts", localizedKey: "user_failedPasswordAttempts" }, + { value: "approved", localizedKey: "user_stateApproved" }, + { value: "lockedOut", localizedKey: "user_stateLockedOut" }, + { value: "lastLockoutDate", localizedKey: "user_lastLockoutDate" }, + { value: "lastLoginDate", localizedKey: "user_lastLogin" }, + { value: "lastPasswordChangeDate", localizedKey: "user_lastPasswordChangeDate" } ]; - $scope.getLocalizedKey = function(alias) { - switch (alias) { - case "name": - return "general_name"; - case "sortOrder": - return "general_sort"; - case "updateDate": - return "content_updateDate"; - case "updater": - return "content_updatedBy"; - case "createDate": - return "content_createDate"; - case "owner": - return "content_createBy"; - case "published": - return "content_isPublished"; - case "contentTypeAlias": - //NOTE: This will just be 'Document' type even if it's for media/members since this is just a pre-val editor and we don't have a key for 'Content Type Alias' - return "content_documentType"; - case "email": - return "general_email"; - case "username": - return "general_username"; - } - return alias; + $scope.getLocalizedKey = function (alias) { + const translationKey = $scope.systemFields.find(x => x.value === alias)?.localizedKey; + return translationKey !== undefined ? translationKey : alias; } $scope.changeField = function () { @@ -65,16 +49,18 @@ function includePropsPreValsController($rootScope, $scope, localizationService, e.name = v; switch (e.value) { + case "published": case "updater": e.name += " (Content only)"; break; - case "published": - e.name += " (Content only)"; - break; - case "email": - e.name += " (Members only)"; - break; case "username": + case "email": + case "failedPasswordAttempts": + case "approved": + case "lockedOut": + case "lastLockoutDate": + case "lastLoginDate": + case "lastPasswordChangeDate": e.name += " (Members only)"; break; } @@ -174,4 +160,4 @@ function includePropsPreValsController($rootScope, $scope, localizationService, } -angular.module("umbraco").controller("Umbraco.PrevalueEditors.IncludePropertiesListViewController", includePropsPreValsController); \ No newline at end of file +angular.module("umbraco").controller("Umbraco.PrevalueEditors.IncludePropertiesListViewController", includePropsPreValsController); diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.controller.js index 98de0c4bfc..68075cb999 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.controller.js @@ -213,7 +213,13 @@ function listViewController($scope, $interpolate, $routeParams, $injector, $time e.alias === "email" || e.alias === "updateDate" || e.alias === "createDate" || - e.alias === "contentTypeAlias"; + e.alias === "contentTypeAlias" || + e.alias === "failedPasswordAttempts" || + e.alias === "approved" || + e.alias === "lockedOut" || + e.alias === "lastLockoutDate" || + e.alias === "lastLoginDate" || + e.alias === "lastPasswordChangeDate"; } if (e.isSystem) { @@ -815,6 +821,18 @@ function listViewController($scope, $interpolate, $routeParams, $injector, $time return "general_email"; case "username": return "general_username"; + case "failedPasswordAttempts": + return "user_failedPasswordAttempts"; + case "approved": + return "user_stateApproved"; + case "lockedOut": + return "user_stateLockedOut"; + case "lastLockoutDate": + return "user_lastLockoutDate"; + case "lastLoginDate": + return "user_lastLogin"; + case "lastPasswordChangeDate": + return "user_lastPasswordChangeDate"; } return alias; } diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/sortby.prevalues.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/sortby.prevalues.controller.js index 0a81bb40e2..dcc4a8ebec 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/sortby.prevalues.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/sortby.prevalues.controller.js @@ -53,7 +53,13 @@ function sortByPreValsController($rootScope, $scope, localizationService, editor { value: "ContentTypeAlias", key: "content_documentType" }, { value: "Published", key: "content_isPublished" }, { value: "Email", key: "general_email" }, - { value: "Username", key: "general_username" } + { value: "Username", key: "general_username" }, + { value: "failedPasswordAttempts", key: "user_failedPasswordAttempts" }, + { value: "approved", key: "user_stateApproved" }, + { value: "lockedOut", key: "user_stateLockedOut" }, + { value: "lastLockoutDate", key: "user_lastLockoutDate" }, + { value: "lastLoginDate", key: "user_lastLogin" }, + { value: "lastPasswordChangeDate", key: "user_lastPasswordChangeDate" } ]; _.each(systemFields, function (e) { localizationService.localize(e.key).then(function (v) { diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/rte/rte.prevalues.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/rte/rte.prevalues.controller.js index 454a4e5615..99cced5ad5 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/rte/rte.prevalues.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/rte/rte.prevalues.controller.js @@ -47,15 +47,15 @@ angular.module("umbraco").controller("Umbraco.PrevalueEditors.RteController", stylesheetResource.getAll().then(function(stylesheets){ $scope.stylesheets = stylesheets; - + // if the CSS directory changes, previously assigned stylesheets are retained, but will not be visible // and will throw a 404 when loading the RTE. Remove them here. Still needs to be saved... let cssPath = Umbraco.Sys.ServerVariables.umbracoSettings.cssPath; $scope.model.value.stylesheets = $scope.model.value.stylesheets .filter(sheet => sheet.startsWith(cssPath)); - + $scope.stylesheets.forEach(stylesheet => { - // support both current format (full stylesheet path) and legacy format (stylesheet name only) + // support both current format (full stylesheet path) and legacy format (stylesheet name only) stylesheet.selected = $scope.model.value.stylesheets.indexOf(stylesheet.path) >= 0 ||$scope.model.value.stylesheets.indexOf(stylesheet.name) >= 0; }); }); @@ -96,6 +96,7 @@ angular.module("umbraco").controller("Umbraco.PrevalueEditors.RteController", icon.isCustom = false; break; case "styleselect": + case "styles": case "fontsizeselect": icon.name = "icon-list"; icon.isCustom = true; diff --git a/tests/Umbraco.Tests.Integration/GlobalSetupTeardown.cs b/tests/Umbraco.Tests.Integration/GlobalSetupTeardown.cs index e811b18e08..834dfce91e 100644 --- a/tests/Umbraco.Tests.Integration/GlobalSetupTeardown.cs +++ b/tests/Umbraco.Tests.Integration/GlobalSetupTeardown.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Diagnostics; using System.Linq; using Microsoft.Extensions.Configuration; diff --git a/tests/Umbraco.Tests.Integration/Implementations/TestHelper.cs b/tests/Umbraco.Tests.Integration/Implementations/TestHelper.cs index b203ce7aea..1a4ccacdd1 100644 --- a/tests/Umbraco.Tests.Integration/Implementations/TestHelper.cs +++ b/tests/Umbraco.Tests.Integration/Implementations/TestHelper.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections; using System.ComponentModel; using System.IO; diff --git a/tests/Umbraco.Tests.Integration/NewBackoffice/OpenAPIContractTest.cs b/tests/Umbraco.Tests.Integration/NewBackoffice/OpenAPIContractTest.cs index aee1f6fa7c..314768d42e 100644 --- a/tests/Umbraco.Tests.Integration/NewBackoffice/OpenAPIContractTest.cs +++ b/tests/Umbraco.Tests.Integration/NewBackoffice/OpenAPIContractTest.cs @@ -3,6 +3,8 @@ using Microsoft.Extensions.Options; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using NUnit.Framework; +using Umbraco.Cms.Api.Management; +using Umbraco.Cms.Api.Management.Controllers.Install; using Umbraco.Cms.Core.Configuration.Models; using Umbraco.Cms.Core.Hosting; using Umbraco.Cms.Tests.Integration.TestServerTest; @@ -21,10 +23,10 @@ internal sealed class OpenAPIContractTest : UmbracoTestServerTestBase builder.AddMvcAndRazor(mvcBuilder => { // Adds Umbraco.Cms.Api.Management - mvcBuilder.AddApplicationPart(typeof(Api.Management.Controllers.Install.InstallControllerBase).Assembly); + mvcBuilder.AddApplicationPart(typeof(InstallControllerBase).Assembly); }); - new Api.Management.ManagementApiComposer().Compose(builder); + new ManagementApiComposer().Compose(builder); } [Test] diff --git a/tests/Umbraco.Tests.Integration/TestServerTest/Controllers/EnsureNotAmbiguousActionNameControllerTests.cs b/tests/Umbraco.Tests.Integration/TestServerTest/Controllers/EnsureNotAmbiguousActionNameControllerTests.cs index 21b1445e36..a13affb340 100644 --- a/tests/Umbraco.Tests.Integration/TestServerTest/Controllers/EnsureNotAmbiguousActionNameControllerTests.cs +++ b/tests/Umbraco.Tests.Integration/TestServerTest/Controllers/EnsureNotAmbiguousActionNameControllerTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using NUnit.Framework; using Umbraco.Cms.Core; using Umbraco.Cms.Core.Models.ContentEditing; diff --git a/tests/Umbraco.Tests.Integration/TestServerTest/UmbracoTestServerTestBase.cs b/tests/Umbraco.Tests.Integration/TestServerTest/UmbracoTestServerTestBase.cs index 975031cf25..a4932bd8d0 100644 --- a/tests/Umbraco.Tests.Integration/TestServerTest/UmbracoTestServerTestBase.cs +++ b/tests/Umbraco.Tests.Integration/TestServerTest/UmbracoTestServerTestBase.cs @@ -16,8 +16,6 @@ using Umbraco.Cms.Core.Cache; using Umbraco.Cms.Core.Composing; using Umbraco.Cms.Core.Services; using Umbraco.Cms.Core.Web; -using Umbraco.Cms.Api.Management; -using Umbraco.Cms.Api.Management.Controllers.Install; using Umbraco.Cms.Core.Persistence.Repositories; using Umbraco.Cms.Persistence.Sqlite; using Umbraco.Cms.Persistence.SqlServer; diff --git a/tests/Umbraco.Tests.Integration/TestServerTest/UmbracoWebApplicationFactory.cs b/tests/Umbraco.Tests.Integration/TestServerTest/UmbracoWebApplicationFactory.cs index 98ad406694..bfebf0b41b 100644 --- a/tests/Umbraco.Tests.Integration/TestServerTest/UmbracoWebApplicationFactory.cs +++ b/tests/Umbraco.Tests.Integration/TestServerTest/UmbracoWebApplicationFactory.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using Microsoft.AspNetCore.Mvc.Testing; using Microsoft.Extensions.Hosting; diff --git a/tests/Umbraco.Tests.Integration/Testing/BaseTestDatabase.cs b/tests/Umbraco.Tests.Integration/Testing/BaseTestDatabase.cs index 7aa632987b..76a95cd950 100644 --- a/tests/Umbraco.Tests.Integration/Testing/BaseTestDatabase.cs +++ b/tests/Umbraco.Tests.Integration/Testing/BaseTestDatabase.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Data; diff --git a/tests/Umbraco.Tests.Integration/Testing/LocalDbTestDatabase.cs b/tests/Umbraco.Tests.Integration/Testing/LocalDbTestDatabase.cs index 38da6ad7a4..dfc7d84155 100644 --- a/tests/Umbraco.Tests.Integration/Testing/LocalDbTestDatabase.cs +++ b/tests/Umbraco.Tests.Integration/Testing/LocalDbTestDatabase.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Concurrent; using System.IO; using System.Linq; diff --git a/tests/Umbraco.Tests.Integration/Testing/SqlServerBaseTestDatabase.cs b/tests/Umbraco.Tests.Integration/Testing/SqlServerBaseTestDatabase.cs index 8a19c07ac9..f9538a24cf 100644 --- a/tests/Umbraco.Tests.Integration/Testing/SqlServerBaseTestDatabase.cs +++ b/tests/Umbraco.Tests.Integration/Testing/SqlServerBaseTestDatabase.cs @@ -1,4 +1,3 @@ -using System; using System.Data; using System.Data.Common; using System.Linq; diff --git a/tests/Umbraco.Tests.Integration/Testing/SqlServerTestDatabase.cs b/tests/Umbraco.Tests.Integration/Testing/SqlServerTestDatabase.cs index e489081e60..8faaf66d82 100644 --- a/tests/Umbraco.Tests.Integration/Testing/SqlServerTestDatabase.cs +++ b/tests/Umbraco.Tests.Integration/Testing/SqlServerTestDatabase.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Concurrent; using System.Linq; using System.Threading; @@ -90,7 +89,7 @@ public class SqlServerTestDatabase : SqlServerBaseTestDatabase, ITestDatabase var sql = $@" ALTER DATABASE {LocalDb.QuotedName(meta.Name)} - SET SINGLE_USER + SET SINGLE_USER WITH ROLLBACK IMMEDIATE"; SetCommand(command, sql); command.ExecuteNonQuery(); diff --git a/tests/Umbraco.Tests.Integration/Testing/SqliteTestDatabase.cs b/tests/Umbraco.Tests.Integration/Testing/SqliteTestDatabase.cs index 2c39e6cc6c..a20b00ebe5 100644 --- a/tests/Umbraco.Tests.Integration/Testing/SqliteTestDatabase.cs +++ b/tests/Umbraco.Tests.Integration/Testing/SqliteTestDatabase.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Concurrent; using System.Data; using System.Data.Common; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Core/Events/EventAggregatorTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Core/Events/EventAggregatorTests.cs index 70951d98c2..c5f4d62a61 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Core/Events/EventAggregatorTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Core/Events/EventAggregatorTests.cs @@ -1,4 +1,3 @@ -using System; using System.Net; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Core/IO/FileSystemsTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Core/IO/FileSystemsTests.cs index 350b80d328..97871c81a7 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Core/IO/FileSystemsTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Core/IO/FileSystemsTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.IO; using System.Text; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Core/IO/ShadowFileSystemTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Core/IO/ShadowFileSystemTests.cs index 9285fcc729..6b9f3ae042 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Core/IO/ShadowFileSystemTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Core/IO/ShadowFileSystemTests.cs @@ -1,4 +1,3 @@ -using System; using System.IO; using System.Linq; using System.Text; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Core/Mapping/ContentTypeModelMappingTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Core/Mapping/ContentTypeModelMappingTests.cs index 5a3c7723b3..c7cb3d091d 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Core/Mapping/ContentTypeModelMappingTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Core/Mapping/ContentTypeModelMappingTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Linq; using Microsoft.Extensions.DependencyInjection; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Core/Packaging/CreatedPackagesRepositoryTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Core/Packaging/CreatedPackagesRepositoryTests.cs index 70610ba17e..fa6b5a6e27 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Core/Packaging/CreatedPackagesRepositoryTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Core/Packaging/CreatedPackagesRepositoryTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.IO; using System.IO.Compression; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Core/PublishedContentQueryAccessorTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Core/PublishedContentQueryAccessorTests.cs index daa99b89a2..108c3dab19 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Core/PublishedContentQueryAccessorTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Core/PublishedContentQueryAccessorTests.cs @@ -1,4 +1,3 @@ -using System; using System.Net; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Core/RuntimeStateTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Core/RuntimeStateTests.cs index 148758f7ca..cd18e58563 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Core/RuntimeStateTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Core/RuntimeStateTests.cs @@ -1,4 +1,3 @@ -using System; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Core/Telemetry/TelemetryServiceTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Core/Telemetry/TelemetryServiceTests.cs index bc4b68b508..f44c381172 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Core/Telemetry/TelemetryServiceTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Core/Telemetry/TelemetryServiceTests.cs @@ -1,4 +1,3 @@ -using System; using System.Linq; using Microsoft.Extensions.DependencyInjection; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Examine.Lucene/UmbracoExamine/ExamineBaseTest.cs b/tests/Umbraco.Tests.Integration/Umbraco.Examine.Lucene/UmbracoExamine/ExamineBaseTest.cs index 75181d0b33..381464faf3 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Examine.Lucene/UmbracoExamine/ExamineBaseTest.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Examine.Lucene/UmbracoExamine/ExamineBaseTest.cs @@ -1,4 +1,3 @@ -using System; using System.Data; using Examine.Lucene.Providers; using Microsoft.Extensions.DependencyInjection; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Examine.Lucene/UmbracoExamine/ExamineExtensions.cs b/tests/Umbraco.Tests.Integration/Umbraco.Examine.Lucene/UmbracoExamine/ExamineExtensions.cs index 7f601898c6..f8bca9ef51 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Examine.Lucene/UmbracoExamine/ExamineExtensions.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Examine.Lucene/UmbracoExamine/ExamineExtensions.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Examine.Lucene/UmbracoExamine/IndexTest.cs b/tests/Umbraco.Tests.Integration/Umbraco.Examine.Lucene/UmbracoExamine/IndexTest.cs index b271cabb08..4d31b9c314 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Examine.Lucene/UmbracoExamine/IndexTest.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Examine.Lucene/UmbracoExamine/IndexTest.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Bogus; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Examine.Lucene/UmbracoExamine/RandomIdRAMDirectory.cs b/tests/Umbraco.Tests.Integration/Umbraco.Examine.Lucene/UmbracoExamine/RandomIdRAMDirectory.cs index 92c7d6581b..10b6b1366f 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Examine.Lucene/UmbracoExamine/RandomIdRAMDirectory.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Examine.Lucene/UmbracoExamine/RandomIdRAMDirectory.cs @@ -1,4 +1,3 @@ -using System; using Lucene.Net.Store; namespace Umbraco.Cms.Tests.Integration.Umbraco.Examine.Lucene.UmbracoExamine; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Examine.Lucene/UmbracoExamine/SearchTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Examine.Lucene/UmbracoExamine/SearchTests.cs index 0b3a7ef45a..41ba42dc86 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Examine.Lucene/UmbracoExamine/SearchTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Examine.Lucene/UmbracoExamine/SearchTests.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Examine; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Examine.Lucene/UmbracoExamine/TestFiles.Designer.cs b/tests/Umbraco.Tests.Integration/Umbraco.Examine.Lucene/UmbracoExamine/TestFiles.Designer.cs index 166d329208..c076cd8b22 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Examine.Lucene/UmbracoExamine/TestFiles.Designer.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Examine.Lucene/UmbracoExamine/TestFiles.Designer.cs @@ -1,122 +1,121 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace Umbraco.Cms.Tests.Integration.Umbraco.Examine.Lucene.UmbracoExamine { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class TestFiles { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal TestFiles() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Umbraco.Cms.Tests.Integration.Umbraco.Examine.Lucene.UmbracoExamine.TestFiles", typeof(TestFiles).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - /// - /// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8"?> - ///<media> - /// <node id="1111" version="902e13f7-5793-482a-9e06-cd94eebd1de0" parentID="-1" level="1" writerID="0" nodeType="1031" template="0" sortOrder="2" createDate="2010-05-19T15:26:08" updateDate="2010-05-19T15:26:09" nodeName="Product Images" urlName="productimages" writerName="Administrator" nodeTypeAlias="Folder" path="-1,1111"> - /// <data alias="contents"></data> - /// <node id="2222" version="902e13f7-5793-482a-9e06-cd94eebd1de0" parentID="1111" level="2" writerID="0 [rest of string was truncated]";. - /// - internal static string media { - get { - return ResourceManager.GetString("media", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8"?> - ///<!DOCTYPE root[ - ///<!ELEMENT CWS_Contact ANY> - ///<!ATTLIST CWS_Contact id ID #REQUIRED> - ///<!ELEMENT CWS_EmailAFriend ANY> - ///<!ATTLIST CWS_EmailAFriend id ID #REQUIRED> - ///<!ELEMENT CWS_EventItem ANY> - ///<!ATTLIST CWS_EventItem id ID #REQUIRED> - ///<!ELEMENT CWS_Galleries ANY> - ///<!ATTLIST CWS_Galleries id ID #REQUIRED> - ///<!ELEMENT CWS_Gallery ANY> - ///<!ATTLIST CWS_Gallery id ID #REQUIRED> - ///<!ELEMENT CWS_Home ANY> - ///<!ATTLIST CWS_Home id ID #REQUIRED> - ///<!ELEMENT CWS_NewsEventsList ANY> /// [rest of string was truncated]";. - /// - internal static string umbraco { - get { - return ResourceManager.GetString("umbraco", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8"?> - ///<!DOCTYPE root[ - ///<!ELEMENT CWS_Contact ANY> - ///<!ATTLIST CWS_Contact id ID #REQUIRED> - ///<!ELEMENT CWS_EmailAFriend ANY> - ///<!ATTLIST CWS_EmailAFriend id ID #REQUIRED> - ///<!ELEMENT CWS_EventItem ANY> - ///<!ATTLIST CWS_EventItem id ID #REQUIRED> - ///<!ELEMENT CWS_Galleries ANY> - ///<!ATTLIST CWS_Galleries id ID #REQUIRED> - ///<!ELEMENT CWS_Gallery ANY> - ///<!ATTLIST CWS_Gallery id ID #REQUIRED> - ///<!ELEMENT CWS_Home ANY> - ///<!ATTLIST CWS_Home id ID #REQUIRED> - ///<!ELEMENT CWS_NewsEventsList ANY> /// [rest of string was truncated]";. - /// - internal static string umbraco_sort { - get { - return ResourceManager.GetString("umbraco_sort", resourceCulture); - } - } - } -} +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Umbraco.Cms.Tests.Integration.Umbraco.Examine.Lucene.UmbracoExamine { + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class TestFiles { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal TestFiles() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Umbraco.Cms.Tests.Integration.Umbraco.Examine.Lucene.UmbracoExamine.TestFiles", typeof(TestFiles).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8"?> + ///<media> + /// <node id="1111" version="902e13f7-5793-482a-9e06-cd94eebd1de0" parentID="-1" level="1" writerID="0" nodeType="1031" template="0" sortOrder="2" createDate="2010-05-19T15:26:08" updateDate="2010-05-19T15:26:09" nodeName="Product Images" urlName="productimages" writerName="Administrator" nodeTypeAlias="Folder" path="-1,1111"> + /// <data alias="contents"></data> + /// <node id="2222" version="902e13f7-5793-482a-9e06-cd94eebd1de0" parentID="1111" level="2" writerID="0 [rest of string was truncated]";. + /// + internal static string media { + get { + return ResourceManager.GetString("media", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8"?> + ///<!DOCTYPE root[ + ///<!ELEMENT CWS_Contact ANY> + ///<!ATTLIST CWS_Contact id ID #REQUIRED> + ///<!ELEMENT CWS_EmailAFriend ANY> + ///<!ATTLIST CWS_EmailAFriend id ID #REQUIRED> + ///<!ELEMENT CWS_EventItem ANY> + ///<!ATTLIST CWS_EventItem id ID #REQUIRED> + ///<!ELEMENT CWS_Galleries ANY> + ///<!ATTLIST CWS_Galleries id ID #REQUIRED> + ///<!ELEMENT CWS_Gallery ANY> + ///<!ATTLIST CWS_Gallery id ID #REQUIRED> + ///<!ELEMENT CWS_Home ANY> + ///<!ATTLIST CWS_Home id ID #REQUIRED> + ///<!ELEMENT CWS_NewsEventsList ANY> + /// [rest of string was truncated]";. + /// + internal static string umbraco { + get { + return ResourceManager.GetString("umbraco", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8"?> + ///<!DOCTYPE root[ + ///<!ELEMENT CWS_Contact ANY> + ///<!ATTLIST CWS_Contact id ID #REQUIRED> + ///<!ELEMENT CWS_EmailAFriend ANY> + ///<!ATTLIST CWS_EmailAFriend id ID #REQUIRED> + ///<!ELEMENT CWS_EventItem ANY> + ///<!ATTLIST CWS_EventItem id ID #REQUIRED> + ///<!ELEMENT CWS_Galleries ANY> + ///<!ATTLIST CWS_Galleries id ID #REQUIRED> + ///<!ELEMENT CWS_Gallery ANY> + ///<!ATTLIST CWS_Gallery id ID #REQUIRED> + ///<!ELEMENT CWS_Home ANY> + ///<!ATTLIST CWS_Home id ID #REQUIRED> + ///<!ELEMENT CWS_NewsEventsList ANY> + /// [rest of string was truncated]";. + /// + internal static string umbraco_sort { + get { + return ResourceManager.GetString("umbraco_sort", resourceCulture); + } + } + } +} diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Migrations/AdvancedMigrationTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Migrations/AdvancedMigrationTests.cs index fe33fd5147..792f40ac2e 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Migrations/AdvancedMigrationTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Migrations/AdvancedMigrationTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Linq; using Moq; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Packaging/PackageDataInstallationTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Packaging/PackageDataInstallationTests.cs index c0a114b136..d69edc5406 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Packaging/PackageDataInstallationTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Packaging/PackageDataInstallationTests.cs @@ -1,6 +1,8 @@ // Copyright (c) Umbraco. // See LICENSE for more details. +using System.Collections.Generic; +using System.Linq; using System.Xml.Linq; using NUnit.Framework; using Umbraco.Cms.Core; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Packaging/PackageInstallationTest.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Packaging/PackageInstallationTest.cs index 10df853cef..5f612c8c27 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Packaging/PackageInstallationTest.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Packaging/PackageInstallationTest.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.IO; using System.Linq; using System.Xml.Linq; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/LocksTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/LocksTests.cs index 393f28668e..51b1a3a179 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/LocksTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/LocksTests.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using System.Text; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/NPocoTests/NPocoBulkInsertTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/NPocoTests/NPocoBulkInsertTests.cs index 0b50d0bdef..8280f821fa 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/NPocoTests/NPocoBulkInsertTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/NPocoTests/NPocoBulkInsertTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Data; using System.Linq; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/NPocoTests/NPocoFetchTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/NPocoTests/NPocoFetchTests.cs index bdbf58a38f..658b080521 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/NPocoTests/NPocoFetchTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/NPocoTests/NPocoFetchTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Linq; using NPoco; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/CacheInstructionRepositoryTest.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/CacheInstructionRepositoryTest.cs index 4250a3c057..e191a005a4 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/CacheInstructionRepositoryTest.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/CacheInstructionRepositoryTest.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Linq; using NUnit.Framework; using Umbraco.Cms.Core.Models; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/ContentTypeRepositoryTest.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/ContentTypeRepositoryTest.cs index 63a6e2f585..49ca4322d3 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/ContentTypeRepositoryTest.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/ContentTypeRepositoryTest.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Linq; using Microsoft.Extensions.Logging; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/DictionaryRepositoryTest.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/DictionaryRepositoryTest.cs index 37ab178bd6..b312e95b30 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/DictionaryRepositoryTest.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/DictionaryRepositoryTest.cs @@ -1,6 +1,8 @@ // Copyright (c) Umbraco. // See LICENSE for more details. +using System.Collections.Generic; +using System.Linq; using NUnit.Framework; using Umbraco.Cms.Core; using Umbraco.Cms.Core.Models; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/DocumentRepositoryTest.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/DocumentRepositoryTest.cs index 9870926544..51a1a92376 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/DocumentRepositoryTest.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/DocumentRepositoryTest.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Linq; using Microsoft.Extensions.Logging; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/EntityRepositoryTest.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/EntityRepositoryTest.cs index 139a98a57a..6ab977b783 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/EntityRepositoryTest.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/EntityRepositoryTest.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Linq; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/KeyValueRepositoryTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/KeyValueRepositoryTests.cs index d633c08872..6fc43e2f63 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/KeyValueRepositoryTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/KeyValueRepositoryTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using Microsoft.Extensions.Logging; using NUnit.Framework; using Umbraco.Cms.Core.Models; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/LanguageRepositoryTest.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/LanguageRepositoryTest.cs index 17d80bc5cb..6527a5309e 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/LanguageRepositoryTest.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/LanguageRepositoryTest.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Globalization; using System.Linq; using Microsoft.Extensions.Logging; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/MediaRepositoryTest.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/MediaRepositoryTest.cs index afe228a8fb..ce60146635 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/MediaRepositoryTest.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/MediaRepositoryTest.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Linq; using Microsoft.Extensions.Logging; using Moq; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/MediaTypeRepositoryTest.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/MediaTypeRepositoryTest.cs index aa783317ac..70a7ca2dbc 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/MediaTypeRepositoryTest.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/MediaTypeRepositoryTest.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Linq; using Microsoft.Extensions.Logging; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/MemberRepositoryTest.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/MemberRepositoryTest.cs index b986ad7168..034e076ae5 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/MemberRepositoryTest.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/MemberRepositoryTest.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Diagnostics; using System.Linq; using Microsoft.Extensions.Logging; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/MemberTypeRepositoryTest.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/MemberTypeRepositoryTest.cs index 6562f21d5e..5ab4ef3e8b 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/MemberTypeRepositoryTest.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/MemberTypeRepositoryTest.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Linq; using Microsoft.Extensions.Logging; using Moq; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/NotificationsRepositoryTest.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/NotificationsRepositoryTest.cs index adafdec845..566dac5f40 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/NotificationsRepositoryTest.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/NotificationsRepositoryTest.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Globalization; using System.Linq; using Moq; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/PartialViewRepositoryTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/PartialViewRepositoryTests.cs index 6f59f62e55..5f70ae04bf 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/PartialViewRepositoryTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/PartialViewRepositoryTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.IO; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/PublicAccessRepositoryTest.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/PublicAccessRepositoryTest.cs index 0629208ef5..0e9be1a93e 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/PublicAccessRepositoryTest.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/PublicAccessRepositoryTest.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Linq; using Microsoft.Extensions.Logging; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/RedirectUrlRepositoryTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/RedirectUrlRepositoryTests.cs index 95104172a6..db082a5d2c 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/RedirectUrlRepositoryTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/RedirectUrlRepositoryTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Linq; using Microsoft.Extensions.Logging; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/RelationRepositoryTest.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/RelationRepositoryTest.cs index 3b9768088f..402aa0b653 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/RelationRepositoryTest.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/RelationRepositoryTest.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Linq; using Microsoft.Extensions.Logging; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/ScriptRepositoryTest.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/ScriptRepositoryTest.cs index 5897052752..5d5498981a 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/ScriptRepositoryTest.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/ScriptRepositoryTest.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.IO; using System.Linq; using System.Text; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/ServerRegistrationRepositoryTest.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/ServerRegistrationRepositoryTest.cs index 4611f69882..05b81cacf7 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/ServerRegistrationRepositoryTest.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/ServerRegistrationRepositoryTest.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Data.Common; using System.Linq; using Microsoft.Extensions.Logging; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/StylesheetRepositoryTest.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/StylesheetRepositoryTest.cs index dcc672dee9..97f0cc7fd1 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/StylesheetRepositoryTest.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/StylesheetRepositoryTest.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Data; using System.IO; using System.Linq; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/TagRepositoryTest.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/TagRepositoryTest.cs index a92123e934..1ce5eeefd9 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/TagRepositoryTest.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/TagRepositoryTest.cs @@ -13,7 +13,6 @@ using Umbraco.Cms.Infrastructure.Scoping; using Umbraco.Cms.Tests.Common.Builders; using Umbraco.Cms.Tests.Common.Testing; using Umbraco.Cms.Tests.Integration.Testing; -using static Umbraco.Cms.Core.Constants.Conventions; namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence.Repositories; @@ -99,45 +98,6 @@ public class TagRepositoryTest : UmbracoIntegrationTest } } - [Test] - public void Can_Create_Tag_Relations_With_Mixed_Casing() - { - var provider = ScopeProvider; - using (ScopeProvider.CreateScope()) - { - var template = TemplateBuilder.CreateTextPageTemplate(); - FileService.SaveTemplate(template); - - var contentType = - ContentTypeBuilder.CreateSimpleContentType("test", "Test", defaultTemplateId: template.Id); - ContentTypeRepository.Save(contentType); - - var content1 = ContentBuilder.CreateSimpleContent(contentType); - var content2 = ContentBuilder.CreateSimpleContent(contentType); - DocumentRepository.Save(content1); - DocumentRepository.Save(content2); - - var repository = CreateRepository(provider); - Tag[] tags1 = { new Tag { Text = "tag1", Group = "test" } }; - repository.Assign( - content1.Id, - contentType.PropertyTypes.First().Id, - tags1, - false); - - // Note the casing is different from tags1, but both should be considered equivalent - Tag[] tags2 = { new Tag { Text = "TAG1", Group = "test" } }; - repository.Assign( - content2.Id, - contentType.PropertyTypes.First().Id, - tags2, - false); - - // The template should have only one tag, despite case differences - Assert.AreEqual(1, repository.GetTaggedEntitiesByTag(TaggableObjectTypes.Content, "tag1").Count()); - } - } - [Test] public void Can_Append_Tag_Relations() { diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/TemplateRepositoryTest.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/TemplateRepositoryTest.cs index e0665aaf6d..ce267555e4 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/TemplateRepositoryTest.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/TemplateRepositoryTest.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.IO; using System.Linq; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/UserRepositoryTest.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/UserRepositoryTest.cs index ba1f577e44..fc37f72c79 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/UserRepositoryTest.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/UserRepositoryTest.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Linq; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/SyntaxProvider/SqlServerSyntaxProviderTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/SyntaxProvider/SqlServerSyntaxProviderTests.cs index 0d8e703604..be90d8695b 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/SyntaxProvider/SqlServerSyntaxProviderTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/SyntaxProvider/SqlServerSyntaxProviderTests.cs @@ -1,4 +1,3 @@ -using System; using System.Diagnostics; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/UnitOfWorkTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/UnitOfWorkTests.cs index 92de5a9c17..f14661a976 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/UnitOfWorkTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/UnitOfWorkTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using NUnit.Framework; using Umbraco.Cms.Core; using Umbraco.Cms.Core.DistributedLocking; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Scoping/ScopeFileSystemsTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Scoping/ScopeFileSystemsTests.cs index d9832439fb..89ce8389cd 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Scoping/ScopeFileSystemsTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Scoping/ScopeFileSystemsTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.IO; using System.Text; using System.Threading.Tasks; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Scoping/ScopeTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Scoping/ScopeTests.cs index 1f03b8ea49..a2ba3bb4c4 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Scoping/ScopeTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Scoping/ScopeTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Scoping/ScopedNuCacheTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Scoping/ScopedNuCacheTests.cs index 89e1543b1e..9186f44cf1 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Scoping/ScopedNuCacheTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Scoping/ScopedNuCacheTests.cs @@ -1,4 +1,3 @@ -using System; using Microsoft.AspNetCore.Http; using Moq; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Scoping/SupressNotificationsTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Scoping/SupressNotificationsTests.cs index 36c599ce1d..ec573cbb2a 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Scoping/SupressNotificationsTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Scoping/SupressNotificationsTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using NUnit.Framework; using Umbraco.Cms.Core.DependencyInjection; using Umbraco.Cms.Core.Events; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/AuditServiceTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/AuditServiceTests.cs index e19c8414c9..f0e994f683 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/AuditServiceTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/AuditServiceTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Linq; using Microsoft.Extensions.DependencyInjection; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/CacheInstructionServiceTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/CacheInstructionServiceTests.cs index ef7978f585..cb62dd32a3 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/CacheInstructionServiceTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/CacheInstructionServiceTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Linq; using System.Threading; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ConsentServiceTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ConsentServiceTests.cs index 2b5508cc6b..9e6d7f883a 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ConsentServiceTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ConsentServiceTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Linq; using NUnit.Framework; using Umbraco.Cms.Core.Models; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentEventsTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentEventsTests.cs index fb25666efb..20e38be130 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentEventsTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentEventsTests.cs @@ -3,7 +3,6 @@ #pragma warning disable SA1124 // Do not use regions (justification: regions are currently adding some useful organisation to this file) -using System; using System.Collections.Generic; using System.Linq; using Microsoft.Extensions.Logging; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentServiceNotificationTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentServiceNotificationTests.cs index d39e7a4a08..7ab9fea048 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentServiceNotificationTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentServiceNotificationTests.cs @@ -1,6 +1,7 @@ // Copyright (c) Umbraco. // See LICENSE for more details. +using System.Linq; using NUnit.Framework; using Umbraco.Cms.Core; using Umbraco.Cms.Core.Configuration.Models; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentServicePerformanceTest.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentServicePerformanceTest.cs index cf8658d64a..b44b993625 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentServicePerformanceTest.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentServicePerformanceTest.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentServicePublishBranchTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentServicePublishBranchTests.cs index 529a31559b..7f4fb54471 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentServicePublishBranchTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentServicePublishBranchTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Linq; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentServiceTagsTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentServiceTagsTests.cs index f02218bb54..8d58f1dbd1 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentServiceTagsTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentServiceTagsTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Linq; using NUnit.Framework; using Umbraco.Cms.Core; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentServiceTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentServiceTests.cs index 0519e81c7d..fe53f5b571 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentServiceTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentServiceTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentTypeServiceTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentTypeServiceTests.cs index 9e6c17f6ad..bb24410e7b 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentTypeServiceTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentTypeServiceTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Linq; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentTypeServiceVariantsTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentTypeServiceVariantsTests.cs index 9b4807c496..7752a54af4 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentTypeServiceVariantsTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentTypeServiceVariantsTests.cs @@ -1,6 +1,7 @@ // Copyright (c) Umbraco. // See LICENSE for more details. +using System.Linq; using Microsoft.Extensions.DependencyInjection; using NUnit.Framework; using Umbraco.Cms.Core; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentVersionCleanupServiceTest.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentVersionCleanupServiceTest.cs index 3e58ca9030..e553d6165d 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentVersionCleanupServiceTest.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentVersionCleanupServiceTest.cs @@ -1,4 +1,3 @@ -using System; using System.Diagnostics; using NUnit.Framework; using Umbraco.Cms.Core.Models; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/DataTypeServiceTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/DataTypeServiceTests.cs index b900f3b02a..2bb642fb09 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/DataTypeServiceTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/DataTypeServiceTests.cs @@ -1,6 +1,7 @@ // Copyright (c) Umbraco. // See LICENSE for more details. +using System.Linq; using NUnit.Framework; using Umbraco.Cms.Core; using Umbraco.Cms.Core.Models; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/EntityServiceTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/EntityServiceTests.cs index b1a35c3707..f949d5a923 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/EntityServiceTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/EntityServiceTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Linq; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/EntityXmlSerializerTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/EntityXmlSerializerTests.cs index 2ac479b1b9..bf0c5705b6 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/EntityXmlSerializerTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/EntityXmlSerializerTests.cs @@ -1,6 +1,7 @@ // Copyright (c) Umbraco. // See LICENSE for more details. +using System.Collections.Generic; using System.Diagnostics; using System.Xml.Linq; using Microsoft.Extensions.DependencyInjection; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ExternalLoginServiceTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ExternalLoginServiceTests.cs index f9990fbedf..c82657b980 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ExternalLoginServiceTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ExternalLoginServiceTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Linq; using NUnit.Framework; using Umbraco.Cms.Core.Security; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/Importing/ImportResources.Designer.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/Importing/ImportResources.Designer.cs index e7153912a9..45fd3a2057 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/Importing/ImportResources.Designer.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/Importing/ImportResources.Designer.cs @@ -1,372 +1,370 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Services.Importing { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class ImportResources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal ImportResources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Services.Importing.ImportRes" + - "ources", typeof(ImportResources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - /// - /// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8" standalone="no"?> - ///<umbPackage> - /// <files /> - /// <info> - /// <package> - /// <name>CheckboxListTest</name> - /// </package> - /// </info> - /// <Documents> - /// <DocumentSet importMode="root"> - /// <NewType key="9c9b55d0-2fbf-4f12-afea-023bd7b2519d" id="1148" parentID="-1" level="1" creatorID="0" sortOrder="9" createDate="2013-07-23T12:06:07" updateDate="2013-07-23T15:56:37" nodeName="DoIt" urlName="doit" path="-1,1148" isDoc="" nodeType="1134" creatorName="admin" writerName= [rest of string was truncated]";. - /// - internal static string CheckboxList_Content_Package { - get { - return ResourceManager.GetString("CheckboxList_Content_Package", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8" standalone="no"?> - ///<umbPackage> - /// <files /> - /// <info> - /// <package> - /// <name>Compositions Packaged</name> - /// </package> - /// </info> - /// <Documents> - /// <DocumentSet importMode="root"> - /// <umbHomePage key="9c9b55d0-2fbf-4f12-afea-023bd7b2519d" id="1068" parentID="-1" level="1" creatorID="0" sortOrder="0" createDate="2014-11-26T12:52:35" updateDate="2014-11-26T12:52:36" nodeName="Home" urlName="home" path="-1,1068" isDoc="" nodeType="1056" creatorName="Morten Ch [rest of string was truncated]";. - /// - internal static string CompositionsTestPackage { - get { - return ResourceManager.GetString("CompositionsTestPackage", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8" standalone="no"?> - ///<umbPackage> - /// <files /> - /// <info> - /// <package> - /// <name>Composite Test</name> - /// </package> - /// </info> - /// <Documents> - /// <DocumentSet importMode="root"> - /// <CompositeTest id="1083" parentID="-1" level="1" creatorID="0" sortOrder="1" createDate="2014-11-26T15:02:43" updateDate="2014-11-26T15:02:43" nodeName="Composite test" urlName="composite-test" path="-1,1083" isDoc="" nodeType="1082" creatorName="Niels Hartvig" writerName="Niels Hart [rest of string was truncated]";. - /// - internal static string CompositionsTestPackage_Random { - get { - return ResourceManager.GetString("CompositionsTestPackage_Random", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8" ?> - ///<umbPackage> - /// <files /> - /// <info> - /// <package> - /// <name>Dictionary-Package</name> - /// </package> - /// </info> - /// <DictionaryItems> - /// <DictionaryItem Key="28f2e02a-8c66-4fcd-85e3-8524d551c0d3" Name="Parent"> - /// <Value LanguageCultureAlias="nb-NO"><![CDATA[ForelderVerdi]]></Value> - /// <Value LanguageCultureAlias="en-GB"><![CDATA[ParentValue]]></Value> - /// <DictionaryItem Key="e7dba0a9-d517-4ba4-8e18-2764d392c611" Name="Child"> - /// <Value Langua [rest of string was truncated]";. - /// - internal static string Dictionary_Package { - get { - return ResourceManager.GetString("Dictionary_Package", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8" standalone="no"?> - ///<umbPackage> - /// <info> - /// <package> - /// <name>Fanoe</name> - /// </package> - /// </info> - /// <Documents> - /// <DocumentSet importMode="root"> - /// <Home id="1057" parentID="-1" level="1" creatorID="0" sortOrder="0" createDate="2014-11-25T12:23:30" updateDate="2014-12-01T13:45:08" nodeName="Home" urlName="home" path="-1,1057" isDoc="" nodeType="1055" creatorName="Rune Strand" writerName="Rune Strand" writerID="0" template="1054" nodeTypeAlias="Home"> [rest of string was truncated]";. - /// - internal static string Fanoe_Package { - get { - return ResourceManager.GetString("Fanoe_Package", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8" standalone="no"?> - ///<umbPackage> - /// <files /> - /// <info> - /// <package> - /// <name>DocTypeError</name> - /// </package> - /// </info> - /// <DocumentTypes> - /// <DocumentType> - /// <Info> - /// <Name>MR Basisseite</Name> - /// <Key>02e4e119-2eeb-4b92-9880-0c35d66a16b2</Key> - /// <Alias>MRBasePage</Alias> - /// <Icon>folder.gif</Icon> - /// <Thumbnail>folder.png</Thumbnail> - /// <Description>Basistyp für alle Seiten der MR-Racing Website.</Description> - /// [rest of string was truncated]";. - /// - internal static string InheritedDocTypes_Package { - get { - return ResourceManager.GetString("InheritedDocTypes_Package", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8"?> - ///<umbPackage> - /// <files /> - /// <info> - /// <package> - /// <name>Package With MediaTypes And Media + Folder</name> - /// </package> - /// </info> - /// <DocumentTypes /> - /// <MediaTypes> - /// <MediaType> - /// <Info> - /// <Name>Folder</Name> - /// <Key>c3ddc08e-3b5e-42b2-9f0b-6e5c79a2e2e0</Key> - /// <Alias>Folder</Alias> - /// <Icon>icon-folder</Icon> - /// <Thumbnail>icon-folder</Thumbnail> - /// <Description /> - /// <AllowAtRoot>True</AllowAtRoot> - /// [rest of string was truncated]";. - /// - internal static string MediaTypesAndMedia_Package_xml { - get { - return ResourceManager.GetString("MediaTypesAndMedia_Package.xml", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8" ?> - ///<DocumentType> - /// <Info> - /// <Name>test</Name> - /// <Key>150ead17-d359-42a2-ac33-6504cc52ced1</Key> - /// <Alias>test</Alias> - /// <Icon>folder.gif</Icon> - /// <Thumbnail>folder.png</Thumbnail> - /// <Description> - /// </Description> - /// <AllowAtRoot>False</AllowAtRoot> - /// <AllowedTemplates> - /// <Template>test</Template> - /// </AllowedTemplates> - /// <DefaultTemplate>test</DefaultTemplate> - /// </Info> - /// <Structure> - /// <DocumentType>test</DocumentType> - /// </Str [rest of string was truncated]";. - /// - internal static string SingleDocType { - get { - return ResourceManager.GetString("SingleDocType", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8" ?> - ///<DocumentType> - /// <Info> - /// <Name>test</Name> - /// <Key>150ead17-d359-42a2-ac33-6504cc52ced1</Key> - /// <Alias>test</Alias> - /// <Icon>folder.gif</Icon> - /// <Thumbnail>folder.png</Thumbnail> - /// <Description> - /// </Description> - /// <AllowAtRoot>False</AllowAtRoot> - /// <AllowedTemplates> - /// <Template>test</Template> - /// </AllowedTemplates> - /// <DefaultTemplate>test</DefaultTemplate> - /// </Info> - /// <Structure> - /// <DocumentType>test</DocumentType> - /// </Str [rest of string was truncated]";. - /// - internal static string SingleDocType_WithCleanupPolicy { - get { - return ResourceManager.GetString("SingleDocType_WithCleanupPolicy", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8" standalone="no"?> - ///<umbPackage> - /// <info> - /// <package> - /// <name>StandardWebsiteMVC</name> - /// </package> - /// </info> - /// <Documents> - /// <DocumentSet importMode="root"> - /// <Homepage key="9c9b55d0-2fbf-4f12-afea-023bd7b2519d" id="1072" parentID="-1" level="1" creatorID="0" sortOrder="0" createDate="2013-02-17T09:04:39" updateDate="2013-02-17T09:10:47" nodeName="Home" urlName="home" path="-1,1072" isDoc="" nodeType="1062" creatorName="admin" writerName="admin" wr [rest of string was truncated]";. - /// - internal static string StandardMvc_Package { - get { - return ResourceManager.GetString("StandardMvc_Package", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8" standalone="no"?> - ///<umbPackage> - /// <files /> - /// <info> - /// <package> - /// <name>Template-Update</name> - /// </package> - /// </info> - /// <DocumentTypes /> - /// <Templates> - /// <Template> - /// <Name>Homepage</Name> - /// <Alias>umbHomepage</Alias> - /// <Master>umbMaster</Master> - /// <Design> - /// <![CDATA[<%@ Master Language="C#" MasterPageFile="~/masterpages/umbMaster.master" AutoEventWireup="true" %> - ///<asp:content id="Content1" contentplaceholderid="cp_content [rest of string was truncated]";. - /// - internal static string TemplateOnly_Package { - get { - return ResourceManager.GetString("TemplateOnly_Package", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8" standalone="no"?> - ///<umbPackage> - /// <files /> - /// <info> - /// <package> - /// <name>Template-Update</name> - /// </package> - /// </info> - /// <DocumentTypes /> - /// <Templates> - /// <Template> - /// <Name>Homepage</Name> - /// <Alias>umbHomepage</Alias> - /// <Master>umbMaster</Master> - /// <Design> - /// <![CDATA[<%@ Master Language="C#" MasterPageFile="~/masterpages/umbMaster.master" AutoEventWireup="true" %> - ///<asp:content id="Content1" contentplaceholderid="cp_content [rest of string was truncated]";. - /// - internal static string TemplateOnly_Updated_Package { - get { - return ResourceManager.GetString("TemplateOnly_Updated_Package", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8" standalone="no"?> - ///<umbPackage> - /// <info> - /// <package> - /// <name>uBlogsy</name> - /// </package> - /// </info> - /// <Documents> - /// <DocumentSet importMode="root"> - /// <uBlogsySiteRoot id="1266" parentID="-1" level="1" creatorID="0" sortOrder="1" createDate="2013-02-21T18:38:53" updateDate="2013-03-18T22:35:23" nodeName="Sample Site Root" urlName="sample-site-root" path="-1,1266" isDoc="" nodeType="1263" creatorName="admin" writerName="admin" writerID="0" template="12 [rest of string was truncated]";. - /// - internal static string uBlogsy_Package { - get { - return ResourceManager.GetString("uBlogsy_Package", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8" standalone="no"?> - ///<umbPackage> - /// <info> - /// <package> - /// <name>XSLTsearch</name> - /// </package> - /// </info> - /// <Documents> - /// <DocumentSet importMode="root"> - /// <XSLTsearch id="1090" parentID="-1" level="1" writerID="0" creatorID="0" nodeType="1087" template="1086" sortOrder="39" createDate="2010-11-09T13:45:22" updateDate="2010-11-09T14:18:04" nodeName="Search" urlName="search" writerName="Administrator" creatorName="Administrator" path="-1,1090" isDoc=""> /// [rest of string was truncated]";. - /// - internal static string XsltSearch_Package { - get { - return ResourceManager.GetString("XsltSearch_Package", resourceCulture); - } - } - } -} +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Services.Importing { + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class ImportResources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal ImportResources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Services.Importing.ImportRes" + + "ources", typeof(ImportResources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8" standalone="no"?> + ///<umbPackage> + /// <files /> + /// <info> + /// <package> + /// <name>CheckboxListTest</name> + /// </package> + /// </info> + /// <Documents> + /// <DocumentSet importMode="root"> + /// <NewType key="9c9b55d0-2fbf-4f12-afea-023bd7b2519d" id="1148" parentID="-1" level="1" creatorID="0" sortOrder="9" createDate="2013-07-23T12:06:07" updateDate="2013-07-23T15:56:37" nodeName="DoIt" urlName="doit" path="-1,1148" isDoc="" nodeType="1134" creatorName="admin" writerName= [rest of string was truncated]";. + /// + internal static string CheckboxList_Content_Package { + get { + return ResourceManager.GetString("CheckboxList_Content_Package", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8" standalone="no"?> + ///<umbPackage> + /// <files /> + /// <info> + /// <package> + /// <name>Compositions Packaged</name> + /// </package> + /// </info> + /// <Documents> + /// <DocumentSet importMode="root"> + /// <umbHomePage key="9c9b55d0-2fbf-4f12-afea-023bd7b2519d" id="1068" parentID="-1" level="1" creatorID="0" sortOrder="0" createDate="2014-11-26T12:52:35" updateDate="2014-11-26T12:52:36" nodeName="Home" urlName="home" path="-1,1068" isDoc="" nodeType="1056" creatorName="Morten Ch [rest of string was truncated]";. + /// + internal static string CompositionsTestPackage { + get { + return ResourceManager.GetString("CompositionsTestPackage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8" standalone="no"?> + ///<umbPackage> + /// <files /> + /// <info> + /// <package> + /// <name>Composite Test</name> + /// </package> + /// </info> + /// <Documents> + /// <DocumentSet importMode="root"> + /// <CompositeTest id="1083" parentID="-1" level="1" creatorID="0" sortOrder="1" createDate="2014-11-26T15:02:43" updateDate="2014-11-26T15:02:43" nodeName="Composite test" urlName="composite-test" path="-1,1083" isDoc="" nodeType="1082" creatorName="Niels Hartvig" writerName="Niels Hart [rest of string was truncated]";. + /// + internal static string CompositionsTestPackage_Random { + get { + return ResourceManager.GetString("CompositionsTestPackage_Random", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8" ?> + ///<umbPackage> + /// <files /> + /// <info> + /// <package> + /// <name>Dictionary-Package</name> + /// </package> + /// </info> + /// <DictionaryItems> + /// <DictionaryItem Key="28f2e02a-8c66-4fcd-85e3-8524d551c0d3" Name="Parent"> + /// <Value LanguageCultureAlias="nb-NO"><![CDATA[ForelderVerdi]]></Value> + /// <Value LanguageCultureAlias="en-GB"><![CDATA[ParentValue]]></Value> + /// <DictionaryItem Key="e7dba0a9-d517-4ba4-8e18-2764d392c611" Name="Child"> + /// <Value Langua [rest of string was truncated]";. + /// + internal static string Dictionary_Package { + get { + return ResourceManager.GetString("Dictionary_Package", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8" standalone="no"?> + ///<umbPackage> + /// <info> + /// <package> + /// <name>Fanoe</name> + /// </package> + /// </info> + /// <Documents> + /// <DocumentSet importMode="root"> + /// <Home id="1057" parentID="-1" level="1" creatorID="0" sortOrder="0" createDate="2014-11-25T12:23:30" updateDate="2014-12-01T13:45:08" nodeName="Home" urlName="home" path="-1,1057" isDoc="" nodeType="1055" creatorName="Rune Strand" writerName="Rune Strand" writerID="0" template="1054" nodeTypeAlias="Home"> [rest of string was truncated]";. + /// + internal static string Fanoe_Package { + get { + return ResourceManager.GetString("Fanoe_Package", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8" standalone="no"?> + ///<umbPackage> + /// <files /> + /// <info> + /// <package> + /// <name>DocTypeError</name> + /// </package> + /// </info> + /// <DocumentTypes> + /// <DocumentType> + /// <Info> + /// <Name>MR Basisseite</Name> + /// <Key>02e4e119-2eeb-4b92-9880-0c35d66a16b2</Key> + /// <Alias>MRBasePage</Alias> + /// <Icon>folder.gif</Icon> + /// <Thumbnail>folder.png</Thumbnail> + /// <Description>Basistyp für alle Seiten der MR-Racing Website.</Description> + /// [rest of string was truncated]";. + /// + internal static string InheritedDocTypes_Package { + get { + return ResourceManager.GetString("InheritedDocTypes_Package", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8"?> + ///<umbPackage> + /// <files /> + /// <info> + /// <package> + /// <name>Package With MediaTypes And Media + Folder</name> + /// </package> + /// </info> + /// <DocumentTypes /> + /// <MediaTypes> + /// <MediaType> + /// <Info> + /// <Name>Folder</Name> + /// <Key>c3ddc08e-3b5e-42b2-9f0b-6e5c79a2e2e0</Key> + /// <Alias>Folder</Alias> + /// <Icon>icon-folder</Icon> + /// <Thumbnail>icon-folder</Thumbnail> + /// <Description /> + /// <AllowAtRoot>True</AllowAtRoot> + /// [rest of string was truncated]";. + /// + internal static string MediaTypesAndMedia_Package_xml { + get { + return ResourceManager.GetString("MediaTypesAndMedia_Package.xml", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8" ?> + ///<DocumentType> + /// <Info> + /// <Name>test</Name> + /// <Key>150ead17-d359-42a2-ac33-6504cc52ced1</Key> + /// <Alias>test</Alias> + /// <Icon>folder.gif</Icon> + /// <Thumbnail>folder.png</Thumbnail> + /// <Description> + /// </Description> + /// <AllowAtRoot>False</AllowAtRoot> + /// <AllowedTemplates> + /// <Template>test</Template> + /// </AllowedTemplates> + /// <DefaultTemplate>test</DefaultTemplate> + /// </Info> + /// <Structure> + /// <DocumentType>test</DocumentType> + /// </Str [rest of string was truncated]";. + /// + internal static string SingleDocType { + get { + return ResourceManager.GetString("SingleDocType", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8" ?> + ///<DocumentType> + /// <Info> + /// <Name>test</Name> + /// <Key>150ead17-d359-42a2-ac33-6504cc52ced1</Key> + /// <Alias>test</Alias> + /// <Icon>folder.gif</Icon> + /// <Thumbnail>folder.png</Thumbnail> + /// <Description> + /// </Description> + /// <AllowAtRoot>False</AllowAtRoot> + /// <AllowedTemplates> + /// <Template>test</Template> + /// </AllowedTemplates> + /// <DefaultTemplate>test</DefaultTemplate> + /// </Info> + /// <Structure> + /// <DocumentType>test</DocumentType> + /// </Str [rest of string was truncated]";. + /// + internal static string SingleDocType_WithCleanupPolicy { + get { + return ResourceManager.GetString("SingleDocType_WithCleanupPolicy", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8" standalone="no"?> + ///<umbPackage> + /// <info> + /// <package> + /// <name>StandardWebsiteMVC</name> + /// </package> + /// </info> + /// <Documents> + /// <DocumentSet importMode="root"> + /// <Homepage key="9c9b55d0-2fbf-4f12-afea-023bd7b2519d" id="1072" parentID="-1" level="1" creatorID="0" sortOrder="0" createDate="2013-02-17T09:04:39" updateDate="2013-02-17T09:10:47" nodeName="Home" urlName="home" path="-1,1072" isDoc="" nodeType="1062" creatorName="admin" writerName="admin" wr [rest of string was truncated]";. + /// + internal static string StandardMvc_Package { + get { + return ResourceManager.GetString("StandardMvc_Package", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8" standalone="no"?> + ///<umbPackage> + /// <files /> + /// <info> + /// <package> + /// <name>Template-Update</name> + /// </package> + /// </info> + /// <DocumentTypes /> + /// <Templates> + /// <Template> + /// <Name>Homepage</Name> + /// <Alias>umbHomepage</Alias> + /// <Master>umbMaster</Master> + /// <Design> + /// <![CDATA[<%@ Master Language="C#" MasterPageFile="~/masterpages/umbMaster.master" AutoEventWireup="true" %> + ///<asp:content id="Content1" contentplaceholderid="cp_content [rest of string was truncated]";. + /// + internal static string TemplateOnly_Package { + get { + return ResourceManager.GetString("TemplateOnly_Package", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8" standalone="no"?> + ///<umbPackage> + /// <files /> + /// <info> + /// <package> + /// <name>Template-Update</name> + /// </package> + /// </info> + /// <DocumentTypes /> + /// <Templates> + /// <Template> + /// <Name>Homepage</Name> + /// <Alias>umbHomepage</Alias> + /// <Master>umbMaster</Master> + /// <Design> + /// <![CDATA[<%@ Master Language="C#" MasterPageFile="~/masterpages/umbMaster.master" AutoEventWireup="true" %> + ///<asp:content id="Content1" contentplaceholderid="cp_content [rest of string was truncated]";. + /// + internal static string TemplateOnly_Updated_Package { + get { + return ResourceManager.GetString("TemplateOnly_Updated_Package", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8" standalone="no"?> + ///<umbPackage> + /// <info> + /// <package> + /// <name>uBlogsy</name> + /// </package> + /// </info> + /// <Documents> + /// <DocumentSet importMode="root"> + /// <uBlogsySiteRoot id="1266" parentID="-1" level="1" creatorID="0" sortOrder="1" createDate="2013-02-21T18:38:53" updateDate="2013-03-18T22:35:23" nodeName="Sample Site Root" urlName="sample-site-root" path="-1,1266" isDoc="" nodeType="1263" creatorName="admin" writerName="admin" writerID="0" template="12 [rest of string was truncated]";. + /// + internal static string uBlogsy_Package { + get { + return ResourceManager.GetString("uBlogsy_Package", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8" standalone="no"?> + ///<umbPackage> + /// <info> + /// <package> + /// <name>XSLTsearch</name> + /// </package> + /// </info> + /// <Documents> + /// <DocumentSet importMode="root"> + /// <XSLTsearch id="1090" parentID="-1" level="1" writerID="0" creatorID="0" nodeType="1087" template="1086" sortOrder="39" createDate="2010-11-09T13:45:22" updateDate="2010-11-09T14:18:04" nodeName="Search" urlName="search" writerName="Administrator" creatorName="Administrator" path="-1,1090" isDoc=""> + /// [rest of string was truncated]";. + /// + internal static string XsltSearch_Package { + get { + return ResourceManager.GetString("XsltSearch_Package", resourceCulture); + } + } + } +} diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/LocalizationServiceTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/LocalizationServiceTests.cs index 26a8530358..58138fd893 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/LocalizationServiceTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/LocalizationServiceTests.cs @@ -1,6 +1,7 @@ // Copyright (c) Umbraco. // See LICENSE for more details. +using System.Collections.Generic; using System.Diagnostics; using NUnit.Framework; using Umbraco.Cms.Core; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/MacroServiceTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/MacroServiceTests.cs index 9353644daf..d3ae791f52 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/MacroServiceTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/MacroServiceTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Linq; using Microsoft.Extensions.Logging; using Moq; @@ -22,9 +21,9 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Services; [UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest)] public class MacroServiceTests : UmbracoIntegrationTest { - + private IMacroService MacroService => GetRequiredService(); - + [SetUp] public void SetupTest() { diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/MediaServiceTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/MediaServiceTests.cs index b17bc2c4fe..b20075925d 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/MediaServiceTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/MediaServiceTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Linq; using System.Reflection; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/MediaTypeServiceTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/MediaTypeServiceTests.cs index 3088e7c0da..caceb8e2cb 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/MediaTypeServiceTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/MediaTypeServiceTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Linq; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/MemberServiceTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/MemberServiceTests.cs index 1b5e1b5e33..5375d87686 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/MemberServiceTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/MemberServiceTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.IO; using System.Linq; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/MemberTypeServiceTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/MemberTypeServiceTests.cs index 0f010382e5..342886d3ed 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/MemberTypeServiceTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/MemberTypeServiceTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Linq; using NUnit.Framework; using Umbraco.Cms.Core; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/NuCacheRebuildTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/NuCacheRebuildTests.cs index 5604419623..f9d981933d 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/NuCacheRebuildTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/NuCacheRebuildTests.cs @@ -1,4 +1,3 @@ -using System; using NUnit.Framework; using Umbraco.Cms.Core; using Umbraco.Cms.Core.PublishedCache; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/PublicAccessServiceTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/PublicAccessServiceTests.cs index 0b97d5d0d5..9841165509 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/PublicAccessServiceTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/PublicAccessServiceTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Linq; using NUnit.Framework; using Umbraco.Cms.Core.Models; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/RelationServiceTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/RelationServiceTests.cs index a7f79dec64..06c39098ee 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/RelationServiceTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/RelationServiceTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Linq; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ThreadSafetyServiceTest.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ThreadSafetyServiceTest.cs index 3220f99b39..d74ba7583d 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ThreadSafetyServiceTest.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ThreadSafetyServiceTest.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Linq; using System.Threading; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/UserServiceTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/UserServiceTests.cs index 4eb0bf1ce0..8884622bf2 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/UserServiceTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/UserServiceTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Tests.Integration.csproj b/tests/Umbraco.Tests.Integration/Umbraco.Tests.Integration.csproj index 0db665dd74..3b1f87ee49 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Tests.Integration.csproj +++ b/tests/Umbraco.Tests.Integration/Umbraco.Tests.Integration.csproj @@ -21,8 +21,8 @@ + - diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Web.BackOffice/Filters/ContentModelValidatorTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Web.BackOffice/Filters/ContentModelValidatorTests.cs index a943aabc13..f1d9c2772e 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Web.BackOffice/Filters/ContentModelValidatorTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Web.BackOffice/Filters/ContentModelValidatorTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Web.BackOffice/Filters/OutgoingEditorModelEventFilterTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Web.BackOffice/Filters/OutgoingEditorModelEventFilterTests.cs index aafa54cbe2..fc9e5413ab 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Web.BackOffice/Filters/OutgoingEditorModelEventFilterTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Web.BackOffice/Filters/OutgoingEditorModelEventFilterTests.cs @@ -1,4 +1,5 @@ -using System.Net; +using System.Linq; +using System.Net; using NUnit.Framework; using Umbraco.Cms.Core; using Umbraco.Cms.Core.Events; diff --git a/tests/Umbraco.Tests.UnitTests/AutoFixture/AutoMoqDataAttribute.cs b/tests/Umbraco.Tests.UnitTests/AutoFixture/AutoMoqDataAttribute.cs index b89a53cfe0..f076798cd1 100644 --- a/tests/Umbraco.Tests.UnitTests/AutoFixture/AutoMoqDataAttribute.cs +++ b/tests/Umbraco.Tests.UnitTests/AutoFixture/AutoMoqDataAttribute.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using AutoFixture.NUnit3; namespace Umbraco.Cms.Tests.UnitTests.AutoFixture; diff --git a/tests/Umbraco.Tests.UnitTests/AutoFixture/Customizations/UmbracoCustomizations.cs b/tests/Umbraco.Tests.UnitTests/AutoFixture/Customizations/UmbracoCustomizations.cs index 7b840b18da..88d344796c 100644 --- a/tests/Umbraco.Tests.UnitTests/AutoFixture/Customizations/UmbracoCustomizations.cs +++ b/tests/Umbraco.Tests.UnitTests/AutoFixture/Customizations/UmbracoCustomizations.cs @@ -1,4 +1,3 @@ -using System; using System.Linq; using AutoFixture; using AutoFixture.Kernel; diff --git a/tests/Umbraco.Tests.UnitTests/AutoFixture/InlineAutoMoqDataAttribute.cs b/tests/Umbraco.Tests.UnitTests/AutoFixture/InlineAutoMoqDataAttribute.cs index 2fc0cf6101..d0c900c4fc 100644 --- a/tests/Umbraco.Tests.UnitTests/AutoFixture/InlineAutoMoqDataAttribute.cs +++ b/tests/Umbraco.Tests.UnitTests/AutoFixture/InlineAutoMoqDataAttribute.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using AutoFixture.NUnit3; namespace Umbraco.Cms.Tests.UnitTests.AutoFixture; diff --git a/tests/Umbraco.Tests.UnitTests/TestHelpers/CompositionExtensions.cs b/tests/Umbraco.Tests.UnitTests/TestHelpers/CompositionExtensions.cs index ab08f12ce7..462c43ef31 100644 --- a/tests/Umbraco.Tests.UnitTests/TestHelpers/CompositionExtensions.cs +++ b/tests/Umbraco.Tests.UnitTests/TestHelpers/CompositionExtensions.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using Microsoft.Extensions.DependencyInjection; using Umbraco.Cms.Core.DependencyInjection; diff --git a/tests/Umbraco.Tests.UnitTests/TestHelpers/PublishedSnapshotServiceTestBase.cs b/tests/Umbraco.Tests.UnitTests/TestHelpers/PublishedSnapshotServiceTestBase.cs index dbc862e39c..2828e812d5 100644 --- a/tests/Umbraco.Tests.UnitTests/TestHelpers/PublishedSnapshotServiceTestBase.cs +++ b/tests/Umbraco.Tests.UnitTests/TestHelpers/PublishedSnapshotServiceTestBase.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Data; using System.Linq; diff --git a/tests/Umbraco.Tests.UnitTests/TestHelpers/TestHelper.cs b/tests/Umbraco.Tests.UnitTests/TestHelpers/TestHelper.cs index 8a1b9f2458..81e027b7c1 100644 --- a/tests/Umbraco.Tests.UnitTests/TestHelpers/TestHelper.cs +++ b/tests/Umbraco.Tests.UnitTests/TestHelpers/TestHelper.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; diff --git a/tests/Umbraco.Tests.UnitTests/TestHelpers/TestNuCacheContentService.cs b/tests/Umbraco.Tests.UnitTests/TestHelpers/TestNuCacheContentService.cs index f31b64c8cc..34f111601a 100644 --- a/tests/Umbraco.Tests.UnitTests/TestHelpers/TestNuCacheContentService.cs +++ b/tests/Umbraco.Tests.UnitTests/TestHelpers/TestNuCacheContentService.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Umbraco.Cms.Core.Models; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Cms.Api.Management/Filters/RequireRuntimeLevelAttributeTest.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Cms.Api.Management/Filters/RequireRuntimeLevelAttributeTest.cs deleted file mode 100644 index 116c684d1d..0000000000 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Cms.Api.Management/Filters/RequireRuntimeLevelAttributeTest.cs +++ /dev/null @@ -1,79 +0,0 @@ -using System; -using System.Collections.Generic; -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Mvc.Abstractions; -using Microsoft.AspNetCore.Mvc.Filters; -using Microsoft.AspNetCore.Routing; -using Moq; -using NUnit.Framework; -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Filters; - -namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Cms.Api.Management.Filters; - -[TestFixture] -public class RequireRuntimeLevelAttributeTest -{ - [Test] - [TestCase(RuntimeLevel.Install, RuntimeLevel.Run, true)] - [TestCase(RuntimeLevel.Install, RuntimeLevel.Unknown, true)] - [TestCase(RuntimeLevel.Install, RuntimeLevel.Boot, true)] - [TestCase(RuntimeLevel.Install, RuntimeLevel.Upgrade, true)] - [TestCase(RuntimeLevel.Run, RuntimeLevel.Upgrade, true)] - [TestCase(RuntimeLevel.Install, RuntimeLevel.Install, false)] - [TestCase(RuntimeLevel.Upgrade, RuntimeLevel.Upgrade, false)] - public void BlocksWhenIncorrectRuntime(RuntimeLevel requiredLevel, RuntimeLevel actualLevel, bool shouldFail) - { - var executionContext = CreateActionExecutingContext(actualLevel); - - var sut = new RequireRuntimeLevelAttribute(requiredLevel); - sut.OnActionExecuting(executionContext); - - if (shouldFail) - { - AssertFailure(executionContext); - return; - } - - // Assert success, result being null == we haven't short circuited. - Assert.IsNull(executionContext.Result); - } - - private void AssertFailure(ActionExecutingContext executionContext) - { - var result = executionContext.Result; - Assert.IsInstanceOf(result); - - var objectResult = (ObjectResult)result; - - Assert.AreEqual(StatusCodes.Status428PreconditionRequired, objectResult?.StatusCode); - Assert.IsInstanceOf(objectResult?.Value); - } - - private ActionExecutingContext CreateActionExecutingContext(RuntimeLevel targetRuntimeLevel) - { - var actionContext = new ActionContext() - { - HttpContext = new DefaultHttpContext(), - RouteData = new RouteData(), - ActionDescriptor = new ActionDescriptor() - }; - - var executingContext = new ActionExecutingContext( - actionContext, - new List(), - new Dictionary(), - new()); - - var fakeRuntime = new Mock(); - fakeRuntime.Setup(x => x.Level).Returns(targetRuntimeLevel); - - var fakeServiceProvider = new Mock(); - fakeServiceProvider.Setup(x => x.GetService(typeof(IRuntimeState))).Returns(fakeRuntime.Object); - actionContext.HttpContext.RequestServices = fakeServiceProvider.Object; - - return executingContext; - } -} diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/BackOffice/UmbracoBackOfficeIdentityTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/BackOffice/UmbracoBackOfficeIdentityTests.cs index 8ec8634970..d1e980b19c 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/BackOffice/UmbracoBackOfficeIdentityTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/BackOffice/UmbracoBackOfficeIdentityTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Linq; using System.Security.Claims; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Cache/AppCacheTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Cache/AppCacheTests.cs index 66c8d7a75c..f818fa49e8 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Cache/AppCacheTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Cache/AppCacheTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Linq; using NUnit.Framework; using Umbraco.Cms.Core.Cache; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Cache/DeepCloneAppCacheTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Cache/DeepCloneAppCacheTests.cs index 4994fcb221..4eed8e0d41 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Cache/DeepCloneAppCacheTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Cache/DeepCloneAppCacheTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Diagnostics; using System.Linq; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Cache/DefaultCachePolicyTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Cache/DefaultCachePolicyTests.cs index 56bcbac1ee..1a296a95cb 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Cache/DefaultCachePolicyTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Cache/DefaultCachePolicyTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using Moq; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Cache/FullDataSetCachePolicyTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Cache/FullDataSetCachePolicyTests.cs index d49327c58b..73cd6eccd7 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Cache/FullDataSetCachePolicyTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Cache/FullDataSetCachePolicyTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections; using System.Collections.Generic; using System.Linq; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Cache/RefresherTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Cache/RefresherTests.cs index 6fcd37adb7..92ef2b5c9f 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Cache/RefresherTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Cache/RefresherTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using Newtonsoft.Json; using NUnit.Framework; using Umbraco.Cms.Core.Cache; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Cache/RuntimeAppCacheTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Cache/RuntimeAppCacheTests.cs index 4da509f59b..b018434b43 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Cache/RuntimeAppCacheTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Cache/RuntimeAppCacheTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Threading; using NUnit.Framework; using Umbraco.Cms.Core.Cache; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Cache/SingleItemsOnlyCachePolicyTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Cache/SingleItemsOnlyCachePolicyTests.cs index 5200d0fd88..ef2ce5b72c 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Cache/SingleItemsOnlyCachePolicyTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Cache/SingleItemsOnlyCachePolicyTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using Moq; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Cache/ValueEditorCacheTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Cache/ValueEditorCacheTests.cs index 784520cce4..3e1be18450 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Cache/ValueEditorCacheTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Cache/ValueEditorCacheTests.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using Moq; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/ClaimsIdentityExtensionsTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/ClaimsIdentityExtensionsTests.cs index 27dd384af7..167c92b0fd 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/ClaimsIdentityExtensionsTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/ClaimsIdentityExtensionsTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Security.Claims; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Collections/OrderedHashSetTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Collections/OrderedHashSetTests.cs index b4f8e0504e..c5e4dfd049 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Collections/OrderedHashSetTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Collections/OrderedHashSetTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using NUnit.Framework; using Umbraco.Cms.Core.Collections; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Components/ComponentTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Components/ComponentTests.cs index fe34dfb621..d312428734 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Components/ComponentTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Components/ComponentTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.IO; using System.Linq; @@ -87,7 +86,7 @@ public class ComponentTests new TestOptionsMonitor(coreDebug), mediaFileManager, loggerFactory, - + eventAggregator); mock.Setup(x => x.GetService(typeof(ILogger))).Returns(logger); diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Composing/CollectionBuildersTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Composing/CollectionBuildersTests.cs index dd6c676b88..c426d4b24e 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Composing/CollectionBuildersTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Composing/CollectionBuildersTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Linq; using Microsoft.Extensions.Configuration; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Composing/LazyCollectionBuilderTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Composing/LazyCollectionBuilderTests.cs index 14b2e07342..db1945052f 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Composing/LazyCollectionBuilderTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Composing/LazyCollectionBuilderTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Linq; using Microsoft.Extensions.Configuration; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Composing/TypeFinderTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Composing/TypeFinderTests.cs index e3bca4fb4f..3089d89893 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Composing/TypeFinderTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Composing/TypeFinderTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Linq; using System.Reflection; using System.Xml; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Composing/TypeHelperTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Composing/TypeHelperTests.cs index e24ade5ec4..7a92f99106 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Composing/TypeHelperTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Composing/TypeHelperTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Composing/TypeLoaderExtensions.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Composing/TypeLoaderExtensions.cs index 66b5b78212..9a28241d10 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Composing/TypeLoaderExtensions.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Composing/TypeLoaderExtensions.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using Umbraco.Cms.Core.Composing; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Composing/TypeLoaderTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Composing/TypeLoaderTests.cs index af6dbb1f1c..ffd30d1111 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Composing/TypeLoaderTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Composing/TypeLoaderTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.IO; using System.Linq; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/ConfigureConnectionStringsTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/ConfigureConnectionStringsTests.cs index 111892cd65..bcfdeb2433 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/ConfigureConnectionStringsTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/ConfigureConnectionStringsTests.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/GlobalSettingsValidatorTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/GlobalSettingsValidatorTests.cs index 7316c35b01..3b7d7355b6 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/GlobalSettingsValidatorTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/GlobalSettingsValidatorTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using NUnit.Framework; using Umbraco.Cms.Core.Configuration.Models; using Umbraco.Cms.Core.Configuration.Models.Validation; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/HealthChecksSettingsValidatorTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/HealthChecksSettingsValidatorTests.cs index a2b900d859..a2c2f6cc4e 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/HealthChecksSettingsValidatorTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/HealthChecksSettingsValidatorTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using NUnit.Framework; using Umbraco.Cms.Core.Configuration; using Umbraco.Cms.Core.Configuration.Models; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/CoreThings/TryConvertToTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/CoreThings/TryConvertToTests.cs index 307c06d6aa..08b080b7b0 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/CoreThings/TryConvertToTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/CoreThings/TryConvertToTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Globalization; using NUnit.Framework; using Umbraco.Extensions; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/CoreThings/UdiTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/CoreThings/UdiTests.cs index e18993ede1..98bf4a608c 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/CoreThings/UdiTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/CoreThings/UdiTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Linq; using System.Reflection; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/CoreXml/NavigableNavigatorTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/CoreXml/NavigableNavigatorTests.cs index 69d5c21ace..ab838d358f 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/CoreXml/NavigableNavigatorTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/CoreXml/NavigableNavigatorTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Globalization; using System.IO; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DelegateExtensionsTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DelegateExtensionsTests.cs index 199f7ad6d5..8c5ba62e0d 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DelegateExtensionsTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DelegateExtensionsTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using Lucene.Net.Index; using NUnit.Framework; using Umbraco.Cms.Core; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/ContentBuilderTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/ContentBuilderTests.cs index bd1dfdbcf7..75f960bb0f 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/ContentBuilderTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/ContentBuilderTests.cs @@ -32,7 +32,7 @@ public class ContentBuilderTests : DeliveryApiTests .Setup(p => p.GetUrl(It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny())) .Returns((IPublishedContent content, UrlMode mode, string? culture, Uri? current) => $"url:{content.UrlSegment}"); - var routeBuilder = new ApiContentRouteBuilder(publishedUrlProvider.Object, CreateGlobalSettings(), Mock.Of()); + var routeBuilder = new ApiContentRouteBuilder(publishedUrlProvider.Object, CreateGlobalSettings(), Mock.Of(), Mock.Of()); var builder = new ApiContentBuilder(new ApiContentNameProvider(), routeBuilder, CreateOutputExpansionStrategyAccessor()); var result = builder.Build(content.Object); diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/ContentPickerValueConverterTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/ContentPickerValueConverterTests.cs index 29447f2e82..f769913b23 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/ContentPickerValueConverterTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/ContentPickerValueConverterTests.cs @@ -18,7 +18,7 @@ public class ContentPickerValueConverterTests : PropertyValueConverterTests PublishedSnapshotAccessor, new ApiContentBuilder( nameProvider ?? new ApiContentNameProvider(), - new ApiContentRouteBuilder(PublishedUrlProvider, CreateGlobalSettings(), Mock.Of()), + new ApiContentRouteBuilder(PublishedUrlProvider, CreateGlobalSettings(), Mock.Of(), Mock.Of()), CreateOutputExpansionStrategyAccessor())); [Test] diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/ContentRouteBuilderTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/ContentRouteBuilderTests.cs index 043c137a10..202026ed30 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/ContentRouteBuilderTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/ContentRouteBuilderTests.cs @@ -19,11 +19,7 @@ public class ContentRouteBuilderTests : DeliveryApiTests var rootKey = Guid.NewGuid(); var root = SetupInvariantPublishedContent("The Root", rootKey); - // yes... actually testing the mock setup here. but it's important! - var publishedUrlProvider = SetupPublishedUrlProvider(hideTopLevelNodeFromPath); - Assert.AreEqual(hideTopLevelNodeFromPath ? "/" : "/the-root", publishedUrlProvider.GetUrl(root)); - - var builder = new ApiContentRouteBuilder(publishedUrlProvider, CreateGlobalSettings(hideTopLevelNodeFromPath), Mock.Of()); + var builder = CreateApiContentRouteBuilder(hideTopLevelNodeFromPath); var result = builder.Build(root); Assert.AreEqual("/", result.Path); Assert.AreEqual(rootKey, result.StartItem.Id); @@ -40,11 +36,7 @@ public class ContentRouteBuilderTests : DeliveryApiTests var childKey = Guid.NewGuid(); var child = SetupInvariantPublishedContent("The Child", childKey, root); - // yes... actually testing the mock setup here. but it's important! - var publishedUrlProvider = SetupPublishedUrlProvider(hideTopLevelNodeFromPath); - Assert.AreEqual(hideTopLevelNodeFromPath ? "/the-child" : "/the-root/the-child", publishedUrlProvider.GetUrl(child)); - - var builder = new ApiContentRouteBuilder(publishedUrlProvider, CreateGlobalSettings(hideTopLevelNodeFromPath), Mock.Of()); + var builder = CreateApiContentRouteBuilder(hideTopLevelNodeFromPath); var result = builder.Build(child); Assert.AreEqual("/the-child", result.Path); Assert.AreEqual(rootKey, result.StartItem.Id); @@ -64,11 +56,7 @@ public class ContentRouteBuilderTests : DeliveryApiTests var grandchildKey = Guid.NewGuid(); var grandchild = SetupInvariantPublishedContent("The Grandchild", grandchildKey, child); - // yes... actually testing the mock setup here. but it's important! - var publishedUrlProvider = SetupPublishedUrlProvider(hideTopLevelNodeFromPath); - Assert.AreEqual(hideTopLevelNodeFromPath ? "/the-child/the-grandchild" : "/the-root/the-child/the-grandchild", publishedUrlProvider.GetUrl(grandchild)); - - var builder = new ApiContentRouteBuilder(publishedUrlProvider, CreateGlobalSettings(hideTopLevelNodeFromPath), Mock.Of()); + var builder = CreateApiContentRouteBuilder(hideTopLevelNodeFromPath); var result = builder.Build(grandchild); Assert.AreEqual("/the-child/the-grandchild", result.Path); Assert.AreEqual(rootKey, result.StartItem.Id); @@ -84,9 +72,7 @@ public class ContentRouteBuilderTests : DeliveryApiTests var childKey = Guid.NewGuid(); var child = SetupVariantPublishedContent("The Child", childKey, root); - var publishedUrlProvider = SetupPublishedUrlProvider(false); - - var builder = new ApiContentRouteBuilder(publishedUrlProvider, CreateGlobalSettings(false), Mock.Of()); + var builder = CreateApiContentRouteBuilder(false); var result = builder.Build(child, "en-us"); Assert.AreEqual("/the-child-en-us", result.Path); Assert.AreEqual(rootKey, result.StartItem.Id); @@ -107,9 +93,7 @@ public class ContentRouteBuilderTests : DeliveryApiTests var childKey = Guid.NewGuid(); var child = SetupInvariantPublishedContent("The Child", childKey, root); - var publishedUrlProvider = SetupPublishedUrlProvider(false); - - var builder = new ApiContentRouteBuilder(publishedUrlProvider, CreateGlobalSettings(false), Mock.Of()); + var builder = CreateApiContentRouteBuilder(false); var result = builder.Build(child, "en-us"); Assert.AreEqual("/the-child", result.Path); Assert.AreEqual(rootKey, result.StartItem.Id); @@ -130,9 +114,7 @@ public class ContentRouteBuilderTests : DeliveryApiTests var childKey = Guid.NewGuid(); var child = SetupVariantPublishedContent("The Child", childKey, root); - var publishedUrlProvider = SetupPublishedUrlProvider(false); - - var builder = new ApiContentRouteBuilder(publishedUrlProvider, CreateGlobalSettings(false), Mock.Of()); + var builder = CreateApiContentRouteBuilder(false); var result = builder.Build(child, "en-us"); Assert.AreEqual("/the-child-en-us", result.Path); Assert.AreEqual(rootKey, result.StartItem.Id); @@ -153,10 +135,67 @@ public class ContentRouteBuilderTests : DeliveryApiTests var content = new Mock(); content.SetupGet(c => c.ItemType).Returns(itemType); - var builder = new ApiContentRouteBuilder(SetupPublishedUrlProvider(true), CreateGlobalSettings(), Mock.Of()); + var builder = CreateApiContentRouteBuilder(true); Assert.Throws(() => builder.Build(content.Object)); } + [TestCase("")] + [TestCase(" ")] + [TestCase("#")] + public void FallsBackToContentPathIfUrlProviderCannotResolveUrl(string resolvedUrl) + { + var publishedUrlProviderMock = new Mock(); + publishedUrlProviderMock + .Setup(p => p.GetUrl(It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny())) + .Returns(resolvedUrl); + + var publishedContentCacheMock = new Mock(); + publishedContentCacheMock + .Setup(c => c.GetRouteById(It.IsAny(), It.IsAny())) + .Returns("/the/content/route"); + + var publishedSnapshotMock = new Mock(); + publishedSnapshotMock + .SetupGet(s => s.Content) + .Returns(publishedContentCacheMock.Object); + var publishedSnapshot = publishedSnapshotMock.Object; + + var publishedSnapshotAccessorMock = new Mock(); + publishedSnapshotAccessorMock + .Setup(a => a.TryGetPublishedSnapshot(out publishedSnapshot)) + .Returns(true); + + var content = SetupVariantPublishedContent("The Content", Guid.NewGuid()); + + var builder = new ApiContentRouteBuilder( + publishedUrlProviderMock.Object, + CreateGlobalSettings(), + Mock.Of(), + publishedSnapshotAccessorMock.Object); + + Assert.AreEqual("/the/content/route", builder.Build(content).Path); + } + + [TestCase(true)] + [TestCase(false)] + public void VerifyPublishedUrlProviderSetup(bool hideTopLevelNodeFromPath) + { + var rootKey = Guid.NewGuid(); + var root = SetupInvariantPublishedContent("The Root", rootKey); + + var childKey = Guid.NewGuid(); + var child = SetupInvariantPublishedContent("The Child", childKey, root); + + var grandchildKey = Guid.NewGuid(); + var grandchild = SetupInvariantPublishedContent("The Grandchild", grandchildKey, child); + + // yes... actually testing the mock setup here. but it's important for the rest of the tests that this behave correct, so we better test it. + var publishedUrlProvider = SetupPublishedUrlProvider(hideTopLevelNodeFromPath); + Assert.AreEqual(hideTopLevelNodeFromPath ? "/" : "/the-root", publishedUrlProvider.GetUrl(root)); + Assert.AreEqual(hideTopLevelNodeFromPath ? "/the-child" : "/the-root/the-child", publishedUrlProvider.GetUrl(child)); + Assert.AreEqual(hideTopLevelNodeFromPath ? "/the-child/the-grandchild" : "/the-root/the-child/the-grandchild", publishedUrlProvider.GetUrl(grandchild)); + } + private IPublishedContent SetupInvariantPublishedContent(string name, Guid key, IPublishedContent? parent = null) { var publishedContentType = CreatePublishedContentType(); @@ -207,4 +246,11 @@ public class ContentRouteBuilderTests : DeliveryApiTests .Returns((IPublishedContent content, UrlMode mode, string? culture, Uri? current) => Url(content, culture)); return publishedUrlProvider.Object; } + + private ApiContentRouteBuilder CreateApiContentRouteBuilder(bool hideTopLevelNodeFromPath) + => new( + SetupPublishedUrlProvider(hideTopLevelNodeFromPath), + CreateGlobalSettings(hideTopLevelNodeFromPath), + Mock.Of(), + Mock.Of()); } diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/ImageCropperValueConverterTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/ImageCropperValueConverterTests.cs index 0daa6df884..29d99b6e68 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/ImageCropperValueConverterTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/ImageCropperValueConverterTests.cs @@ -1,4 +1,3 @@ -using System; using System.Linq; using Microsoft.Extensions.Logging; using Moq; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/MultiNodeTreePickerValueConverterTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/MultiNodeTreePickerValueConverterTests.cs index bb7fdb8b75..ee4635f145 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/MultiNodeTreePickerValueConverterTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/MultiNodeTreePickerValueConverterTests.cs @@ -21,7 +21,7 @@ public class MultiNodeTreePickerValueConverterTests : PropertyValueConverterTest var contentNameProvider = new ApiContentNameProvider(); var apiUrProvider = new ApiMediaUrlProvider(PublishedUrlProvider); - var routeBuilder = new ApiContentRouteBuilder(PublishedUrlProvider, CreateGlobalSettings(), Mock.Of()); + var routeBuilder = new ApiContentRouteBuilder(PublishedUrlProvider, CreateGlobalSettings(), Mock.Of(), Mock.Of()); return new MultiNodeTreePickerValueConverter( PublishedSnapshotAccessor, Mock.Of(), diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/MultiUrlPickerValueConverterTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/MultiUrlPickerValueConverterTests.cs index 0210a2cd3a..970d3492e3 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/MultiUrlPickerValueConverterTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/MultiUrlPickerValueConverterTests.cs @@ -8,6 +8,7 @@ using Umbraco.Cms.Core.Models.DeliveryApi; using Umbraco.Cms.Core.Models.PublishedContent; using Umbraco.Cms.Core.PropertyEditors; using Umbraco.Cms.Core.PropertyEditors.ValueConverters; +using Umbraco.Cms.Core.PublishedCache; using Umbraco.Cms.Core.Serialization; using Umbraco.Cms.Core.Web; using Umbraco.Cms.Infrastructure.Serialization; @@ -259,7 +260,7 @@ public class MultiUrlPickerValueConverterTests : PropertyValueConverterTests private MultiUrlPickerValueConverter MultiUrlPickerValueConverter() { - var routeBuilder = new ApiContentRouteBuilder(PublishedUrlProvider, CreateGlobalSettings(), Mock.Of()); + var routeBuilder = new ApiContentRouteBuilder(PublishedUrlProvider, CreateGlobalSettings(), Mock.Of(), Mock.Of()); return new MultiUrlPickerValueConverter( PublishedSnapshotAccessor, Mock.Of(), diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/NestedContentValueConverterTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/NestedContentValueConverterTests.cs index a6c6f91997..c8d2b5d9ad 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/NestedContentValueConverterTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/NestedContentValueConverterTests.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Microsoft.Extensions.Logging; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/OutputExpansionStrategyTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/OutputExpansionStrategyTests.cs index dda07c3051..86aa8215db 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/OutputExpansionStrategyTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/OutputExpansionStrategyTests.cs @@ -440,5 +440,5 @@ public class OutputExpansionStrategyTests : PropertyValueConverterTests return new PublishedElementPropertyBase(elementPropertyType, parent, false, PropertyCacheLevel.None); } - private IApiContentRouteBuilder ApiContentRouteBuilder() => new ApiContentRouteBuilder(PublishedUrlProvider, CreateGlobalSettings(), Mock.Of()); + private IApiContentRouteBuilder ApiContentRouteBuilder() => new ApiContentRouteBuilder(PublishedUrlProvider, CreateGlobalSettings(), Mock.Of(), Mock.Of()); } diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/PropertyValueConverterTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/PropertyValueConverterTests.cs index cb81be658a..8ee2cac5cf 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/PropertyValueConverterTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/DeliveryApi/PropertyValueConverterTests.cs @@ -1,4 +1,3 @@ -using System; using Moq; using NUnit.Framework; using Umbraco.Cms.Core.Models.PublishedContent; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Deploy/ArtifactBaseTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Deploy/ArtifactBaseTests.cs index 788fa63a6d..f029c42749 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Deploy/ArtifactBaseTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Deploy/ArtifactBaseTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Linq; using Newtonsoft.Json; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/EnumExtensionsTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/EnumExtensionsTests.cs index dd5b32031f..9d44472a08 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/EnumExtensionsTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/EnumExtensionsTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using NUnit.Framework; using Umbraco.Cms.Core.Trees; using Umbraco.Extensions; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/EnumerableExtensionsTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/EnumerableExtensionsTests.cs index ffdf180442..4ecb3dbe27 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/EnumerableExtensionsTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/EnumerableExtensionsTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Linq; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Extensions/ClaimsPrincipalExtensionsTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Extensions/ClaimsPrincipalExtensionsTests.cs index 1b3d650223..9d5c4bb48a 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Extensions/ClaimsPrincipalExtensionsTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Extensions/ClaimsPrincipalExtensionsTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Linq; using System.Security.Claims; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Extensions/ConfigurationExtensionsTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Extensions/ConfigurationExtensionsTests.cs index cd1ec39dc9..f6a37edcdc 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Extensions/ConfigurationExtensionsTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Extensions/ConfigurationExtensionsTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using Microsoft.Extensions.Configuration; using Moq; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Extensions/UriExtensionsTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Extensions/UriExtensionsTests.cs index 3b95bcf724..bdee9a4b95 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Extensions/UriExtensionsTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Extensions/UriExtensionsTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using NUnit.Framework; using Umbraco.Extensions; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/GuidUtilsTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/GuidUtilsTests.cs index fbdc6b773e..b01bb354e4 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/GuidUtilsTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/GuidUtilsTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using NUnit.Framework; using Umbraco.Cms.Core; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/HashCodeCombinerTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/HashCodeCombinerTests.cs index 13499db2ea..abc1d71eb9 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/HashCodeCombinerTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/HashCodeCombinerTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.IO; using System.Reflection; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/HashGeneratorTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/HashGeneratorTests.cs index f2008799a4..6993a38276 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/HashGeneratorTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/HashGeneratorTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.IO; using System.Reflection; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/HexEncoderTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/HexEncoderTests.cs index 90ef482efb..63edfbe139 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/HexEncoderTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/HexEncoderTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Text; using NUnit.Framework; using Umbraco.Cms.Core; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/IO/AbstractFileSystemTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/IO/AbstractFileSystemTests.cs index 597d5c0f84..3eca4f3751 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/IO/AbstractFileSystemTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/IO/AbstractFileSystemTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.IO; using System.Linq; using System.Text; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/IO/PhysicalFileSystemTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/IO/PhysicalFileSystemTests.cs index 59f8fcd45c..396ad94415 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/IO/PhysicalFileSystemTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/IO/PhysicalFileSystemTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.IO; using System.Text; using Microsoft.Extensions.Logging; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Manifest/LegacyManifestContentAppTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Manifest/LegacyManifestContentAppTests.cs index 5d66ba7556..4bb0c61838 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Manifest/LegacyManifestContentAppTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Manifest/LegacyManifestContentAppTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Linq; using Moq; using Newtonsoft.Json; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Manifest/LegacyManifestParserTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Manifest/LegacyManifestParserTests.cs index f8f1f49610..d08953a6a3 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Manifest/LegacyManifestParserTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Manifest/LegacyManifestParserTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Linq; using System.Text; using Microsoft.Extensions.Logging; @@ -517,12 +516,12 @@ javascript: ['~/test.js',/*** some note about stuff asd09823-4**09234*/ '~/test2 view: '~/App_Plugins/MyPackage/PropertyEditors/MyEditor.html', supportsReadOnly: true }]}"; - + var manifest = _parser.ParseManifest(json); Assert.IsTrue(manifest.ParameterEditors.FirstOrDefault().SupportsReadOnly); } - + [Test] public void CanParseManifest_PropertyEditors_SupportsReadOnly() { @@ -558,7 +557,7 @@ javascript: ['~/test.js',/*** some note about stuff asd09823-4**09234*/ '~/test2 ] } }]}"; - + var manifest = _parser.ParseManifest(json); Assert.IsTrue(manifest.PropertyEditors.FirstOrDefault().SupportsReadOnly); diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/Collections/Item.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/Collections/Item.cs index a817a08b0a..15a74df3bf 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/Collections/Item.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/Collections/Item.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/Collections/OrderItem.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/Collections/OrderItem.cs index 82a5ef9ff3..78380138d0 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/Collections/OrderItem.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/Collections/OrderItem.cs @@ -1,8 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; - namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Models.Collections; public class OrderItem : Item diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/ContentExtensionsTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/ContentExtensionsTests.cs index c2f3d9af79..45630777f0 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/ContentExtensionsTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/ContentExtensionsTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Linq; using Moq; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/ContentScheduleTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/ContentScheduleTests.cs index 2408672744..78bfa0a3f8 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/ContentScheduleTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/ContentScheduleTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Linq; using NUnit.Framework; using Umbraco.Cms.Core.Models; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/ContentTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/ContentTests.cs index 38f0256613..ba4b31a4c9 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/ContentTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/ContentTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Diagnostics; using System.Globalization; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/ContentTypeTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/ContentTypeTests.cs index 53157fd5ea..5bc8715c18 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/ContentTypeTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/ContentTypeTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Diagnostics; using System.Linq; using Newtonsoft.Json; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/MacroTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/MacroTests.cs index 63a3002ebe..2e64f03337 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/MacroTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/MacroTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Linq; using NUnit.Framework; using Umbraco.Cms.Core.Models; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/MemberGroupTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/MemberGroupTests.cs index dce4f77906..1d1b55d309 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/MemberGroupTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/MemberGroupTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Diagnostics; using Newtonsoft.Json; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/PropertyTypeTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/PropertyTypeTests.cs index 148821175d..6be07d9ebc 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/PropertyTypeTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/PropertyTypeTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Diagnostics; using System.Linq; using System.Reflection; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/RelationTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/RelationTests.cs index 0b44273e37..b37085ba54 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/RelationTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/RelationTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Diagnostics; using Newtonsoft.Json; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/RelationTypeTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/RelationTypeTests.cs index f5f01cd2f9..71540b9116 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/RelationTypeTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/RelationTypeTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using Newtonsoft.Json; using NUnit.Framework; using Umbraco.Cms.Core.Models; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/StylesheetTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/StylesheetTests.cs index 5987f2e087..ab3019af12 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/StylesheetTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/StylesheetTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Diagnostics; using System.Linq; using Newtonsoft.Json; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/TemplateTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/TemplateTests.cs index b555d9d037..19a8405e6e 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/TemplateTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/TemplateTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Diagnostics; using System.Linq; using System.Reflection; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/UserExtensionsTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/UserExtensionsTests.cs index 66c5867c98..7600695ddd 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/UserExtensionsTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/UserExtensionsTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Globalization; using System.Linq; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/VariationTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/VariationTests.cs index 7226895784..d7580be8ff 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/VariationTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Models/VariationTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using Moq; using NUnit.Framework; using Umbraco.Cms.Core; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Packaging/PendingPackageMigrationsTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Packaging/PendingPackageMigrationsTests.cs index 06acacf372..09dd43d066 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Packaging/PendingPackageMigrationsTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Packaging/PendingPackageMigrationsTests.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using Microsoft.Extensions.Logging; using Moq; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/PropertyEditors/BlockEditorComponentTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/PropertyEditors/BlockEditorComponentTests.cs index 86a97815b3..55c172afa7 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/PropertyEditors/BlockEditorComponentTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/PropertyEditors/BlockEditorComponentTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Linq; using Microsoft.Extensions.Logging; @@ -434,7 +433,7 @@ public class BlockEditorComponentTests ""contentTypeKey"": ""36ccf44a-aac8-40a6-8685-73ab03bc9709"", ""udi"": ""umb://element/90549d94555647fdbe4d111c7178ada4"", ""title"": ""One more element one - 12 cols"", - ""subFeatures"": " + subFeatures.OrIfNullOrWhiteSpace(@"""""") + @" + ""subFeatures"": " + subFeatures.OrIfNullOrWhiteSpace(@"""""") + @" }, { ""contentTypeKey"": ""5cc488aa-ba24-41f2-a01e-8f2d1982f865"", ""udi"": ""umb://element/5fc866c590be4d01a28a979472a1ffee"", diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/PropertyEditors/ConvertersTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/PropertyEditors/ConvertersTests.cs index d15659c77a..0e8138e60c 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/PropertyEditors/ConvertersTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/PropertyEditors/ConvertersTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Linq; using Microsoft.Extensions.Configuration; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/PropertyEditors/DataValueReferenceFactoryCollectionTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/PropertyEditors/DataValueReferenceFactoryCollectionTests.cs index 46ed8af979..6108f59e2e 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/PropertyEditors/DataValueReferenceFactoryCollectionTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/PropertyEditors/DataValueReferenceFactoryCollectionTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Linq; using Moq; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/PropertyEditors/NestedContentPropertyComponentTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/PropertyEditors/NestedContentPropertyComponentTests.cs index 8e9743ee84..bf994155b4 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/PropertyEditors/NestedContentPropertyComponentTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/PropertyEditors/NestedContentPropertyComponentTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/PropertyEditors/PropertyEditorValueConverterTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/PropertyEditors/PropertyEditorValueConverterTests.cs index ccc46e5423..b3537c4659 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/PropertyEditors/PropertyEditorValueConverterTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/PropertyEditors/PropertyEditorValueConverterTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Linq; using Moq; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/PropertyEditors/PropertyEditorValueEditorTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/PropertyEditors/PropertyEditorValueEditorTests.cs index e8eda1e595..3fe9445eca 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/PropertyEditors/PropertyEditorValueEditorTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/PropertyEditors/PropertyEditorValueEditorTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using Moq; using NUnit.Framework; using Umbraco.Cms.Core.Models; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Published/ConvertersTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Published/ConvertersTests.cs index bb21e04633..eac0efc11d 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Published/ConvertersTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Published/ConvertersTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Linq; using Moq; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Published/ModelTypeTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Published/ModelTypeTests.cs index d850d00d3d..eaab03c9b8 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Published/ModelTypeTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Published/ModelTypeTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using NUnit.Framework; using Umbraco.Cms.Core.Models.PublishedContent; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Published/NestedContentTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Published/NestedContentTests.cs index 972551fa3d..2e5a1028a0 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Published/NestedContentTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Published/NestedContentTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Linq; using Microsoft.Extensions.Logging; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Published/PropertyCacheLevelTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Published/PropertyCacheLevelTests.cs index cce1f0cf8c..6c971f6a7a 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Published/PropertyCacheLevelTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Published/PropertyCacheLevelTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using Moq; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/ReflectionUtilitiesTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/ReflectionUtilitiesTests.cs index 6c381fbf73..342a202a29 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/ReflectionUtilitiesTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/ReflectionUtilitiesTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Linq; using System.Reflection; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByUrlAliasTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByUrlAliasTests.cs index 0ebd5ef955..1977c918a5 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByUrlAliasTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByUrlAliasTests.cs @@ -1,4 +1,3 @@ -using System; using System.Threading.Tasks; using AutoFixture.NUnit3; using Moq; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByUrlTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByUrlTests.cs index 11351a2820..9ec7a305e7 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByUrlTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByUrlTests.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/PublishedRouterTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/PublishedRouterTests.cs index 4055cf9fde..da5c641b2a 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/PublishedRouterTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/PublishedRouterTests.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.ObjectModel; using System.Linq; using System.Threading.Tasks; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/SiteDomainMapperTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/SiteDomainMapperTests.cs index a0361f0222..b28e0eb6a5 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/SiteDomainMapperTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/SiteDomainMapperTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Linq; using NUnit.Framework; using Umbraco.Cms.Core.Routing; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/UmbracoRequestPathsTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/UmbracoRequestPathsTests.cs index bbcebaf09e..16769d42b8 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/UmbracoRequestPathsTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/UmbracoRequestPathsTests.cs @@ -1,4 +1,3 @@ -using System; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Options; using Moq; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/UriUtilityTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/UriUtilityTests.cs index c566c77bf2..51c9774027 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/UriUtilityTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/UriUtilityTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using Moq; using NUnit.Framework; using Umbraco.Cms.Core.Configuration.Models; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/UrlProviderWithoutHideTopLevelNodeFromPathTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/UrlProviderWithoutHideTopLevelNodeFromPathTests.cs index 3a00616215..7c8a1dc883 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/UrlProviderWithoutHideTopLevelNodeFromPathTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/UrlProviderWithoutHideTopLevelNodeFromPathTests.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Moq; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/UrlsProviderWithDomainsTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/UrlsProviderWithDomainsTests.cs index dffbe656d2..70084e28c6 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/UrlsProviderWithDomainsTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/UrlsProviderWithDomainsTests.cs @@ -1,4 +1,3 @@ -using System; using System.Linq; using Moq; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/UrlsWithNestedDomains.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/UrlsWithNestedDomains.cs index 41c485e732..9edce34707 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/UrlsWithNestedDomains.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/UrlsWithNestedDomains.cs @@ -1,4 +1,3 @@ -using System; using System.Linq; using System.Threading.Tasks; using Microsoft.Extensions.Logging; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/WebPathTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/WebPathTests.cs index 098e047981..4072e3df8b 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/WebPathTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/WebPathTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using NUnit.Framework; using Umbraco.Cms.Core.Routing; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Scheduling/ContentVersionCleanupTest.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Scheduling/ContentVersionCleanupTest.cs index 496b0ad42d..6f2d1af7e4 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Scheduling/ContentVersionCleanupTest.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Scheduling/ContentVersionCleanupTest.cs @@ -1,4 +1,3 @@ -using System; using System.Threading.Tasks; using AutoFixture.NUnit3; using Microsoft.Extensions.Options; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Scoping/EventNameExtractorTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Scoping/EventNameExtractorTests.cs index d20a30e661..9e0a7b103f 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Scoping/EventNameExtractorTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Scoping/EventNameExtractorTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using NUnit.Framework; using Umbraco.Cms.Core.Events; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Scoping/ScopedNotificationPublisherTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Scoping/ScopedNotificationPublisherTests.cs index 1a76d92bc7..927706ed89 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Scoping/ScopedNotificationPublisherTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Scoping/ScopedNotificationPublisherTests.cs @@ -1,4 +1,3 @@ -using System; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Options; @@ -98,7 +97,7 @@ public class ScopedNotificationPublisherTests new TestOptionsMonitor(new CoreDebugSettings()), mediaFileManager, loggerFactory, - + eventAggregatorMock.Object); } } diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Security/LegacyPasswordSecurityTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Security/LegacyPasswordSecurityTests.cs index fc9abecc10..d8cd848626 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Security/LegacyPasswordSecurityTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Security/LegacyPasswordSecurityTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Security.Cryptography; using System.Text; using Moq; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Services/ContentVersionCleanupServiceTest.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Services/ContentVersionCleanupServiceTest.cs index 3684eba470..d4ae75f488 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Services/ContentVersionCleanupServiceTest.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Services/ContentVersionCleanupServiceTest.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Services/DefaultContentVersionCleanupPolicyTest.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Services/DefaultContentVersionCleanupPolicyTest.cs index e7879afea2..b0fc8cbb43 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Services/DefaultContentVersionCleanupPolicyTest.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Services/DefaultContentVersionCleanupPolicyTest.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using AutoFixture.NUnit3; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/ShortStringHelper/DefaultShortStringHelperTestsWithoutSetup.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/ShortStringHelper/DefaultShortStringHelperTestsWithoutSetup.cs index b27ec8dfdb..61da325e5b 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/ShortStringHelper/DefaultShortStringHelperTestsWithoutSetup.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/ShortStringHelper/DefaultShortStringHelperTestsWithoutSetup.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Diagnostics; using System.Text; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/ShortStringHelper/StringExtensionsTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/ShortStringHelper/StringExtensionsTests.cs index bd02bead1c..6e959e45f4 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/ShortStringHelper/StringExtensionsTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/ShortStringHelper/StringExtensionsTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; @@ -333,7 +332,7 @@ public class StringExtensionsTests var output = input.ReplaceFirst(search, replacement); Assert.AreEqual(expected, output); } - + [Test] public void IsFullPath() { diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/TaskHelperTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/TaskHelperTests.cs index 2f29b10243..66ed94e5ce 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/TaskHelperTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/TaskHelperTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Threading; using System.Threading.Tasks; using AutoFixture.NUnit3; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Telemetry/SiteIdentifierServiceTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Telemetry/SiteIdentifierServiceTests.cs index d8c9e9f39c..4f47588655 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Telemetry/SiteIdentifierServiceTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Telemetry/SiteIdentifierServiceTests.cs @@ -1,4 +1,3 @@ -using System; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Moq; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Telemetry/TelemetryServiceTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Telemetry/TelemetryServiceTests.cs index c29590cf0d..fb66f80731 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Telemetry/TelemetryServiceTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Telemetry/TelemetryServiceTests.cs @@ -1,3 +1,5 @@ +using System.Collections.Generic; +using System.Linq; using Moq; using NUnit.Framework; using Umbraco.Cms.Core.Configuration; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Templates/HtmlImageSourceParserTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Templates/HtmlImageSourceParserTests.cs index 2da75ed64d..25aa4841ea 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Templates/HtmlImageSourceParserTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Templates/HtmlImageSourceParserTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Diagnostics; using System.Linq; using Microsoft.Extensions.Options; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Templates/HtmlLocalLinkParserTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Templates/HtmlLocalLinkParserTests.cs index 21180fca0f..c9d3f3ab9b 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Templates/HtmlLocalLinkParserTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Templates/HtmlLocalLinkParserTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Linq; using Microsoft.Extensions.Options; using Moq; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/VersionExtensionTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/VersionExtensionTests.cs index 06fcae14bc..460fe19622 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/VersionExtensionTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/VersionExtensionTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using NUnit.Framework; using Umbraco.Extensions; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Web/Routing/PublishedRequestBuilderTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Web/Routing/PublishedRequestBuilderTests.cs index 0246d3e38b..7f2e483055 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Web/Routing/PublishedRequestBuilderTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Web/Routing/PublishedRequestBuilderTests.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using Moq; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/BackOffice/BackOfficeClaimsPrincipalFactoryTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/BackOffice/BackOfficeClaimsPrincipalFactoryTests.cs index 2db6b97121..1a8cecee6b 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/BackOffice/BackOfficeClaimsPrincipalFactoryTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/BackOffice/BackOfficeClaimsPrincipalFactoryTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Security.Claims; using System.Threading.Tasks; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Examine/UmbracoContentValueSetValidatorTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Examine/UmbracoContentValueSetValidatorTests.cs index e53cb0c04e..9bfa092180 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Examine/UmbracoContentValueSetValidatorTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Examine/UmbracoContentValueSetValidatorTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Linq; using Examine; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HealthChecks/HealthCheckResultsTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HealthChecks/HealthCheckResultsTests.cs index 3a790696da..6a5189ab6a 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HealthChecks/HealthCheckResultsTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HealthChecks/HealthCheckResultsTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Threading.Tasks; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HostedServices/HealthCheckNotifierTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HostedServices/HealthCheckNotifierTests.cs index 86ad79fbee..626129b3b7 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HostedServices/HealthCheckNotifierTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HostedServices/HealthCheckNotifierTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HostedServices/KeepAliveTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HostedServices/KeepAliveTests.cs index 09421bdd81..f0ef4cd278 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HostedServices/KeepAliveTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HostedServices/KeepAliveTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Net; using System.Net.Http; using System.Threading; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HostedServices/LogScrubberTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HostedServices/LogScrubberTests.cs index 4e67e2952f..553a4f451c 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HostedServices/LogScrubberTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HostedServices/LogScrubberTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Data; using System.Threading.Tasks; using Microsoft.Extensions.Logging; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HostedServices/RecurringHostedServiceBaseTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HostedServices/RecurringHostedServiceBaseTests.cs index ae260d09f8..394d763ed6 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HostedServices/RecurringHostedServiceBaseTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HostedServices/RecurringHostedServiceBaseTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using Microsoft.Extensions.Logging; using Moq; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HostedServices/ScheduledPublishingTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HostedServices/ScheduledPublishingTests.cs index b0a5c865e5..609dfbb7fa 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HostedServices/ScheduledPublishingTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HostedServices/ScheduledPublishingTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Data; using System.Threading.Tasks; using Microsoft.Extensions.Logging; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HostedServices/ServerRegistration/TouchServerTaskTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HostedServices/ServerRegistration/TouchServerTaskTests.cs index 4ad5aa8bb2..b379f8d34b 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HostedServices/ServerRegistration/TouchServerTaskTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HostedServices/ServerRegistration/TouchServerTaskTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Moq; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HostedServices/TempFileCleanupTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HostedServices/TempFileCleanupTests.cs index b89781d4cf..851afc269b 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HostedServices/TempFileCleanupTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HostedServices/TempFileCleanupTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.IO; using System.Threading.Tasks; using Microsoft.Extensions.Logging; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Logging/LogviewerTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Logging/LogviewerTests.cs index 9c10e7117d..65307cd143 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Logging/LogviewerTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Logging/LogviewerTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Mapping/MappingTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Mapping/MappingTests.cs index c02fa62b55..fdcfead517 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Mapping/MappingTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Mapping/MappingTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Data; using System.Linq; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Migrations/AlterMigrationTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Migrations/AlterMigrationTests.cs index 71d5d641f8..516e7f80c1 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Migrations/AlterMigrationTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Migrations/AlterMigrationTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Diagnostics; using System.Linq; using Microsoft.Extensions.Logging; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Migrations/MigrationPlanTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Migrations/MigrationPlanTests.cs index ca2d9bba59..8956fe4315 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Migrations/MigrationPlanTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Migrations/MigrationPlanTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Linq; using Microsoft.Extensions.Logging.Abstractions; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Migrations/MigrationTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Migrations/MigrationTests.cs index 65feecb943..1e4ddd6f34 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Migrations/MigrationTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Migrations/MigrationTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Data; using Microsoft.Extensions.Logging; using Moq; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Migrations/Stubs/Dummy.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Migrations/Stubs/Dummy.cs index 4c2aea2bd4..1a1c5eafbd 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Migrations/Stubs/Dummy.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Migrations/Stubs/Dummy.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using Umbraco.Cms.Infrastructure.Migrations; namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Infrastructure.Migrations.Stubs; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Models/PathValidationTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Models/PathValidationTests.cs index 11a4c87ce5..303f2d396d 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Models/PathValidationTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Models/PathValidationTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using Microsoft.Extensions.Logging; using Moq; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Persistence/BulkDataReaderTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Persistence/BulkDataReaderTests.cs index 38436ba338..069f145abe 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Persistence/BulkDataReaderTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Persistence/BulkDataReaderTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Data; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Persistence/NPocoTests/NPocoSqlTemplateTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Persistence/NPocoTests/NPocoSqlTemplateTests.cs index c638e15784..708a6a3ba4 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Persistence/NPocoTests/NPocoSqlTemplateTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Persistence/NPocoTests/NPocoSqlTemplateTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using Microsoft.Extensions.Options; using Moq; using NPoco; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Persistence/NPocoTests/NPocoSqlTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Persistence/NPocoTests/NPocoSqlTests.cs index 4de8aef70e..e2bbe11af2 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Persistence/NPocoTests/NPocoSqlTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Persistence/NPocoTests/NPocoSqlTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Diagnostics; using NUnit.Framework; using Umbraco.Cms.Core; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Persistence/Querying/ContentTypeRepositorySqlClausesTest.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Persistence/Querying/ContentTypeRepositorySqlClausesTest.cs index b8f558d9d3..168e510ed4 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Persistence/Querying/ContentTypeRepositorySqlClausesTest.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Persistence/Querying/ContentTypeRepositorySqlClausesTest.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Diagnostics; using NUnit.Framework; using Umbraco.Cms.Core; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Persistence/Querying/DataTypeDefinitionRepositorySqlClausesTest.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Persistence/Querying/DataTypeDefinitionRepositorySqlClausesTest.cs index cd0268f945..7517742eeb 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Persistence/Querying/DataTypeDefinitionRepositorySqlClausesTest.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Persistence/Querying/DataTypeDefinitionRepositorySqlClausesTest.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Diagnostics; using NPoco; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Persistence/Querying/ExpressionTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Persistence/Querying/ExpressionTests.cs index 515a221b7b..e6f2243147 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Persistence/Querying/ExpressionTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Persistence/Querying/ExpressionTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Persistence/Querying/MediaRepositorySqlClausesTest.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Persistence/Querying/MediaRepositorySqlClausesTest.cs index a440639cce..58a49e8e43 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Persistence/Querying/MediaRepositorySqlClausesTest.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Persistence/Querying/MediaRepositorySqlClausesTest.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Diagnostics; using NPoco; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Persistence/Querying/MediaTypeRepositorySqlClausesTest.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Persistence/Querying/MediaTypeRepositorySqlClausesTest.cs index a10c7826c4..a0867852d4 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Persistence/Querying/MediaTypeRepositorySqlClausesTest.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Persistence/Querying/MediaTypeRepositorySqlClausesTest.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Diagnostics; using NPoco; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/PublishedCache/ContentSerializationTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/PublishedCache/ContentSerializationTests.cs index 9c191d2468..9b45e85b7e 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/PublishedCache/ContentSerializationTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/PublishedCache/ContentSerializationTests.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using Moq; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/PublishedCache/PublishedContentDataTableTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/PublishedCache/PublishedContentDataTableTests.cs index 7bf07a21f3..c5e1830381 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/PublishedCache/PublishedContentDataTableTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/PublishedCache/PublishedContentDataTableTests.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Moq; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/PublishedCache/PublishedContentLanguageVariantTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/PublishedCache/PublishedContentLanguageVariantTests.cs index a6a62e3925..4f5ec06373 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/PublishedCache/PublishedContentLanguageVariantTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/PublishedCache/PublishedContentLanguageVariantTests.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Moq; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/PublishedCache/PublishedContentTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/PublishedCache/PublishedContentTests.cs index 83908390e9..984085e754 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/PublishedCache/PublishedContentTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/PublishedCache/PublishedContentTests.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Moq; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/PublishedCache/PublishedSnapshotServiceCollectionTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/PublishedCache/PublishedSnapshotServiceCollectionTests.cs index ac22b112cd..a007079ca9 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/PublishedCache/PublishedSnapshotServiceCollectionTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/PublishedCache/PublishedSnapshotServiceCollectionTests.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/PublishedCache/PublishedSnapshotServiceContentTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/PublishedCache/PublishedSnapshotServiceContentTests.cs index 5c1312ae8f..570cd19566 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/PublishedCache/PublishedSnapshotServiceContentTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/PublishedCache/PublishedSnapshotServiceContentTests.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using Moq; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Scoping/ScopeUnitTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Scoping/ScopeUnitTests.cs index 77eba6533f..c547b1af3e 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Scoping/ScopeUnitTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Scoping/ScopeUnitTests.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Security/MemberRoleStoreTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Security/MemberRoleStoreTests.cs index c7f8c4c2f5..e97b438c05 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Security/MemberRoleStoreTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Security/MemberRoleStoreTests.cs @@ -1,4 +1,3 @@ -using System; using System.Linq; using System.Threading; using System.Threading.Tasks; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Security/MemberUserStoreTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Security/MemberUserStoreTests.cs index 4e59fac4a6..7032876a66 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Security/MemberUserStoreTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Security/MemberUserStoreTests.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Data; using System.Linq; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Security/NoOpLookupNormalizerTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Security/NoOpLookupNormalizerTests.cs index 669790b28b..a68b0856ec 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Security/NoOpLookupNormalizerTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Security/NoOpLookupNormalizerTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using NUnit.Framework; using Umbraco.Cms.Core.Security; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Serialization/AutoInterningStringConverterTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Serialization/AutoInterningStringConverterTests.cs index ee9c147a42..442628d619 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Serialization/AutoInterningStringConverterTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Serialization/AutoInterningStringConverterTests.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Newtonsoft.Json; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Services/AmbiguousEventTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Services/AmbiguousEventTests.cs index 9acf9ab8ab..66b3add5c7 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Services/AmbiguousEventTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Services/AmbiguousEventTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Reflection; using System.Text; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Services/LocalizedTextServiceTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Services/LocalizedTextServiceTests.cs index 47d1248115..915dd593fe 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Services/LocalizedTextServiceTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Services/LocalizedTextServiceTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Globalization; using System.Linq; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.ModelsBuilder.Embedded/BuilderTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.ModelsBuilder.Embedded/BuilderTests.cs index 614d24b2d7..3327e6f27d 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.ModelsBuilder.Embedded/BuilderTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.ModelsBuilder.Embedded/BuilderTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Linq; using System.Text; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.ModelsBuilder.Embedded/UmbracoApplicationTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.ModelsBuilder.Embedded/UmbracoApplicationTests.cs index fcacaadeee..3f45ed28c9 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.ModelsBuilder.Embedded/UmbracoApplicationTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.ModelsBuilder.Embedded/UmbracoApplicationTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using NUnit.Framework; using Umbraco.Cms.Infrastructure.ModelsBuilder; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.New.Cms.Core/Services/InstallServiceTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.New.Cms.Core/Services/InstallServiceTests.cs deleted file mode 100644 index cd40293bfd..0000000000 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.New.Cms.Core/Services/InstallServiceTests.cs +++ /dev/null @@ -1,111 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.Extensions.Logging; -using Moq; -using NUnit.Framework; -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.Services; -using Umbraco.New.Cms.Core.Installer; -using Umbraco.New.Cms.Core.Models.Installer; -using Umbraco.New.Cms.Core.Services.Installer; - -namespace Umbraco.Cms.Tests.UnitTests.Umbraco.New.Cms.Core.Services; - -[TestFixture] -public class InstallServiceTests -{ - [Test] - public void RequiresInstallRuntimeToInstall() - { - var runtimeStateMock = new Mock(); - runtimeStateMock.Setup(x => x.Level).Returns(RuntimeLevel.Run); - var stepCollection = new NewInstallStepCollection(Enumerable.Empty); - - var sut = new InstallService(Mock.Of>(), stepCollection, runtimeStateMock.Object); - - Assert.ThrowsAsync(async () => await sut.Install(new InstallData())); - } - - [Test] - public async Task OnlyRunsStepsThatRequireExecution() - { - var steps = new[] - { - new TestInstallStep { ShouldRun = true }, - new TestInstallStep { ShouldRun = false }, - new TestInstallStep { ShouldRun = true }, - }; - - var sut = CreateInstallService(steps); - await sut.Install(new InstallData()); - - foreach (var step in steps) - { - Assert.AreEqual(step.ShouldRun, step.HasRun); - } - } - - [Test] - public async Task StepsRunInCollectionOrder() - { - List runOrder = new List(); - - var steps = new[] - { - new TestInstallStep { Id = 1 }, - new TestInstallStep { Id = 2 }, - new TestInstallStep { Id = 3 }, - }; - - // Add an method delegate that will add the step itself, that way we can know the executed order. - foreach (var step in steps) - { - step.AdditionalExecution = _ => - { - runOrder.Add(step); - return Task.CompletedTask; - }; - } - - var sut = CreateInstallService(steps); - await sut.Install(new InstallData()); - - // The ID's are strictly not necessary, but it makes potential debugging easier. - var expectedRunOrder = steps.Select(x => x.Id); - var actualRunOrder = runOrder.Select(x => x.Id); - Assert.AreEqual(expectedRunOrder, actualRunOrder); - } - - private InstallService CreateInstallService(IEnumerable steps) - { - var logger = Mock.Of>(); - var stepCollection = new NewInstallStepCollection(() => steps); - var runtimeStateMock = new Mock(); - runtimeStateMock.Setup(x => x.Level).Returns(RuntimeLevel.Install); - - return new InstallService(logger, stepCollection, runtimeStateMock.Object); - } - - private class TestInstallStep : IInstallStep - { - public bool HasRun; - - public bool ShouldRun = true; - - public int Id; - - public Func AdditionalExecution; - - public Task ExecuteAsync(InstallData model) - { - HasRun = true; - - AdditionalExecution?.Invoke(model); - return Task.CompletedTask; - } - - public Task RequiresExecutionAsync(InstallData model) => Task.FromResult(ShouldRun); - } -} diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.New.Cms.Core/Services/UpgradeServiceTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.New.Cms.Core/Services/UpgradeServiceTests.cs deleted file mode 100644 index d2934f9c81..0000000000 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.New.Cms.Core/Services/UpgradeServiceTests.cs +++ /dev/null @@ -1,108 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.Extensions.Logging; -using Moq; -using NUnit.Framework; -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.Services; -using Umbraco.New.Cms.Core.Installer; -using UpgradeService = Umbraco.New.Cms.Core.Services.Installer.UpgradeService; - -namespace Umbraco.Cms.Tests.UnitTests.Umbraco.New.Cms.Core.Services; - -[TestFixture] -public class UpgradeServiceTests -{ - - [Test] - [TestCase(RuntimeLevel.Install)] - [TestCase(RuntimeLevel.Boot)] - [TestCase(RuntimeLevel.Run)] - [TestCase(RuntimeLevel.Unknown)] - public void RequiresUpgradeRuntimeToUpgrade(RuntimeLevel level) - { - var sut = CreateUpgradeService(Enumerable.Empty(), level); - - Assert.ThrowsAsync(async () => await sut.Upgrade()); - } - - [Test] - public async Task OnlyRunsStepsThatRequireExecution() - { - var steps = new[] - { - new TestUpgradeStep { ShouldRun = true }, - new TestUpgradeStep { ShouldRun = false }, - new TestUpgradeStep { ShouldRun = true }, - }; - - var sut = CreateUpgradeService(steps); - - await sut.Upgrade(); - - foreach (var step in steps) - { - Assert.AreEqual(step.ShouldRun, step.HasRun); - } - } - - [Test] - public async Task StepsRunInCollectionOrder() - { - List runOrder = new List(); - - var steps = new[] - { - new TestUpgradeStep { Id = 1 }, - new TestUpgradeStep { Id = 2 }, - new TestUpgradeStep { Id = 3 }, - }; - - // Add an method delegate that will add the step itself, that way we can know the executed order. - foreach (var step in steps) - { - step.AdditionalExecution = () => runOrder.Add(step); - } - - var sut = CreateUpgradeService(steps); - await sut.Upgrade(); - - // The ID's are strictly not necessary, but it makes potential debugging easier. - var expectedRunOrder = steps.Select(x => x.Id); - var actualRunOrder = runOrder.Select(x => x.Id); - Assert.AreEqual(expectedRunOrder, actualRunOrder); - } - - private UpgradeService CreateUpgradeService(IEnumerable steps, RuntimeLevel runtimeLevel = RuntimeLevel.Upgrade) - { - var logger = Mock.Of>(); - var stepCollection = new UpgradeStepCollection(() => steps); - var runtimeStateMock = new Mock(); - runtimeStateMock.Setup(x => x.Level).Returns(runtimeLevel); - - return new UpgradeService(stepCollection, runtimeStateMock.Object, logger); - } - - private class TestUpgradeStep : IUpgradeStep - { - public bool HasRun; - - public bool ShouldRun = true; - - public int Id; - - public Action AdditionalExecution; - - public Task ExecuteAsync() - { - HasRun = true; - - AdditionalExecution?.Invoke(); - return Task.CompletedTask; - } - - public Task RequiresExecutionAsync() => Task.FromResult(ShouldRun); - } -} diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.New.Cms.Infrastructure/Factories/DatabaseSettingsFactoryTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.New.Cms.Infrastructure/Factories/DatabaseSettingsFactoryTests.cs deleted file mode 100644 index 3494e27f01..0000000000 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.New.Cms.Infrastructure/Factories/DatabaseSettingsFactoryTests.cs +++ /dev/null @@ -1,184 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Microsoft.Extensions.Logging.Abstractions; -using Moq; -using NUnit.Framework; -using Umbraco.Cms.Core.Configuration.Models; -using Umbraco.Cms.Core.Install.Models; -using Umbraco.Cms.Core.Mapping; -using Umbraco.Cms.Core.Scoping; -using Umbraco.Cms.Infrastructure.Persistence; -using Umbraco.Cms.Api.Management.Mapping.Installer; -using Umbraco.Cms.Tests.Common; -using Umbraco.New.Cms.Core.Models.Installer; -using Umbraco.New.Cms.Infrastructure.Factories.Installer; - -namespace Umbraco.Cms.Tests.UnitTests.Umbraco.New.Cms.Infrastructure.Factories; - -[TestFixture] -public class DatabaseSettingsFactoryTests -{ - [Test] - public void CanBuildDatabaseSettings() - { - var metadata = CreateTestMetadata(); - var connectionString = new TestOptionsMonitor(new ConnectionStrings()); - var mapper = CreateMapper(); - - var factory = new DatabaseSettingsFactory(metadata, connectionString, mapper); - - var settingsModels = factory.GetDatabaseSettings(); - Assert.AreEqual(metadata.Count, settingsModels.Count); - AssertMapping(metadata, settingsModels); - } - - [Test] - public void IsConfiguredSetCorrectly() - { - var connectionString = new ConnectionStrings - { - ConnectionString = "SomeConnectionString", - ProviderName = "HostedTestMeta", - }; - var optionsMonitor = new TestOptionsMonitor(connectionString); - var mapper = CreateMapper(); - var metadata = CreateTestMetadata(); - - var factory = new DatabaseSettingsFactory(metadata, optionsMonitor, mapper); - - var settingsModels = factory.GetDatabaseSettings(); - - Assert.AreEqual(1, settingsModels.Count, "Expected only one database settings model, if a database is preconfigured we should only return the configured one."); - AssertMapping(metadata, settingsModels); - Assert.IsTrue(settingsModels.First().IsConfigured); - } - - [Test] - public void SpecifiedProviderMustExist() - { - var connectionString = new ConnectionStrings - { - ConnectionString = "SomeConnectionString", - ProviderName = "NoneExistentProvider", - }; - var optionsMonitor = new TestOptionsMonitor(connectionString); - var mapper = CreateMapper(); - var metadata = CreateTestMetadata(); - - var factory = new DatabaseSettingsFactory(metadata, optionsMonitor, mapper); - Assert.Throws(() => factory.GetDatabaseSettings()); - } - - /// - /// Asserts that the mapping is correct, in other words that the values in DatabaseSettingsModel is as expected. - /// - private void AssertMapping( - IEnumerable expected, - ICollection actual) - { - expected = expected.ToList(); - foreach (var model in actual) - { - var metadata = expected.FirstOrDefault(x => x.Id == model.Id); - Assert.IsNotNull(metadata); - - Assert.Multiple(() => - { - Assert.AreEqual(metadata?.SortOrder, model.SortOrder); - Assert.AreEqual(metadata.DisplayName, model.DisplayName); - Assert.AreEqual(metadata.DefaultDatabaseName, model.DefaultDatabaseName); - Assert.AreEqual(metadata.ProviderName ?? string.Empty, model.ProviderName); - Assert.AreEqual(metadata.RequiresServer, model.RequiresServer); - Assert.AreEqual(metadata.ServerPlaceholder ?? string.Empty, model.ServerPlaceholder); - Assert.AreEqual(metadata.RequiresCredentials, model.RequiresCredentials); - Assert.AreEqual(metadata.SupportsIntegratedAuthentication, model.SupportsIntegratedAuthentication); - Assert.AreEqual(metadata.RequiresConnectionTest, model.RequiresConnectionTest); - }); - } - } - - private IUmbracoMapper CreateMapper() - { - var mapper = new UmbracoMapper( - new MapDefinitionCollection(Enumerable.Empty), - Mock.Of(), - NullLogger.Instance); - - var definition = new InstallerViewModelsMapDefinition(); - definition.DefineMaps(mapper); - return mapper; - } - - private List CreateTestMetadata() - { - - var metadata = new List - { - new TestDatabaseProviderMetadata - { - Id = Guid.Parse("EC8ACD63-8CDE-4CA5-B2A3-06322720F274"), - SortOrder = 1, - DisplayName = "FirstMetadata", - DefaultDatabaseName = "TestDatabase", - IsAvailable = true, - GenerateConnectionStringDelegate = _ => "FirstTestMetadataConnectionString", - ProviderName = "SimpleTestMeta" - }, - new TestDatabaseProviderMetadata - { - Id = Guid.Parse("C5AB4E1D-B7E4-47E5-B1A4-C9343B5F59CA"), - SortOrder = 2, - DisplayName = "SecondMetadata", - DefaultDatabaseName = "HostedTest", - IsAvailable = true, - RequiresServer = true, - ServerPlaceholder = "SomeServerPlaceholder", - RequiresCredentials = true, - RequiresConnectionTest = true, - ForceCreateDatabase = true, - GenerateConnectionStringDelegate = _ => "HostedDatabaseConnectionString", - ProviderName = "HostedTestMeta" - }, - }; - - return metadata; - } - - #nullable enable - public class TestDatabaseProviderMetadata : IDatabaseProviderMetadata - { - public Guid Id { get; set; } - - public int SortOrder { get; set; } - - public string DisplayName { get; set; } = string.Empty; - - public string DefaultDatabaseName { get; set; } = string.Empty; - - public string? ProviderName { get; set; } - - public bool SupportsQuickInstall { get; set; } - - public bool IsAvailable { get; set; } - - public bool RequiresServer { get; set; } - - public string? ServerPlaceholder { get; set; } - - public bool RequiresCredentials { get; set; } - - public bool SupportsIntegratedAuthentication { get; set; } - - public bool RequiresConnectionTest { get; set; } - - public bool ForceCreateDatabase { get; set; } - - public Func GenerateConnectionStringDelegate { get; set; } = - _ => "ConnectionString"; - - public bool CanRecognizeConnectionString(string? connectionString) => false; - - public string? GenerateConnectionString(DatabaseModel databaseModel) => GenerateConnectionStringDelegate(databaseModel); - } -} diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs index b7e0823561..c34765fa3a 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.PublishedCache.NuCache/SnapDictionaryTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Linq; using System.Threading.Tasks; using Moq; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/ContentTypeBuilderTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/ContentTypeBuilderTests.cs index 1f8d1c136c..b23cd5209e 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/ContentTypeBuilderTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/ContentTypeBuilderTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Linq; using NUnit.Framework; using Umbraco.Cms.Core.Models; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/DocumentEntitySlimBuilderTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/DocumentEntitySlimBuilderTests.cs index d2ae193ccb..062d8aa7b0 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/DocumentEntitySlimBuilderTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/DocumentEntitySlimBuilderTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using NUnit.Framework; using Umbraco.Cms.Tests.Common.Builders; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/MacroBuilderTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/MacroBuilderTests.cs index 37f2cd1953..57aac4541f 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/MacroBuilderTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/MacroBuilderTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using NUnit.Framework; using Umbraco.Cms.Tests.Common.Builders; using Umbraco.Cms.Tests.Common.Builders.Extensions; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/MediaTypeBuilderTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/MediaTypeBuilderTests.cs index 70b68d4500..36cd29bee9 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/MediaTypeBuilderTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/MediaTypeBuilderTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Linq; using NUnit.Framework; using Umbraco.Cms.Core; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/MemberBuilderTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/MemberBuilderTests.cs index 7323709e3c..b173ba6ce5 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/MemberBuilderTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/MemberBuilderTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Linq; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/MemberGroupBuilderTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/MemberGroupBuilderTests.cs index 76a230c6a0..8d52cbb0bc 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/MemberGroupBuilderTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/MemberGroupBuilderTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using NUnit.Framework; using Umbraco.Cms.Tests.Common.Builders; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/MemberTypeBuilderTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/MemberTypeBuilderTests.cs index 52fb71d820..dcc61d59ff 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/MemberTypeBuilderTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/MemberTypeBuilderTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Linq; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/PropertyBuilderTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/PropertyBuilderTests.cs index a2aec5a216..4884fe371a 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/PropertyBuilderTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/PropertyBuilderTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using NUnit.Framework; using Umbraco.Cms.Tests.Common.Builders; using Umbraco.Cms.Tests.Common.Builders.Extensions; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/PropertyGroupBuilderTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/PropertyGroupBuilderTests.cs index ab1740151d..8c0327e169 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/PropertyGroupBuilderTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/PropertyGroupBuilderTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using NUnit.Framework; using Umbraco.Cms.Tests.Common.Builders; using Umbraco.Cms.Tests.Common.Builders.Extensions; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/PropertyTypeBuilderTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/PropertyTypeBuilderTests.cs index 903fd50b0f..3b4c41bce4 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/PropertyTypeBuilderTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/PropertyTypeBuilderTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using NUnit.Framework; using Umbraco.Cms.Core.Models; using Umbraco.Cms.Tests.Common.Builders; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/RelationBuilderTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/RelationBuilderTests.cs index 907a0d56a9..8b073bfe23 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/RelationBuilderTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/RelationBuilderTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using NUnit.Framework; using Umbraco.Cms.Core.Models; using Umbraco.Cms.Tests.Common.Builders; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/RelationTypeBuilderTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/RelationTypeBuilderTests.cs index 6e15d908ea..d176251a1e 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/RelationTypeBuilderTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/RelationTypeBuilderTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using NUnit.Framework; using Umbraco.Cms.Tests.Common.Builders; using Umbraco.Cms.Tests.Common.Builders.Extensions; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/TemplateBuilderTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/TemplateBuilderTests.cs index f8b5b4fd6d..29551ee06b 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/TemplateBuilderTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/TemplateBuilderTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using NUnit.Framework; using Umbraco.Cms.Core.Models; using Umbraco.Cms.Tests.Common.Builders; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/UserBuilderTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/UserBuilderTests.cs index 455868358f..52938dd53f 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/UserBuilderTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/UserBuilderTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using NUnit.Framework; using Umbraco.Cms.Tests.Common.Builders; using Umbraco.Cms.Tests.Common.Builders.Extensions; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.UnitTests.csproj b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.UnitTests.csproj index 293af7db2c..10ad774c34 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.UnitTests.csproj +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Tests.UnitTests.csproj @@ -18,7 +18,6 @@ - diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Web.BackOffice/Authorization/ContentPermissionsQueryStringHandlerTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Web.BackOffice/Authorization/ContentPermissionsQueryStringHandlerTests.cs index 32cfd66439..c562eb67ea 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Web.BackOffice/Authorization/ContentPermissionsQueryStringHandlerTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Web.BackOffice/Authorization/ContentPermissionsQueryStringHandlerTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Security.Claims; using System.Threading.Tasks; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Web.BackOffice/Authorization/MediaPermissionsQueryStringHandlerTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Web.BackOffice/Authorization/MediaPermissionsQueryStringHandlerTests.cs index b01ce38dfb..08ae10b071 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Web.BackOffice/Authorization/MediaPermissionsQueryStringHandlerTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Web.BackOffice/Authorization/MediaPermissionsQueryStringHandlerTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Security.Claims; using System.Threading.Tasks; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Web.BackOffice/Controllers/ContentControllerTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Web.BackOffice/Controllers/ContentControllerTests.cs index 5991114aa1..fdce6f0f9b 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Web.BackOffice/Controllers/ContentControllerTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Web.BackOffice/Controllers/ContentControllerTests.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Globalization; using System.Linq; using Microsoft.AspNetCore.Authorization; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Web.BackOffice/Controllers/MemberControllerUnitTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Web.BackOffice/Controllers/MemberControllerUnitTests.cs index b0ad8955ef..15788cf007 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Web.BackOffice/Controllers/MemberControllerUnitTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Web.BackOffice/Controllers/MemberControllerUnitTests.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Data; using System.Linq; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Web.BackOffice/Filters/AppendUserModifiedHeaderAttributeTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Web.BackOffice/Filters/AppendUserModifiedHeaderAttributeTests.cs index 5a4f153a26..e71570e311 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Web.BackOffice/Filters/AppendUserModifiedHeaderAttributeTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Web.BackOffice/Filters/AppendUserModifiedHeaderAttributeTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Web.BackOffice/Filters/ContentModelValidatorTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Web.BackOffice/Filters/ContentModelValidatorTests.cs index 97181a743e..e1175c789b 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Web.BackOffice/Filters/ContentModelValidatorTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Web.BackOffice/Filters/ContentModelValidatorTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.ComponentModel.DataAnnotations; using Newtonsoft.Json; using Newtonsoft.Json.Linq; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Common/Extensions/HttpContextExtensionTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Common/Extensions/HttpContextExtensionTests.cs index a687121b80..d0f4a10536 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Common/Extensions/HttpContextExtensionTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Common/Extensions/HttpContextExtensionTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Text; using Microsoft.AspNetCore.Http; using NUnit.Framework; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Common/ImageCropperTest.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Common/ImageCropperTest.cs index 3e3f9efdd7..93107542c5 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Common/ImageCropperTest.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Common/ImageCropperTest.cs @@ -1,6 +1,7 @@ // Copyright (c) Umbraco. // See LICENSE for more details. +using System.Collections.Generic; using System.Globalization; using System.Text; using Moq; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Common/ModelBinders/ContentModelBinderTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Common/ModelBinders/ContentModelBinderTests.cs index ca9d538340..d0afeddd2b 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Common/ModelBinders/ContentModelBinderTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Common/ModelBinders/ContentModelBinderTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Threading.Tasks; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Common/Routing/RoutableDocumentFilterTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Common/Routing/RoutableDocumentFilterTests.cs index 05a888923c..a943e5187b 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Common/Routing/RoutableDocumentFilterTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Common/Routing/RoutableDocumentFilterTests.cs @@ -1,4 +1,3 @@ -using System; using System.Threading.Tasks; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Routing; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Common/Routing/TestRouteBuilder.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Common/Routing/TestRouteBuilder.cs index ed9877b976..10c87dcbab 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Common/Routing/TestRouteBuilder.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Common/Routing/TestRouteBuilder.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Diagnostics; using System.Threading.Tasks; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Common/Security/MemberSignInManagerTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Common/Security/MemberSignInManagerTests.cs index cf88a7c962..a17f748f0c 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Common/Security/MemberSignInManagerTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Common/Security/MemberSignInManagerTests.cs @@ -1,4 +1,3 @@ -using System; using System.Linq; using System.Net; using System.Threading.Tasks; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Common/Security/PublicAccessCheckerTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Common/Security/PublicAccessCheckerTests.cs index 260a685559..681882e332 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Common/Security/PublicAccessCheckerTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Common/Security/PublicAccessCheckerTests.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using System.Security.Claims; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Common/Views/UmbracoViewPageTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Common/Views/UmbracoViewPageTests.cs index bcc4ea1321..634b326911 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Common/Views/UmbracoViewPageTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Common/Views/UmbracoViewPageTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc.ModelBinding; using Microsoft.AspNetCore.Mvc.ViewFeatures; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Website/AspNetCoreHostingEnvironmentTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Website/AspNetCoreHostingEnvironmentTests.cs index 35fdd34103..5fac76d424 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Website/AspNetCoreHostingEnvironmentTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Website/AspNetCoreHostingEnvironmentTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using NUnit.Framework; using Umbraco.Cms.Core.Strings; using Umbraco.Cms.Tests.UnitTests.AutoFixture; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Website/Routing/UmbracoRouteValueTransformerTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Website/Routing/UmbracoRouteValueTransformerTests.cs index ec42030e7c..30b40607f4 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Website/Routing/UmbracoRouteValueTransformerTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Website/Routing/UmbracoRouteValueTransformerTests.cs @@ -1,4 +1,3 @@ -using System; using System.Reflection; using System.Threading.Tasks; using Microsoft.AspNetCore.DataProtection; diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Website/Routing/UmbracoRouteValuesFactoryTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Website/Routing/UmbracoRouteValuesFactoryTests.cs index a7e9643221..4c159aafe0 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Website/Routing/UmbracoRouteValuesFactoryTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Website/Routing/UmbracoRouteValuesFactoryTests.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Reflection; using System.Threading.Tasks;