From 2987dcb30e52f000edd5475aa1affe8da23a20d3 Mon Sep 17 00:00:00 2001 From: Michael Robertson Date: Thu, 20 Apr 2023 05:12:53 -0400 Subject: [PATCH 01/43] Add IModelsGenerator Interface (#12210) --- .../BuildModelsBuilderController.cs | 32 ++++++++++++++-- .../AutoModelsNotificationHandler.cs | 35 ++++++++++++++++- .../Building/IModelsGenerator.cs | 7 ++++ .../ModelsBuilder/Building/ModelsGenerator.cs | 2 +- .../ModelsBuilderDashboardController.cs | 38 +++++++++++++++++-- ...acoBuilderDependencyInjectionExtensions.cs | 2 + 6 files changed, 107 insertions(+), 9 deletions(-) create mode 100644 src/Umbraco.Infrastructure/ModelsBuilder/Building/IModelsGenerator.cs diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/ModelsBuilder/BuildModelsBuilderController.cs b/src/Umbraco.Cms.ManagementApi/Controllers/ModelsBuilder/BuildModelsBuilderController.cs index 7fcf5b5888..b1c29c64b5 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/ModelsBuilder/BuildModelsBuilderController.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/ModelsBuilder/BuildModelsBuilderController.cs @@ -1,9 +1,10 @@ -using System; -using System.Threading.Tasks; +using System.ComponentModel; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; using Umbraco.Cms.Core.Configuration.Models; +using Umbraco.Cms.Core.DependencyInjection; using Umbraco.Cms.Infrastructure.ModelsBuilder; using Umbraco.Cms.Infrastructure.ModelsBuilder.Building; using Umbraco.Extensions; @@ -14,12 +15,37 @@ public class BuildModelsBuilderController : ModelsBuilderControllerBase { private ModelsBuilderSettings _modelsBuilderSettings; 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 BuildModelsBuilderController( IOptionsMonitor modelsBuilderSettings, ModelsGenerationError mbErrors, ModelsGenerator modelGenerator) + : this(modelsBuilderSettings, mbErrors, StaticServiceProvider.Instance.GetRequiredService()) + { + } + + [Obsolete("This constructor is obsolete and will be removed in v13. Use the constructor with only IModelsGenerator instead.")] + [Browsable(false)] + public BuildModelsBuilderController( + IOptionsMonitor modelsBuilderSettings, + ModelsGenerationError mbErrors, + ModelsGenerator concreteModelGenerator, + IModelsGenerator modelGenerator) + : this(modelsBuilderSettings, mbErrors, modelGenerator) + { + } + + [ActivatorUtilitiesConstructor] + public BuildModelsBuilderController( + IOptionsMonitor modelsBuilderSettings, + ModelsGenerationError mbErrors, + IModelsGenerator modelGenerator) { _mbErrors = mbErrors; _modelGenerator = modelGenerator; 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.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/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(); From 00eab03d50b059c70249cfaaca880175f2cae9c5 Mon Sep 17 00:00:00 2001 From: Dhanesh Kumar Mj <58820887+dKumarmj@users.noreply.github.com> Date: Fri, 21 Apr 2023 14:57:08 +0530 Subject: [PATCH 02/43] Save and Preview blank on second use #14052 (#14094) --- .../components/content/edit.controller.js | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/content/edit.controller.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/content/edit.controller.js index 02f6164f64..7a681c07f4 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/components/content/edit.controller.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/content/edit.controller.js @@ -941,15 +941,13 @@ const openPreviewWindow = () => { // Chromes popup blocker will kick in if a window is opened // without the initial scoped request. This trick will fix that. - // - const previewWindow = $window.open('preview/?init=true', 'umbpreview'); + + const previewWindow = $window.open(`preview/?id=${content.id}${$scope.culture ? `&culture=${$scope.culture}` : ''}`, 'umbpreview'); + + previewWindow.addEventListener('load', () => { + previewWindow.location.href = previewWindow.document.URL; + }); - // Build the correct path so both /#/ and #/ work. - let query = 'id=' + content.id; - if ($scope.culture) { - query += "#?culture=" + $scope.culture; - } - previewWindow.location.href = Umbraco.Sys.ServerVariables.umbracoSettings.umbracoPath + '/preview/?' + query; } //The user cannot save if they don't have access to do that, in which case we just want to preview From 1436fe4e15ab5c3dadd1c10e2d29a661921c5c01 Mon Sep 17 00:00:00 2001 From: Mark Drake Date: Fri, 21 Apr 2023 08:12:18 -0400 Subject: [PATCH 03/43] Edge Cases for Issue #13838: Hotkey Actions Triggered from Web Components (#14098) --- .../src/common/services/keyboard.service.js | 585 +++++++++--------- 1 file changed, 295 insertions(+), 290 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/services/keyboard.service.js b/src/Umbraco.Web.UI.Client/src/common/services/keyboard.service.js index 66babe03b8..3102a92449 100644 --- a/src/Umbraco.Web.UI.Client/src/common/services/keyboard.service.js +++ b/src/Umbraco.Web.UI.Client/src/common/services/keyboard.service.js @@ -2,324 +2,329 @@ // http://www.openjs.com/scripts/events/keyboard_shortcuts/index.php function keyboardService($window, $timeout) { - - var keyboardManagerService = {}; - - var defaultOpt = { - 'type': 'keydown', - 'propagate': false, - 'inputDisabled': false, - 'target': $window.document, - 'keyCode': false - }; - // Work around for stupid Shift key bug created by using lowercase - as a result the shift+num combination was broken - var shift_nums = { - "`": "~", - "1": "!", - "2": "@", - "3": "#", - "4": "$", - "5": "%", - "6": "^", - "7": "&", - "8": "*", - "9": "(", - "0": ")", - "-": "_", - "=": "+", - ";": ":", - "'": "\"", - ",": "<", - ".": ">", - "/": "?", - "\\": "|" - }; + var keyboardManagerService = {}; - // Special Keys - and their codes - var special_keys = { - 'esc': 27, - 'escape': 27, - 'tab': 9, - 'space': 32, - 'return': 13, - 'enter': 13, - 'backspace': 8, + var defaultOpt = { + 'type': 'keydown', + 'propagate': false, + 'inputDisabled': false, + 'target': $window.document, + 'keyCode': false + }; - 'scrolllock': 145, - 'scroll_lock': 145, - 'scroll': 145, - 'capslock': 20, - 'caps_lock': 20, - 'caps': 20, - 'numlock': 144, - 'num_lock': 144, - 'num': 144, + // Work around for stupid Shift key bug created by using lowercase - as a result the shift+num combination was broken + var shift_nums = { + "`": "~", + "1": "!", + "2": "@", + "3": "#", + "4": "$", + "5": "%", + "6": "^", + "7": "&", + "8": "*", + "9": "(", + "0": ")", + "-": "_", + "=": "+", + ";": ":", + "'": "\"", + ",": "<", + ".": ">", + "/": "?", + "\\": "|" + }; - 'pause': 19, - 'break': 19, + // Special Keys - and their codes + var special_keys = { + 'esc': 27, + 'escape': 27, + 'tab': 9, + 'space': 32, + 'return': 13, + 'enter': 13, + 'backspace': 8, - 'insert': 45, - 'home': 36, - 'delete': 46, - 'end': 35, + 'scrolllock': 145, + 'scroll_lock': 145, + 'scroll': 145, + 'capslock': 20, + 'caps_lock': 20, + 'caps': 20, + 'numlock': 144, + 'num_lock': 144, + 'num': 144, - 'pageup': 33, - 'page_up': 33, - 'pu': 33, + 'pause': 19, + 'break': 19, - 'pagedown': 34, - 'page_down': 34, - 'pd': 34, + 'insert': 45, + 'home': 36, + 'delete': 46, + 'end': 35, - 'left': 37, - 'up': 38, - 'right': 39, - 'down': 40, + 'pageup': 33, + 'page_up': 33, + 'pu': 33, - 'f1': 112, - 'f2': 113, - 'f3': 114, - 'f4': 115, - 'f5': 116, - 'f6': 117, - 'f7': 118, - 'f8': 119, - 'f9': 120, - 'f10': 121, - 'f11': 122, - 'f12': 123 - }; + 'pagedown': 34, + 'page_down': 34, + 'pd': 34, - var isMac = navigator.platform.toUpperCase().indexOf('MAC')>=0; + 'left': 37, + 'up': 38, + 'right': 39, + 'down': 40, - // The event handler for bound element events - function eventHandler(e) { - e = e || $window.event; + 'f1': 112, + 'f2': 113, + 'f3': 114, + 'f4': 115, + 'f5': 116, + 'f6': 117, + 'f7': 118, + 'f8': 119, + 'f9': 120, + 'f10': 121, + 'f11': 122, + 'f12': 123 + }; - var code, k; + var isMac = navigator.platform.toUpperCase().indexOf('MAC') >= 0; - // Find out which key is pressed - if (e.keyCode) - { - code = e.keyCode; - } - else if (e.which) { - code = e.which; - } + // The event handler for bound element events + function eventHandler(e) { + e = e || $window.event; - var character = String.fromCharCode(code).toLowerCase(); + var code, k; - if (code === 188){character = ",";} // If the user presses , when the type is onkeydown - if (code === 190){character = ".";} // If the user presses , when the type is onkeydown - - var propagate = true; - - //Now we need to determine which shortcut this event is for, we'll do this by iterating over each - //registered shortcut to find the match. We use Find here so that the loop exits as soon - //as we've found the one we're looking for - _.find(_.keys(keyboardManagerService.keyboardEvent), function(key) { - - var shortcutLabel = key; - var shortcutVal = keyboardManagerService.keyboardEvent[key]; - - // Key Pressed - counts the number of valid keypresses - if it is same as the number of keys, the shortcut function is invoked - var kp = 0; - - // Some modifiers key - var modifiers = { - shift: { - wanted: false, - pressed: e.shiftKey ? true : false - }, - ctrl: { - wanted: false, - pressed: e.ctrlKey ? true : false - }, - alt: { - wanted: false, - pressed: e.altKey ? true : false - }, - meta: { //Meta is Mac specific - wanted: false, - pressed: e.metaKey ? true : false - } - }; - - var keys = shortcutLabel.split("+"); - var opt = shortcutVal.opt; - var callback = shortcutVal.callback; - - // Foreach keys in label (split on +) - var l = keys.length; - for (var i = 0; i < l; i++) { - - var k = keys[i]; - switch (k) { - case 'ctrl': - case 'control': - kp++; - modifiers.ctrl.wanted = true; - break; - case 'shift': - case 'alt': - case 'meta': - kp++; - modifiers[k].wanted = true; - break; - } - - if (k.length > 1) { // If it is a special key - if (special_keys[k] === code) { - kp++; - } - } - else if (opt['keyCode']) { // If a specific key is set into the config - if (opt['keyCode'] === code) { - kp++; - } - } - else { // The special keys did not match - if (character === k) { - kp++; - } - else { - if (shift_nums[character] && e.shiftKey) { // Stupid Shift key bug created by using lowercase - character = shift_nums[character]; - if (character === k) { - kp++; - } - } - } - } - - } //for end - - if (kp === keys.length && - modifiers.ctrl.pressed === modifiers.ctrl.wanted && - modifiers.shift.pressed === modifiers.shift.wanted && - modifiers.alt.pressed === modifiers.alt.wanted && - modifiers.meta.pressed === modifiers.meta.wanted) { - - //found the right callback! - - // Disable event handler when focus input and textarea - if (opt['inputDisabled']) { - var elt; - if (e.target) { - elt = e.target; - } else if (e.srcElement) { - elt = e.srcElement; - } - - if (elt.nodeType === 3) { elt = elt.parentNode; } - if (elt.tagName === 'INPUT' || elt.tagName === 'TEXTAREA' || elt.hasAttribute('disable-hotkeys')) { - //This exits the Find loop - return true; - } - } - - $timeout(function () { - callback(e); - }, 1); - - if (!opt['propagate']) { // Stop the event - propagate = false; - } - - //This exits the Find loop - return true; - } - - //we haven't found one so continue looking - return false; - - }); - - // Stop the event if required - if (!propagate) { - // e.cancelBubble is supported by IE - this will kill the bubbling process. - e.cancelBubble = true; - e.returnValue = false; - - // e.stopPropagation works in Firefox. - if (e.stopPropagation) { - e.stopPropagation(); - e.preventDefault(); - } - return false; - } + // Find out which key is pressed + if (e.keyCode) { + code = e.keyCode; + } else if (e.which) { + code = e.which; } - // Store all keyboard combination shortcuts - keyboardManagerService.keyboardEvent = {}; + var character = String.fromCharCode(code).toLowerCase(); - // Add a new keyboard combination shortcut - keyboardManagerService.bind = function (label, callback, opt) { + if (code === 188) { + character = ","; + } // If the user presses , when the type is onkeydown + if (code === 190) { + character = "."; + } // If the user presses , when the type is onkeydown - //replace ctrl key with meta key - if(isMac && label !== "ctrl+space"){ - label = label.replace("ctrl","meta"); + var propagate = true; + + //Now we need to determine which shortcut this event is for, we'll do this by iterating over each + //registered shortcut to find the match. We use Find here so that the loop exits as soon + //as we've found the one we're looking for + _.find(_.keys(keyboardManagerService.keyboardEvent), function (key) { + + var shortcutLabel = key; + var shortcutVal = keyboardManagerService.keyboardEvent[key]; + + // Key Pressed - counts the number of valid keypresses - if it is same as the number of keys, the shortcut function is invoked + var kp = 0; + + // Some modifiers key + var modifiers = { + shift: { + wanted: false, + pressed: e.shiftKey ? true : false + }, + ctrl: { + wanted: false, + pressed: e.ctrlKey ? true : false + }, + alt: { + wanted: false, + pressed: e.altKey ? true : false + }, + meta: { //Meta is Mac specific + wanted: false, + pressed: e.metaKey ? true : false + } + }; + + var keys = shortcutLabel.split("+"); + var opt = shortcutVal.opt; + var callback = shortcutVal.callback; + + // Foreach keys in label (split on +) + var l = keys.length; + for (var i = 0; i < l; i++) { + + var k = keys[i]; + switch (k) { + case 'ctrl': + case 'control': + kp++; + modifiers.ctrl.wanted = true; + break; + case 'shift': + case 'alt': + case 'meta': + kp++; + modifiers[k].wanted = true; + break; } - var elt; - // Initialize opt object - opt = Utilities.extend({}, defaultOpt, opt); - label = label.toLowerCase(); - elt = opt.target; - if(typeof opt.target === 'string'){ - elt = document.getElementById(opt.target); - } - - //Ensure we aren't double binding to the same element + type otherwise we'll end up multi-binding - // and raising events for now reason. So here we'll check if the event is already registered for the element - var boundValues = _.values(keyboardManagerService.keyboardEvent); - var found = _.find(boundValues, function (i) { - return i.target === elt && i.event === opt['type']; - }); - - // Store shortcut - keyboardManagerService.keyboardEvent[label] = { - 'callback': callback, - 'target': elt, - 'opt': opt - }; - - if (!found) { - //Attach the function with the event - if (elt.addEventListener) { - elt.addEventListener(opt['type'], eventHandler, false); - } else if (elt.attachEvent) { - elt.attachEvent('on' + opt['type'], eventHandler); - } else { - elt['on' + opt['type']] = eventHandler; + if (k.length > 1) { // If it is a special key + if (special_keys[k] === code) { + kp++; + } + } else if (opt['keyCode']) { // If a specific key is set into the config + if (opt['keyCode'] === code) { + kp++; + } + } else { // The special keys did not match + if (character === k) { + kp++; + } else { + if (shift_nums[character] && e.shiftKey) { // Stupid Shift key bug created by using lowercase + character = shift_nums[character]; + if (character === k) { + kp++; + } } + } } - - }; - // Remove the shortcut - just specify the shortcut and I will remove the binding - keyboardManagerService.unbind = function (label) { - label = label.toLowerCase(); - var binding = keyboardManagerService.keyboardEvent[label]; - delete(keyboardManagerService.keyboardEvent[label]); - if(!binding){return;} + } //for end - var type = binding['event'], - elt = binding['target'], - callback = binding['callback']; + if (kp === keys.length && + modifiers.ctrl.pressed === modifiers.ctrl.wanted && + modifiers.shift.pressed === modifiers.shift.wanted && + modifiers.alt.pressed === modifiers.alt.wanted && + modifiers.meta.pressed === modifiers.meta.wanted) { - if(elt.detachEvent){ - elt.detachEvent('on' + type, callback); - }else if(elt.removeEventListener){ - elt.removeEventListener(type, callback, false); - }else{ - elt['on'+type] = false; + //found the right callback! + + // Disable event handler when focus input and textarea + if (opt['inputDisabled']) { + var elt; + if (e.composedPath()) { + elt = e.composedPath()[0]; + } else if (e.target) { + elt = e.target; + } else if (e.srcElement) { + elt = e.srcElement; + } + + if (elt.nodeType === 3) { + elt = elt.parentNode; + } + if (elt.tagName === 'INPUT' || elt.tagName === 'TEXTAREA' || elt.hasAttribute('disable-hotkeys')) { + //This exits the Find loop + return true; + } } - }; - // - return keyboardManagerService; + $timeout(function () { + callback(e); + }, 1); + + if (!opt['propagate']) { // Stop the event + propagate = false; + } + + //This exits the Find loop + return true; + } + + //we haven't found one so continue looking + return false; + + }); + + // Stop the event if required + if (!propagate) { + // e.cancelBubble is supported by IE - this will kill the bubbling process. + e.cancelBubble = true; + e.returnValue = false; + + // e.stopPropagation works in Firefox. + if (e.stopPropagation) { + e.stopPropagation(); + e.preventDefault(); + } + return false; + } + } + + // Store all keyboard combination shortcuts + keyboardManagerService.keyboardEvent = {}; + + // Add a new keyboard combination shortcut + keyboardManagerService.bind = function (label, callback, opt) { + + //replace ctrl key with meta key + if (isMac && label !== "ctrl+space") { + label = label.replace("ctrl", "meta"); + } + + var elt; + // Initialize opt object + opt = Utilities.extend({}, defaultOpt, opt); + label = label.toLowerCase(); + elt = opt.target; + if (typeof opt.target === 'string') { + elt = document.getElementById(opt.target); + } + + //Ensure we aren't double binding to the same element + type otherwise we'll end up multi-binding + // and raising events for now reason. So here we'll check if the event is already registered for the element + var boundValues = _.values(keyboardManagerService.keyboardEvent); + var found = _.find(boundValues, function (i) { + return i.target === elt && i.event === opt['type']; + }); + + // Store shortcut + keyboardManagerService.keyboardEvent[label] = { + 'callback': callback, + 'target': elt, + 'opt': opt + }; + + if (!found) { + //Attach the function with the event + if (elt.addEventListener) { + elt.addEventListener(opt['type'], eventHandler, false); + } else if (elt.attachEvent) { + elt.attachEvent('on' + opt['type'], eventHandler); + } else { + elt['on' + opt['type']] = eventHandler; + } + } + + }; + // Remove the shortcut - just specify the shortcut and I will remove the binding + keyboardManagerService.unbind = function (label) { + label = label.toLowerCase(); + var binding = keyboardManagerService.keyboardEvent[label]; + delete (keyboardManagerService.keyboardEvent[label]); + + if (!binding) { + return; + } + + var type = binding['event'], + elt = binding['target'], + callback = binding['callback']; + + if (elt.detachEvent) { + elt.detachEvent('on' + type, callback); + } else if (elt.removeEventListener) { + elt.removeEventListener(type, callback, false); + } else { + elt['on' + type] = false; + } + }; + // + + return keyboardManagerService; } angular.module('umbraco.services').factory('keyboardService', ['$window', '$timeout', keyboardService]); From eb1523cc8153b71f81dcd29577c2b704d81ed4bb Mon Sep 17 00:00:00 2001 From: Richard Ockerby Date: Mon, 24 Apr 2023 11:38:21 +0100 Subject: [PATCH 04/43] Alter the datatype of the UmbracoKeyValue value column (#14085) --- .../Migrations/Upgrade/UmbracoPlan.cs | 3 ++ .../Upgrade/V_11_4_0/AlterKeyValueDataType.cs | 37 +++++++++++++++++++ .../Persistence/Dtos/KeyValueDto.cs | 3 ++ 3 files changed, 43 insertions(+) create mode 100644 src/Umbraco.Infrastructure/Migrations/Upgrade/V_11_4_0/AlterKeyValueDataType.cs diff --git a/src/Umbraco.Infrastructure/Migrations/Upgrade/UmbracoPlan.cs b/src/Umbraco.Infrastructure/Migrations/Upgrade/UmbracoPlan.cs index 0206442897..c6fbe0557a 100644 --- a/src/Umbraco.Infrastructure/Migrations/Upgrade/UmbracoPlan.cs +++ b/src/Umbraco.Infrastructure/Migrations/Upgrade/UmbracoPlan.cs @@ -67,5 +67,8 @@ public class UmbracoPlan : MigrationPlan // To 11.3.0 To("{BB3889ED-E2DE-49F2-8F71-5FD8616A2661}"); + + // To 11.4.0 + To("{FFB6B9B0-F1A8-45E9-9CD7-25700577D1CA}"); } } 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/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; } From 0765a2ebbb6fd452b6543a349f5d0c1f157e5588 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82?= Date: Tue, 25 Apr 2023 11:49:24 +0200 Subject: [PATCH 05/43] Save and preview translation. --- src/Umbraco.Core/EmbeddedResources/Lang/sv.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 From 9aadb41f4aa98a2fde2f55064ad5cf96a8a98e12 Mon Sep 17 00:00:00 2001 From: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com> Date: Tue, 25 Apr 2023 15:08:15 +0200 Subject: [PATCH 06/43] Change state to publishing before handling ContentSavingNotification (#14114) --- src/Umbraco.Core/Services/ContentService.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Umbraco.Core/Services/ContentService.cs b/src/Umbraco.Core/Services/ContentService.cs index c9d1cd7f9e..f889ce424d 100644 --- a/src/Umbraco.Core/Services/ContentService.cs +++ b/src/Umbraco.Core/Services/ContentService.cs @@ -1146,6 +1146,8 @@ public class ContentService : RepositoryService, IContentService var allLangs = _languageRepository.GetMany().ToList(); + // Change state to publishing + content.PublishedState = PublishedState.Publishing; var savingNotification = new ContentSavingNotification(content, evtMsgs); if (scope.Notifications.PublishCancelable(savingNotification)) { From bf7b9a20a8c9ae9d2b320143ae171a7d01fcd134 Mon Sep 17 00:00:00 2001 From: Mole Date: Wed, 26 Apr 2023 14:51:55 +0200 Subject: [PATCH 07/43] Set culture variation when getting property types for indexing (#14167) --- .../NestedPropertyIndexValueFactoryBase.cs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) 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( From d589115b67de4a6214afc562d2f736a65e8c06b9 Mon Sep 17 00:00:00 2001 From: Mole Date: Wed, 26 Apr 2023 14:51:55 +0200 Subject: [PATCH 08/43] Set culture variation when getting property types for indexing (#14167) --- .../NestedPropertyIndexValueFactoryBase.cs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) 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( From a0d325cfe08f58aee6858e31e861ebcea6893a0c Mon Sep 17 00:00:00 2001 From: Kenn Jacobsen Date: Wed, 26 Apr 2023 15:13:26 +0200 Subject: [PATCH 09/43] Make delivery API indexers and handlers public (sealed) so they can be overridden by custom ones (#14160) * Make delivery API indexers and handlers public (sealed) so they can be overridden by custom ones * Making the rest of the indexers public (sealed) --------- Co-authored-by: Elitsa --- .../Indexing/Filters/ContentTypeFilterIndexer.cs | 2 +- .../Indexing/Selectors/ChildrenSelectorIndexer.cs | 2 +- .../Indexing/Selectors/DescendantsSelectorIndexer.cs | 2 +- src/Umbraco.Cms.Api.Delivery/Indexing/Sorts/LevelSortIndexer.cs | 2 +- src/Umbraco.Cms.Api.Delivery/Indexing/Sorts/NameSortIndexer.cs | 2 +- src/Umbraco.Cms.Api.Delivery/Indexing/Sorts/PathSortIndexer.cs | 2 +- .../Indexing/Sorts/SortOrderSortIndexer.cs | 2 +- .../Querying/Filters/ContentTypeFilter.cs | 2 +- src/Umbraco.Cms.Api.Delivery/Querying/Filters/NameFilter.cs | 2 +- .../Querying/Selectors/AncestorsSelector.cs | 2 +- .../Querying/Selectors/ChildrenSelector.cs | 2 +- .../Querying/Selectors/DescendantsSelector.cs | 2 +- src/Umbraco.Cms.Api.Delivery/Querying/Sorts/LevelSort.cs | 2 +- src/Umbraco.Cms.Api.Delivery/Querying/Sorts/NameSort.cs | 2 +- src/Umbraco.Cms.Api.Delivery/Querying/Sorts/PathSort.cs | 2 +- src/Umbraco.Cms.Api.Delivery/Querying/Sorts/SortOrderSort.cs | 2 +- 16 files changed, 16 insertions(+), 16 deletions(-) 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/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/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/PathSortIndexer.cs b/src/Umbraco.Cms.Api.Delivery/Indexing/Sorts/PathSortIndexer.cs index 11f1b2479d..e85cb88eee 100644 --- a/src/Umbraco.Cms.Api.Delivery/Indexing/Sorts/PathSortIndexer.cs +++ b/src/Umbraco.Cms.Api.Delivery/Indexing/Sorts/PathSortIndexer.cs @@ -3,7 +3,7 @@ using Umbraco.Cms.Core.Models; namespace Umbraco.Cms.Api.Delivery.Indexing.Sorts; -internal sealed class PathSortIndexer : IContentIndexHandler +public sealed class PathSortIndexer : IContentIndexHandler { internal const string FieldName = "path"; 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/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..fc9676d2b2 100644 --- a/src/Umbraco.Cms.Api.Delivery/Querying/Filters/NameFilter.cs +++ b/src/Umbraco.Cms.Api.Delivery/Querying/Filters/NameFilter.cs @@ -2,7 +2,7 @@ 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:"; diff --git a/src/Umbraco.Cms.Api.Delivery/Querying/Selectors/AncestorsSelector.cs b/src/Umbraco.Cms.Api.Delivery/Querying/Selectors/AncestorsSelector.cs index 4539a8f3d6..dc89d0cdad 100644 --- a/src/Umbraco.Cms.Api.Delivery/Querying/Selectors/AncestorsSelector.cs +++ b/src/Umbraco.Cms.Api.Delivery/Querying/Selectors/AncestorsSelector.cs @@ -5,7 +5,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; 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/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/PathSort.cs b/src/Umbraco.Cms.Api.Delivery/Querying/Sorts/PathSort.cs index 4340c433f7..09eeeb0398 100644 --- a/src/Umbraco.Cms.Api.Delivery/Querying/Sorts/PathSort.cs +++ b/src/Umbraco.Cms.Api.Delivery/Querying/Sorts/PathSort.cs @@ -4,7 +4,7 @@ using Umbraco.Cms.Core.DeliveryApi; namespace Umbraco.Cms.Api.Delivery.Querying.Sorts; -internal sealed class PathSort : ISortHandler +public sealed class PathSort : ISortHandler { private const string SortOptionSpecifier = "path:"; 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:"; From d2a8068ca6689079a3ed90fd0ba572a86c62e648 Mon Sep 17 00:00:00 2001 From: Kenn Jacobsen Date: Thu, 27 Apr 2023 10:30:30 +0200 Subject: [PATCH 10/43] Filter out disallowed content types from the delivery API content index (#14156) * Filter out disallowed content types from the delivery api content index * Added . * Allow children of disallowed content types in the index --------- Co-authored-by: Elitsa --- .../DeliveryApi/ApiPublishedContentCache.cs | 2 +- .../DeliveryApiSettingsExtensions.cs | 19 +++++++++++ .../DeliveryApiContentIndexPopulator.cs | 32 ++++++++++++++++--- .../DeliveryApiContentIndexValueSetBuilder.cs | 19 ++++++++++- 4 files changed, 65 insertions(+), 7 deletions(-) create mode 100644 src/Umbraco.Core/Extensions/DeliveryApiSettingsExtensions.cs diff --git a/src/Umbraco.Core/DeliveryApi/ApiPublishedContentCache.cs b/src/Umbraco.Core/DeliveryApi/ApiPublishedContentCache.cs index db45ed74eb..7773ee7236 100644 --- a/src/Umbraco.Core/DeliveryApi/ApiPublishedContentCache.cs +++ b/src/Umbraco.Core/DeliveryApi/ApiPublishedContentCache.cs @@ -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/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.Infrastructure/Examine/DeliveryApiContentIndexPopulator.cs b/src/Umbraco.Infrastructure/Examine/DeliveryApiContentIndexPopulator.cs index 26e4491369..91bd3dba26 100644 --- a/src/Umbraco.Infrastructure/Examine/DeliveryApiContentIndexPopulator.cs +++ b/src/Umbraco.Infrastructure/Examine/DeliveryApiContentIndexPopulator.cs @@ -1,9 +1,12 @@ 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; @@ -12,12 +15,19 @@ public 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..bceb825898 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; @@ -12,12 +14,19 @@ public class DeliveryApiContentIndexValueSetBuilder : IDeliveryApiContentIndexVa 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); } /// @@ -49,11 +58,19 @@ public class DeliveryApiContentIndexValueSetBuilder : IDeliveryApiContentIndexVa 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) From d72eb2310298bf53b950f2f75d28f2c789ab886b Mon Sep 17 00:00:00 2001 From: Kenn Jacobsen Date: Thu, 27 Apr 2023 13:32:15 +0200 Subject: [PATCH 11/43] Handle unroutable published content (#14166) Co-authored-by: Elitsa --- .../DeliveryApi/ApiContentRouteBuilder.cs | 20 +++- .../DeliveryApi/ContentBuilderTests.cs | 2 +- .../ContentPickerValueConverterTests.cs | 2 +- .../DeliveryApi/ContentRouteBuilderTests.cs | 96 ++++++++++++++----- .../MultiNodeTreePickerValueConverterTests.cs | 2 +- .../MultiUrlPickerValueConverterTests.cs | 3 +- .../OutputExpansionStrategyTests.cs | 2 +- 7 files changed, 95 insertions(+), 32 deletions(-) diff --git a/src/Umbraco.Core/DeliveryApi/ApiContentRouteBuilder.cs b/src/Umbraco.Core/DeliveryApi/ApiContentRouteBuilder.cs index 7fe6aec063..e045ec9d75 100644 --- a/src/Umbraco.Core/DeliveryApi/ApiContentRouteBuilder.cs +++ b/src/Umbraco.Core/DeliveryApi/ApiContentRouteBuilder.cs @@ -2,6 +2,7 @@ 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; @@ -12,11 +13,17 @@ public 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/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/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/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()); } From ca5c3c240a806bc778a80b20402c9bc431b0b203 Mon Sep 17 00:00:00 2001 From: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com> Date: Thu, 27 Apr 2023 19:32:05 +0200 Subject: [PATCH 12/43] Delivery API: Apply start-item in the base querying request (#14168) * Taking into account the start item when no "fetch" selector is present * Fix spacing * Get rid of extra DefaultSelect method * Remove comment for default selector * Apply default sorting directly in HandleSorting() * Get rid of nesting conditional logic --- .../Services/ApiContentQueryService.cs | 56 +++++++++++-------- 1 file changed, 34 insertions(+), 22 deletions(-) diff --git a/src/Umbraco.Cms.Api.Delivery/Services/ApiContentQueryService.cs b/src/Umbraco.Cms.Api.Delivery/Services/ApiContentQueryService.cs index 00683e2213..b8cbd71b19 100644 --- a/src/Umbraco.Cms.Api.Delivery/Services/ApiContentQueryService.cs +++ b/src/Umbraco.Cms.Api.Delivery/Services/ApiContentQueryService.cs @@ -1,8 +1,11 @@ using Examine; using Examine.Search; +using Umbraco.Cms.Api.Delivery.Indexing.Selectors; using Umbraco.Cms.Api.Delivery.Indexing.Sorts; using Umbraco.Cms.Core; using Umbraco.Cms.Core.DeliveryApi; +using Umbraco.Cms.Core.Models.PublishedContent; +using Umbraco.Cms.Infrastructure.Examine; using Umbraco.New.Cms.Core.Models; namespace Umbraco.Cms.Api.Delivery.Services; @@ -10,6 +13,7 @@ namespace Umbraco.Cms.Api.Delivery.Services; internal sealed class ApiContentQueryService : IApiContentQueryService // Examine-specific implementation - can be swapped out { private readonly IExamineManager _examineManager; + private readonly IRequestStartItemProviderAccessor _requestStartItemProviderAccessor; private readonly SelectorHandlerCollection _selectorHandlers; private readonly FilterHandlerCollection _filterHandlers; private readonly SortHandlerCollection _sortHandlers; @@ -17,11 +21,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; @@ -56,9 +62,9 @@ internal sealed class ApiContentQueryService : IApiContentQueryService // Examin HandleFiltering(filters, queryOperation); // Handle Sorting - IOrdering? sortQuery = HandleSorting(sorts, queryOperation); + IOrdering sortQuery = HandleSorting(sorts, queryOperation); - ISearchResults? results = (sortQuery ?? DefaultSort(queryOperation))?.Execute(QueryOptions.SkipTake(skip, take)); + ISearchResults? results = sortQuery.Execute(QueryOptions.SkipTake(skip, take)); if (results is null) { @@ -73,7 +79,8 @@ internal sealed class ApiContentQueryService : IApiContentQueryService // Examin private IBooleanOperation? HandleSelector(string? fetch, IQuery baseQuery) { - IBooleanOperation? queryOperation; + string? fieldName = null; + string? fieldValue = null; if (fetch is not null) { @@ -85,20 +92,29 @@ 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) @@ -139,7 +155,7 @@ internal sealed class ApiContentQueryService : IApiContentQueryService // Examin } } - private IOrdering? HandleSorting(IEnumerable sorts, IBooleanOperation queryCriteria) + private IOrdering HandleSorting(IEnumerable sorts, IBooleanOperation queryCriteria) { IOrdering? orderingQuery = null; @@ -170,13 +186,9 @@ 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); + return orderingQuery ?? // Apply default sorting (left-aligning the content tree) if no valid sort query params + queryCriteria + .OrderBy(new SortableField(PathSortIndexer.FieldName, SortType.String)) + .OrderBy(new SortableField(SortOrderSortIndexer.FieldName, SortType.Int)); } } From 376c0bf7ba8673633b7285f0dfaee06df3eb2746 Mon Sep 17 00:00:00 2001 From: Kenn Jacobsen Date: Fri, 28 Apr 2023 09:46:28 +0200 Subject: [PATCH 13/43] Update the delivery API content index at un/publish (#14175) * Update the delivery API content index at un/publish * Make the query service use "itemId" instead of "id" when extracting GUIDs + only fetch that single field rather than all fields * Simplify the code a little * Making AncestorsSelectorIndexer sealed --------- Co-authored-by: Elitsa --- .../Selectors/AncestorsSelectorIndexer.cs | 17 +++++ .../Querying/Selectors/AncestorsSelector.cs | 5 +- .../Services/ApiContentQueryService.cs | 18 +++--- .../DeliveryApiContentIndex.cs | 11 +++- .../UmbracoContentIndex.cs | 46 +------------- .../UmbracoContentIndexBase.cs | 63 +++++++++++++++++++ ...ryApiContentIndexFieldDefinitionBuilder.cs | 5 +- .../DeliveryApiContentIndexValueSetBuilder.cs | 8 ++- .../Examine/ExamineUmbracoIndexingHandler.cs | 19 +++++- 9 files changed, 131 insertions(+), 61 deletions(-) create mode 100644 src/Umbraco.Cms.Api.Delivery/Indexing/Selectors/AncestorsSelectorIndexer.cs create mode 100644 src/Umbraco.Examine.Lucene/UmbracoContentIndexBase.cs 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/Querying/Selectors/AncestorsSelector.cs b/src/Umbraco.Cms.Api.Delivery/Querying/Selectors/AncestorsSelector.cs index dc89d0cdad..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; @@ -33,7 +34,7 @@ public 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 @@ public 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/Services/ApiContentQueryService.cs b/src/Umbraco.Cms.Api.Delivery/Services/ApiContentQueryService.cs index b8cbd71b19..7a6a0181e8 100644 --- a/src/Umbraco.Cms.Api.Delivery/Services/ApiContentQueryService.cs +++ b/src/Umbraco.Cms.Api.Delivery/Services/ApiContentQueryService.cs @@ -18,6 +18,7 @@ internal sealed class ApiContentQueryService : IApiContentQueryService // Examin private readonly FilterHandlerCollection _filterHandlers; private readonly SortHandlerCollection _sortHandlers; private readonly string _fallbackGuidValue; + private readonly ISet _itemIdOnlyFieldSet = new HashSet { "itemId" }; public ApiContentQueryService( IExamineManager examineManager, @@ -62,19 +63,22 @@ internal sealed class ApiContentQueryService : IApiContentQueryService // Examin HandleFiltering(filters, queryOperation); // Handle Sorting - IOrdering sortQuery = HandleSorting(sorts, queryOperation); + IOrdering sortQuery = HandleSorting(sorts, queryOperation).SelectFields(_itemIdOnlyFieldSet); - ISearchResults? results = sortQuery.Execute(QueryOptions.SkipTake(skip, take)); + ISearchResults? results = sortQuery + .SelectFields(_itemIdOnlyFieldSet) + .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); - } + + Guid[] items = results + .Where(r => r.Values.ContainsKey("itemId")) + .Select(r => Guid.Parse(r.Values["itemId"])) + .ToArray(); + return new PagedModel(results.TotalItemCount, items); } private IBooleanOperation? HandleSelector(string? fetch, IQuery baseQuery) 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/Examine/DeliveryApiContentIndexFieldDefinitionBuilder.cs b/src/Umbraco.Infrastructure/Examine/DeliveryApiContentIndexFieldDefinitionBuilder.cs index 6179cd1d80..8b4094f493 100644 --- a/src/Umbraco.Infrastructure/Examine/DeliveryApiContentIndexFieldDefinitionBuilder.cs +++ b/src/Umbraco.Infrastructure/Examine/DeliveryApiContentIndexFieldDefinitionBuilder.cs @@ -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/DeliveryApiContentIndexValueSetBuilder.cs b/src/Umbraco.Infrastructure/Examine/DeliveryApiContentIndexValueSetBuilder.cs index bceb825898..8b62a8507d 100644 --- a/src/Umbraco.Infrastructure/Examine/DeliveryApiContentIndexValueSetBuilder.cs +++ b/src/Umbraco.Infrastructure/Examine/DeliveryApiContentIndexValueSetBuilder.cs @@ -37,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) @@ -52,7 +53,8 @@ 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); } } 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; }); } From fc3f342906ea69e09852a2cfeb195e6f6339e423 Mon Sep 17 00:00:00 2001 From: Kenn Jacobsen Date: Fri, 28 Apr 2023 11:14:50 +0200 Subject: [PATCH 14/43] Add sort handlers for create and update date (#14178) * Add sort handlers for create and update date * Make things sealed * Update the field names --------- Co-authored-by: Elitsa --- .../Indexing/Sorts/CreateDateSortIndexer.cs | 15 +++++++++++ .../Indexing/Sorts/UpdateDateSortIndexer.cs | 15 +++++++++++ .../Querying/Filters/NameFilter.cs | 3 ++- .../Querying/Sorts/CreateDateSort.cs | 27 +++++++++++++++++++ .../Querying/Sorts/UpdateDateSort.cs | 27 +++++++++++++++++++ 5 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 src/Umbraco.Cms.Api.Delivery/Indexing/Sorts/CreateDateSortIndexer.cs create mode 100644 src/Umbraco.Cms.Api.Delivery/Indexing/Sorts/UpdateDateSortIndexer.cs create mode 100644 src/Umbraco.Cms.Api.Delivery/Querying/Sorts/CreateDateSort.cs create mode 100644 src/Umbraco.Cms.Api.Delivery/Querying/Sorts/UpdateDateSort.cs diff --git a/src/Umbraco.Cms.Api.Delivery/Indexing/Sorts/CreateDateSortIndexer.cs b/src/Umbraco.Cms.Api.Delivery/Indexing/Sorts/CreateDateSortIndexer.cs new file mode 100644 index 0000000000..2d16ccb66e --- /dev/null +++ b/src/Umbraco.Cms.Api.Delivery/Indexing/Sorts/CreateDateSortIndexer.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 CreateDateSortIndexer : IContentIndexHandler +{ + internal const string FieldName = "createDate"; + + public IEnumerable GetFieldValues(IContent content) + => new[] { new IndexFieldValue { FieldName = FieldName, Value = content.CreateDate } }; + + public IEnumerable GetFields() + => new[] { new IndexField { FieldName = FieldName, FieldType = FieldType.Date } }; +} 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/Querying/Filters/NameFilter.cs b/src/Umbraco.Cms.Api.Delivery/Querying/Filters/NameFilter.cs index fc9676d2b2..40733de7f0 100644 --- a/src/Umbraco.Cms.Api.Delivery/Querying/Filters/NameFilter.cs +++ b/src/Umbraco.Cms.Api.Delivery/Querying/Filters/NameFilter.cs @@ -1,3 +1,4 @@ +using Umbraco.Cms.Api.Delivery.Indexing.Sorts; using Umbraco.Cms.Core.DeliveryApi; namespace Umbraco.Cms.Api.Delivery.Querying.Filters; @@ -17,7 +18,7 @@ public 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/Sorts/CreateDateSort.cs b/src/Umbraco.Cms.Api.Delivery/Querying/Sorts/CreateDateSort.cs new file mode 100644 index 0000000000..f04b060810 --- /dev/null +++ b/src/Umbraco.Cms.Api.Delivery/Querying/Sorts/CreateDateSort.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 CreateDateSort : ISortHandler +{ + private const string SortOptionSpecifier = "createDate:"; + + /// + 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 = CreateDateSortIndexer.FieldName, + Direction = sortDirection.StartsWith("asc") ? Direction.Ascending : Direction.Descending, + FieldType = FieldType.Date + }; + } +} 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 + }; + } +} From 2aa9ceab1a8e6c03da511db938de4041962d6101 Mon Sep 17 00:00:00 2001 From: Lucas Bach Bisgaard Date: Fri, 28 Apr 2023 16:37:22 +0200 Subject: [PATCH 15/43] Add member system fields to ListView (#14069) * Add member system fields to ListView * Small fix * Add sort options for new systemfield for members. --------- Co-authored-by: Lucas Bach Bisgaard --- .../Models/ContentEditing/MemberBasic.cs | 18 +++++ .../Implement/MemberRepository.cs | 30 ++++++++ .../Mapping/MemberMapDefinition.cs | 6 ++ .../includeproperties.prevalues.controller.js | 68 ++++++++----------- .../listview/listview.controller.js | 20 +++++- .../listview/sortby.prevalues.controller.js | 8 ++- 6 files changed, 107 insertions(+), 43 deletions(-) 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.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.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.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) { From a3160fe0228b656764813cdf5324096f6fedb5a5 Mon Sep 17 00:00:00 2001 From: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com> Date: Tue, 2 May 2023 07:37:59 +0200 Subject: [PATCH 16/43] Move relation mapping (#14153) Co-authored-by: Zeegaan --- .../DependencyInjection/MappingBuilderExtensions.cs | 2 -- .../DependencyInjection/UmbracoBuilder.MappingProfiles.cs | 2 ++ .../Mapping}/RelationModelMapDefinition.cs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) rename src/{Umbraco.New.Cms.Infrastructure/Persistence/Mappers => Umbraco.Infrastructure/Mapping}/RelationModelMapDefinition.cs (94%) diff --git a/src/Umbraco.Cms.ManagementApi/DependencyInjection/MappingBuilderExtensions.cs b/src/Umbraco.Cms.ManagementApi/DependencyInjection/MappingBuilderExtensions.cs index 109d9a9f7c..298fc0090a 100644 --- a/src/Umbraco.Cms.ManagementApi/DependencyInjection/MappingBuilderExtensions.cs +++ b/src/Umbraco.Cms.ManagementApi/DependencyInjection/MappingBuilderExtensions.cs @@ -6,7 +6,6 @@ using Umbraco.Cms.ManagementApi.Mapping.Installer; using Umbraco.Cms.ManagementApi.Mapping.Languages; using Umbraco.Cms.ManagementApi.Mapping.Relation; using Umbraco.Cms.ManagementApi.Mapping.TrackedReferences; -using Umbraco.New.Cms.Infrastructure.Persistence.Mappers; namespace Umbraco.Cms.ManagementApi.DependencyInjection; @@ -17,7 +16,6 @@ public static class MappingBuilderExtensions builder.WithCollectionBuilder() .Add() .Add() - .Add() .Add() .Add() .Add() 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.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 44dfc3bd4a..3766668582 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 { From 367e110681f804b0d5faaae1e138ee2d52c51c2b Mon Sep 17 00:00:00 2001 From: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com> Date: Tue, 2 May 2023 07:37:59 +0200 Subject: [PATCH 17/43] Move relation mapping (#14153) Co-authored-by: Zeegaan --- .../DependencyInjection/MappingBuilderExtensions.cs | 2 -- .../DependencyInjection/UmbracoBuilder.MappingProfiles.cs | 2 ++ .../Mapping}/RelationModelMapDefinition.cs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) rename src/{Umbraco.New.Cms.Infrastructure/Persistence/Mappers => Umbraco.Infrastructure/Mapping}/RelationModelMapDefinition.cs (94%) diff --git a/src/Umbraco.Cms.ManagementApi/DependencyInjection/MappingBuilderExtensions.cs b/src/Umbraco.Cms.ManagementApi/DependencyInjection/MappingBuilderExtensions.cs index 109d9a9f7c..298fc0090a 100644 --- a/src/Umbraco.Cms.ManagementApi/DependencyInjection/MappingBuilderExtensions.cs +++ b/src/Umbraco.Cms.ManagementApi/DependencyInjection/MappingBuilderExtensions.cs @@ -6,7 +6,6 @@ using Umbraco.Cms.ManagementApi.Mapping.Installer; using Umbraco.Cms.ManagementApi.Mapping.Languages; using Umbraco.Cms.ManagementApi.Mapping.Relation; using Umbraco.Cms.ManagementApi.Mapping.TrackedReferences; -using Umbraco.New.Cms.Infrastructure.Persistence.Mappers; namespace Umbraco.Cms.ManagementApi.DependencyInjection; @@ -17,7 +16,6 @@ public static class MappingBuilderExtensions builder.WithCollectionBuilder() .Add() .Add() - .Add() .Add() .Add() .Add() 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.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 44dfc3bd4a..3766668582 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 { From 3caa2a3ce25f318daa44dff1634478d63f46b392 Mon Sep 17 00:00:00 2001 From: Ronald Barendse Date: Tue, 2 May 2023 09:46:43 +0200 Subject: [PATCH 18/43] Add DynamicRequestCultureProviderBase and improve locking (#14064) --- .../Security/AuthenticationExtensions.cs | 40 +++++++-- .../DynamicRequestCultureProviderBase.cs | 86 +++++++++++++++++++ ...mbracoBackOfficeIdentityCultureProvider.cs | 52 +++-------- .../UmbracoPublishedContentCultureProvider.cs | 64 +++----------- .../UmbracoRequestLocalizationOptions.cs | 14 +-- 5 files changed, 150 insertions(+), 106 deletions(-) create mode 100644 src/Umbraco.Web.Common/Localization/DynamicRequestCultureProviderBase.cs 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.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)); From 7df5c9c212185bf50f27aa348e3c3698cc97af57 Mon Sep 17 00:00:00 2001 From: Anders Brohus Date: Tue, 2 May 2023 11:13:47 +0200 Subject: [PATCH 19/43] Fixing danish typos (#14184) * Fixed typo * Fixed another typo * Removed space from translation --- src/Umbraco.Core/EmbeddedResources/Lang/da.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 From 822febb8e85e13c72a8cddd09ce76104d6039b5e Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Wed, 3 May 2023 08:07:04 +0200 Subject: [PATCH 20/43] update @umbraco-ui/uui to 1.2.1 (#14186) --- src/Umbraco.Web.UI.Client/package-lock.json | 1994 +++++++++++-------- src/Umbraco.Web.UI.Client/package.json | 4 +- 2 files changed, 1120 insertions(+), 878 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index 0fb7c32284..fc4f86d25b 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -7,8 +7,8 @@ "name": "ui", "dependencies": { "@microsoft/signalr": "6.0.9", - "@umbraco-ui/uui": "1.0.1", - "@umbraco-ui/uui-css": "1.0.0", + "@umbraco-ui/uui": "1.2.1", + "@umbraco-ui/uui-css": "1.2.0", "ace-builds": "1.10.1", "angular": "1.8.3", "angular-animate": "1.8.3", @@ -1857,10 +1857,18 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "node_modules/@lit-labs/ssr-dom-shim": { + "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.4.1", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.4.1.tgz", - "integrity": "sha512-qDv4851VFSaBWzpS02cXHclo40jsbAjRXnebNXpm0uVg32kCneZPo9RYVQtrTNICtZ+1wAYHu1ZtxWSWMbKrBw==" + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.1.tgz", + "integrity": "sha512-va15kYZr7KZNNPZdxONGQzpUr+4sxVu7V/VG7a8mRfPPXUyhEYj5RzXCQmGrlP3tAh0L3HHm5AjBMFYRqlM9SA==", + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.0.0" + } }, "node_modules/@microsoft/signalr": { "version": "6.0.9", @@ -1990,717 +1998,825 @@ "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.0.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui/-/uui-1.0.1.tgz", - "integrity": "sha512-OpVGx6B+iCpFK6ZMpXzBW55ETZG0TKRFtQk98OwXOK+7WHR1BfxtV/R/eM2VGA/85GY6HxYKZuNcmv7btL+NcA==", + "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.0.0", - "@umbraco-ui/uui-avatar": "1.0.0", - "@umbraco-ui/uui-avatar-group": "1.0.0", - "@umbraco-ui/uui-badge": "1.0.0", - "@umbraco-ui/uui-base": "1.0.0", - "@umbraco-ui/uui-boolean-input": "1.0.0", - "@umbraco-ui/uui-box": "1.0.0", - "@umbraco-ui/uui-breadcrumbs": "1.0.0", - "@umbraco-ui/uui-button": "1.0.0", - "@umbraco-ui/uui-button-group": "1.0.0", - "@umbraco-ui/uui-button-inline-create": "1.0.1", - "@umbraco-ui/uui-card": "1.0.0", - "@umbraco-ui/uui-card-content-node": "1.0.0", - "@umbraco-ui/uui-card-media": "1.0.0", - "@umbraco-ui/uui-card-user": "1.0.0", - "@umbraco-ui/uui-caret": "1.0.0", - "@umbraco-ui/uui-checkbox": "1.0.0", - "@umbraco-ui/uui-combobox": "1.1.0", - "@umbraco-ui/uui-combobox-list": "1.0.0", - "@umbraco-ui/uui-css": "1.0.0", - "@umbraco-ui/uui-dialog": "1.0.0", - "@umbraco-ui/uui-dialog-layout": "1.0.0", - "@umbraco-ui/uui-file-dropzone": "1.0.0", - "@umbraco-ui/uui-file-preview": "1.0.0", - "@umbraco-ui/uui-form": "1.0.0", - "@umbraco-ui/uui-form-layout-item": "1.0.0", - "@umbraco-ui/uui-form-validation-message": "1.0.0", - "@umbraco-ui/uui-icon": "1.0.0", - "@umbraco-ui/uui-icon-registry": "1.0.0", - "@umbraco-ui/uui-icon-registry-essential": "1.0.0", - "@umbraco-ui/uui-input": "1.0.0", - "@umbraco-ui/uui-input-file": "1.0.0", - "@umbraco-ui/uui-input-lock": "1.0.0", - "@umbraco-ui/uui-input-password": "1.0.0", - "@umbraco-ui/uui-keyboard-shortcut": "1.0.0", - "@umbraco-ui/uui-label": "1.0.0", - "@umbraco-ui/uui-loader": "1.0.0", - "@umbraco-ui/uui-loader-bar": "1.0.0", - "@umbraco-ui/uui-loader-circle": "1.0.0", - "@umbraco-ui/uui-menu-item": "1.0.0", - "@umbraco-ui/uui-pagination": "1.0.0", - "@umbraco-ui/uui-popover": "1.0.0", - "@umbraco-ui/uui-progress-bar": "1.0.0", - "@umbraco-ui/uui-radio": "1.0.0", - "@umbraco-ui/uui-ref": "1.0.0", - "@umbraco-ui/uui-ref-list": "1.0.0", - "@umbraco-ui/uui-ref-node": "1.0.0", - "@umbraco-ui/uui-ref-node-data-type": "1.0.0", - "@umbraco-ui/uui-ref-node-document-type": "1.0.0", - "@umbraco-ui/uui-ref-node-form": "1.0.0", - "@umbraco-ui/uui-ref-node-member": "1.0.0", - "@umbraco-ui/uui-ref-node-package": "1.0.0", - "@umbraco-ui/uui-ref-node-user": "1.0.0", - "@umbraco-ui/uui-scroll-container": "1.0.0", - "@umbraco-ui/uui-select": "1.0.0", - "@umbraco-ui/uui-slider": "1.0.0", - "@umbraco-ui/uui-symbol-expand": "1.0.0", - "@umbraco-ui/uui-symbol-file": "1.0.0", - "@umbraco-ui/uui-symbol-file-dropzone": "1.0.0", - "@umbraco-ui/uui-symbol-file-thumbnail": "1.0.0", - "@umbraco-ui/uui-symbol-folder": "1.0.0", - "@umbraco-ui/uui-symbol-lock": "1.0.0", - "@umbraco-ui/uui-symbol-more": "1.0.0", - "@umbraco-ui/uui-symbol-sort": "1.0.0", - "@umbraco-ui/uui-table": "1.0.0", - "@umbraco-ui/uui-tabs": "1.0.0", - "@umbraco-ui/uui-tag": "1.0.0", - "@umbraco-ui/uui-textarea": "1.0.0", - "@umbraco-ui/uui-toast-notification": "1.0.0", - "@umbraco-ui/uui-toast-notification-container": "1.0.0", - "@umbraco-ui/uui-toast-notification-layout": "1.0.0", - "@umbraco-ui/uui-toggle": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-action-bar/-/uui-action-bar-1.0.0.tgz", - "integrity": "sha512-YLZHjT2S7cSBGdjdcxORrW0s6qjRBgIun3XKPdBHQU8ihfdd3w/hxrr9Ux4BNsXYcadT0O8at1gEM2Ny8CxWkg==", + "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.0.0", - "@umbraco-ui/uui-button-group": "1.0.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-button-group": "1.2.1" } }, "node_modules/@umbraco-ui/uui-avatar": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar/-/uui-avatar-1.0.0.tgz", - "integrity": "sha512-aNYkFiKLpEXvDukU4J3o0SwJxQgvqfGKPZh+9mDbirwRLuG1JUefLy5n5pOp2dXAHUTO8WzxLTJNXB5RGnc9/Q==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-avatar-group": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar-group/-/uui-avatar-group-1.0.0.tgz", - "integrity": "sha512-IVWaDcbilL8upSd7y3MrMYyXvADvjUjBZRbUxk2bRdthTCUgJ0vpdrp6m84CP25SQjaMzGV0NkYQ7+H00ukhKw==", + "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.0.0", - "@umbraco-ui/uui-base": "1.0.0" + "@umbraco-ui/uui-avatar": "1.2.1", + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-badge": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-badge/-/uui-badge-1.0.0.tgz", - "integrity": "sha512-b2oIlWk7YbDvU2lMeBNMhYdit0P8FCM5HF6SXvNwb8pEu8z2VLs8VX1u0E7pJm/dSiKZOT0GDXm16E0CrH5siw==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-base": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-base/-/uui-base-1.0.0.tgz", - "integrity": "sha512-8AC1USDYUEN372zwGs4ksQ7utt8MiuP8mcDwnYMY5naaqT9ikNU2ObLxyvbZBe1HqbV8sc2tLW3SFNeBmQATHg==", + "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.2.8" + "lit": "^2.3.1" } }, "node_modules/@umbraco-ui/uui-boolean-input": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-boolean-input/-/uui-boolean-input-1.0.0.tgz", - "integrity": "sha512-2Y7v6Ph4rTMR8InoZPch0H7TDPW/RlC1y8bpW+XT/dA8kexw+MQ1VLikm7JrYq6OM8CuwN5lG3+NgGRL/LcsCQ==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-box": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-box/-/uui-box-1.0.0.tgz", - "integrity": "sha512-UDJYrzlY9hk32DCVJofxoTJBQXRcxr2MsHa2Wyz/R3MThgzKKW6uzZjE89jM07c8KBuuh4TfXzpnp2H/e7XPQw==", + "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.0.0", - "@umbraco-ui/uui-css": "1.0.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-css": "1.2.1" + } + }, + "node_modules/@umbraco-ui/uui-box/node_modules/@umbraco-ui/uui-css": { + "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-breadcrumbs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-breadcrumbs/-/uui-breadcrumbs-1.0.0.tgz", - "integrity": "sha512-zP2hn+bnxSNayLE9Akd4TEFkK/pf97ed+bWtEX476fw3yYuES3ftdZlZOt8owOr0sa/RpsURunY88LTlV5ojPg==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-button": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button/-/uui-button-1.0.0.tgz", - "integrity": "sha512-inZIxSnWhBFIUhQEXwTD6Wc5F8zfax0prkXoqf2fUKKo+hoWtroxh8Itgv0/oXKlXxujOHFqtWEaUaUr9e7+nQ==", + "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.0.0", - "@umbraco-ui/uui-icon-registry-essential": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-group/-/uui-button-group-1.0.0.tgz", - "integrity": "sha512-2tK+Q6m7j4/pKOPHG/GG9dAHNA1l44xn6OVC1xCLgfrEBRReBj0bvo9hRDnJsA9TKKc9mkrTwhRMffJKP14upg==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-button-inline-create": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-inline-create/-/uui-button-inline-create-1.0.1.tgz", - "integrity": "sha512-+V3anQI8WPT/5TrQ2P5X1fQw21urMB3cpP6/PnskVQr29Ql36XTmRZg5M6b3aaZ+/66jlyfnPhDkYodv4dqgfg==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-card": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card/-/uui-card-1.0.0.tgz", - "integrity": "sha512-Pa2SUGbNHY98M2SvccXoJ21yxSIxKdyhcUBJoL2Nk1BS3NfT0g0KFRYyRBnQF1RUb3rZr2S6xu8Ru7ECXdGE7Q==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-card-content-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-content-node/-/uui-card-content-node-1.0.0.tgz", - "integrity": "sha512-H+Kw82/ZuISd85g/2es8vvcEl9Am63idU/Qvn/CALkPEkLHVQxbB80zWsBzCMND01ORu4X2KFxDruVXPexbyIA==", + "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.0.0", - "@umbraco-ui/uui-card": "1.0.0", - "@umbraco-ui/uui-icon": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-media/-/uui-card-media-1.0.0.tgz", - "integrity": "sha512-NeAy+osJJrq0oxp8t11JroF9DFk5Wo3WV/5BNXw5JnE4OnSH4lpHvJPmioEyf2cVjNZEze41TyzaZ42NlN2LHA==", + "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.0.0", - "@umbraco-ui/uui-card": "1.0.0", - "@umbraco-ui/uui-symbol-file": "1.0.0", - "@umbraco-ui/uui-symbol-folder": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-user/-/uui-card-user-1.0.0.tgz", - "integrity": "sha512-nwQPIYWlTvrBpPvZLFyfqARLOgSVnnoQrUY6joNdX585Q0PZPVfTZhGTuAPJ9KhZ9cjqoY9Yh3iZgm3FNb8gNQ==", + "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.0.0", - "@umbraco-ui/uui-base": "1.0.0", - "@umbraco-ui/uui-card": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-caret/-/uui-caret-1.0.0.tgz", - "integrity": "sha512-o/Ys4AlOyiMSEHH0F0gh5+uiY/7GL2ZbxSCq+NznebapfKlxxyAi7qNrZo3MuG2cUpfEAoQrGSHs47CRaam3fA==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-checkbox": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-checkbox/-/uui-checkbox-1.0.0.tgz", - "integrity": "sha512-x8uGRQZ0S7uVSdnLa1tqVv3uEvZSrzTuBLkkV4sjQGL3B7oNLmKyrMEXep0WVAMkholRBHI7XZOIt4KyPPq/QA==", + "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.0.0", - "@umbraco-ui/uui-boolean-input": "1.0.0", - "@umbraco-ui/uui-icon-registry-essential": "1.0.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.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox/-/uui-combobox-1.1.0.tgz", - "integrity": "sha512-yIlWF9VCjgfugjzUubShShMg2Lgfjl1/NSevjiMmabh9bR3QWWBTJt1Z6bocMqhf7dznsJjQkSeSwdeSPnbOHA==", + "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.0.0", - "@umbraco-ui/uui-button": "1.0.0", - "@umbraco-ui/uui-combobox-list": "1.0.0", - "@umbraco-ui/uui-icon": "1.0.0", - "@umbraco-ui/uui-scroll-container": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox-list/-/uui-combobox-list-1.0.0.tgz", - "integrity": "sha512-1DbfM5w/rclqqeiIyfeTgLLFpM4yNGqx5AQbRpUvg3VV+u9PrL0jc860VHH4moBSoyO/I9dWMRuODhoMVV9Y/g==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-css": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-css/-/uui-css-1.0.0.tgz", - "integrity": "sha512-PiK9umjoUORVtYFXRCL1CySSDJbJFxx96voXuW+0R9Fd8NUsYt2AsfoerH0m9MBJoY0ofQhvu1e4UOfU61Xkgg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-css/-/uui-css-1.2.0.tgz", + "integrity": "sha512-HYNHqXgu3aS7FxRMjnhxGtThP5Brp/EXh8rY+qv0Vdy1F5BayWL6Hwb/8pe1OLHXhEJK5od65AdB2tHpkLYL5g==", "dependencies": { "lit": "^2.2.2" } }, "node_modules/@umbraco-ui/uui-dialog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog/-/uui-dialog-1.0.0.tgz", - "integrity": "sha512-Dnwj2YyEbgiLpG4tQPzX+YO9+AwMoNwK6eFF9CzF4pS0nG5PhX4zTczvr2AWdOWHL5YmzIMgNAXJaenF+8FwYA==", + "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.0.0", - "@umbraco-ui/uui-css": "1.0.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-css": "1.2.1" } }, "node_modules/@umbraco-ui/uui-dialog-layout": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog-layout/-/uui-dialog-layout-1.0.0.tgz", - "integrity": "sha512-i/ney/ouoqiELUVUrhijkcd+HKdVwhdo+2YyZr5R17tbYT+GKBBb7VH3/aE1RBSohtH+9B/xrq0LubVqPkk2Qw==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" + } + }, + "node_modules/@umbraco-ui/uui-dialog/node_modules/@umbraco-ui/uui-css": { + "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-file-dropzone": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-dropzone/-/uui-file-dropzone-1.0.0.tgz", - "integrity": "sha512-XCBisuJL/NPsHjLhJpcBfiSLJqZilkGeomxk7BEMtAWFzWUuJZQkn/+W1MemSXmEC0xzEgNVpIfQNFjZi4glTA==", + "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.0.0", - "@umbraco-ui/uui-symbol-file-dropzone": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-preview/-/uui-file-preview-1.0.0.tgz", - "integrity": "sha512-WaDD8T8NVJpzkwkuJBAEozM2n9T1VtBw8VjfH6orBFt+ndVnRhfEQBwiVml5FVNqn8LSNNmrkHsZkClxvoLEYg==", + "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.0.0", - "@umbraco-ui/uui-symbol-file": "1.0.0", - "@umbraco-ui/uui-symbol-file-thumbnail": "1.0.0", - "@umbraco-ui/uui-symbol-folder": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form/-/uui-form-1.0.0.tgz", - "integrity": "sha512-kTowxBT3+h1rD8gTyTDkzZIocLVGKcqoNTkR1Ca84cmTKQSFMvuMvFbbhn8mkXNLhswv8r6EAt3b8zWOy3tMXQ==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-form-layout-item": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-layout-item/-/uui-form-layout-item-1.0.0.tgz", - "integrity": "sha512-TP35z3rOloKfIYVvQq/4cK/CX4UuK/8Cl1Sk1YNlh4g4na3RnageJIfXdU0LUs+crLE/4T8pq5gzjI6So22d3g==", + "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.0.0", - "@umbraco-ui/uui-form-validation-message": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-validation-message/-/uui-form-validation-message-1.0.0.tgz", - "integrity": "sha512-IqYFfDwvuMJZroP5Fiz2VIitM61qq2XNCXUJ8xXxwLWj1Q3v3Mrxv9vJ+5G6CBJnSp4/gekfQpfMNhnCBOvxZA==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-icon": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon/-/uui-icon-1.0.0.tgz", - "integrity": "sha512-OYj9kcsfiuAhQ0yAoQtLZKWWF6cknAoXnOZYgwcuopfRG6YxIQS3rukSNz4AsoBc6Mp53TV5TB4EGEBZOXvISA==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-icon-registry": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry/-/uui-icon-registry-1.0.0.tgz", - "integrity": "sha512-2zj29JsoJF3FmRdTt8xaSebgs2WtSGxAglEOjM78qGGOlafSkyYelzuRGA0NP47HOH3MKp3vzL1Z1AQ2Hr31iw==", + "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.0.0", - "@umbraco-ui/uui-icon": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry-essential/-/uui-icon-registry-essential-1.0.0.tgz", - "integrity": "sha512-1H2liA9/uyYqlR4E44RBTZiOlyrKgCSaJT6ytNiaBo6Br8kWqWTeDXBXngttGENQQ++eBKiUnLDVJC91xbPXug==", + "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.0.0", - "@umbraco-ui/uui-icon-registry": "1.0.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-icon-registry": "1.2.1" } }, "node_modules/@umbraco-ui/uui-input": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input/-/uui-input-1.0.0.tgz", - "integrity": "sha512-gNsE5FFvxr67gT2nFlHhlF4OtxSbA7JLvSmNTvCHtEToc6O6iU/CuepRJeoczrOAc7MvAWBx2x39/mhnIXNldA==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-input-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-file/-/uui-input-file-1.0.0.tgz", - "integrity": "sha512-y9BZuhaluIBcpjXNj9xZcTNZHg+rYvUlum7os/uyjo7TZQNEitIveEkoemIWy7tpH3/Dt3ql8XMxGa8Mulq9kA==", + "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.0.0", - "@umbraco-ui/uui-base": "1.0.0", - "@umbraco-ui/uui-button": "1.0.0", - "@umbraco-ui/uui-file-dropzone": "1.0.0", - "@umbraco-ui/uui-icon": "1.0.0", - "@umbraco-ui/uui-icon-registry-essential": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-lock/-/uui-input-lock-1.0.0.tgz", - "integrity": "sha512-AHKJl5rvVEsvoRWsrC9rRACUjjP7Zz9veJQd0LDUm21DrDOaWF6cw3lljqKr2bex6KhoF+W4hyV9PDDPPx3umA==", + "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.0.0", - "@umbraco-ui/uui-button": "1.0.0", - "@umbraco-ui/uui-icon": "1.0.0", - "@umbraco-ui/uui-input": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-password/-/uui-input-password-1.0.0.tgz", - "integrity": "sha512-oJPUesd3mNU26ZEqLy3LQxUndMk3Qa8Yn/TTnCz4itGnF1rl2FqNcLwrRhUnTPKU9g5VI+9xC2rMYQxNPjDdmQ==", + "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.0.0", - "@umbraco-ui/uui-icon-registry-essential": "1.0.0", - "@umbraco-ui/uui-input": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-keyboard-shortcut/-/uui-keyboard-shortcut-1.0.0.tgz", - "integrity": "sha512-7QZugPgLsLVFNJPg/jnPDyhtTK2WqNEKxdUQ9Hbv2RDVBJbuprnSthzUMKpDeu7+IV1UNDZd3oxSUOpfgLV/EQ==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-label": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-label/-/uui-label-1.0.0.tgz", - "integrity": "sha512-Kp3T8Mcjvak8nROPZwG6N81haDTSZfMH0FGrpWmwKJyCTEbtftrI3XqbsgCiSElikDVQJfmE/tA+l2zz9Wsoyw==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-loader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader/-/uui-loader-1.0.0.tgz", - "integrity": "sha512-5IXyi2lTl23KXxd+BcHUKLxqApanmp/h2ocDGo45P2OalajgagMottHFQ8Xj05KNLmMyOtv5kT8/Z8Vvdrcn2w==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-loader-bar": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-bar/-/uui-loader-bar-1.0.0.tgz", - "integrity": "sha512-r4z8VLtYJw/l4af37w9NQr1pNo2ZnWLtZyEVhNWafLQmXZzPSBpMd5Z62kzGQx6dU7FoRT0mgsbjfVQcYK+oJg==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-loader-circle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-circle/-/uui-loader-circle-1.0.0.tgz", - "integrity": "sha512-dLL5+yPlChpj9euvCwq+hPDmMu2yCF+PeRvoDdQXxfgqCqhk144VIgiknErTByfUpCot9PApOnquwiIpdbzu6w==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-menu-item": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-menu-item/-/uui-menu-item-1.0.0.tgz", - "integrity": "sha512-dgxl/bKbjH2YykrpKc/qk4AtzdwD/xUPtFB/dj9b+JJnNyam8LyZEYgZVVveayCETruxN2FVUMIaf1xLaswRVw==", + "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.0.0", - "@umbraco-ui/uui-loader-bar": "1.0.0", - "@umbraco-ui/uui-symbol-expand": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-pagination/-/uui-pagination-1.0.0.tgz", - "integrity": "sha512-Io3zO/BHHSHxNu0vUFJ50n4Pb/b+3m2YHfigfjUuAcN+68NxnOtuUziMCCoJnl/eri2f6/ha5HI5nVcm5jEziQ==", + "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.0.0", - "@umbraco-ui/uui-button": "1.0.0", - "@umbraco-ui/uui-button-group": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-popover/-/uui-popover-1.0.0.tgz", - "integrity": "sha512-kudJMrSOnEP7hIhNgPVVjoG13UU+ouNNYD4mat4lJ3b5CdjOWQLlUxlSEVQFMMieVHW0O3tO6tDMdyUhecEsCg==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-progress-bar": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-progress-bar/-/uui-progress-bar-1.0.0.tgz", - "integrity": "sha512-+lPn2U82UVySLz6hGZ6u1C3Wa4F4/EiGWYiSMrZs1YDRMiXfD5dtViLdrpa24VuWk9kr5E7VR8XN/d7H+ns3pg==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-radio": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-radio/-/uui-radio-1.0.0.tgz", - "integrity": "sha512-iD3l2JacoAkZvyphxZqp7+IU80kLwSDfCewTr3ntlGlpCuSXOJHA/ppz8hAcLIngTaijAFjqdufYq3wbOBMgqQ==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" + } + }, + "node_modules/@umbraco-ui/uui-range-slider": { + "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.2.1" } }, "node_modules/@umbraco-ui/uui-ref": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref/-/uui-ref-1.0.0.tgz", - "integrity": "sha512-9oMLXn64VU8JRhTW9TM9xTNeLMYezmHh2mCdBKw7khYVL9Jss8tC6Is5WsQ52ocUPB5RTVyF7pua1ByYFhgghQ==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-ref-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-list/-/uui-ref-list-1.0.0.tgz", - "integrity": "sha512-lX+JK/WoD2m60ehZC7od/9EtCIYhvTYEIUOM7pcR+3hFOnEph1JprQjoRUwcrJmAe9qXCsaDiQ3IA7Cp84eMOQ==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-ref-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node/-/uui-ref-node-1.0.0.tgz", - "integrity": "sha512-2InpH96gVpdMeT8i70jdPvyXWb+gmmgucKhvbcuQ6zeHIrpUzdfkgjsZVPMjzJp9czDxlBSScjsXHa6QpRIffg==", + "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.0.0", - "@umbraco-ui/uui-icon": "1.0.0", - "@umbraco-ui/uui-ref": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-data-type/-/uui-ref-node-data-type-1.0.0.tgz", - "integrity": "sha512-/QDBMKAaEAUEVPajPt2fCP+YfeZvmnAg4xJdjaUb5mCS/GYoqPpkKoBa1w4iVsErPJtKdzA6QL8iyLEbcVleow==", + "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.0.0", - "@umbraco-ui/uui-ref-node": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-document-type/-/uui-ref-node-document-type-1.0.0.tgz", - "integrity": "sha512-mRm6XBQDjAb6WBXQkOUZBbAJTNjPStRNMlw+48fp9W93nMMizJwhdpqU01m93+6ADzkG7OkFGBIb88kfRXMezQ==", + "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.0.0", - "@umbraco-ui/uui-ref-node": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-form/-/uui-ref-node-form-1.0.0.tgz", - "integrity": "sha512-p1wPUVgvJ9B8ZWZLXDEduMfCq4/GyjKYsOtfxvl8hx1HvhoVWfEZmOHFg1XBdw+TTkz2ytWAsv2rPKwYDpqUEw==", + "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.0.0", - "@umbraco-ui/uui-ref-node": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-member/-/uui-ref-node-member-1.0.0.tgz", - "integrity": "sha512-M1DNGt0XSSGkzc9oiCEKupjtGlSElFlaoRI5ENGbfxdX/b66BiEq3hrCCvOf8VeCffK31Rlhaw7vXs2gCPyDPg==", + "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.0.0", - "@umbraco-ui/uui-ref-node": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-package/-/uui-ref-node-package-1.0.0.tgz", - "integrity": "sha512-Erh5q+dOfgXfhR26yM92b9qZsWcwgZ5mXr0C6LpXzYgfIe+xJ1gEFQ7IwCNKw4j+N+obgBw4ZQfnbjpW0m5ueQ==", + "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.0.0", - "@umbraco-ui/uui-ref-node": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-user/-/uui-ref-node-user-1.0.0.tgz", - "integrity": "sha512-RS0g9/7nPrzRRC8KsjPjghYY8cUQdcsj6wwOj4ketgYUO2g3mX0SaYvbwD+x1vrOYqKRG9X1btbtVD8o0iVQ0w==", + "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.0.0", - "@umbraco-ui/uui-ref-node": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-scroll-container/-/uui-scroll-container-1.0.0.tgz", - "integrity": "sha512-8P+2GG4MN7WDH80+wBLgTBpRUHoN3zMLaTlOElZyYGm21aGfu1kYzby9b+vX4ecJk6F3cEGGIqHj0jhPPdUN9Q==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-select": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-select/-/uui-select-1.0.0.tgz", - "integrity": "sha512-PRqTrxg0GV/+1CgHU8rbS+7lcaGx5W+JbyRKB5RTwrLq8eZ1F2dT4/PVtR/om23x0JDA86qarav5kcIF5KaNyw==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-slider": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-slider/-/uui-slider-1.0.0.tgz", - "integrity": "sha512-0un7TO+sP66min0eS/IjUUSdtZc2Fq5ilM0Eu9CKWWIcoS17n+AjwErINByace3zUCjuFHy5KpqlPvU183IoBA==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-symbol-expand": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-expand/-/uui-symbol-expand-1.0.0.tgz", - "integrity": "sha512-jngwZDDcshth22flb1JVywz6eCOrwQ93+ea+HBzoGDm1cwID1I9Ik8fMAXmE4XGfc+upna/p3kU9b0d/SvlU4w==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-symbol-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file/-/uui-symbol-file-1.0.0.tgz", - "integrity": "sha512-1WfNr4NbvgBpdN/TX6/vO1v6il35MgpKBW+HQMVeFwCtmotRXGaS9hcwSSN80xESdlkybrJ/H8Nq81TFq1z2qg==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-symbol-file-dropzone": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-dropzone/-/uui-symbol-file-dropzone-1.0.0.tgz", - "integrity": "sha512-xYbpcnZd+dUfq30YoMDERkQ+RZagwQ3wE2nUfC5lEdKyxEO7DedFLZYcQijj6LUAxcrlMUFkTpWmLAmmT4Ovxg==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-symbol-file-thumbnail": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-thumbnail/-/uui-symbol-file-thumbnail-1.0.0.tgz", - "integrity": "sha512-8LvS4StbUqyglw6K8ojlNuh1lLbhozz5b1UWLE/MsR8TpA9eZGuwx9CgarU4CGJlvwI6pEQcRFu4Eb0FPqvqEA==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-symbol-folder": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-folder/-/uui-symbol-folder-1.0.0.tgz", - "integrity": "sha512-AK38UMcBiA312ZHRx1+PSKo5NL2jYQxLLYo8e75GwymJ2VwE/AF08RvIJRBfmk4N21yoRxlKos1xhvBkyO6+Kw==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-symbol-lock": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-lock/-/uui-symbol-lock-1.0.0.tgz", - "integrity": "sha512-oFTfFvJk6Qiu2QrTBgz4KsCbVKC48jXO20pP1EGylVgP0AyMMWMaTJjFb5A32ifkRv77A8b9Xc0/sppUUeXXzw==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-symbol-more": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-more/-/uui-symbol-more-1.0.0.tgz", - "integrity": "sha512-Ld2hWfcJsVgEsKrfwRFl2dd4hJQw1+xF4zC5yVVNp/65e+Hv3aGSB6GsWKcj3aA0XlMOChJcUiTyi1yQ8vd4lQ==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-symbol-sort": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-sort/-/uui-symbol-sort-1.0.0.tgz", - "integrity": "sha512-Se52onHvKVOa6AOJC5W7QaTixsa2oN6RhlN+ZTxXi7wZfKG9nKDC9mcNd5OS6A35Y//0KZjVTnwtYWcTmSeJoA==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-table": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-table/-/uui-table-1.0.0.tgz", - "integrity": "sha512-BbJp6Fuyt3cemxjJRcLV299vZxg2kvJnSHLPsSYWB83xqGyuFRP+S87WmMkNa4vu7kkUlj1sWmcOtS1vD4vQkA==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-tabs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tabs/-/uui-tabs-1.0.0.tgz", - "integrity": "sha512-2EbmmzDMgC315T0b6xE7RjWCBqOUL7SRnX8JgBShN/ekiLKSPalkhnuKi1D9ZEvrC1hupwpgh8Vjt2szTU905g==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-tag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tag/-/uui-tag-1.0.0.tgz", - "integrity": "sha512-gWN+JqtTy9emyjQWJFIEtYmmO6s1GWEeBFE+HcNFdBFoksugtK8850plwUMaQOP4vaHlOxK0Qf5Cm9lVaXm7Yw==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-textarea": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-textarea/-/uui-textarea-1.0.0.tgz", - "integrity": "sha512-zoxVq5UDlGTD/aVe1fGYH3fIHYO/IjsN2FEeeVg1hAC97EzhB0Gi72XzuSJHVZFdd+JjWCr8aXmOioSbcqxFyw==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "node_modules/@umbraco-ui/uui-toast-notification": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification/-/uui-toast-notification-1.0.0.tgz", - "integrity": "sha512-5IjK92Q4awsnHGawPqKDRC+d/LOpXXPGb5IkhunogEyDtgp5Yy1EqrYS5dHkGVTR7fOFVqtVMN0pOVJCnZi3rw==", + "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.0.0", - "@umbraco-ui/uui-button": "1.0.0", - "@umbraco-ui/uui-css": "1.0.0", - "@umbraco-ui/uui-icon": "1.0.0", - "@umbraco-ui/uui-icon-registry-essential": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-container/-/uui-toast-notification-container-1.0.0.tgz", - "integrity": "sha512-XIjhBJzUF4+2eBXjNcOc232Z6FRvq7m8YNLycwE4I3C9mzWaTUiXKB7Ovt587MlqCZZUSy6XtKqkI9DV+nJIVg==", + "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.0.0", - "@umbraco-ui/uui-toast-notification": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-layout/-/uui-toast-notification-layout-1.0.0.tgz", - "integrity": "sha512-2rSHdgwmcb4V7XcKBl2pbJLfU4E1ttOONQjg4BgpFKMP1HK86snBmcRYWjIiVP6lBz1cTFq/B+PPgaQX7KITvg==", + "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.0.0", - "@umbraco-ui/uui-css": "1.0.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-css": "1.2.1" + } + }, + "node_modules/@umbraco-ui/uui-toast-notification-layout/node_modules/@umbraco-ui/uui-css": { + "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-toast-notification/node_modules/@umbraco-ui/uui-css": { + "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-toggle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toggle/-/uui-toggle-1.0.0.tgz", - "integrity": "sha512-3OgU9fP+CpnNsIn5+GSUjJoakWRIC+ziBSJC3C8Dr9ScksS5oR/d1WFNk/HsUvPh/QNZAQ6dU73CJ2xzprwgrQ==", + "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.0.0", - "@umbraco-ui/uui-boolean-input": "1.0.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-boolean-input": "1.2.1" + } + }, + "node_modules/@umbraco-ui/uui/node_modules/@umbraco-ui/uui-css": { + "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/abab": { @@ -4755,8 +4871,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", @@ -11089,28 +11204,29 @@ } }, "node_modules/lit": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/lit/-/lit-2.3.1.tgz", - "integrity": "sha512-TejktDR4mqG3qB32Y8Lm5Lye3c8SUehqz7qRsxe1PqGYL6me2Ef+jeQAEqh20BnnGncv4Yxy2njEIT0kzK1WCw==", + "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.4.0", - "lit-element": "^3.2.0", - "lit-html": "^2.3.0" + "@lit/reactive-element": "^1.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.3.1", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.3.1.tgz", - "integrity": "sha512-FyKH6LTW6aBdkfNhNSHyZTnLgJSTe5hMk7HFtc/+DcN1w74C215q8B+Cfxc2OuIEpBNcEKxgF64qL8as30FDHA==", + "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" } @@ -18403,10 +18519,18 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "@lit-labs/ssr-dom-shim": { + "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.4.1", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.4.1.tgz", - "integrity": "sha512-qDv4851VFSaBWzpS02cXHclo40jsbAjRXnebNXpm0uVg32kCneZPo9RYVQtrTNICtZ+1wAYHu1ZtxWSWMbKrBw==" + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.1.tgz", + "integrity": "sha512-va15kYZr7KZNNPZdxONGQzpUr+4sxVu7V/VG7a8mRfPPXUyhEYj5RzXCQmGrlP3tAh0L3HHm5AjBMFYRqlM9SA==", + "requires": { + "@lit-labs/ssr-dom-shim": "^1.0.0" + } }, "@microsoft/signalr": { "version": "6.0.9", @@ -18518,717 +18642,835 @@ "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.0.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui/-/uui-1.0.1.tgz", - "integrity": "sha512-OpVGx6B+iCpFK6ZMpXzBW55ETZG0TKRFtQk98OwXOK+7WHR1BfxtV/R/eM2VGA/85GY6HxYKZuNcmv7btL+NcA==", + "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.0.0", - "@umbraco-ui/uui-avatar": "1.0.0", - "@umbraco-ui/uui-avatar-group": "1.0.0", - "@umbraco-ui/uui-badge": "1.0.0", - "@umbraco-ui/uui-base": "1.0.0", - "@umbraco-ui/uui-boolean-input": "1.0.0", - "@umbraco-ui/uui-box": "1.0.0", - "@umbraco-ui/uui-breadcrumbs": "1.0.0", - "@umbraco-ui/uui-button": "1.0.0", - "@umbraco-ui/uui-button-group": "1.0.0", - "@umbraco-ui/uui-button-inline-create": "1.0.1", - "@umbraco-ui/uui-card": "1.0.0", - "@umbraco-ui/uui-card-content-node": "1.0.0", - "@umbraco-ui/uui-card-media": "1.0.0", - "@umbraco-ui/uui-card-user": "1.0.0", - "@umbraco-ui/uui-caret": "1.0.0", - "@umbraco-ui/uui-checkbox": "1.0.0", - "@umbraco-ui/uui-combobox": "1.1.0", - "@umbraco-ui/uui-combobox-list": "1.0.0", - "@umbraco-ui/uui-css": "1.0.0", - "@umbraco-ui/uui-dialog": "1.0.0", - "@umbraco-ui/uui-dialog-layout": "1.0.0", - "@umbraco-ui/uui-file-dropzone": "1.0.0", - "@umbraco-ui/uui-file-preview": "1.0.0", - "@umbraco-ui/uui-form": "1.0.0", - "@umbraco-ui/uui-form-layout-item": "1.0.0", - "@umbraco-ui/uui-form-validation-message": "1.0.0", - "@umbraco-ui/uui-icon": "1.0.0", - "@umbraco-ui/uui-icon-registry": "1.0.0", - "@umbraco-ui/uui-icon-registry-essential": "1.0.0", - "@umbraco-ui/uui-input": "1.0.0", - "@umbraco-ui/uui-input-file": "1.0.0", - "@umbraco-ui/uui-input-lock": "1.0.0", - "@umbraco-ui/uui-input-password": "1.0.0", - "@umbraco-ui/uui-keyboard-shortcut": "1.0.0", - "@umbraco-ui/uui-label": "1.0.0", - "@umbraco-ui/uui-loader": "1.0.0", - "@umbraco-ui/uui-loader-bar": "1.0.0", - "@umbraco-ui/uui-loader-circle": "1.0.0", - "@umbraco-ui/uui-menu-item": "1.0.0", - "@umbraco-ui/uui-pagination": "1.0.0", - "@umbraco-ui/uui-popover": "1.0.0", - "@umbraco-ui/uui-progress-bar": "1.0.0", - "@umbraco-ui/uui-radio": "1.0.0", - "@umbraco-ui/uui-ref": "1.0.0", - "@umbraco-ui/uui-ref-list": "1.0.0", - "@umbraco-ui/uui-ref-node": "1.0.0", - "@umbraco-ui/uui-ref-node-data-type": "1.0.0", - "@umbraco-ui/uui-ref-node-document-type": "1.0.0", - "@umbraco-ui/uui-ref-node-form": "1.0.0", - "@umbraco-ui/uui-ref-node-member": "1.0.0", - "@umbraco-ui/uui-ref-node-package": "1.0.0", - "@umbraco-ui/uui-ref-node-user": "1.0.0", - "@umbraco-ui/uui-scroll-container": "1.0.0", - "@umbraco-ui/uui-select": "1.0.0", - "@umbraco-ui/uui-slider": "1.0.0", - "@umbraco-ui/uui-symbol-expand": "1.0.0", - "@umbraco-ui/uui-symbol-file": "1.0.0", - "@umbraco-ui/uui-symbol-file-dropzone": "1.0.0", - "@umbraco-ui/uui-symbol-file-thumbnail": "1.0.0", - "@umbraco-ui/uui-symbol-folder": "1.0.0", - "@umbraco-ui/uui-symbol-lock": "1.0.0", - "@umbraco-ui/uui-symbol-more": "1.0.0", - "@umbraco-ui/uui-symbol-sort": "1.0.0", - "@umbraco-ui/uui-table": "1.0.0", - "@umbraco-ui/uui-tabs": "1.0.0", - "@umbraco-ui/uui-tag": "1.0.0", - "@umbraco-ui/uui-textarea": "1.0.0", - "@umbraco-ui/uui-toast-notification": "1.0.0", - "@umbraco-ui/uui-toast-notification-container": "1.0.0", - "@umbraco-ui/uui-toast-notification-layout": "1.0.0", - "@umbraco-ui/uui-toggle": "1.0.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" + }, + "dependencies": { + "@umbraco-ui/uui-css": { + "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-action-bar": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-action-bar/-/uui-action-bar-1.0.0.tgz", - "integrity": "sha512-YLZHjT2S7cSBGdjdcxORrW0s6qjRBgIun3XKPdBHQU8ihfdd3w/hxrr9Ux4BNsXYcadT0O8at1gEM2Ny8CxWkg==", + "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.0.0", - "@umbraco-ui/uui-button-group": "1.0.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-button-group": "1.2.1" } }, "@umbraco-ui/uui-avatar": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar/-/uui-avatar-1.0.0.tgz", - "integrity": "sha512-aNYkFiKLpEXvDukU4J3o0SwJxQgvqfGKPZh+9mDbirwRLuG1JUefLy5n5pOp2dXAHUTO8WzxLTJNXB5RGnc9/Q==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-avatar-group": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar-group/-/uui-avatar-group-1.0.0.tgz", - "integrity": "sha512-IVWaDcbilL8upSd7y3MrMYyXvADvjUjBZRbUxk2bRdthTCUgJ0vpdrp6m84CP25SQjaMzGV0NkYQ7+H00ukhKw==", + "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.0.0", - "@umbraco-ui/uui-base": "1.0.0" + "@umbraco-ui/uui-avatar": "1.2.1", + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-badge": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-badge/-/uui-badge-1.0.0.tgz", - "integrity": "sha512-b2oIlWk7YbDvU2lMeBNMhYdit0P8FCM5HF6SXvNwb8pEu8z2VLs8VX1u0E7pJm/dSiKZOT0GDXm16E0CrH5siw==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-base": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-base/-/uui-base-1.0.0.tgz", - "integrity": "sha512-8AC1USDYUEN372zwGs4ksQ7utt8MiuP8mcDwnYMY5naaqT9ikNU2ObLxyvbZBe1HqbV8sc2tLW3SFNeBmQATHg==", + "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.2.8" + "lit": "^2.3.1" } }, "@umbraco-ui/uui-boolean-input": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-boolean-input/-/uui-boolean-input-1.0.0.tgz", - "integrity": "sha512-2Y7v6Ph4rTMR8InoZPch0H7TDPW/RlC1y8bpW+XT/dA8kexw+MQ1VLikm7JrYq6OM8CuwN5lG3+NgGRL/LcsCQ==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-box": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-box/-/uui-box-1.0.0.tgz", - "integrity": "sha512-UDJYrzlY9hk32DCVJofxoTJBQXRcxr2MsHa2Wyz/R3MThgzKKW6uzZjE89jM07c8KBuuh4TfXzpnp2H/e7XPQw==", + "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.0.0", - "@umbraco-ui/uui-css": "1.0.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-css": "1.2.1" + }, + "dependencies": { + "@umbraco-ui/uui-css": { + "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-breadcrumbs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-breadcrumbs/-/uui-breadcrumbs-1.0.0.tgz", - "integrity": "sha512-zP2hn+bnxSNayLE9Akd4TEFkK/pf97ed+bWtEX476fw3yYuES3ftdZlZOt8owOr0sa/RpsURunY88LTlV5ojPg==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-button": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button/-/uui-button-1.0.0.tgz", - "integrity": "sha512-inZIxSnWhBFIUhQEXwTD6Wc5F8zfax0prkXoqf2fUKKo+hoWtroxh8Itgv0/oXKlXxujOHFqtWEaUaUr9e7+nQ==", + "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.0.0", - "@umbraco-ui/uui-icon-registry-essential": "1.0.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-icon-registry-essential": "1.2.1" } }, "@umbraco-ui/uui-button-group": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-group/-/uui-button-group-1.0.0.tgz", - "integrity": "sha512-2tK+Q6m7j4/pKOPHG/GG9dAHNA1l44xn6OVC1xCLgfrEBRReBj0bvo9hRDnJsA9TKKc9mkrTwhRMffJKP14upg==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-button-inline-create": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-inline-create/-/uui-button-inline-create-1.0.1.tgz", - "integrity": "sha512-+V3anQI8WPT/5TrQ2P5X1fQw21urMB3cpP6/PnskVQr29Ql36XTmRZg5M6b3aaZ+/66jlyfnPhDkYodv4dqgfg==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-card": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card/-/uui-card-1.0.0.tgz", - "integrity": "sha512-Pa2SUGbNHY98M2SvccXoJ21yxSIxKdyhcUBJoL2Nk1BS3NfT0g0KFRYyRBnQF1RUb3rZr2S6xu8Ru7ECXdGE7Q==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-card-content-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-content-node/-/uui-card-content-node-1.0.0.tgz", - "integrity": "sha512-H+Kw82/ZuISd85g/2es8vvcEl9Am63idU/Qvn/CALkPEkLHVQxbB80zWsBzCMND01ORu4X2KFxDruVXPexbyIA==", + "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.0.0", - "@umbraco-ui/uui-card": "1.0.0", - "@umbraco-ui/uui-icon": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-media/-/uui-card-media-1.0.0.tgz", - "integrity": "sha512-NeAy+osJJrq0oxp8t11JroF9DFk5Wo3WV/5BNXw5JnE4OnSH4lpHvJPmioEyf2cVjNZEze41TyzaZ42NlN2LHA==", + "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.0.0", - "@umbraco-ui/uui-card": "1.0.0", - "@umbraco-ui/uui-symbol-file": "1.0.0", - "@umbraco-ui/uui-symbol-folder": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-user/-/uui-card-user-1.0.0.tgz", - "integrity": "sha512-nwQPIYWlTvrBpPvZLFyfqARLOgSVnnoQrUY6joNdX585Q0PZPVfTZhGTuAPJ9KhZ9cjqoY9Yh3iZgm3FNb8gNQ==", + "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.0.0", - "@umbraco-ui/uui-base": "1.0.0", - "@umbraco-ui/uui-card": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-caret/-/uui-caret-1.0.0.tgz", - "integrity": "sha512-o/Ys4AlOyiMSEHH0F0gh5+uiY/7GL2ZbxSCq+NznebapfKlxxyAi7qNrZo3MuG2cUpfEAoQrGSHs47CRaam3fA==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-checkbox": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-checkbox/-/uui-checkbox-1.0.0.tgz", - "integrity": "sha512-x8uGRQZ0S7uVSdnLa1tqVv3uEvZSrzTuBLkkV4sjQGL3B7oNLmKyrMEXep0WVAMkholRBHI7XZOIt4KyPPq/QA==", + "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.0.0", - "@umbraco-ui/uui-boolean-input": "1.0.0", - "@umbraco-ui/uui-icon-registry-essential": "1.0.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.1.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox/-/uui-combobox-1.1.0.tgz", - "integrity": "sha512-yIlWF9VCjgfugjzUubShShMg2Lgfjl1/NSevjiMmabh9bR3QWWBTJt1Z6bocMqhf7dznsJjQkSeSwdeSPnbOHA==", + "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.0.0", - "@umbraco-ui/uui-button": "1.0.0", - "@umbraco-ui/uui-combobox-list": "1.0.0", - "@umbraco-ui/uui-icon": "1.0.0", - "@umbraco-ui/uui-scroll-container": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox-list/-/uui-combobox-list-1.0.0.tgz", - "integrity": "sha512-1DbfM5w/rclqqeiIyfeTgLLFpM4yNGqx5AQbRpUvg3VV+u9PrL0jc860VHH4moBSoyO/I9dWMRuODhoMVV9Y/g==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-css": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-css/-/uui-css-1.0.0.tgz", - "integrity": "sha512-PiK9umjoUORVtYFXRCL1CySSDJbJFxx96voXuW+0R9Fd8NUsYt2AsfoerH0m9MBJoY0ofQhvu1e4UOfU61Xkgg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-css/-/uui-css-1.2.0.tgz", + "integrity": "sha512-HYNHqXgu3aS7FxRMjnhxGtThP5Brp/EXh8rY+qv0Vdy1F5BayWL6Hwb/8pe1OLHXhEJK5od65AdB2tHpkLYL5g==", "requires": { "lit": "^2.2.2" } }, "@umbraco-ui/uui-dialog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog/-/uui-dialog-1.0.0.tgz", - "integrity": "sha512-Dnwj2YyEbgiLpG4tQPzX+YO9+AwMoNwK6eFF9CzF4pS0nG5PhX4zTczvr2AWdOWHL5YmzIMgNAXJaenF+8FwYA==", + "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.0.0", - "@umbraco-ui/uui-css": "1.0.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-css": "1.2.1" + }, + "dependencies": { + "@umbraco-ui/uui-css": { + "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-layout": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog-layout/-/uui-dialog-layout-1.0.0.tgz", - "integrity": "sha512-i/ney/ouoqiELUVUrhijkcd+HKdVwhdo+2YyZr5R17tbYT+GKBBb7VH3/aE1RBSohtH+9B/xrq0LubVqPkk2Qw==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-file-dropzone": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-dropzone/-/uui-file-dropzone-1.0.0.tgz", - "integrity": "sha512-XCBisuJL/NPsHjLhJpcBfiSLJqZilkGeomxk7BEMtAWFzWUuJZQkn/+W1MemSXmEC0xzEgNVpIfQNFjZi4glTA==", + "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.0.0", - "@umbraco-ui/uui-symbol-file-dropzone": "1.0.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-symbol-file-dropzone": "1.2.1" } }, "@umbraco-ui/uui-file-preview": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-preview/-/uui-file-preview-1.0.0.tgz", - "integrity": "sha512-WaDD8T8NVJpzkwkuJBAEozM2n9T1VtBw8VjfH6orBFt+ndVnRhfEQBwiVml5FVNqn8LSNNmrkHsZkClxvoLEYg==", + "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.0.0", - "@umbraco-ui/uui-symbol-file": "1.0.0", - "@umbraco-ui/uui-symbol-file-thumbnail": "1.0.0", - "@umbraco-ui/uui-symbol-folder": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form/-/uui-form-1.0.0.tgz", - "integrity": "sha512-kTowxBT3+h1rD8gTyTDkzZIocLVGKcqoNTkR1Ca84cmTKQSFMvuMvFbbhn8mkXNLhswv8r6EAt3b8zWOy3tMXQ==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-form-layout-item": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-layout-item/-/uui-form-layout-item-1.0.0.tgz", - "integrity": "sha512-TP35z3rOloKfIYVvQq/4cK/CX4UuK/8Cl1Sk1YNlh4g4na3RnageJIfXdU0LUs+crLE/4T8pq5gzjI6So22d3g==", + "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.0.0", - "@umbraco-ui/uui-form-validation-message": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-validation-message/-/uui-form-validation-message-1.0.0.tgz", - "integrity": "sha512-IqYFfDwvuMJZroP5Fiz2VIitM61qq2XNCXUJ8xXxwLWj1Q3v3Mrxv9vJ+5G6CBJnSp4/gekfQpfMNhnCBOvxZA==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-icon": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon/-/uui-icon-1.0.0.tgz", - "integrity": "sha512-OYj9kcsfiuAhQ0yAoQtLZKWWF6cknAoXnOZYgwcuopfRG6YxIQS3rukSNz4AsoBc6Mp53TV5TB4EGEBZOXvISA==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-icon-registry": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry/-/uui-icon-registry-1.0.0.tgz", - "integrity": "sha512-2zj29JsoJF3FmRdTt8xaSebgs2WtSGxAglEOjM78qGGOlafSkyYelzuRGA0NP47HOH3MKp3vzL1Z1AQ2Hr31iw==", + "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.0.0", - "@umbraco-ui/uui-icon": "1.0.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-icon": "1.2.1" } }, "@umbraco-ui/uui-icon-registry-essential": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry-essential/-/uui-icon-registry-essential-1.0.0.tgz", - "integrity": "sha512-1H2liA9/uyYqlR4E44RBTZiOlyrKgCSaJT6ytNiaBo6Br8kWqWTeDXBXngttGENQQ++eBKiUnLDVJC91xbPXug==", + "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.0.0", - "@umbraco-ui/uui-icon-registry": "1.0.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-icon-registry": "1.2.1" } }, "@umbraco-ui/uui-input": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input/-/uui-input-1.0.0.tgz", - "integrity": "sha512-gNsE5FFvxr67gT2nFlHhlF4OtxSbA7JLvSmNTvCHtEToc6O6iU/CuepRJeoczrOAc7MvAWBx2x39/mhnIXNldA==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-input-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-file/-/uui-input-file-1.0.0.tgz", - "integrity": "sha512-y9BZuhaluIBcpjXNj9xZcTNZHg+rYvUlum7os/uyjo7TZQNEitIveEkoemIWy7tpH3/Dt3ql8XMxGa8Mulq9kA==", + "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.0.0", - "@umbraco-ui/uui-base": "1.0.0", - "@umbraco-ui/uui-button": "1.0.0", - "@umbraco-ui/uui-file-dropzone": "1.0.0", - "@umbraco-ui/uui-icon": "1.0.0", - "@umbraco-ui/uui-icon-registry-essential": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-lock/-/uui-input-lock-1.0.0.tgz", - "integrity": "sha512-AHKJl5rvVEsvoRWsrC9rRACUjjP7Zz9veJQd0LDUm21DrDOaWF6cw3lljqKr2bex6KhoF+W4hyV9PDDPPx3umA==", + "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.0.0", - "@umbraco-ui/uui-button": "1.0.0", - "@umbraco-ui/uui-icon": "1.0.0", - "@umbraco-ui/uui-input": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-password/-/uui-input-password-1.0.0.tgz", - "integrity": "sha512-oJPUesd3mNU26ZEqLy3LQxUndMk3Qa8Yn/TTnCz4itGnF1rl2FqNcLwrRhUnTPKU9g5VI+9xC2rMYQxNPjDdmQ==", + "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.0.0", - "@umbraco-ui/uui-icon-registry-essential": "1.0.0", - "@umbraco-ui/uui-input": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-keyboard-shortcut/-/uui-keyboard-shortcut-1.0.0.tgz", - "integrity": "sha512-7QZugPgLsLVFNJPg/jnPDyhtTK2WqNEKxdUQ9Hbv2RDVBJbuprnSthzUMKpDeu7+IV1UNDZd3oxSUOpfgLV/EQ==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-label": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-label/-/uui-label-1.0.0.tgz", - "integrity": "sha512-Kp3T8Mcjvak8nROPZwG6N81haDTSZfMH0FGrpWmwKJyCTEbtftrI3XqbsgCiSElikDVQJfmE/tA+l2zz9Wsoyw==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-loader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader/-/uui-loader-1.0.0.tgz", - "integrity": "sha512-5IXyi2lTl23KXxd+BcHUKLxqApanmp/h2ocDGo45P2OalajgagMottHFQ8Xj05KNLmMyOtv5kT8/Z8Vvdrcn2w==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-loader-bar": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-bar/-/uui-loader-bar-1.0.0.tgz", - "integrity": "sha512-r4z8VLtYJw/l4af37w9NQr1pNo2ZnWLtZyEVhNWafLQmXZzPSBpMd5Z62kzGQx6dU7FoRT0mgsbjfVQcYK+oJg==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-loader-circle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-circle/-/uui-loader-circle-1.0.0.tgz", - "integrity": "sha512-dLL5+yPlChpj9euvCwq+hPDmMu2yCF+PeRvoDdQXxfgqCqhk144VIgiknErTByfUpCot9PApOnquwiIpdbzu6w==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-menu-item": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-menu-item/-/uui-menu-item-1.0.0.tgz", - "integrity": "sha512-dgxl/bKbjH2YykrpKc/qk4AtzdwD/xUPtFB/dj9b+JJnNyam8LyZEYgZVVveayCETruxN2FVUMIaf1xLaswRVw==", + "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.0.0", - "@umbraco-ui/uui-loader-bar": "1.0.0", - "@umbraco-ui/uui-symbol-expand": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-pagination/-/uui-pagination-1.0.0.tgz", - "integrity": "sha512-Io3zO/BHHSHxNu0vUFJ50n4Pb/b+3m2YHfigfjUuAcN+68NxnOtuUziMCCoJnl/eri2f6/ha5HI5nVcm5jEziQ==", + "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.0.0", - "@umbraco-ui/uui-button": "1.0.0", - "@umbraco-ui/uui-button-group": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-popover/-/uui-popover-1.0.0.tgz", - "integrity": "sha512-kudJMrSOnEP7hIhNgPVVjoG13UU+ouNNYD4mat4lJ3b5CdjOWQLlUxlSEVQFMMieVHW0O3tO6tDMdyUhecEsCg==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-progress-bar": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-progress-bar/-/uui-progress-bar-1.0.0.tgz", - "integrity": "sha512-+lPn2U82UVySLz6hGZ6u1C3Wa4F4/EiGWYiSMrZs1YDRMiXfD5dtViLdrpa24VuWk9kr5E7VR8XN/d7H+ns3pg==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-radio": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-radio/-/uui-radio-1.0.0.tgz", - "integrity": "sha512-iD3l2JacoAkZvyphxZqp7+IU80kLwSDfCewTr3ntlGlpCuSXOJHA/ppz8hAcLIngTaijAFjqdufYq3wbOBMgqQ==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" + } + }, + "@umbraco-ui/uui-range-slider": { + "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.2.1" } }, "@umbraco-ui/uui-ref": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref/-/uui-ref-1.0.0.tgz", - "integrity": "sha512-9oMLXn64VU8JRhTW9TM9xTNeLMYezmHh2mCdBKw7khYVL9Jss8tC6Is5WsQ52ocUPB5RTVyF7pua1ByYFhgghQ==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-ref-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-list/-/uui-ref-list-1.0.0.tgz", - "integrity": "sha512-lX+JK/WoD2m60ehZC7od/9EtCIYhvTYEIUOM7pcR+3hFOnEph1JprQjoRUwcrJmAe9qXCsaDiQ3IA7Cp84eMOQ==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-ref-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node/-/uui-ref-node-1.0.0.tgz", - "integrity": "sha512-2InpH96gVpdMeT8i70jdPvyXWb+gmmgucKhvbcuQ6zeHIrpUzdfkgjsZVPMjzJp9czDxlBSScjsXHa6QpRIffg==", + "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.0.0", - "@umbraco-ui/uui-icon": "1.0.0", - "@umbraco-ui/uui-ref": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-data-type/-/uui-ref-node-data-type-1.0.0.tgz", - "integrity": "sha512-/QDBMKAaEAUEVPajPt2fCP+YfeZvmnAg4xJdjaUb5mCS/GYoqPpkKoBa1w4iVsErPJtKdzA6QL8iyLEbcVleow==", + "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.0.0", - "@umbraco-ui/uui-ref-node": "1.0.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.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-document-type/-/uui-ref-node-document-type-1.0.0.tgz", - "integrity": "sha512-mRm6XBQDjAb6WBXQkOUZBbAJTNjPStRNMlw+48fp9W93nMMizJwhdpqU01m93+6ADzkG7OkFGBIb88kfRXMezQ==", + "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.0.0", - "@umbraco-ui/uui-ref-node": "1.0.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-ref-node": "1.2.1" } }, "@umbraco-ui/uui-ref-node-form": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-form/-/uui-ref-node-form-1.0.0.tgz", - "integrity": "sha512-p1wPUVgvJ9B8ZWZLXDEduMfCq4/GyjKYsOtfxvl8hx1HvhoVWfEZmOHFg1XBdw+TTkz2ytWAsv2rPKwYDpqUEw==", + "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.0.0", - "@umbraco-ui/uui-ref-node": "1.0.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-ref-node": "1.2.1" } }, "@umbraco-ui/uui-ref-node-member": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-member/-/uui-ref-node-member-1.0.0.tgz", - "integrity": "sha512-M1DNGt0XSSGkzc9oiCEKupjtGlSElFlaoRI5ENGbfxdX/b66BiEq3hrCCvOf8VeCffK31Rlhaw7vXs2gCPyDPg==", + "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.0.0", - "@umbraco-ui/uui-ref-node": "1.0.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-ref-node": "1.2.1" } }, "@umbraco-ui/uui-ref-node-package": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-package/-/uui-ref-node-package-1.0.0.tgz", - "integrity": "sha512-Erh5q+dOfgXfhR26yM92b9qZsWcwgZ5mXr0C6LpXzYgfIe+xJ1gEFQ7IwCNKw4j+N+obgBw4ZQfnbjpW0m5ueQ==", + "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.0.0", - "@umbraco-ui/uui-ref-node": "1.0.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-ref-node": "1.2.1" } }, "@umbraco-ui/uui-ref-node-user": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-user/-/uui-ref-node-user-1.0.0.tgz", - "integrity": "sha512-RS0g9/7nPrzRRC8KsjPjghYY8cUQdcsj6wwOj4ketgYUO2g3mX0SaYvbwD+x1vrOYqKRG9X1btbtVD8o0iVQ0w==", + "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.0.0", - "@umbraco-ui/uui-ref-node": "1.0.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-ref-node": "1.2.1" } }, "@umbraco-ui/uui-scroll-container": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-scroll-container/-/uui-scroll-container-1.0.0.tgz", - "integrity": "sha512-8P+2GG4MN7WDH80+wBLgTBpRUHoN3zMLaTlOElZyYGm21aGfu1kYzby9b+vX4ecJk6F3cEGGIqHj0jhPPdUN9Q==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-select": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-select/-/uui-select-1.0.0.tgz", - "integrity": "sha512-PRqTrxg0GV/+1CgHU8rbS+7lcaGx5W+JbyRKB5RTwrLq8eZ1F2dT4/PVtR/om23x0JDA86qarav5kcIF5KaNyw==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-slider": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-slider/-/uui-slider-1.0.0.tgz", - "integrity": "sha512-0un7TO+sP66min0eS/IjUUSdtZc2Fq5ilM0Eu9CKWWIcoS17n+AjwErINByace3zUCjuFHy5KpqlPvU183IoBA==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-symbol-expand": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-expand/-/uui-symbol-expand-1.0.0.tgz", - "integrity": "sha512-jngwZDDcshth22flb1JVywz6eCOrwQ93+ea+HBzoGDm1cwID1I9Ik8fMAXmE4XGfc+upna/p3kU9b0d/SvlU4w==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-symbol-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file/-/uui-symbol-file-1.0.0.tgz", - "integrity": "sha512-1WfNr4NbvgBpdN/TX6/vO1v6il35MgpKBW+HQMVeFwCtmotRXGaS9hcwSSN80xESdlkybrJ/H8Nq81TFq1z2qg==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-symbol-file-dropzone": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-dropzone/-/uui-symbol-file-dropzone-1.0.0.tgz", - "integrity": "sha512-xYbpcnZd+dUfq30YoMDERkQ+RZagwQ3wE2nUfC5lEdKyxEO7DedFLZYcQijj6LUAxcrlMUFkTpWmLAmmT4Ovxg==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-symbol-file-thumbnail": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-thumbnail/-/uui-symbol-file-thumbnail-1.0.0.tgz", - "integrity": "sha512-8LvS4StbUqyglw6K8ojlNuh1lLbhozz5b1UWLE/MsR8TpA9eZGuwx9CgarU4CGJlvwI6pEQcRFu4Eb0FPqvqEA==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-symbol-folder": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-folder/-/uui-symbol-folder-1.0.0.tgz", - "integrity": "sha512-AK38UMcBiA312ZHRx1+PSKo5NL2jYQxLLYo8e75GwymJ2VwE/AF08RvIJRBfmk4N21yoRxlKos1xhvBkyO6+Kw==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-symbol-lock": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-lock/-/uui-symbol-lock-1.0.0.tgz", - "integrity": "sha512-oFTfFvJk6Qiu2QrTBgz4KsCbVKC48jXO20pP1EGylVgP0AyMMWMaTJjFb5A32ifkRv77A8b9Xc0/sppUUeXXzw==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-symbol-more": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-more/-/uui-symbol-more-1.0.0.tgz", - "integrity": "sha512-Ld2hWfcJsVgEsKrfwRFl2dd4hJQw1+xF4zC5yVVNp/65e+Hv3aGSB6GsWKcj3aA0XlMOChJcUiTyi1yQ8vd4lQ==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-symbol-sort": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-sort/-/uui-symbol-sort-1.0.0.tgz", - "integrity": "sha512-Se52onHvKVOa6AOJC5W7QaTixsa2oN6RhlN+ZTxXi7wZfKG9nKDC9mcNd5OS6A35Y//0KZjVTnwtYWcTmSeJoA==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-table": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-table/-/uui-table-1.0.0.tgz", - "integrity": "sha512-BbJp6Fuyt3cemxjJRcLV299vZxg2kvJnSHLPsSYWB83xqGyuFRP+S87WmMkNa4vu7kkUlj1sWmcOtS1vD4vQkA==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-tabs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tabs/-/uui-tabs-1.0.0.tgz", - "integrity": "sha512-2EbmmzDMgC315T0b6xE7RjWCBqOUL7SRnX8JgBShN/ekiLKSPalkhnuKi1D9ZEvrC1hupwpgh8Vjt2szTU905g==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-tag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tag/-/uui-tag-1.0.0.tgz", - "integrity": "sha512-gWN+JqtTy9emyjQWJFIEtYmmO6s1GWEeBFE+HcNFdBFoksugtK8850plwUMaQOP4vaHlOxK0Qf5Cm9lVaXm7Yw==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-textarea": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-textarea/-/uui-textarea-1.0.0.tgz", - "integrity": "sha512-zoxVq5UDlGTD/aVe1fGYH3fIHYO/IjsN2FEeeVg1hAC97EzhB0Gi72XzuSJHVZFdd+JjWCr8aXmOioSbcqxFyw==", + "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.0.0" + "@umbraco-ui/uui-base": "1.2.1" } }, "@umbraco-ui/uui-toast-notification": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification/-/uui-toast-notification-1.0.0.tgz", - "integrity": "sha512-5IjK92Q4awsnHGawPqKDRC+d/LOpXXPGb5IkhunogEyDtgp5Yy1EqrYS5dHkGVTR7fOFVqtVMN0pOVJCnZi3rw==", + "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.0.0", - "@umbraco-ui/uui-button": "1.0.0", - "@umbraco-ui/uui-css": "1.0.0", - "@umbraco-ui/uui-icon": "1.0.0", - "@umbraco-ui/uui-icon-registry-essential": "1.0.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" + }, + "dependencies": { + "@umbraco-ui/uui-css": { + "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-toast-notification-container": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-container/-/uui-toast-notification-container-1.0.0.tgz", - "integrity": "sha512-XIjhBJzUF4+2eBXjNcOc232Z6FRvq7m8YNLycwE4I3C9mzWaTUiXKB7Ovt587MlqCZZUSy6XtKqkI9DV+nJIVg==", + "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.0.0", - "@umbraco-ui/uui-toast-notification": "1.0.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-toast-notification": "1.2.1" } }, "@umbraco-ui/uui-toast-notification-layout": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-layout/-/uui-toast-notification-layout-1.0.0.tgz", - "integrity": "sha512-2rSHdgwmcb4V7XcKBl2pbJLfU4E1ttOONQjg4BgpFKMP1HK86snBmcRYWjIiVP6lBz1cTFq/B+PPgaQX7KITvg==", + "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.0.0", - "@umbraco-ui/uui-css": "1.0.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-css": "1.2.1" + }, + "dependencies": { + "@umbraco-ui/uui-css": { + "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-toggle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toggle/-/uui-toggle-1.0.0.tgz", - "integrity": "sha512-3OgU9fP+CpnNsIn5+GSUjJoakWRIC+ziBSJC3C8Dr9ScksS5oR/d1WFNk/HsUvPh/QNZAQ6dU73CJ2xzprwgrQ==", + "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.0.0", - "@umbraco-ui/uui-boolean-input": "1.0.0" + "@umbraco-ui/uui-base": "1.2.1", + "@umbraco-ui/uui-boolean-input": "1.2.1" } }, "abab": { @@ -20881,8 +21123,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", @@ -25836,28 +26077,29 @@ "dev": true }, "lit": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/lit/-/lit-2.3.1.tgz", - "integrity": "sha512-TejktDR4mqG3qB32Y8Lm5Lye3c8SUehqz7qRsxe1PqGYL6me2Ef+jeQAEqh20BnnGncv4Yxy2njEIT0kzK1WCw==", + "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.4.0", - "lit-element": "^3.2.0", - "lit-html": "^2.3.0" + "@lit/reactive-element": "^1.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.3.1", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.3.1.tgz", - "integrity": "sha512-FyKH6LTW6aBdkfNhNSHyZTnLgJSTe5hMk7HFtc/+DcN1w74C215q8B+Cfxc2OuIEpBNcEKxgF64qL8as30FDHA==", + "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" } diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index 8d8334e3a7..b0a80b596c 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -18,8 +18,8 @@ }, "dependencies": { "@microsoft/signalr": "6.0.9", - "@umbraco-ui/uui": "1.0.1", - "@umbraco-ui/uui-css": "1.0.0", + "@umbraco-ui/uui": "1.2.1", + "@umbraco-ui/uui-css": "1.2.0", "ace-builds": "1.10.1", "angular": "1.8.3", "angular-animate": "1.8.3", From 99049c2c077b10b9787aee4d954ba98628e80ee8 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Wed, 3 May 2023 08:10:32 +0200 Subject: [PATCH 21/43] Backoffice JS dependency updates (#14179) * updates @babel/* to 7.21.4 * update @microsoft/signalr to 7.0.5 * update @umbraco-ui/uui to 1.2.1 * update ace editor to 1.18.0 * update all build dependencies to latest version * update jquery to 3.6.4 * update spectrum-colorpicker2 to 2.0.10 * Add icon for "styles" alias (style select) * update tinymce to 6.4.2 Read more here: https://www.tiny.cloud/docs/tinymce/6/6.4.1-release-notes/ --- src/Umbraco.Web.UI.Client/package-lock.json | 4426 +++++++++-------- src/Umbraco.Web.UI.Client/package.json | 34 +- .../rte/rte.prevalues.controller.js | 7 +- 3 files changed, 2318 insertions(+), 2149 deletions(-) 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/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; From aeb0251727c67c3204ccbb3b4f1278adbd8678df Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Wed, 3 May 2023 08:10:32 +0200 Subject: [PATCH 22/43] Backoffice JS dependency updates (#14179) * updates @babel/* to 7.21.4 * update @microsoft/signalr to 7.0.5 * update @umbraco-ui/uui to 1.2.1 * update ace editor to 1.18.0 * update all build dependencies to latest version * update jquery to 3.6.4 * update spectrum-colorpicker2 to 2.0.10 * Add icon for "styles" alias (style select) * update tinymce to 6.4.2 Read more here: https://www.tiny.cloud/docs/tinymce/6/6.4.1-release-notes/ --- src/Umbraco.Web.UI.Client/package-lock.json | 4426 +++++++++-------- src/Umbraco.Web.UI.Client/package.json | 34 +- .../rte/rte.prevalues.controller.js | 7 +- 3 files changed, 2318 insertions(+), 2149 deletions(-) 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/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; From 7b5233803ed86393e105309ceafafc45f3f67bce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 24 Apr 2023 12:24:36 +0200 Subject: [PATCH 23/43] fix situation when config was not available. (#14148) --- .../blockgrid/umbBlockGridPropertyEditor.component.js | 2 +- .../propertyeditors/blockgrid/umbblockgridentry.component.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/blockgrid/umbBlockGridPropertyEditor.component.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/blockgrid/umbBlockGridPropertyEditor.component.js index 2124b03246..9279788a1f 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/blockgrid/umbBlockGridPropertyEditor.component.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/blockgrid/umbBlockGridPropertyEditor.component.js @@ -382,7 +382,7 @@ const contextColumns = getContextColumns(parentBlock, areaKey); - const relevantColumnSpanOptions = block.config.columnSpanOptions.filter(option => option.columnSpan <= contextColumns); + const relevantColumnSpanOptions = block.config.columnSpanOptions?.filter(option => option.columnSpan <= contextColumns) ?? []; // if no columnSpan or no columnSpanOptions configured, then we set(or rewrite) one: if (!layoutEntry.columnSpan || layoutEntry.columnSpan > contextColumns || relevantColumnSpanOptions.length === 0) { diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/blockgrid/umbblockgridentry.component.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/blockgrid/umbblockgridentry.component.js index 28c4aa6847..dd030ec6a8 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/blockgrid/umbblockgridentry.component.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/blockgrid/umbblockgridentry.component.js @@ -147,7 +147,7 @@ vm.layoutColumnsInt = parseInt(vm.layoutColumns, 10); - vm.relevantColumnSpanOptions = vm.layoutEntry.$block.config.columnSpanOptions.filter(x => x.columnSpan <= vm.layoutColumnsInt).sort((a,b) => (a.columnSpan > b.columnSpan) ? 1 : ((b.columnSpan > a.columnSpan) ? -1 : 0)); + vm.relevantColumnSpanOptions = vm.layoutEntry.$block.config.columnSpanOptions ? vm.layoutEntry.$block.config.columnSpanOptions.filter(x => x.columnSpan <= vm.layoutColumnsInt).sort((a,b) => (a.columnSpan > b.columnSpan) ? 1 : ((b.columnSpan > a.columnSpan) ? -1 : 0)) : []; const hasRelevantColumnSpanOptions = vm.relevantColumnSpanOptions.length > 1; const hasRowSpanOptions = vm.layoutEntry.$block.config.rowMinSpan && vm.layoutEntry.$block.config.rowMaxSpan && vm.layoutEntry.$block.config.rowMaxSpan !== vm.layoutEntry.$block.config.rowMinSpan; vm.canScale = (hasRelevantColumnSpanOptions || hasRowSpanOptions); From 47ae6e4ee8728790c8678739e1df00b5654fa7cc Mon Sep 17 00:00:00 2001 From: Ronald Barendse Date: Tue, 2 May 2023 09:46:43 +0200 Subject: [PATCH 24/43] Add DynamicRequestCultureProviderBase and improve locking (#14064) --- .../Security/AuthenticationExtensions.cs | 40 +++++++-- .../DynamicRequestCultureProviderBase.cs | 86 +++++++++++++++++++ ...mbracoBackOfficeIdentityCultureProvider.cs | 52 +++-------- .../UmbracoPublishedContentCultureProvider.cs | 64 +++----------- .../UmbracoRequestLocalizationOptions.cs | 14 +-- 5 files changed, 150 insertions(+), 106 deletions(-) create mode 100644 src/Umbraco.Web.Common/Localization/DynamicRequestCultureProviderBase.cs 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.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)); From f4073c1dc7f6ff7dd12e92b412ab5b94f36a08f8 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Wed, 3 May 2023 11:07:10 +0200 Subject: [PATCH 25/43] update @umbraco-ui/uui to 1.2.1 --- src/Umbraco.Web.UI.Client/package-lock.json | 104 ++------------------ src/Umbraco.Web.UI.Client/package.json | 2 +- 2 files changed, 8 insertions(+), 98 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index fc4f86d25b..4ddf942f5b 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -8,7 +8,7 @@ "dependencies": { "@microsoft/signalr": "6.0.9", "@umbraco-ui/uui": "1.2.1", - "@umbraco-ui/uui-css": "1.2.0", + "@umbraco-ui/uui-css": "1.2.1", "ace-builds": "1.10.1", "angular": "1.8.3", "angular-animate": "1.8.3", @@ -2147,14 +2147,6 @@ "@umbraco-ui/uui-css": "1.2.1" } }, - "node_modules/@umbraco-ui/uui-box/node_modules/@umbraco-ui/uui-css": { - "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-breadcrumbs": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-breadcrumbs/-/uui-breadcrumbs-1.2.1.tgz", @@ -2311,9 +2303,9 @@ } }, "node_modules/@umbraco-ui/uui-css": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-css/-/uui-css-1.2.0.tgz", - "integrity": "sha512-HYNHqXgu3aS7FxRMjnhxGtThP5Brp/EXh8rY+qv0Vdy1F5BayWL6Hwb/8pe1OLHXhEJK5od65AdB2tHpkLYL5g==", + "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" } @@ -2335,14 +2327,6 @@ "@umbraco-ui/uui-base": "1.2.1" } }, - "node_modules/@umbraco-ui/uui-dialog/node_modules/@umbraco-ui/uui-css": { - "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-file-dropzone": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-dropzone/-/uui-file-dropzone-1.2.1.tgz", @@ -2786,22 +2770,6 @@ "@umbraco-ui/uui-css": "1.2.1" } }, - "node_modules/@umbraco-ui/uui-toast-notification-layout/node_modules/@umbraco-ui/uui-css": { - "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-toast-notification/node_modules/@umbraco-ui/uui-css": { - "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-toggle": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toggle/-/uui-toggle-1.2.1.tgz", @@ -2811,14 +2779,6 @@ "@umbraco-ui/uui-boolean-input": "1.2.1" } }, - "node_modules/@umbraco-ui/uui/node_modules/@umbraco-ui/uui-css": { - "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/abab": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", @@ -18730,16 +18690,6 @@ "@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" - }, - "dependencies": { - "@umbraco-ui/uui-css": { - "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-action-bar": { @@ -18799,16 +18749,6 @@ "requires": { "@umbraco-ui/uui-base": "1.2.1", "@umbraco-ui/uui-css": "1.2.1" - }, - "dependencies": { - "@umbraco-ui/uui-css": { - "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-breadcrumbs": { @@ -18967,9 +18907,9 @@ } }, "@umbraco-ui/uui-css": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-css/-/uui-css-1.2.0.tgz", - "integrity": "sha512-HYNHqXgu3aS7FxRMjnhxGtThP5Brp/EXh8rY+qv0Vdy1F5BayWL6Hwb/8pe1OLHXhEJK5od65AdB2tHpkLYL5g==", + "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" } @@ -18981,16 +18921,6 @@ "requires": { "@umbraco-ui/uui-base": "1.2.1", "@umbraco-ui/uui-css": "1.2.1" - }, - "dependencies": { - "@umbraco-ui/uui-css": { - "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-layout": { @@ -19424,16 +19354,6 @@ "@umbraco-ui/uui-css": "1.2.1", "@umbraco-ui/uui-icon": "1.2.1", "@umbraco-ui/uui-icon-registry-essential": "1.2.1" - }, - "dependencies": { - "@umbraco-ui/uui-css": { - "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-toast-notification-container": { @@ -19452,16 +19372,6 @@ "requires": { "@umbraco-ui/uui-base": "1.2.1", "@umbraco-ui/uui-css": "1.2.1" - }, - "dependencies": { - "@umbraco-ui/uui-css": { - "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-toggle": { diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index b0a80b596c..849634be82 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -19,7 +19,7 @@ "dependencies": { "@microsoft/signalr": "6.0.9", "@umbraco-ui/uui": "1.2.1", - "@umbraco-ui/uui-css": "1.2.0", + "@umbraco-ui/uui-css": "1.2.1", "ace-builds": "1.10.1", "angular": "1.8.3", "angular-animate": "1.8.3", From 3a7ba530a28be3a52da2c2686700b1600355bfa7 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Wed, 3 May 2023 10:37:57 +0200 Subject: [PATCH 26/43] Fix: Form elements in thirdparty dashboard views get removed (#14152) --- .../src/views/common/dashboard.html | 4 ++-- .../tests/DefaultConfig/Tabs/tabs.spec.ts | 22 +++++++++++++------ 2 files changed, 17 insertions(+), 9 deletions(-) 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/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts index 8ffeb6c685..873ae3bad6 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts @@ -46,6 +46,14 @@ test.describe('Tabs', () => { await openDocTypeFolder(umbracoUi, page); } + test.only('Click dashboard tabs', async ({umbracoUi, page}) => { + await umbracoUi.goToSection('content'); + await page.locator('[data-element="tab-contentRedirectManager"] > button').click(); + expect(page.locator('.redirecturlsearch')).not.toBeNull(); + await page.locator('[data-element="tab-contentIntro"] > button').click(); + await expect(page.locator('[data-element="tab-contentIntro"]')).toHaveClass('umb-tab ng-scope umb-tab--active'); + }); + test('Create tab', async ({umbracoUi, umbracoApi, page}) => { await umbracoApi.documentTypes.ensureNameNotExists(tabsDocTypeName); await umbracoApi.content.deleteAllContent(); @@ -67,7 +75,7 @@ test.describe('Tabs', () => { await umbracoUi.waitForTreeLoad('settings'); await umbracoUi.clickElement(umbracoUi.getTreeItem("settings", ["Document Types", tabsDocTypeName])) - // Create a tab + // Create a tab await page.locator('.umb-group-builder__tabs__add-tab').click(); await page.locator('ng-form.ng-invalid > .umb-group-builder__group-title-input').fill('Tab 1'); // Create a 2nd tab manually @@ -178,7 +186,7 @@ test.describe('Tabs', () => { await expect(await page.locator('[title=urlPicker]')).toHaveCount(0); }); - test('Reorders tab', async ({umbracoUi, umbracoApi, page}) => { + test('Reorders tab', async ({umbracoUi, umbracoApi, page}) => { await umbracoApi.documentTypes.ensureNameNotExists(tabsDocTypeName); const tabsDocType = new DocumentTypeBuilder() @@ -485,7 +493,7 @@ test.describe('Tabs', () => { await openDocTypeFolder(umbracoUi, page); await page.locator('[alias="reorder"]').click(); await page.locator('.umb-group-builder__tab').last().click(); - + // Drag and drop property from tab 2 into tab 1 await page.locator('.umb-group-builder__property-meta > .flex > .icon >> nth=1').last().hover(); await page.mouse.down(); @@ -493,16 +501,16 @@ test.describe('Tabs', () => { await page.waitForTimeout(500); await page.locator('[data-element="group-Tab group"]').hover({force:true}); await page.mouse.up(); - + // Stop reordering and save await page.locator('[alias="reorder"]').click(); await umbracoUi.clickElement(umbracoUi.getButtonByLabelKey(ConstantHelper.buttons.save)); - + // Assert await umbracoUi.isSuccessNotificationVisible(); await expect(await page.locator('[title="urlPickerTabTwo"]')).toBeVisible(); }); - + test('Drags and drops a group and converts to tab', async ({umbracoUi, umbracoApi, page}) => { await umbracoApi.documentTypes.ensureNameNotExists(tabsDocTypeName); const tabsDocType = new DocumentTypeBuilder() @@ -552,4 +560,4 @@ test.describe('Tabs', () => { await umbracoUi.isSuccessNotificationVisible(); await expect(await page.locator('[title="tabGroup"]').first()).toBeVisible(); }); -}); \ No newline at end of file +}); From 32b4627ee8c4fca16db7694c4a14c2b6e2297525 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Wed, 3 May 2023 10:37:57 +0200 Subject: [PATCH 27/43] Fix: Form elements in thirdparty dashboard views get removed (#14152) --- .../src/views/common/dashboard.html | 4 ++-- .../tests/DefaultConfig/Tabs/tabs.spec.ts | 22 +++++++++++++------ 2 files changed, 17 insertions(+), 9 deletions(-) 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/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts index 8ffeb6c685..873ae3bad6 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts @@ -46,6 +46,14 @@ test.describe('Tabs', () => { await openDocTypeFolder(umbracoUi, page); } + test.only('Click dashboard tabs', async ({umbracoUi, page}) => { + await umbracoUi.goToSection('content'); + await page.locator('[data-element="tab-contentRedirectManager"] > button').click(); + expect(page.locator('.redirecturlsearch')).not.toBeNull(); + await page.locator('[data-element="tab-contentIntro"] > button').click(); + await expect(page.locator('[data-element="tab-contentIntro"]')).toHaveClass('umb-tab ng-scope umb-tab--active'); + }); + test('Create tab', async ({umbracoUi, umbracoApi, page}) => { await umbracoApi.documentTypes.ensureNameNotExists(tabsDocTypeName); await umbracoApi.content.deleteAllContent(); @@ -67,7 +75,7 @@ test.describe('Tabs', () => { await umbracoUi.waitForTreeLoad('settings'); await umbracoUi.clickElement(umbracoUi.getTreeItem("settings", ["Document Types", tabsDocTypeName])) - // Create a tab + // Create a tab await page.locator('.umb-group-builder__tabs__add-tab').click(); await page.locator('ng-form.ng-invalid > .umb-group-builder__group-title-input').fill('Tab 1'); // Create a 2nd tab manually @@ -178,7 +186,7 @@ test.describe('Tabs', () => { await expect(await page.locator('[title=urlPicker]')).toHaveCount(0); }); - test('Reorders tab', async ({umbracoUi, umbracoApi, page}) => { + test('Reorders tab', async ({umbracoUi, umbracoApi, page}) => { await umbracoApi.documentTypes.ensureNameNotExists(tabsDocTypeName); const tabsDocType = new DocumentTypeBuilder() @@ -485,7 +493,7 @@ test.describe('Tabs', () => { await openDocTypeFolder(umbracoUi, page); await page.locator('[alias="reorder"]').click(); await page.locator('.umb-group-builder__tab').last().click(); - + // Drag and drop property from tab 2 into tab 1 await page.locator('.umb-group-builder__property-meta > .flex > .icon >> nth=1').last().hover(); await page.mouse.down(); @@ -493,16 +501,16 @@ test.describe('Tabs', () => { await page.waitForTimeout(500); await page.locator('[data-element="group-Tab group"]').hover({force:true}); await page.mouse.up(); - + // Stop reordering and save await page.locator('[alias="reorder"]').click(); await umbracoUi.clickElement(umbracoUi.getButtonByLabelKey(ConstantHelper.buttons.save)); - + // Assert await umbracoUi.isSuccessNotificationVisible(); await expect(await page.locator('[title="urlPickerTabTwo"]')).toBeVisible(); }); - + test('Drags and drops a group and converts to tab', async ({umbracoUi, umbracoApi, page}) => { await umbracoApi.documentTypes.ensureNameNotExists(tabsDocTypeName); const tabsDocType = new DocumentTypeBuilder() @@ -552,4 +560,4 @@ test.describe('Tabs', () => { await umbracoUi.isSuccessNotificationVisible(); await expect(await page.locator('[title="tabGroup"]').first()).toBeVisible(); }); -}); \ No newline at end of file +}); From c4d84e1c91d118e33200345221591daa7d376fb5 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Wed, 3 May 2023 10:37:57 +0200 Subject: [PATCH 28/43] Fix: Form elements in thirdparty dashboard views get removed (#14152) --- .../src/views/common/dashboard.html | 4 ++-- .../tests/DefaultConfig/Tabs/tabs.spec.ts | 22 +++++++++++++------ 2 files changed, 17 insertions(+), 9 deletions(-) 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/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts index 8ffeb6c685..873ae3bad6 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts @@ -46,6 +46,14 @@ test.describe('Tabs', () => { await openDocTypeFolder(umbracoUi, page); } + test.only('Click dashboard tabs', async ({umbracoUi, page}) => { + await umbracoUi.goToSection('content'); + await page.locator('[data-element="tab-contentRedirectManager"] > button').click(); + expect(page.locator('.redirecturlsearch')).not.toBeNull(); + await page.locator('[data-element="tab-contentIntro"] > button').click(); + await expect(page.locator('[data-element="tab-contentIntro"]')).toHaveClass('umb-tab ng-scope umb-tab--active'); + }); + test('Create tab', async ({umbracoUi, umbracoApi, page}) => { await umbracoApi.documentTypes.ensureNameNotExists(tabsDocTypeName); await umbracoApi.content.deleteAllContent(); @@ -67,7 +75,7 @@ test.describe('Tabs', () => { await umbracoUi.waitForTreeLoad('settings'); await umbracoUi.clickElement(umbracoUi.getTreeItem("settings", ["Document Types", tabsDocTypeName])) - // Create a tab + // Create a tab await page.locator('.umb-group-builder__tabs__add-tab').click(); await page.locator('ng-form.ng-invalid > .umb-group-builder__group-title-input').fill('Tab 1'); // Create a 2nd tab manually @@ -178,7 +186,7 @@ test.describe('Tabs', () => { await expect(await page.locator('[title=urlPicker]')).toHaveCount(0); }); - test('Reorders tab', async ({umbracoUi, umbracoApi, page}) => { + test('Reorders tab', async ({umbracoUi, umbracoApi, page}) => { await umbracoApi.documentTypes.ensureNameNotExists(tabsDocTypeName); const tabsDocType = new DocumentTypeBuilder() @@ -485,7 +493,7 @@ test.describe('Tabs', () => { await openDocTypeFolder(umbracoUi, page); await page.locator('[alias="reorder"]').click(); await page.locator('.umb-group-builder__tab').last().click(); - + // Drag and drop property from tab 2 into tab 1 await page.locator('.umb-group-builder__property-meta > .flex > .icon >> nth=1').last().hover(); await page.mouse.down(); @@ -493,16 +501,16 @@ test.describe('Tabs', () => { await page.waitForTimeout(500); await page.locator('[data-element="group-Tab group"]').hover({force:true}); await page.mouse.up(); - + // Stop reordering and save await page.locator('[alias="reorder"]').click(); await umbracoUi.clickElement(umbracoUi.getButtonByLabelKey(ConstantHelper.buttons.save)); - + // Assert await umbracoUi.isSuccessNotificationVisible(); await expect(await page.locator('[title="urlPickerTabTwo"]')).toBeVisible(); }); - + test('Drags and drops a group and converts to tab', async ({umbracoUi, umbracoApi, page}) => { await umbracoApi.documentTypes.ensureNameNotExists(tabsDocTypeName); const tabsDocType = new DocumentTypeBuilder() @@ -552,4 +560,4 @@ test.describe('Tabs', () => { await umbracoUi.isSuccessNotificationVisible(); await expect(await page.locator('[title="tabGroup"]').first()).toBeVisible(); }); -}); \ No newline at end of file +}); From c2a550daf0b3a0575a0e93363c1288d32d2ce89f Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Wed, 3 May 2023 10:37:57 +0200 Subject: [PATCH 29/43] Fix: Form elements in thirdparty dashboard views get removed (#14152) --- .../src/views/common/dashboard.html | 4 ++-- .../tests/DefaultConfig/Tabs/tabs.spec.ts | 22 +++++++++++++------ 2 files changed, 17 insertions(+), 9 deletions(-) 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/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts index 8ffeb6c685..873ae3bad6 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts @@ -46,6 +46,14 @@ test.describe('Tabs', () => { await openDocTypeFolder(umbracoUi, page); } + test.only('Click dashboard tabs', async ({umbracoUi, page}) => { + await umbracoUi.goToSection('content'); + await page.locator('[data-element="tab-contentRedirectManager"] > button').click(); + expect(page.locator('.redirecturlsearch')).not.toBeNull(); + await page.locator('[data-element="tab-contentIntro"] > button').click(); + await expect(page.locator('[data-element="tab-contentIntro"]')).toHaveClass('umb-tab ng-scope umb-tab--active'); + }); + test('Create tab', async ({umbracoUi, umbracoApi, page}) => { await umbracoApi.documentTypes.ensureNameNotExists(tabsDocTypeName); await umbracoApi.content.deleteAllContent(); @@ -67,7 +75,7 @@ test.describe('Tabs', () => { await umbracoUi.waitForTreeLoad('settings'); await umbracoUi.clickElement(umbracoUi.getTreeItem("settings", ["Document Types", tabsDocTypeName])) - // Create a tab + // Create a tab await page.locator('.umb-group-builder__tabs__add-tab').click(); await page.locator('ng-form.ng-invalid > .umb-group-builder__group-title-input').fill('Tab 1'); // Create a 2nd tab manually @@ -178,7 +186,7 @@ test.describe('Tabs', () => { await expect(await page.locator('[title=urlPicker]')).toHaveCount(0); }); - test('Reorders tab', async ({umbracoUi, umbracoApi, page}) => { + test('Reorders tab', async ({umbracoUi, umbracoApi, page}) => { await umbracoApi.documentTypes.ensureNameNotExists(tabsDocTypeName); const tabsDocType = new DocumentTypeBuilder() @@ -485,7 +493,7 @@ test.describe('Tabs', () => { await openDocTypeFolder(umbracoUi, page); await page.locator('[alias="reorder"]').click(); await page.locator('.umb-group-builder__tab').last().click(); - + // Drag and drop property from tab 2 into tab 1 await page.locator('.umb-group-builder__property-meta > .flex > .icon >> nth=1').last().hover(); await page.mouse.down(); @@ -493,16 +501,16 @@ test.describe('Tabs', () => { await page.waitForTimeout(500); await page.locator('[data-element="group-Tab group"]').hover({force:true}); await page.mouse.up(); - + // Stop reordering and save await page.locator('[alias="reorder"]').click(); await umbracoUi.clickElement(umbracoUi.getButtonByLabelKey(ConstantHelper.buttons.save)); - + // Assert await umbracoUi.isSuccessNotificationVisible(); await expect(await page.locator('[title="urlPickerTabTwo"]')).toBeVisible(); }); - + test('Drags and drops a group and converts to tab', async ({umbracoUi, umbracoApi, page}) => { await umbracoApi.documentTypes.ensureNameNotExists(tabsDocTypeName); const tabsDocType = new DocumentTypeBuilder() @@ -552,4 +560,4 @@ test.describe('Tabs', () => { await umbracoUi.isSuccessNotificationVisible(); await expect(await page.locator('[title="tabGroup"]').first()).toBeVisible(); }); -}); \ No newline at end of file +}); From 3c5de5a321ff5e465c8ab81a95f15157d284ff2b Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Wed, 3 May 2023 08:10:32 +0200 Subject: [PATCH 30/43] Backoffice JS dependency updates (#14179) * updates @babel/* to 7.21.4 * update @microsoft/signalr to 7.0.5 * update @umbraco-ui/uui to 1.2.1 * update ace editor to 1.18.0 * update all build dependencies to latest version * update jquery to 3.6.4 * update spectrum-colorpicker2 to 2.0.10 * Add icon for "styles" alias (style select) * update tinymce to 6.4.2 Read more here: https://www.tiny.cloud/docs/tinymce/6/6.4.1-release-notes/ --- src/Umbraco.Web.UI.Client/package-lock.json | 4426 +++++++++-------- src/Umbraco.Web.UI.Client/package.json | 34 +- .../rte/rte.prevalues.controller.js | 7 +- 3 files changed, 2318 insertions(+), 2149 deletions(-) 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/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; From e7f07a881bd2099901a630c12a0816aa004abc73 Mon Sep 17 00:00:00 2001 From: Nikolaj Date: Wed, 3 May 2023 11:39:24 +0200 Subject: [PATCH 31/43] Revert "Case-insensitive tag names with SQLite provider (#14012)" This reverts commit bb7752c48340f080d692cb230ca1e16a2654f05a. --- .../Repositories/Implement/TagRepository.cs | 4 +- .../Repositories/TagRepositoryTest.cs | 40 ------------------- 2 files changed, 2 insertions(+), 42 deletions(-) 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/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() { From cc7798b343d7ff77b89572dbb75d8ce369574292 Mon Sep 17 00:00:00 2001 From: Nikolaj Date: Wed, 3 May 2023 12:13:34 +0200 Subject: [PATCH 32/43] Remove test.only --- .../tests/DefaultConfig/Tabs/tabs.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts index 873ae3bad6..97e8458f26 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts @@ -46,7 +46,7 @@ test.describe('Tabs', () => { await openDocTypeFolder(umbracoUi, page); } - test.only('Click dashboard tabs', async ({umbracoUi, page}) => { + test('Click dashboard tabs', async ({umbracoUi, page}) => { await umbracoUi.goToSection('content'); await page.locator('[data-element="tab-contentRedirectManager"] > button').click(); expect(page.locator('.redirecturlsearch')).not.toBeNull(); From a744cd465a4ef4db11dceac27a7fc7976d0c6b0c Mon Sep 17 00:00:00 2001 From: Nikolaj Date: Wed, 3 May 2023 13:13:39 +0200 Subject: [PATCH 33/43] Try quick fix for test --- .../tests/DefaultConfig/Tabs/tabs.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts index 97e8458f26..1b1740eefb 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts @@ -51,7 +51,7 @@ test.describe('Tabs', () => { await page.locator('[data-element="tab-contentRedirectManager"] > button').click(); expect(page.locator('.redirecturlsearch')).not.toBeNull(); await page.locator('[data-element="tab-contentIntro"] > button').click(); - await expect(page.locator('[data-element="tab-contentIntro"]')).toHaveClass('umb-tab ng-scope umb-tab--active'); + await expect(page.locator('[data-element="tab-contentIntro"]')).toHaveClass('umb-tab umb-tab--active'); }); test('Create tab', async ({umbracoUi, umbracoApi, page}) => { From 842f1f886f2e6ede4873dacaca42353e53e475b1 Mon Sep 17 00:00:00 2001 From: Nikolaj Date: Wed, 3 May 2023 13:15:17 +0200 Subject: [PATCH 34/43] Use regex for class --- .../tests/DefaultConfig/Tabs/tabs.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts index 1b1740eefb..7798a5a0e8 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts @@ -51,7 +51,7 @@ test.describe('Tabs', () => { await page.locator('[data-element="tab-contentRedirectManager"] > button').click(); expect(page.locator('.redirecturlsearch')).not.toBeNull(); await page.locator('[data-element="tab-contentIntro"] > button').click(); - await expect(page.locator('[data-element="tab-contentIntro"]')).toHaveClass('umb-tab umb-tab--active'); + await expect(page.locator('[data-element="tab-contentIntro"]')).toHaveClass(/umb\-tab\-\-active/); }); test('Create tab', async ({umbracoUi, umbracoApi, page}) => { From 05908e2c784080e04fd42fade72a7b0e74d250fc Mon Sep 17 00:00:00 2001 From: Nikolaj Date: Wed, 3 May 2023 12:13:34 +0200 Subject: [PATCH 35/43] Remove test.only --- .../tests/DefaultConfig/Tabs/tabs.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts index 873ae3bad6..97e8458f26 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts @@ -46,7 +46,7 @@ test.describe('Tabs', () => { await openDocTypeFolder(umbracoUi, page); } - test.only('Click dashboard tabs', async ({umbracoUi, page}) => { + test('Click dashboard tabs', async ({umbracoUi, page}) => { await umbracoUi.goToSection('content'); await page.locator('[data-element="tab-contentRedirectManager"] > button').click(); expect(page.locator('.redirecturlsearch')).not.toBeNull(); From f7f361239ce44fa98ca8cf6fc31e8955f5e5dde9 Mon Sep 17 00:00:00 2001 From: Nikolaj Date: Wed, 3 May 2023 13:13:39 +0200 Subject: [PATCH 36/43] Try quick fix for test --- .../tests/DefaultConfig/Tabs/tabs.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts index 97e8458f26..1b1740eefb 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts @@ -51,7 +51,7 @@ test.describe('Tabs', () => { await page.locator('[data-element="tab-contentRedirectManager"] > button').click(); expect(page.locator('.redirecturlsearch')).not.toBeNull(); await page.locator('[data-element="tab-contentIntro"] > button').click(); - await expect(page.locator('[data-element="tab-contentIntro"]')).toHaveClass('umb-tab ng-scope umb-tab--active'); + await expect(page.locator('[data-element="tab-contentIntro"]')).toHaveClass('umb-tab umb-tab--active'); }); test('Create tab', async ({umbracoUi, umbracoApi, page}) => { From 21c6828b598d0ff9b32bc24cd082c13589f268ae Mon Sep 17 00:00:00 2001 From: Nikolaj Date: Wed, 3 May 2023 13:15:17 +0200 Subject: [PATCH 37/43] Use regex for class --- .../tests/DefaultConfig/Tabs/tabs.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts index 1b1740eefb..7798a5a0e8 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Tabs/tabs.spec.ts @@ -51,7 +51,7 @@ test.describe('Tabs', () => { await page.locator('[data-element="tab-contentRedirectManager"] > button').click(); expect(page.locator('.redirecturlsearch')).not.toBeNull(); await page.locator('[data-element="tab-contentIntro"] > button').click(); - await expect(page.locator('[data-element="tab-contentIntro"]')).toHaveClass('umb-tab umb-tab--active'); + await expect(page.locator('[data-element="tab-contentIntro"]')).toHaveClass(/umb\-tab\-\-active/); }); test('Create tab', async ({umbracoUi, umbracoApi, page}) => { From 1e0ace7a344a90f682f361000c4d1d66807a1bf4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82?= Date: Tue, 25 Apr 2023 11:49:24 +0200 Subject: [PATCH 38/43] Save and preview translation. (cherry picked from commit 0765a2ebbb6fd452b6543a349f5d0c1f157e5588) --- src/Umbraco.Core/EmbeddedResources/Lang/sv.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 From e27e8d1189dfd35244aa66fe0c2a8fd9dc02a22f Mon Sep 17 00:00:00 2001 From: Anders Brohus Date: Tue, 2 May 2023 11:13:47 +0200 Subject: [PATCH 39/43] Fixing danish typos (#14184) * Fixed typo * Fixed another typo * Removed space from translation (cherry picked from commit 7df5c9c212185bf50f27aa348e3c3698cc97af57) --- src/Umbraco.Core/EmbeddedResources/Lang/da.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Core/EmbeddedResources/Lang/da.xml b/src/Umbraco.Core/EmbeddedResources/Lang/da.xml index cf0518613d..6a496a9b8f 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 From 0f1c2f70220d4cec5b14b2f551f5ee9efe1b1fff Mon Sep 17 00:00:00 2001 From: Bjarke Berg Date: Thu, 4 May 2023 13:32:41 +0200 Subject: [PATCH 40/43] Ensure no management api for v12 (#14197) * Remove management api * Remove actual files --- .../Culture/AllCultureController.cs | 33 - .../Culture/CultureControllerBase.cs | 12 - .../Tree/ChildrenDataTypeTreeController.cs | 24 - .../Tree/DataTypeTreeControllerBase.cs | 45 - .../Tree/ItemsDataTypeTreeController.cs | 20 - .../Tree/RootDataTypeTreeController.cs | 24 - .../Dictionary/AllDictionaryController.cs | 69 - .../Dictionary/ByKeyDictionaryController.cs | 47 - .../Dictionary/CreateDictionaryController.cs | 90 - .../Dictionary/DeleteDictionaryController.cs | 51 - .../Dictionary/DictionaryControllerBase.cs | 13 - .../Dictionary/ExportDictionaryController.cs | 44 - .../Dictionary/ImportDictionaryController.cs | 52 - .../Tree/ChildrenDictionaryTreeController.cs | 39 - .../Tree/DictionaryTreeControllerBase.cs | 52 - .../Tree/ItemsDictionaryTreeController.cs | 27 - .../Tree/RootDictionaryTreeController.cs | 39 - .../Dictionary/UpdateDictionaryController.cs | 75 - .../Dictionary/UploadDictionaryController.cs | 51 - .../ChildrenDocumentRecycleBinController.cs | 21 - .../DocumentRecycleBinControllerBase.cs | 42 - .../RootDocumentRecycleBinController.cs | 21 - .../Tree/ChildrenDocumentTreeController.cs | 34 - .../Tree/DocumentTreeControllerBase.cs | 93 - .../Tree/ItemsDocumentTreeController.cs | 33 - .../Tree/RootDocumentTreeController.cs | 34 - .../DocumentBlueprintTreeControllerBase.cs | 55 - .../ItemsDocumentBlueprintTreeController.cs | 21 - .../RootDocumentBlueprintTreeController.cs | 21 - .../ChildrenDocumentTypeTreeController.cs | 24 - .../Tree/DocumentTypeTreeControllerBase.cs | 46 - .../Tree/ItemsDocumentTypeTreeController.cs | 20 - .../Tree/RootDocumentTypeTreeController.cs | 24 - .../ExecuteActionHealthCheckController.cs | 64 - .../Group/AllHealthCheckGroupController.cs | 45 - ...ameWithResultHealthCheckGroupController.cs | 47 - .../Group/HealthCheckGroupControllerBase.cs | 13 - .../HealthCheck/HealthCheckControllerBase.cs | 13 - .../Controllers/Help/GetHelpController.cs | 80 - .../Controllers/Help/HelpControllerBase.cs | 12 - .../Indexer/AllIndexerController.cs | 41 - .../Indexer/DetailsIndexerController.cs | 54 - .../Indexer/IndexerControllerBase.cs | 11 - .../Indexer/RebuildIndexerController.cs | 82 - .../Install/InstallControllerBase.cs | 14 - .../Install/SettingsInstallController.cs | 43 - .../Install/SetupInstallController.cs | 47 - .../ValidateDatabaseInstallController.cs | 49 - .../Language/AllLanguageController.cs | 36 - .../Language/ByIdLanguageController.cs | 35 - .../Language/CreateLanguageController.cs | 61 - .../Language/DeleteLanguageController.cs | 50 - .../Language/LanguageControllerBase.cs | 12 - .../Language/UpdateLanguageController.cs | 66 - .../ManagementApiControllerBase.cs | 11 - .../ChildrenMediaRecycleBinController.cs | 21 - .../MediaRecycleBinControllerBase.cs | 42 - .../RootMediaRecycleBinController.cs | 21 - .../Media/Tree/ChildrenMediaTreeController.cs | 32 - .../Media/Tree/ItemsMediaTreeController.cs | 31 - .../Media/Tree/MediaTreeControllerBase.cs | 72 - .../Media/Tree/RootMediaTreeController.cs | 32 - .../Tree/ChildrenMediaTypeTreeController.cs | 24 - .../Tree/ItemsMediaTypeTreeController.cs | 20 - .../Tree/MediaTypeTreeControllerBase.cs | 45 - .../Tree/RootMediaTypeTreeController.cs | 24 - .../Tree/ItemsMemberGroupTreeController.cs | 20 - .../Tree/MemberGroupTreeControllerBase.cs | 31 - .../Tree/RootMemberGroupTreeController.cs | 21 - .../Tree/ItemsMemberTypeTreeController.cs | 20 - .../Tree/MemberTypeTreeControllerBase.cs | 31 - .../Tree/RootMemberTypeTreeController.cs | 21 - .../BuildModelsBuilderController.cs | 62 - .../GetModelsBuilderController.cs | 18 - .../ModelsBuilderControllerBase.cs | 13 - .../StatusModelsBuilderController.cs | 29 - .../Tree/ChildrenPartialViewTreeController.cs | 21 - .../Tree/ItemsPartialViewTreeController.cs | 20 - .../Tree/PartialViewTreeControllerBase.cs | 24 - .../Tree/RootPartialViewTreeController.cs | 21 - .../Profiling/ProfilingControllerBase.cs | 12 - .../Profiling/StatusProfilingController.cs | 19 - .../CollectPublishedCacheController.cs | 23 - .../PublishedCacheControllerBase.cs | 12 - .../RebuildPublishedCacheController.cs | 22 - .../ReloadPublishedCacheController.cs | 23 - .../StatusPublishedCacheController.cs | 19 - .../RecycleBin/RecycleBinControllerBase.cs | 111 - .../ByKeyRedirectUrlManagementController.cs | 38 - ...eteByKeyRedirectUrlManagementController.cs | 23 - .../GetAllRedirectUrlManagementController.cs | 43 - ...etStatusRedirectUrlManagementController.cs | 19 - .../RedirectUrlManagementBaseController.cs | 13 - ...etStatusRedirectUrlManagementController.cs | 53 - .../Relation/ByChildRelationController.cs | 52 - .../Relation/ByIdRelationController.cs | 35 - .../Relation/RelationControllerBase.cs | 14 - .../Tree/ItemsRelationTypeTreeController.cs | 32 - .../Tree/RelationTypeTreeControllerBase.cs | 37 - .../Tree/RootRelationTypeTreeController.cs | 44 - .../Tree/ChildrenScriptTreeController.cs | 21 - .../Script/Tree/ItemsScriptTreeController.cs | 20 - .../Script/Tree/RootScriptTreeController.cs | 21 - .../Script/Tree/ScriptTreeControllerBase.cs | 24 - .../Searcher/AllSearcherController.cs | 38 - .../Searcher/QuerySearcherController.cs | 80 - .../Searcher/SearcherControllerBase.cs | 11 - .../Security/BackOfficeController.cs | 144 - .../Controllers/Security/Paths.cs | 12 - .../Server/ServerControllerBase.cs | 12 - .../Server/StatusServerController.cs | 21 - .../Server/VersionServerController.cs | 25 - .../Tree/ChildrenStaticFileTreeController.cs | 21 - .../Tree/ItemsStaticFileTreeController.cs | 20 - .../Tree/RootStaticFileTreeController.cs | 21 - .../Tree/StaticFileTreeControllerBase.cs | 41 - .../Tree/ChildrenStylesheetTreeController.cs | 21 - .../Tree/ItemsStylesheetTreeController.cs | 20 - .../Tree/RootStylesheetTreeController.cs | 21 - .../Tree/StylesheetTreeControllerBase.cs | 24 - .../Telemetry/AllTelemetryController.cs | 23 - .../Telemetry/GetTelemetryController.cs | 18 - .../Telemetry/SetTelemetryController.cs | 35 - .../Telemetry/TelemetryControllerBase.cs | 12 - .../Tree/ChildrenTemplateTreeController.cs | 21 - .../Tree/ItemsTemplateTreeController.cs | 20 - .../Tree/RootTemplateTreeController.cs | 21 - .../Tree/TemplateTreeControllerBase.cs | 31 - .../ByIdTrackedReferenceController.cs | 49 - .../DescendantsTrackedReferenceController.cs | 45 - .../ItemsTrackedReferenceController.cs | 44 - .../TrackedReferencesControllerBase.cs | 12 - .../Tree/EntityTreeControllerBase.cs | 132 - .../Tree/FileSystemTreeControllerBase.cs | 110 - .../Tree/FolderTreeControllerBase.cs | 88 - .../Tree/UserStartNodeTreeControllerBase.cs | 117 - .../Upgrade/AuthorizeUpgradeController.cs | 24 - .../Upgrade/SettingsUpgradeController.cs | 38 - .../Upgrade/UpgradeControllerBase.cs | 17 - .../BackOfficeAuthBuilderExtensions.cs | 168 - .../FactoryBuilderExtensions.cs | 21 - .../InstallerBuilderExtensions.cs | 85 - .../MappingBuilderExtensions.cs | 30 - .../SearchManagementBuilderExtensions.cs | 24 - .../ServicesBuilderExtensions.cs | 30 - .../Factories/DictionaryFactory.cs | 99 - ...lthCheckGroupWithResultViewModelFactory.cs | 74 - .../Factories/IDictionaryFactory.cs | 13 - ...lthCheckGroupWithResultViewModelFactory.cs | 13 - .../Factories/IIndexViewModelFactory.cs | 9 - .../IModelsBuilderViewModelFactory.cs | 8 - .../IRedirectUrlStatusViewModelFactory.cs | 8 - .../Factories/IRedirectUrlViewModelFactory.cs | 11 - .../Factories/IRelationViewModelFactory.cs | 11 - .../Factories/IndexViewModelFactory.cs | 68 - .../ModelsBuilderViewModelFactory.cs | 39 - .../RedirectUrlStatusViewModelFactory.cs | 38 - .../Factories/RedirectUrlViewModelFactory.cs | 42 - .../Factories/RelationViewModelFactory.cs | 35 - .../RequireDocumentTreeRootAccessAttribute.cs | 19 - .../RequireMediaTreeRootAccessAttribute.cs | 19 - .../Filters/RequireRuntimeLevelAttribute.cs | 36 - .../Filters/RequireTreeRootAccessAttribute.cs | 40 - .../ManagementApiComposer.cs | 274 - .../Culture/CultureViewModelMapDefinition.cs | 32 - .../DictionaryViewModelMapDefinition.cs | 71 - .../HealthCheckViewModelsMapDefinition.cs | 80 - .../InstallerViewModelsMapDefinition.cs | 144 - .../LanguageViewModelsMapDefinition.cs | 70 - .../RelationViewModelsMapDefinition.cs | 22 - ...TrackedReferenceViewModelsMapDefinition.cs | 28 - ...ceAuthorizationInitializationMiddleware.cs | 62 - .../Models/Entities/UserAccessEntity.cs | 16 - .../Models/FormFileUploadResult.cs | 14 - src/Umbraco.Cms.Api.Management/OpenApi.json | 7644 ----------------- .../OpenApi/EnumSchemaFilter.cs | 23 - .../OpenApi/MimeTypeDocumentFilter.cs | 33 - .../OpenApi/OperationIdRegexes.cs | 21 - .../OpenApi/SchemaIdGenerator.cs | 26 - .../VersionedApiBackOfficeRouteAttribute.cs | 11 - .../Security/BackOfficeApplicationManager.cs | 131 - .../ISystemTextJsonSerializer.cs | 7 - .../Serialization/SystemTextJsonSerializer.cs | 17 - .../Entities/IUserStartNodeEntitiesService.cs | 42 - .../Entities/UserStartNodeEntitiesService.cs | 76 - .../Services/ExamineManagerService.cs | 23 - .../Services/IExamineManagerService.cs | 8 - .../Services/IJsonPatchService.cs | 9 - .../Services/ILoadDictionaryItemService.cs | 8 - .../Services/IUploadFileService.cs | 9 - .../Services/JsonPatchService.cs | 23 - .../Services/LoadDictionaryItemService.cs | 52 - .../Services/Paging/PaginationService.cs | 39 - .../Services/UploadFileService.cs | 65 - .../Umbraco.Cms.Api.Management.csproj | 30 - .../ViewModels/Culture/CultureViewModel.cs | 8 - .../Dictionary/DictionaryImportViewModel.cs | 8 - .../Dictionary/DictionaryItemViewModel.cs | 8 - .../DictionaryItemsImportViewModel.cs | 8 - .../Dictionary/DictionaryOverviewViewModel.cs | 31 - .../DictionaryTranslationOverviewViewModel.cs | 14 - .../DictionaryTranslationViewModel.cs | 28 - .../Dictionary/DictionaryViewModel.cs | 56 - .../HealthCheck/HealthCheckActionViewModel.cs | 50 - .../HealthCheck/HealthCheckGroupViewModel.cs | 14 - .../HealthCheckGroupWithResultViewModel.cs | 14 - .../HealthCheck/HealthCheckResultViewModel.cs | 26 - .../HealthCheck/HealthCheckViewModel.cs | 19 - .../HealthCheckWithResultViewModel.cs | 10 - .../ViewModels/Help/HelpPageViewModel.cs | 12 - .../Installer/ConsentLevelViewModel.cs | 12 - .../Installer/DatabaseInstallViewModel.cs | 26 - .../Installer/DatabaseSettingsViewModel.cs | 26 - .../Installer/InstallSettingsViewModel.cs | 8 - .../ViewModels/Installer/InstallViewModel.cs | 17 - .../Installer/UpgradeSettingsViewModel.cs | 15 - .../Installer/UserInstallViewModel.cs | 21 - .../Installer/UserSettingsViewModel.cs | 10 - .../JsonPatch/JsonPatchViewModel.cs | 10 - .../ViewModels/Language/LanguageViewModel.cs | 19 - .../ModelsBuilderViewModel.cs | 20 - .../OutOfDateStatusViewModel.cs | 8 - .../ViewModels/Move/MoveViewModel.cs | 21 - .../Profiling/ProfilingStatusViewModel.cs | 8 - .../RecycleBin/RecycleBinItemViewModel.cs | 19 - .../RedirectUrlStatusViewModel.cs | 10 - .../RedirectUrlViewModel.cs | 16 - .../ViewModels/Relation/RelationViewModel.cs | 43 - .../ViewModels/Search/FieldViewModel.cs | 8 - .../ViewModels/Search/IndexViewModel.cs | 27 - .../Search/SearchResultViewModel.cs | 12 - .../ViewModels/Search/SearcherViewModel.cs | 6 - .../Server/ServerStatusViewModel.cs | 10 - .../ViewModels/Server/VersionViewModel.cs | 6 - .../Telemetry/TelemetryViewModel.cs | 10 - .../RelationItemViewModel.cs | 22 - .../Tree/ContentTreeItemViewModel.cs | 6 - .../DocumentBlueprintTreeItemViewModel.cs | 10 - .../Tree/DocumentTreeItemViewModel.cs | 10 - .../Tree/DocumentTypeTreeItemViewModel.cs | 6 - .../Tree/EntityTreeItemViewModel.cs | 10 - .../Tree/FileSystemTreeItemViewModel.cs | 8 - .../Tree/FolderTreeItemViewModel.cs | 6 - .../ViewModels/Tree/TreeItemViewModel.cs | 12 - .../Umbraco.PublishedCache.NuCache.csproj | 2 - src/Umbraco.Web.UI/Umbraco.Web.UI.csproj | 1 - .../GlobalSetupTeardown.cs | 1 - .../Implementations/TestHelper.cs | 1 - .../NewBackoffice/OpenAPIContractTest.cs | 58 - ...reNotAmbiguousActionNameControllerTests.cs | 1 - .../UmbracoTestServerTestBase.cs | 4 +- .../UmbracoWebApplicationFactory.cs | 1 - .../Testing/BaseTestDatabase.cs | 1 - .../Testing/LocalDbTestDatabase.cs | 1 - .../Testing/SqlServerBaseTestDatabase.cs | 1 - .../Testing/SqlServerTestDatabase.cs | 3 +- .../Testing/SqliteTestDatabase.cs | 1 - .../Events/EventAggregatorTests.cs | 1 - .../Umbraco.Core/IO/FileSystemsTests.cs | 1 - .../Umbraco.Core/IO/ShadowFileSystemTests.cs | 1 - .../Mapping/ContentTypeModelMappingTests.cs | 1 - .../CreatedPackagesRepositoryTests.cs | 1 - .../PublishedContentQueryAccessorTests.cs | 1 - .../Umbraco.Core/RuntimeStateTests.cs | 1 - .../Telemetry/TelemetryServiceTests.cs | 1 - .../UmbracoExamine/ExamineBaseTest.cs | 1 - .../UmbracoExamine/ExamineExtensions.cs | 1 - .../UmbracoExamine/IndexTest.cs | 1 - .../UmbracoExamine/RandomIdRAMDirectory.cs | 1 - .../UmbracoExamine/SearchTests.cs | 1 - .../UmbracoExamine/TestFiles.Designer.cs | 243 +- .../Migrations/AdvancedMigrationTests.cs | 1 - .../Packaging/PackageDataInstallationTests.cs | 1 - .../Packaging/PackageInstallationTest.cs | 1 - .../Persistence/LocksTests.cs | 1 - .../NPocoTests/NPocoBulkInsertTests.cs | 1 - .../Persistence/NPocoTests/NPocoFetchTests.cs | 1 - .../CacheInstructionRepositoryTest.cs | 1 - .../Repositories/ContentTypeRepositoryTest.cs | 1 - .../Repositories/DictionaryRepositoryTest.cs | 1 - .../Repositories/DocumentRepositoryTest.cs | 1 - .../Repositories/EntityRepositoryTest.cs | 1 - .../Repositories/KeyValueRepositoryTests.cs | 1 - .../Repositories/LanguageRepositoryTest.cs | 1 - .../Repositories/MediaRepositoryTest.cs | 1 - .../Repositories/MediaTypeRepositoryTest.cs | 1 - .../Repositories/MemberRepositoryTest.cs | 1 - .../Repositories/MemberTypeRepositoryTest.cs | 1 - .../NotificationsRepositoryTest.cs | 1 - .../PartialViewRepositoryTests.cs | 1 - .../PublicAccessRepositoryTest.cs | 1 - .../RedirectUrlRepositoryTests.cs | 1 - .../Repositories/RelationRepositoryTest.cs | 1 - .../Repositories/ScriptRepositoryTest.cs | 1 - .../ServerRegistrationRepositoryTest.cs | 1 - .../Repositories/StylesheetRepositoryTest.cs | 1 - .../Repositories/TemplateRepositoryTest.cs | 1 - .../Repositories/UserRepositoryTest.cs | 1 - .../SqlServerSyntaxProviderTests.cs | 1 - .../Persistence/UnitOfWorkTests.cs | 1 - .../Scoping/ScopeFileSystemsTests.cs | 1 - .../Scoping/ScopeTests.cs | 1 - .../Scoping/ScopedNuCacheTests.cs | 1 - .../Scoping/SupressNotificationsTests.cs | 1 - .../Services/AuditServiceTests.cs | 1 - .../Services/CacheInstructionServiceTests.cs | 1 - .../Services/ConsentServiceTests.cs | 1 - .../Services/ContentEventsTests.cs | 1 - .../ContentServiceNotificationTests.cs | 1 - .../Services/ContentServicePerformanceTest.cs | 1 - .../ContentServicePublishBranchTests.cs | 1 - .../Services/ContentServiceTagsTests.cs | 1 - .../Services/ContentServiceTests.cs | 1 - .../Services/ContentTypeServiceTests.cs | 1 - .../ContentTypeServiceVariantsTests.cs | 1 - .../ContentVersionCleanupServiceTest.cs | 1 - .../Services/DataTypeServiceTests.cs | 1 - .../Services/EntityServiceTests.cs | 1 - .../Services/EntityXmlSerializerTests.cs | 1 - .../Services/ExternalLoginServiceTests.cs | 1 - .../Importing/ImportResources.Designer.cs | 742 +- .../Services/LocalizationServiceTests.cs | 1 - .../Services/MacroServiceTests.cs | 5 +- .../Services/MediaServiceTests.cs | 1 - .../Services/MediaTypeServiceTests.cs | 1 - .../Services/MemberServiceTests.cs | 1 - .../Services/MemberTypeServiceTests.cs | 1 - .../Services/NuCacheRebuildTests.cs | 1 - .../Services/PublicAccessServiceTests.cs | 1 - .../Services/RelationServiceTests.cs | 1 - .../Services/ThreadSafetyServiceTest.cs | 1 - .../Services/UserServiceTests.cs | 1 - .../Umbraco.Tests.Integration.csproj | 1 - .../Filters/ContentModelValidatorTests.cs | 1 - .../OutgoingEditorModelEventFilterTests.cs | 3 +- .../AutoFixture/AutoMoqDataAttribute.cs | 1 - .../Customizations/UmbracoCustomizations.cs | 1 - .../AutoFixture/InlineAutoMoqDataAttribute.cs | 1 - .../TestHelpers/CompositionExtensions.cs | 1 - .../PublishedSnapshotServiceTestBase.cs | 1 - .../TestHelpers/TestHelper.cs | 1 - .../TestHelpers/TestNuCacheContentService.cs | 1 - .../RequireRuntimeLevelAttributeTest.cs | 79 - .../UmbracoBackOfficeIdentityTests.cs | 1 - .../Umbraco.Core/Cache/AppCacheTests.cs | 1 - .../Cache/DeepCloneAppCacheTests.cs | 1 - .../Cache/DefaultCachePolicyTests.cs | 1 - .../Cache/FullDataSetCachePolicyTests.cs | 1 - .../Umbraco.Core/Cache/RefresherTests.cs | 1 - .../Cache/RuntimeAppCacheTests.cs | 1 - .../Cache/SingleItemsOnlyCachePolicyTests.cs | 1 - .../Cache/ValueEditorCacheTests.cs | 1 - .../ClaimsIdentityExtensionsTests.cs | 1 - .../Collections/OrderedHashSetTests.cs | 1 - .../Umbraco.Core/Components/ComponentTests.cs | 3 +- .../Composing/CollectionBuildersTests.cs | 1 - .../Composing/LazyCollectionBuilderTests.cs | 1 - .../Umbraco.Core/Composing/TypeFinderTests.cs | 1 - .../Umbraco.Core/Composing/TypeHelperTests.cs | 1 - .../Composing/TypeLoaderExtensions.cs | 1 - .../Umbraco.Core/Composing/TypeLoaderTests.cs | 1 - .../ConfigureConnectionStringsTests.cs | 1 - .../GlobalSettingsValidatorTests.cs | 1 - .../HealthChecksSettingsValidatorTests.cs | 1 - .../CoreThings/TryConvertToTests.cs | 1 - .../Umbraco.Core/CoreThings/UdiTests.cs | 1 - .../CoreXml/NavigableNavigatorTests.cs | 1 - .../Umbraco.Core/DelegateExtensionsTests.cs | 1 - .../ImageCropperValueConverterTests.cs | 1 - .../NestedContentValueConverterTests.cs | 1 - .../PropertyValueConverterTests.cs | 1 - .../Umbraco.Core/Deploy/ArtifactBaseTests.cs | 1 - .../Umbraco.Core/EnumExtensionsTests.cs | 1 - .../Umbraco.Core/EnumerableExtensionsTests.cs | 1 - .../ClaimsPrincipalExtensionsTests.cs | 1 - .../ConfigurationExtensionsTests.cs | 1 - .../Extensions/UriExtensionsTests.cs | 1 - .../Umbraco.Core/GuidUtilsTests.cs | 1 - .../Umbraco.Core/HashCodeCombinerTests.cs | 1 - .../Umbraco.Core/HashGeneratorTests.cs | 1 - .../Umbraco.Core/HexEncoderTests.cs | 1 - .../IO/AbstractFileSystemTests.cs | 1 - .../IO/PhysicalFileSystemTests.cs | 1 - .../Manifest/ManifestContentAppTests.cs | 1 - .../Manifest/ManifestParserTests.cs | 7 +- .../Umbraco.Core/Models/Collections/Item.cs | 1 - .../Models/Collections/OrderItem.cs | 2 - .../Models/ContentExtensionsTests.cs | 1 - .../Models/ContentScheduleTests.cs | 1 - .../Umbraco.Core/Models/ContentTests.cs | 1 - .../Umbraco.Core/Models/ContentTypeTests.cs | 1 - .../Umbraco.Core/Models/MacroTests.cs | 1 - .../Umbraco.Core/Models/MemberGroupTests.cs | 1 - .../Umbraco.Core/Models/PropertyTypeTests.cs | 1 - .../Umbraco.Core/Models/RelationTests.cs | 1 - .../Umbraco.Core/Models/RelationTypeTests.cs | 1 - .../Umbraco.Core/Models/StylesheetTests.cs | 1 - .../Umbraco.Core/Models/TemplateTests.cs | 1 - .../Models/UserExtensionsTests.cs | 1 - .../Umbraco.Core/Models/VariationTests.cs | 1 - .../PendingPackageMigrationsTests.cs | 1 - .../BlockEditorComponentTests.cs | 3 +- .../PropertyEditors/ConvertersTests.cs | 1 - ...ataValueReferenceFactoryCollectionTests.cs | 1 - .../NestedContentPropertyComponentTests.cs | 1 - .../PropertyEditorValueConverterTests.cs | 1 - .../PropertyEditorValueEditorTests.cs | 1 - .../Umbraco.Core/Published/ConvertersTests.cs | 1 - .../Umbraco.Core/Published/ModelTypeTests.cs | 1 - .../Published/NestedContentTests.cs | 1 - .../Published/PropertyCacheLevelTests.cs | 1 - .../Umbraco.Core/ReflectionUtilitiesTests.cs | 1 - .../Routing/ContentFinderByUrlAliasTests.cs | 1 - .../Routing/ContentFinderByUrlTests.cs | 1 - .../Routing/PublishedRouterTests.cs | 1 - .../Routing/SiteDomainMapperTests.cs | 1 - .../Routing/UmbracoRequestPathsTests.cs | 1 - .../Umbraco.Core/Routing/UriUtilityTests.cs | 1 - ...derWithoutHideTopLevelNodeFromPathTests.cs | 1 - .../Routing/UrlsProviderWithDomainsTests.cs | 1 - .../Routing/UrlsWithNestedDomains.cs | 1 - .../Umbraco.Core/Routing/WebPathTests.cs | 1 - .../Scheduling/ContentVersionCleanupTest.cs | 1 - .../Scoping/EventNameExtractorTests.cs | 1 - .../ScopedNotificationPublisherTests.cs | 3 +- .../Security/LegacyPasswordSecurityTests.cs | 1 - .../ContentVersionCleanupServiceTest.cs | 1 - .../DefaultContentVersionCleanupPolicyTest.cs | 1 - ...faultShortStringHelperTestsWithoutSetup.cs | 1 - .../StringExtensionsTests.cs | 3 +- .../Umbraco.Core/TaskHelperTests.cs | 1 - .../Telemetry/SiteIdentifierServiceTests.cs | 1 - .../Telemetry/TelemetryServiceTests.cs | 1 - .../Templates/HtmlImageSourceParserTests.cs | 1 - .../Templates/HtmlLocalLinkParserTests.cs | 1 - .../Umbraco.Core/VersionExtensionTests.cs | 1 - .../Routing/PublishedRequestBuilderTests.cs | 1 - .../BackOfficeClaimsPrincipalFactoryTests.cs | 1 - .../UmbracoContentValueSetValidatorTests.cs | 1 - .../HealthChecks/HealthCheckResultsTests.cs | 1 - .../HealthCheckNotifierTests.cs | 1 - .../HostedServices/KeepAliveTests.cs | 1 - .../HostedServices/LogScrubberTests.cs | 1 - .../RecurringHostedServiceBaseTests.cs | 1 - .../ScheduledPublishingTests.cs | 1 - .../TouchServerTaskTests.cs | 1 - .../HostedServices/TempFileCleanupTests.cs | 1 - .../Logging/LogviewerTests.cs | 1 - .../Mapping/MappingTests.cs | 1 - .../Migrations/AlterMigrationTests.cs | 1 - .../Migrations/MigrationPlanTests.cs | 1 - .../Migrations/MigrationTests.cs | 1 - .../Migrations/Stubs/Dummy.cs | 1 - .../Models/PathValidationTests.cs | 1 - .../Persistence/BulkDataReaderTests.cs | 1 - .../NPocoTests/NPocoSqlTemplateTests.cs | 1 - .../Persistence/NPocoTests/NPocoSqlTests.cs | 1 - .../ContentTypeRepositorySqlClausesTest.cs | 1 - ...aTypeDefinitionRepositorySqlClausesTest.cs | 1 - .../Persistence/Querying/ExpressionTests.cs | 1 - .../Querying/MediaRepositorySqlClausesTest.cs | 1 - .../MediaTypeRepositorySqlClausesTest.cs | 1 - .../ContentSerializationTests.cs | 1 - .../PublishedContentDataTableTests.cs | 1 - .../PublishedContentLanguageVariantTests.cs | 1 - .../PublishedCache/PublishedContentTests.cs | 1 - ...PublishedSnapshotServiceCollectionTests.cs | 1 - .../PublishedSnapshotServiceContentTests.cs | 1 - .../Scoping/ScopeUnitTests.cs | 1 - .../Security/MemberRoleStoreTests.cs | 1 - .../Security/MemberUserStoreTests.cs | 1 - .../Security/NoOpLookupNormalizerTests.cs | 1 - .../AutoInterningStringConverterTests.cs | 1 - .../Services/AmbiguousEventTests.cs | 1 - .../Services/LocalizedTextServiceTests.cs | 1 - .../BuilderTests.cs | 1 - .../UmbracoApplicationTests.cs | 1 - .../Services/InstallServiceTests.cs | 111 - .../Services/UpgradeServiceTests.cs | 108 - .../Factories/DatabaseSettingsFactoryTests.cs | 184 - .../SnapDictionaryTests.cs | 1 - .../Builders/ContentTypeBuilderTests.cs | 1 - .../DocumentEntitySlimBuilderTests.cs | 1 - .../Builders/MacroBuilderTests.cs | 1 - .../Builders/MediaTypeBuilderTests.cs | 1 - .../Builders/MemberBuilderTests.cs | 1 - .../Builders/MemberGroupBuilderTests.cs | 1 - .../Builders/MemberTypeBuilderTests.cs | 1 - .../Builders/PropertyBuilderTests.cs | 1 - .../Builders/PropertyGroupBuilderTests.cs | 1 - .../Builders/PropertyTypeBuilderTests.cs | 1 - .../Builders/RelationBuilderTests.cs | 1 - .../Builders/RelationTypeBuilderTests.cs | 1 - .../Builders/TemplateBuilderTests.cs | 1 - .../Builders/UserBuilderTests.cs | 1 - .../Umbraco.Tests.UnitTests.csproj | 1 - ...ntentPermissionsQueryStringHandlerTests.cs | 1 - ...MediaPermissionsQueryStringHandlerTests.cs | 1 - .../Controllers/ContentControllerTests.cs | 3 +- .../Controllers/MemberControllerUnitTests.cs | 1 - .../AppendUserModifiedHeaderAttributeTests.cs | 1 - .../Filters/ContentModelValidatorTests.cs | 1 - .../Extensions/HttpContextExtensionTests.cs | 1 - .../Umbraco.Web.Common/ImageCropperTest.cs | 1 - .../ModelBinders/ContentModelBinderTests.cs | 1 - .../Routing/RoutableDocumentFilterTests.cs | 1 - .../Routing/TestRouteBuilder.cs | 1 - .../Security/MemberSignInManagerTests.cs | 1 - .../Security/PublicAccessCheckerTests.cs | 1 - .../Views/UmbracoViewPageTests.cs | 1 - .../AspNetCoreHostingEnvironmentTests.cs | 1 - .../UmbracoRouteValueTransformerTests.cs | 1 - .../Routing/UmbracoRouteValuesFactoryTests.cs | 1 - umbraco.sln | 41 - 514 files changed, 504 insertions(+), 17204 deletions(-) delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Culture/AllCultureController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Culture/CultureControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/ChildrenDataTypeTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/DataTypeTreeControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/ItemsDataTypeTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/RootDataTypeTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Dictionary/AllDictionaryController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Dictionary/ByKeyDictionaryController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Dictionary/CreateDictionaryController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Dictionary/DeleteDictionaryController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Dictionary/DictionaryControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Dictionary/ExportDictionaryController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Dictionary/ImportDictionaryController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Dictionary/Tree/ChildrenDictionaryTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Dictionary/Tree/DictionaryTreeControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Dictionary/Tree/ItemsDictionaryTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Dictionary/Tree/RootDictionaryTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Dictionary/UpdateDictionaryController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Dictionary/UploadDictionaryController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/ChildrenDocumentRecycleBinController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/DocumentRecycleBinControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/RootDocumentRecycleBinController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Document/Tree/ChildrenDocumentTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Document/Tree/DocumentTreeControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Document/Tree/ItemsDocumentTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Document/Tree/RootDocumentTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Tree/DocumentBlueprintTreeControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Tree/ItemsDocumentBlueprintTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Tree/RootDocumentBlueprintTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Tree/ChildrenDocumentTypeTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Tree/DocumentTypeTreeControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Tree/ItemsDocumentTypeTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Tree/RootDocumentTypeTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/HealthCheck/ExecuteActionHealthCheckController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/HealthCheck/Group/AllHealthCheckGroupController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/HealthCheck/Group/ByNameWithResultHealthCheckGroupController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/HealthCheck/Group/HealthCheckGroupControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/HealthCheck/HealthCheckControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Help/GetHelpController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Help/HelpControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Indexer/AllIndexerController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Indexer/DetailsIndexerController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Indexer/IndexerControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Indexer/RebuildIndexerController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Install/InstallControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Install/SettingsInstallController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Install/SetupInstallController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Install/ValidateDatabaseInstallController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Language/AllLanguageController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Language/ByIdLanguageController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Language/CreateLanguageController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Language/DeleteLanguageController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Language/LanguageControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Language/UpdateLanguageController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/ManagementApiControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/ChildrenMediaRecycleBinController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/MediaRecycleBinControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/RootMediaRecycleBinController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/ChildrenMediaTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/ItemsMediaTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/MediaTreeControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/RootMediaTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/ChildrenMediaTypeTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/ItemsMediaTypeTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/MediaTypeTreeControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/RootMediaTypeTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/Tree/ItemsMemberGroupTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/Tree/MemberGroupTreeControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/Tree/RootMemberGroupTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/MemberType/Tree/ItemsMemberTypeTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/MemberType/Tree/MemberTypeTreeControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/MemberType/Tree/RootMemberTypeTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/ModelsBuilder/BuildModelsBuilderController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/ModelsBuilder/GetModelsBuilderController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/ModelsBuilder/ModelsBuilderControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/ModelsBuilder/StatusModelsBuilderController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/PartialView/Tree/ChildrenPartialViewTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/PartialView/Tree/ItemsPartialViewTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/PartialView/Tree/PartialViewTreeControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/PartialView/Tree/RootPartialViewTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Profiling/ProfilingControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Profiling/StatusProfilingController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/PublishedCache/CollectPublishedCacheController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/PublishedCache/PublishedCacheControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/PublishedCache/RebuildPublishedCacheController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/PublishedCache/ReloadPublishedCacheController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/PublishedCache/StatusPublishedCacheController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/RecycleBin/RecycleBinControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/ByKeyRedirectUrlManagementController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/DeleteByKeyRedirectUrlManagementController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/GetAllRedirectUrlManagementController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/GetStatusRedirectUrlManagementController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/RedirectUrlManagementBaseController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/SetStatusRedirectUrlManagementController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Relation/ByChildRelationController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Relation/ByIdRelationController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Relation/RelationControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/RelationType/Tree/ItemsRelationTypeTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/RelationType/Tree/RelationTypeTreeControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/RelationType/Tree/RootRelationTypeTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Script/Tree/ChildrenScriptTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Script/Tree/ItemsScriptTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Script/Tree/RootScriptTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Script/Tree/ScriptTreeControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Searcher/AllSearcherController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Searcher/QuerySearcherController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Searcher/SearcherControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Security/BackOfficeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Security/Paths.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Server/ServerControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Server/StatusServerController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Server/VersionServerController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/StaticFile/Tree/ChildrenStaticFileTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/StaticFile/Tree/ItemsStaticFileTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/StaticFile/Tree/RootStaticFileTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/StaticFile/Tree/StaticFileTreeControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Tree/ChildrenStylesheetTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Tree/ItemsStylesheetTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Tree/RootStylesheetTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Tree/StylesheetTreeControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Telemetry/AllTelemetryController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Telemetry/GetTelemetryController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Telemetry/SetTelemetryController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Telemetry/TelemetryControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Template/Tree/ChildrenTemplateTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Template/Tree/ItemsTemplateTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Template/Tree/RootTemplateTreeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Template/Tree/TemplateTreeControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/TrackedReference/ByIdTrackedReferenceController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/TrackedReference/DescendantsTrackedReferenceController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/TrackedReference/ItemsTrackedReferenceController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/TrackedReference/TrackedReferencesControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Tree/EntityTreeControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Tree/FileSystemTreeControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Tree/FolderTreeControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Tree/UserStartNodeTreeControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Upgrade/AuthorizeUpgradeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Upgrade/SettingsUpgradeController.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Controllers/Upgrade/UpgradeControllerBase.cs delete mode 100644 src/Umbraco.Cms.Api.Management/DependencyInjection/BackOfficeAuthBuilderExtensions.cs delete mode 100644 src/Umbraco.Cms.Api.Management/DependencyInjection/FactoryBuilderExtensions.cs delete mode 100644 src/Umbraco.Cms.Api.Management/DependencyInjection/InstallerBuilderExtensions.cs delete mode 100644 src/Umbraco.Cms.Api.Management/DependencyInjection/MappingBuilderExtensions.cs delete mode 100644 src/Umbraco.Cms.Api.Management/DependencyInjection/SearchManagementBuilderExtensions.cs delete mode 100644 src/Umbraco.Cms.Api.Management/DependencyInjection/ServicesBuilderExtensions.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Factories/DictionaryFactory.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Factories/HealthCheckGroupWithResultViewModelFactory.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Factories/IDictionaryFactory.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Factories/IHealthCheckGroupWithResultViewModelFactory.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Factories/IIndexViewModelFactory.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Factories/IModelsBuilderViewModelFactory.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Factories/IRedirectUrlStatusViewModelFactory.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Factories/IRedirectUrlViewModelFactory.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Factories/IRelationViewModelFactory.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Factories/IndexViewModelFactory.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Factories/ModelsBuilderViewModelFactory.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Factories/RedirectUrlStatusViewModelFactory.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Factories/RedirectUrlViewModelFactory.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Factories/RelationViewModelFactory.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Filters/RequireDocumentTreeRootAccessAttribute.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Filters/RequireMediaTreeRootAccessAttribute.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Filters/RequireRuntimeLevelAttribute.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Filters/RequireTreeRootAccessAttribute.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ManagementApiComposer.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Mapping/Culture/CultureViewModelMapDefinition.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Mapping/Dictionary/DictionaryViewModelMapDefinition.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Mapping/HealthCheck/HealthCheckViewModelsMapDefinition.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Mapping/Installer/InstallerViewModelsMapDefinition.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Mapping/Languages/LanguageViewModelsMapDefinition.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Mapping/Relation/RelationViewModelsMapDefinition.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Mapping/TrackedReferences/TrackedReferenceViewModelsMapDefinition.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Middleware/BackOfficeAuthorizationInitializationMiddleware.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Models/Entities/UserAccessEntity.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Models/FormFileUploadResult.cs delete mode 100644 src/Umbraco.Cms.Api.Management/OpenApi.json delete mode 100644 src/Umbraco.Cms.Api.Management/OpenApi/EnumSchemaFilter.cs delete mode 100644 src/Umbraco.Cms.Api.Management/OpenApi/MimeTypeDocumentFilter.cs delete mode 100644 src/Umbraco.Cms.Api.Management/OpenApi/OperationIdRegexes.cs delete mode 100644 src/Umbraco.Cms.Api.Management/OpenApi/SchemaIdGenerator.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Routing/VersionedApiBackOfficeRouteAttribute.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Security/BackOfficeApplicationManager.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Serialization/ISystemTextJsonSerializer.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Serialization/SystemTextJsonSerializer.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Services/Entities/IUserStartNodeEntitiesService.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Services/Entities/UserStartNodeEntitiesService.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Services/ExamineManagerService.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Services/IExamineManagerService.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Services/IJsonPatchService.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Services/ILoadDictionaryItemService.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Services/IUploadFileService.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Services/JsonPatchService.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Services/LoadDictionaryItemService.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Services/Paging/PaginationService.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Services/UploadFileService.cs delete mode 100644 src/Umbraco.Cms.Api.Management/Umbraco.Cms.Api.Management.csproj delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Culture/CultureViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Dictionary/DictionaryImportViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Dictionary/DictionaryItemViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Dictionary/DictionaryItemsImportViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Dictionary/DictionaryOverviewViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Dictionary/DictionaryTranslationOverviewViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Dictionary/DictionaryTranslationViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Dictionary/DictionaryViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/HealthCheck/HealthCheckActionViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/HealthCheck/HealthCheckGroupViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/HealthCheck/HealthCheckGroupWithResultViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/HealthCheck/HealthCheckResultViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/HealthCheck/HealthCheckViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/HealthCheck/HealthCheckWithResultViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Help/HelpPageViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Installer/ConsentLevelViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Installer/DatabaseInstallViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Installer/DatabaseSettingsViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Installer/InstallSettingsViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Installer/InstallViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Installer/UpgradeSettingsViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Installer/UserInstallViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Installer/UserSettingsViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/JsonPatch/JsonPatchViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Language/LanguageViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/ModelsBuilderDashboard/ModelsBuilderViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/ModelsBuilderDashboard/OutOfDateStatusViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Move/MoveViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Profiling/ProfilingStatusViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/RecycleBin/RecycleBinItemViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/RedirectUrlManagement/RedirectUrlStatusViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/RedirectUrlManagement/RedirectUrlViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Relation/RelationViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Search/FieldViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Search/IndexViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Search/SearchResultViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Search/SearcherViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Server/ServerStatusViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Server/VersionViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Telemetry/TelemetryViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/TrackedReferences/RelationItemViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Tree/ContentTreeItemViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Tree/DocumentBlueprintTreeItemViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Tree/DocumentTreeItemViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Tree/DocumentTypeTreeItemViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Tree/EntityTreeItemViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Tree/FileSystemTreeItemViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Tree/FolderTreeItemViewModel.cs delete mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Tree/TreeItemViewModel.cs delete mode 100644 tests/Umbraco.Tests.Integration/NewBackoffice/OpenAPIContractTest.cs delete mode 100644 tests/Umbraco.Tests.UnitTests/Umbraco.Cms.Api.Management/Filters/RequireRuntimeLevelAttributeTest.cs delete mode 100644 tests/Umbraco.Tests.UnitTests/Umbraco.New.Cms.Core/Services/InstallServiceTests.cs delete mode 100644 tests/Umbraco.Tests.UnitTests/Umbraco.New.Cms.Core/Services/UpgradeServiceTests.cs delete mode 100644 tests/Umbraco.Tests.UnitTests/Umbraco.New.Cms.Infrastructure/Factories/DatabaseSettingsFactoryTests.cs diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Culture/AllCultureController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Culture/AllCultureController.cs deleted file mode 100644 index f1ff94cce7..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Culture/AllCultureController.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Globalization; -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Mapping; -using Umbraco.Cms.Api.Management.ViewModels.Culture; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; - -namespace Umbraco.Cms.Api.Management.Controllers.Culture; - -public class AllCultureController : CultureControllerBase -{ - private readonly IUmbracoMapper _umbracoMapper; - - public AllCultureController(IUmbracoMapper umbracoMapper) => _umbracoMapper = umbracoMapper; - - /// - /// Returns all cultures available for creating languages. - /// - /// - [HttpGet] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task> GetAll(int skip, int take) - { - IEnumerable list = CultureInfo.GetCultures(CultureTypes.AllCultures) - .DistinctBy(x => x.Name) - .OrderBy(x => x.EnglishName) - .Skip(skip) - .Take(take); - - return await Task.FromResult(_umbracoMapper.Map>(list)!); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Culture/CultureControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/Culture/CultureControllerBase.cs deleted file mode 100644 index 7355345493..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Culture/CultureControllerBase.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Api.Management.Routing; - -namespace Umbraco.Cms.Api.Management.Controllers.Culture; - -[ApiController] -[VersionedApiBackOfficeRoute("culture")] -[ApiExplorerSettings(GroupName = "Culture")] -[ApiVersion("1.0")] -public abstract class CultureControllerBase : ManagementApiControllerBase -{ -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/ChildrenDataTypeTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/ChildrenDataTypeTreeController.cs deleted file mode 100644 index f792c2c494..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/ChildrenDataTypeTreeController.cs +++ /dev/null @@ -1,24 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.DataType.Tree; - -public class ChildrenDataTypeTreeController : DataTypeTreeControllerBase -{ - public ChildrenDataTypeTreeController(IEntityService entityService, IDataTypeService dataTypeService) - : base(entityService, dataTypeService) - { - } - - [HttpGet("children")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Children(Guid parentKey, int skip = 0, int take = 100, bool foldersOnly = false) - { - RenderFoldersOnly(foldersOnly); - return await GetChildren(parentKey, skip, take); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/DataTypeTreeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/DataTypeTreeControllerBase.cs deleted file mode 100644 index b92aa99ddb..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/DataTypeTreeControllerBase.cs +++ /dev/null @@ -1,45 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Models.Entities; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Controllers.Tree; -using Umbraco.Cms.Api.Management.ViewModels.Tree; -using Umbraco.Cms.Api.Management.Routing; - -namespace Umbraco.Cms.Api.Management.Controllers.DataType.Tree; - -[ApiVersion("1.0")] -[ApiController] -[VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.Tree}/{Constants.UdiEntityType.DataType}")] -[ApiExplorerSettings(GroupName = "Data Type")] -public class DataTypeTreeControllerBase : FolderTreeControllerBase -{ - private readonly IDataTypeService _dataTypeService; - - public DataTypeTreeControllerBase(IEntityService entityService, IDataTypeService dataTypeService) - : base(entityService) => - _dataTypeService = dataTypeService; - - protected override UmbracoObjectTypes ItemObjectType => UmbracoObjectTypes.DataType; - - protected override UmbracoObjectTypes FolderObjectType => UmbracoObjectTypes.DataTypeContainer; - - protected override FolderTreeItemViewModel[] MapTreeItemViewModels(Guid? parentKey, IEntitySlim[] entities) - { - var dataTypes = _dataTypeService - .GetAll(entities.Select(entity => entity.Id).ToArray()) - .ToDictionary(contentType => contentType.Id); - - return entities.Select(entity => - { - FolderTreeItemViewModel viewModel = MapTreeItemViewModel(parentKey, entity); - if (dataTypes.TryGetValue(entity.Id, out IDataType? dataType)) - { - viewModel.Icon = dataType.Editor?.Icon ?? viewModel.Icon; - } - - return viewModel; - }).ToArray(); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/ItemsDataTypeTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/ItemsDataTypeTreeController.cs deleted file mode 100644 index 6e4cf2791c..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/ItemsDataTypeTreeController.cs +++ /dev/null @@ -1,20 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.DataType.Tree; - -public class ItemsDataTypeTreeController : DataTypeTreeControllerBase -{ - public ItemsDataTypeTreeController(IEntityService entityService, IDataTypeService dataTypeService) - : base(entityService, dataTypeService) - { - } - - [HttpGet("item")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] - public async Task>> Items([FromQuery(Name = "key")] Guid[] keys) - => await GetItems(keys); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/RootDataTypeTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/RootDataTypeTreeController.cs deleted file mode 100644 index d14b8fa066..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/RootDataTypeTreeController.cs +++ /dev/null @@ -1,24 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.DataType.Tree; - -public class RootDataTypeTreeController : DataTypeTreeControllerBase -{ - public RootDataTypeTreeController(IEntityService entityService, IDataTypeService dataTypeService) - : base(entityService, dataTypeService) - { - } - - [HttpGet("root")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Root(int skip = 0, int take = 100, bool foldersOnly = false) - { - RenderFoldersOnly(foldersOnly); - return await GetRoot(skip, take); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/AllDictionaryController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/AllDictionaryController.cs deleted file mode 100644 index 4415a5ff5f..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/AllDictionaryController.cs +++ /dev/null @@ -1,69 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Mapping; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.ViewModels.Dictionary; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; - -namespace Umbraco.Cms.Api.Management.Controllers.Dictionary; - -public class AllDictionaryController : DictionaryControllerBase -{ - private readonly ILocalizationService _localizationService; - private readonly IUmbracoMapper _umbracoMapper; - - public AllDictionaryController(ILocalizationService localizationService, IUmbracoMapper umbracoMapper) - { - _localizationService = localizationService; - _umbracoMapper = umbracoMapper; - } - - - /// - /// Retrieves a list with all dictionary items - /// - /// - /// The . - /// - [HttpGet] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> All(int skip, int take) - { - IDictionaryItem[] items = _localizationService.GetDictionaryItemDescendants(null).ToArray(); - var list = new List(items.Length); - - // Build the proper tree structure, as we can have nested dictionary items - BuildTree(list, items); - - var model = new PagedViewModel - { - Total = list.Count, - Items = list.Skip(skip).Take(take), - }; - return await Task.FromResult(model); - } - - // recursive method to build a tree structure from the flat structure returned above - private void BuildTree(List list, IDictionaryItem[] items, int level = 0, Guid? parentId = null) - { - IDictionaryItem[] children = items.Where(t => t.ParentId == parentId).ToArray(); - if (children.Any() == false) - { - return; - } - - foreach (IDictionaryItem child in children.OrderBy(item => item.ItemKey)) - { - DictionaryOverviewViewModel? display = _umbracoMapper.Map(child); - if (display is not null) - { - display.Level = level; - list.Add(display); - } - - BuildTree(list, items, level + 1, child.Key); - } - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/ByKeyDictionaryController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/ByKeyDictionaryController.cs deleted file mode 100644 index a595296dc3..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/ByKeyDictionaryController.cs +++ /dev/null @@ -1,47 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Models.ContentEditing; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.ViewModels.Dictionary; -using Umbraco.New.Cms.Core.Factories; - -namespace Umbraco.Cms.Api.Management.Controllers.Dictionary; - -public class ByIdDictionaryController : DictionaryControllerBase -{ - private readonly ILocalizationService _localizationService; - private readonly IDictionaryFactory _dictionaryFactory; - - public ByIdDictionaryController( - ILocalizationService localizationService, - IDictionaryFactory dictionaryFactory) - { - _localizationService = localizationService; - _dictionaryFactory = dictionaryFactory; - } - - /// - /// Gets a dictionary item by guid - /// - /// - /// The id. - /// - /// - /// The . Returns a not found response when dictionary item does not exist - /// - [HttpGet("{key:guid}")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(DictionaryViewModel), StatusCodes.Status200OK)] - [ProducesResponseType(typeof(NotFoundResult), StatusCodes.Status404NotFound)] - public async Task> ByKey(Guid key) - { - IDictionaryItem? dictionary = _localizationService.GetDictionaryItemById(key); - if (dictionary == null) - { - return NotFound(); - } - - return await Task.FromResult(_dictionaryFactory.CreateDictionaryViewModel(dictionary)); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/CreateDictionaryController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/CreateDictionaryController.cs deleted file mode 100644 index ab0cc69625..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/CreateDictionaryController.cs +++ /dev/null @@ -1,90 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; -using Microsoft.Extensions.Options; -using Umbraco.Cms.Core.Configuration.Models; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Security; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.ViewModels.Dictionary; -using Umbraco.Extensions; - -namespace Umbraco.Cms.Api.Management.Controllers.Dictionary; - -public class CreateDictionaryController : DictionaryControllerBase -{ - private readonly ILocalizationService _localizationService; - private readonly ILocalizedTextService _localizedTextService; - private readonly GlobalSettings _globalSettings; - private readonly IBackOfficeSecurityAccessor _backofficeSecurityAccessor; - private readonly ILogger _logger; - - public CreateDictionaryController( - ILocalizationService localizationService, - ILocalizedTextService localizedTextService, - IOptionsSnapshot globalSettings, - IBackOfficeSecurityAccessor backofficeSecurityAccessor, - ILogger logger) - { - _localizationService = localizationService; - _localizedTextService = localizedTextService; - _globalSettings = globalSettings.Value; - _backofficeSecurityAccessor = backofficeSecurityAccessor; - _logger = logger; - } - - /// - /// Creates a new dictionary item - /// - /// The viewmodel to pass to the action - /// - /// The . - /// - [HttpPost] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(CreatedResult), StatusCodes.Status201Created)] - [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] - public async Task> Create(DictionaryItemViewModel dictionaryViewModel) - { - if (string.IsNullOrEmpty(dictionaryViewModel.Key.ToString())) - { - return ValidationProblem("Key can not be empty."); // TODO: translate - } - - if (_localizationService.DictionaryItemExists(dictionaryViewModel.Key.ToString())) - { - var message = _localizedTextService.Localize( - "dictionaryItem", - "changeKeyError", - _backofficeSecurityAccessor.BackOfficeSecurity?.CurrentUser?.GetUserCulture(_localizedTextService, _globalSettings), - new Dictionary - { - { "0", dictionaryViewModel.Key.ToString() }, - }); - return await Task.FromResult(ValidationProblem(message)); - } - - try - { - Guid? parentGuid = null; - - if (dictionaryViewModel.ParentId.HasValue) - { - parentGuid = dictionaryViewModel.ParentId; - } - - IDictionaryItem item = _localizationService.CreateDictionaryItemWithIdentity( - dictionaryViewModel.Key.ToString(), - parentGuid, - string.Empty); - - - return await Task.FromResult(Created($"api/v1.0/dictionary/{item.Key}", item.Key)); - } - catch (Exception ex) - { - _logger.LogError(ex, "Error creating dictionary with {Name} under {ParentId}", dictionaryViewModel.Key, dictionaryViewModel.ParentId); - return await Task.FromResult(ValidationProblem("Error creating dictionary item")); - } - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/DeleteDictionaryController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/DeleteDictionaryController.cs deleted file mode 100644 index 0f86cc0e5a..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/DeleteDictionaryController.cs +++ /dev/null @@ -1,51 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Security; -using Umbraco.Cms.Core.Services; - -namespace Umbraco.Cms.Api.Management.Controllers.Dictionary; - -public class DeleteDictionaryController : DictionaryControllerBase -{ - private readonly ILocalizationService _localizationService; - private readonly IBackOfficeSecurityAccessor _backOfficeSecurityAccessor; - - public DeleteDictionaryController(ILocalizationService localizationService, IBackOfficeSecurityAccessor backOfficeSecurityAccessor) - { - _localizationService = localizationService; - _backOfficeSecurityAccessor = backOfficeSecurityAccessor; - } - /// - /// Deletes a data type with a given ID - /// - /// The key of the dictionary item to delete - /// - /// - /// - [HttpDelete("{key}")] - [MapToApiVersion("1.0")] - [ProducesResponseType(StatusCodes.Status200OK)] - [ProducesResponseType(typeof(NotFoundResult), StatusCodes.Status404NotFound)] - public async Task Delete(Guid key) - { - IDictionaryItem? foundDictionary = _localizationService.GetDictionaryItemByKey(key.ToString()); - - if (foundDictionary == null) - { - return await Task.FromResult(NotFound()); - } - - IEnumerable foundDictionaryDescendants = - _localizationService.GetDictionaryItemDescendants(foundDictionary.Key); - - foreach (IDictionaryItem dictionaryItem in foundDictionaryDescendants) - { - _localizationService.Delete(dictionaryItem, _backOfficeSecurityAccessor.BackOfficeSecurity?.CurrentUser?.Id ?? -1); - } - - _localizationService.Delete(foundDictionary, _backOfficeSecurityAccessor.BackOfficeSecurity?.CurrentUser?.Id ?? -1); - - return await Task.FromResult(Ok()); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/DictionaryControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/DictionaryControllerBase.cs deleted file mode 100644 index 4914298d14..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/DictionaryControllerBase.cs +++ /dev/null @@ -1,13 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Api.Management.Routing; - -namespace Umbraco.Cms.Api.Management.Controllers.Dictionary; - -[ApiController] -[VersionedApiBackOfficeRoute("dictionary")] -[ApiExplorerSettings(GroupName = "Dictionary")] -[ApiVersion("1.0")] -// TODO: Add authentication -public abstract class DictionaryControllerBase : ManagementApiControllerBase -{ -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/ExportDictionaryController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/ExportDictionaryController.cs deleted file mode 100644 index 1b0236af93..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/ExportDictionaryController.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System.Net.Mime; -using System.Text; -using System.Xml.Linq; -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Services; -using Umbraco.Extensions; - -namespace Umbraco.Cms.Api.Management.Controllers.Dictionary; - -public class ExportDictionaryController : DictionaryControllerBase -{ - private readonly ILocalizationService _localizationService; - private readonly IEntityXmlSerializer _entityXmlSerializer; - - public ExportDictionaryController(ILocalizationService localizationService, IEntityXmlSerializer entityXmlSerializer) - { - _localizationService = localizationService; - _entityXmlSerializer = entityXmlSerializer; - } - - [HttpGet("export/{key:guid}")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(FileContentResult), StatusCodes.Status200OK)] - [ProducesResponseType(typeof(NotFoundResult), StatusCodes.Status404NotFound)] - public async Task ExportDictionary(Guid key, bool includeChildren = false) - { - IDictionaryItem? dictionaryItem = _localizationService.GetDictionaryItemById(key); - if (dictionaryItem is null) - { - return await Task.FromResult(NotFound()); - } - - XElement xml = _entityXmlSerializer.Serialize(dictionaryItem, includeChildren); - - var fileName = $"{dictionaryItem.ItemKey}.udt"; - - // Set custom header so umbRequestHelper.downloadFile can save the correct filename - HttpContext.Response.Headers.Add("x-filename", fileName); - - return await Task.FromResult(File(Encoding.UTF8.GetBytes(xml.ToDataString()), MediaTypeNames.Application.Octet, fileName)); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/ImportDictionaryController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/ImportDictionaryController.cs deleted file mode 100644 index ef1cf4a24f..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/ImportDictionaryController.cs +++ /dev/null @@ -1,52 +0,0 @@ -using System.Net.Mime; -using System.Text; -using Microsoft.AspNetCore.Hosting; -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.Extensions; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Services; -using IHostingEnvironment = Umbraco.Cms.Core.Hosting.IHostingEnvironment; - -namespace Umbraco.Cms.Api.Management.Controllers.Dictionary; - -public class ImportDictionaryController : DictionaryControllerBase -{ - private readonly IDictionaryService _dictionaryService; - private readonly IWebHostEnvironment _webHostEnvironment; - private readonly ILoadDictionaryItemService _loadDictionaryItemService; - - public ImportDictionaryController( - IDictionaryService dictionaryService, - IWebHostEnvironment webHostEnvironment, - ILoadDictionaryItemService loadDictionaryItemService) - { - _dictionaryService = dictionaryService; - _webHostEnvironment = webHostEnvironment; - _loadDictionaryItemService = loadDictionaryItemService; - } - - [HttpPost("import")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(ContentResult), StatusCodes.Status200OK)] - [ProducesResponseType(typeof(NotFoundResult), StatusCodes.Status404NotFound)] - public async Task ImportDictionary(string file, int? parentId) - { - if (string.IsNullOrWhiteSpace(file)) - { - return NotFound(); - } - - var filePath = Path.Combine(_webHostEnvironment.MapPathContentRoot(Constants.SystemDirectories.Data), file); - if (_webHostEnvironment.ContentRootFileProvider.GetFileInfo(filePath) is null) - { - return await Task.FromResult(NotFound()); - } - - IDictionaryItem dictionaryItem = _loadDictionaryItemService.Load(filePath, parentId); - - return await Task.FromResult(Content(_dictionaryService.CalculatePath(dictionaryItem.ParentId, dictionaryItem.Id), MediaTypeNames.Text.Plain, Encoding.UTF8)); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/Tree/ChildrenDictionaryTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/Tree/ChildrenDictionaryTreeController.cs deleted file mode 100644 index 8dfa33835f..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/Tree/ChildrenDictionaryTreeController.cs +++ /dev/null @@ -1,39 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Services.Paging; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.Dictionary.Tree; - -public class ChildrenDictionaryTreeController : DictionaryTreeControllerBase -{ - public ChildrenDictionaryTreeController(IEntityService entityService, ILocalizationService localizationService) - : base(entityService, localizationService) - { - } - - [HttpGet("children")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Children(Guid parentKey, int skip = 0, int take = 100) - { - if (PaginationService.ConvertSkipTakeToPaging(skip, take, out var pageNumber, out var pageSize, out ProblemDetails? error) == false) - { - return BadRequest(error); - } - - IDictionaryItem[] dictionaryItems = PaginatedDictionaryItems( - pageNumber, - pageSize, - LocalizationService.GetDictionaryItemChildren(parentKey), - out var totalItems); - - EntityTreeItemViewModel[] viewModels = MapTreeItemViewModels(null, dictionaryItems); - - PagedViewModel result = PagedViewModel(viewModels, totalItems); - return await Task.FromResult(Ok(result)); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/Tree/DictionaryTreeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/Tree/DictionaryTreeControllerBase.cs deleted file mode 100644 index 87fdd2bdde..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/Tree/DictionaryTreeControllerBase.cs +++ /dev/null @@ -1,52 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Controllers.Tree; -using Umbraco.Cms.Api.Management.ViewModels.Tree; -using Umbraco.Cms.Api.Management.Routing; - -namespace Umbraco.Cms.Api.Management.Controllers.Dictionary.Tree; - -[ApiVersion("1.0")] -[ApiController] -[VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.Tree}/dictionary")] -[ApiExplorerSettings(GroupName = "Dictionary")] -// NOTE: at the moment dictionary items (renamed to dictionary tree) aren't supported by EntityService, so we have little use of the -// tree controller base. We'll keep it though, in the hope that we can mend EntityService. -public class DictionaryTreeControllerBase : EntityTreeControllerBase -{ - public DictionaryTreeControllerBase(IEntityService entityService, ILocalizationService localizationService) - : base(entityService) => - LocalizationService = localizationService; - - // dictionary items do not currently have a known UmbracoObjectType, so we'll settle with Unknown for now - protected override UmbracoObjectTypes ItemObjectType => UmbracoObjectTypes.Unknown; - - protected ILocalizationService LocalizationService { get; } - - protected EntityTreeItemViewModel[] MapTreeItemViewModels(Guid? parentKey, IDictionaryItem[] dictionaryItems) - => dictionaryItems.Select(dictionaryItem => new EntityTreeItemViewModel - { - Icon = Constants.Icons.RelationType, - Name = dictionaryItem.ItemKey, - Key = dictionaryItem.Key, - Type = Constants.UdiEntityType.DictionaryItem, - HasChildren = false, - IsContainer = LocalizationService.GetDictionaryItemChildren(dictionaryItem.Key).Any(), - ParentKey = parentKey - }).ToArray(); - - // localization service does not (yet) allow pagination of dictionary items, we have to do it in memory for now - protected IDictionaryItem[] PaginatedDictionaryItems(long pageNumber, int pageSize, IEnumerable allDictionaryItems, out long totalItems) - { - IDictionaryItem[] allDictionaryItemsAsArray = allDictionaryItems.ToArray(); - - totalItems = allDictionaryItemsAsArray.Length; - return allDictionaryItemsAsArray - .OrderBy(item => item.ItemKey) - .Skip((int)pageNumber * pageSize) - .Take(pageSize) - .ToArray(); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/Tree/ItemsDictionaryTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/Tree/ItemsDictionaryTreeController.cs deleted file mode 100644 index c74cf8f340..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/Tree/ItemsDictionaryTreeController.cs +++ /dev/null @@ -1,27 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.Dictionary.Tree; - -public class ItemsDictionaryTreeController : DictionaryTreeControllerBase -{ - public ItemsDictionaryTreeController(IEntityService entityService, ILocalizationService localizationService) - : base(entityService, localizationService) - { - } - - [HttpGet("item")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] - public async Task>> Items([FromQuery(Name = "key")] Guid[] keys) - { - IDictionaryItem[] dictionaryItems = LocalizationService.GetDictionaryItemsByIds(keys).ToArray(); - - EntityTreeItemViewModel[] viewModels = MapTreeItemViewModels(null, dictionaryItems); - - return await Task.FromResult(Ok(viewModels)); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/Tree/RootDictionaryTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/Tree/RootDictionaryTreeController.cs deleted file mode 100644 index bd2fc78418..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/Tree/RootDictionaryTreeController.cs +++ /dev/null @@ -1,39 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Services.Paging; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.Dictionary.Tree; - -public class RootDictionaryTreeController : DictionaryTreeControllerBase -{ - public RootDictionaryTreeController(IEntityService entityService, ILocalizationService localizationService) - : base(entityService, localizationService) - { - } - - [HttpGet("root")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Root(int skip = 0, int take = 100) - { - if (PaginationService.ConvertSkipTakeToPaging(skip, take, out var pageNumber, out var pageSize, out ProblemDetails? error) == false) - { - return BadRequest(error); - } - - IDictionaryItem[] dictionaryItems = PaginatedDictionaryItems( - pageNumber, - pageSize, - LocalizationService.GetRootDictionaryItems(), - out var totalItems); - - EntityTreeItemViewModel[] viewModels = MapTreeItemViewModels(null, dictionaryItems); - - PagedViewModel result = PagedViewModel(viewModels, totalItems); - return await Task.FromResult(Ok(result)); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/UpdateDictionaryController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/UpdateDictionaryController.cs deleted file mode 100644 index efe2214733..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/UpdateDictionaryController.cs +++ /dev/null @@ -1,75 +0,0 @@ -using System.Net.Mime; -using System.Text; -using System.Text.Json; -using Json.Patch; -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Mapping; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Serialization; -using Umbraco.Cms.Api.Management.Services; -using Umbraco.Cms.Api.Management.ViewModels.Dictionary; -using Umbraco.Cms.Api.Management.ViewModels.JsonPatch; -using Umbraco.New.Cms.Core.Factories; - -namespace Umbraco.Cms.Api.Management.Controllers.Dictionary; - -public class UpdateDictionaryController : DictionaryControllerBase -{ - private readonly ILocalizationService _localizationService; - private readonly IUmbracoMapper _umbracoMapper; - private readonly IDictionaryService _dictionaryService; - private readonly IDictionaryFactory _dictionaryFactory; - private readonly IJsonPatchService _jsonPatchService; - private readonly ISystemTextJsonSerializer _systemTextJsonSerializer; - - public UpdateDictionaryController( - ILocalizationService localizationService, - IUmbracoMapper umbracoMapper, - IDictionaryService dictionaryService, - IDictionaryFactory dictionaryFactory, - IJsonPatchService jsonPatchService, - ISystemTextJsonSerializer systemTextJsonSerializer) - { - _localizationService = localizationService; - _umbracoMapper = umbracoMapper; - _dictionaryService = dictionaryService; - _dictionaryFactory = dictionaryFactory; - _jsonPatchService = jsonPatchService; - _systemTextJsonSerializer = systemTextJsonSerializer; - } - - [HttpPatch("{id:Guid}")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(ContentResult), StatusCodes.Status200OK)] - [ProducesResponseType(typeof(NotFoundResult), StatusCodes.Status404NotFound)] - public async Task Update(Guid id, JsonPatchViewModel[] updateViewModel) - { - IDictionaryItem? dictionaryItem = _localizationService.GetDictionaryItemById(id); - - if (dictionaryItem is null) - { - return NotFound(); - } - - DictionaryViewModel dictionaryToPatch = _umbracoMapper.Map(dictionaryItem)!; - - PatchResult? result = _jsonPatchService.Patch(updateViewModel, dictionaryToPatch); - - if (result?.Result is null) - { - throw new JsonException("Could not patch the JsonPatchViewModel"); - } - - DictionaryViewModel? updatedDictionaryItem = _systemTextJsonSerializer.Deserialize(result.Result.ToJsonString()); - if (updatedDictionaryItem is null) - { - throw new JsonException("Could not serialize from PatchResult to DictionaryViewModel"); - } - - IDictionaryItem dictionaryToSave = _dictionaryFactory.CreateDictionaryItem(updatedDictionaryItem!); - _localizationService.Save(dictionaryToSave); - return await Task.FromResult(Content(_dictionaryService.CalculatePath(dictionaryToSave.ParentId, dictionaryToSave.Id), MediaTypeNames.Text.Plain, Encoding.UTF8)); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/UploadDictionaryController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/UploadDictionaryController.cs deleted file mode 100644 index 32156d21c0..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/UploadDictionaryController.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System.Xml; -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Models; -using Umbraco.Cms.Api.Management.Services; -using Umbraco.Cms.Api.Management.ViewModels.Dictionary; -using Umbraco.Extensions; -using Umbraco.New.Cms.Core.Factories; - -namespace Umbraco.Cms.Api.Management.Controllers.Dictionary; - -public class UploadDictionaryController : DictionaryControllerBase -{ - private readonly ILocalizedTextService _localizedTextService; - private readonly IUploadFileService _uploadFileService; - private readonly IDictionaryFactory _dictionaryFactory; - - public UploadDictionaryController(ILocalizedTextService localizedTextService, IUploadFileService uploadFileService, IDictionaryFactory dictionaryFactory) - { - _localizedTextService = localizedTextService; - _uploadFileService = uploadFileService; - _dictionaryFactory = dictionaryFactory; - } - - [HttpPost("upload")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(DictionaryImportViewModel), StatusCodes.Status200OK)] - [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] - public async Task> Upload(IFormFile file) - { - FormFileUploadResult formFileUploadResult = _uploadFileService.TryLoad(file); - if (formFileUploadResult.CouldLoad is false || formFileUploadResult.XmlDocument is null) - { - return await Task.FromResult(ValidationProblem( - _localizedTextService.Localize("media", "failedFileUpload"), - formFileUploadResult.ErrorMessage)); - } - - DictionaryImportViewModel model = _dictionaryFactory.CreateDictionaryImportViewModel(formFileUploadResult); - - if (!model.DictionaryItems.Any()) - { - return ValidationProblem( - _localizedTextService.Localize("media", "failedFileUpload"), - _localizedTextService.Localize("dictionary", "noItemsInFile")); - } - - return await Task.FromResult(model); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/ChildrenDocumentRecycleBinController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/ChildrenDocumentRecycleBinController.cs deleted file mode 100644 index 412b6e3306..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/ChildrenDocumentRecycleBinController.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.RecycleBin; - -namespace Umbraco.Cms.Api.Management.Controllers.Document.RecycleBin; - -public class ChildrenDocumentRecycleBinController : DocumentRecycleBinControllerBase -{ - public ChildrenDocumentRecycleBinController(IEntityService entityService) - : base(entityService) - { - } - - [HttpGet("children")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Children(Guid parentKey, int skip = 0, int take = 100) - => await GetChildren(parentKey, skip, take); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/DocumentRecycleBinControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/DocumentRecycleBinControllerBase.cs deleted file mode 100644 index 222aac35db..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/DocumentRecycleBinControllerBase.cs +++ /dev/null @@ -1,42 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Models.Entities; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Controllers.RecycleBin; -using Umbraco.Cms.Api.Management.Filters; -using Umbraco.Cms.Api.Management.ViewModels.RecycleBin; -using Umbraco.Cms.Api.Management.Routing; - -namespace Umbraco.Cms.Api.Management.Controllers.Document.RecycleBin; - -[ApiVersion("1.0")] -[ApiController] -[VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.RecycleBin}/{Constants.UdiEntityType.Document}")] -[RequireDocumentTreeRootAccess] -[ProducesResponseType(StatusCodes.Status401Unauthorized)] -[ApiExplorerSettings(GroupName = nameof(Constants.UdiEntityType.Document))] -public class DocumentRecycleBinControllerBase : RecycleBinControllerBase -{ - public DocumentRecycleBinControllerBase(IEntityService entityService) - : base(entityService) - { - } - - protected override UmbracoObjectTypes ItemObjectType => UmbracoObjectTypes.Document; - - protected override int RecycleBinRootId => Constants.System.RecycleBinContent; - - protected override RecycleBinItemViewModel MapRecycleBinViewModel(Guid? parentKey, IEntitySlim entity) - { - RecycleBinItemViewModel viewModel = base.MapRecycleBinViewModel(parentKey, entity); - - if (entity is IDocumentEntitySlim documentEntitySlim) - { - viewModel.Icon = documentEntitySlim.ContentTypeIcon ?? viewModel.Icon; - } - - return viewModel; - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/RootDocumentRecycleBinController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/RootDocumentRecycleBinController.cs deleted file mode 100644 index 2d8a4ef8d5..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/RecycleBin/RootDocumentRecycleBinController.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.RecycleBin; - -namespace Umbraco.Cms.Api.Management.Controllers.Document.RecycleBin; - -public class RootDocumentRecycleBinController : DocumentRecycleBinControllerBase -{ - public RootDocumentRecycleBinController(IEntityService entityService) - : base(entityService) - { - } - - [HttpGet("root")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Root(int skip = 0, int take = 100) - => await GetRoot(skip, take); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/Tree/ChildrenDocumentTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/Tree/ChildrenDocumentTreeController.cs deleted file mode 100644 index 63361b2c67..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/Tree/ChildrenDocumentTreeController.cs +++ /dev/null @@ -1,34 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Cache; -using Umbraco.Cms.Core.Security; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Services.Entities; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.Document.Tree; - -public class ChildrenDocumentTreeController : DocumentTreeControllerBase -{ - public ChildrenDocumentTreeController( - IEntityService entityService, - IUserStartNodeEntitiesService userStartNodeEntitiesService, - IDataTypeService dataTypeService, - IPublicAccessService publicAccessService, - AppCaches appCaches, - IBackOfficeSecurityAccessor backofficeSecurityAccessor) - : base(entityService, userStartNodeEntitiesService, dataTypeService, publicAccessService, appCaches, backofficeSecurityAccessor) - { - } - - [HttpGet("children")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Children(Guid parentKey, int skip = 0, int take = 100, Guid? dataTypeKey = null, string? culture = null) - { - IgnoreUserStartNodesForDataType(dataTypeKey); - RenderForClientCulture(culture); - return await GetChildren(parentKey, skip, take); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/Tree/DocumentTreeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/Tree/DocumentTreeControllerBase.cs deleted file mode 100644 index 2b8463de26..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/Tree/DocumentTreeControllerBase.cs +++ /dev/null @@ -1,93 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.Cache; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Models.Entities; -using Umbraco.Cms.Core.Security; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Controllers.Tree; -using Umbraco.Cms.Api.Management.Services.Entities; -using Umbraco.Cms.Api.Management.ViewModels.Tree; -using Umbraco.Extensions; -using Umbraco.Cms.Api.Management.Routing; - -namespace Umbraco.Cms.Api.Management.Controllers.Document.Tree; - -[ApiVersion("1.0")] -[ApiController] -[VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.Tree}/{Constants.UdiEntityType.Document}")] -[ApiExplorerSettings(GroupName = nameof(Constants.UdiEntityType.Document))] -public abstract class DocumentTreeControllerBase : UserStartNodeTreeControllerBase -{ - private readonly IPublicAccessService _publicAccessService; - private readonly AppCaches _appCaches; - private readonly IBackOfficeSecurityAccessor _backofficeSecurityAccessor; - private string? _culture; - - protected DocumentTreeControllerBase( - IEntityService entityService, - IUserStartNodeEntitiesService userStartNodeEntitiesService, - IDataTypeService dataTypeService, - IPublicAccessService publicAccessService, - AppCaches appCaches, - IBackOfficeSecurityAccessor backofficeSecurityAccessor) - : base(entityService, userStartNodeEntitiesService, dataTypeService) - { - _publicAccessService = publicAccessService; - _appCaches = appCaches; - _backofficeSecurityAccessor = backofficeSecurityAccessor; - } - - protected override UmbracoObjectTypes ItemObjectType => UmbracoObjectTypes.Document; - - protected override Ordering ItemOrdering => Ordering.By(nameof(Infrastructure.Persistence.Dtos.NodeDto.SortOrder)); - - protected void RenderForClientCulture(string? culture) => _culture = culture; - - protected override DocumentTreeItemViewModel MapTreeItemViewModel(Guid? parentKey, IEntitySlim entity) - { - DocumentTreeItemViewModel viewModel = base.MapTreeItemViewModel(parentKey, entity); - - if (entity is IDocumentEntitySlim documentEntitySlim) - { - viewModel.IsPublished = documentEntitySlim.Published; - viewModel.IsEdited = documentEntitySlim.Edited; - viewModel.Icon = documentEntitySlim.ContentTypeIcon ?? viewModel.Icon; - viewModel.IsProtected = _publicAccessService.IsProtected(entity.Path); - - if (_culture != null && documentEntitySlim.Variations.VariesByCulture()) - { - viewModel.Name = documentEntitySlim.CultureNames.TryGetValue(_culture, out var cultureName) - ? cultureName - : $"({viewModel.Name})"; - - viewModel.IsPublished = documentEntitySlim.PublishedCultures.Contains(_culture); - viewModel.IsEdited = documentEntitySlim.EditedCultures.Contains(_culture); - } - - viewModel.IsEdited &= viewModel.IsPublished; - } - - return viewModel; - } - - // TODO: delete these (faking start node setup for unlimited editor) - protected override int[] GetUserStartNodeIds() => new[] { -1 }; - - protected override string[] GetUserStartNodePaths() => Array.Empty(); - - // TODO: use these implementations instead of the dummy ones above once we have backoffice auth in place - // protected override int[] GetUserStartNodeIds() - // => _backofficeSecurityAccessor - // .BackOfficeSecurity? - // .CurrentUser? - // .CalculateContentStartNodeIds(EntityService, _appCaches) - // ?? Array.Empty(); - // - // protected override string[] GetUserStartNodePaths() - // => _backofficeSecurityAccessor - // .BackOfficeSecurity? - // .CurrentUser? - // .GetContentStartNodePaths(EntityService, _appCaches) - // ?? Array.Empty(); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/Tree/ItemsDocumentTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/Tree/ItemsDocumentTreeController.cs deleted file mode 100644 index 22fe695c36..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/Tree/ItemsDocumentTreeController.cs +++ /dev/null @@ -1,33 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Cache; -using Umbraco.Cms.Core.Security; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Services.Entities; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.Document.Tree; - -public class ItemsDocumentTreeController : DocumentTreeControllerBase -{ - public ItemsDocumentTreeController( - IEntityService entityService, - IUserStartNodeEntitiesService userStartNodeEntitiesService, - IDataTypeService dataTypeService, - IPublicAccessService publicAccessService, - AppCaches appCaches, - IBackOfficeSecurityAccessor backofficeSecurityAccessor) - : base(entityService, userStartNodeEntitiesService, dataTypeService, publicAccessService, appCaches, backofficeSecurityAccessor) - { - } - - [HttpGet("item")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] - public async Task>> Items([FromQuery(Name = "key")] Guid[] keys, Guid? dataTypeKey = null, string? culture = null) - { - IgnoreUserStartNodesForDataType(dataTypeKey); - RenderForClientCulture(culture); - return await GetItems(keys); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/Tree/RootDocumentTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/Tree/RootDocumentTreeController.cs deleted file mode 100644 index dfe51475a8..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/Tree/RootDocumentTreeController.cs +++ /dev/null @@ -1,34 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Cache; -using Umbraco.Cms.Core.Security; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Services.Entities; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.Document.Tree; - -public class RootDocumentTreeController : DocumentTreeControllerBase -{ - public RootDocumentTreeController( - IEntityService entityService, - IUserStartNodeEntitiesService userStartNodeEntitiesService, - IDataTypeService dataTypeService, - IPublicAccessService publicAccessService, - AppCaches appCaches, - IBackOfficeSecurityAccessor backofficeSecurityAccessor) - : base(entityService, userStartNodeEntitiesService, dataTypeService, publicAccessService, appCaches, backofficeSecurityAccessor) - { - } - - [HttpGet("root")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Root(int skip = 0, int take = 100, Guid? dataTypeKey = null, string? culture = null) - { - IgnoreUserStartNodesForDataType(dataTypeKey); - RenderForClientCulture(culture); - return await GetRoot(skip, take); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Tree/DocumentBlueprintTreeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Tree/DocumentBlueprintTreeControllerBase.cs deleted file mode 100644 index cd43bb8d4f..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Tree/DocumentBlueprintTreeControllerBase.cs +++ /dev/null @@ -1,55 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Models.Entities; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Controllers.Tree; -using Umbraco.Cms.Api.Management.ViewModels.Tree; -using Umbraco.Cms.Api.Management.Routing; - -namespace Umbraco.Cms.Api.Management.Controllers.DocumentBlueprint.Tree; - -[ApiVersion("1.0")] -[ApiController] -[VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.Tree}/{Constants.UdiEntityType.DocumentBlueprint}")] -[ApiExplorerSettings(GroupName = "Document Blueprint")] -public class DocumentBlueprintTreeControllerBase : EntityTreeControllerBase -{ - private readonly IContentTypeService _contentTypeService; - - public DocumentBlueprintTreeControllerBase(IEntityService entityService, IContentTypeService contentTypeService) - : base(entityService) => - _contentTypeService = contentTypeService; - - protected override UmbracoObjectTypes ItemObjectType => UmbracoObjectTypes.DocumentBlueprint; - - protected override DocumentBlueprintTreeItemViewModel[] MapTreeItemViewModels(Guid? parentKey, IEntitySlim[] entities) - { - var contentTypeAliases = entities - .OfType() - .Select(entity => entity.ContentTypeAlias) - .ToArray(); - - var contentTypeIds = _contentTypeService.GetAllContentTypeIds(contentTypeAliases).ToArray(); - var contentTypeByAlias = _contentTypeService - .GetAll(contentTypeIds) - .ToDictionary(contentType => contentType.Alias); - - return entities.Select(entity => - { - DocumentBlueprintTreeItemViewModel viewModel = base.MapTreeItemViewModel(parentKey, entity); - viewModel.Icon = Constants.Icons.Blueprint; - viewModel.HasChildren = false; - - if (entity is IDocumentEntitySlim documentEntitySlim - && contentTypeByAlias.TryGetValue(documentEntitySlim.ContentTypeAlias, out IContentType? contentType)) - { - viewModel.DocumentTypeKey = contentType.Key; - viewModel.DocumentTypeAlias = contentType.Alias; - viewModel.DocumentTypeName = contentType.Name; - } - - return viewModel; - }).ToArray(); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Tree/ItemsDocumentBlueprintTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Tree/ItemsDocumentBlueprintTreeController.cs deleted file mode 100644 index 0b9daed9c0..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Tree/ItemsDocumentBlueprintTreeController.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.DocumentBlueprint.Tree; - -public class ItemsDocumentBlueprintTreeController : DocumentBlueprintTreeControllerBase -{ - public ItemsDocumentBlueprintTreeController(IEntityService entityService, IContentTypeService contentTypeService) - : base(entityService, contentTypeService) - { - } - - [HttpGet("item")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] - public async Task>> Items([FromQuery(Name = "key")] Guid[] keys) - => await GetItems(keys); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Tree/RootDocumentBlueprintTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Tree/RootDocumentBlueprintTreeController.cs deleted file mode 100644 index 9df4a53723..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Tree/RootDocumentBlueprintTreeController.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.DocumentBlueprint.Tree; - -public class RootDocumentBlueprintTreeController : DocumentBlueprintTreeControllerBase -{ - public RootDocumentBlueprintTreeController(IEntityService entityService, IContentTypeService contentTypeService) - : base(entityService, contentTypeService) - { - } - - [HttpGet("root")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Root(int skip = 0, int take = 100) - => await GetRoot(skip, take); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Tree/ChildrenDocumentTypeTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Tree/ChildrenDocumentTypeTreeController.cs deleted file mode 100644 index f9e3971fa5..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Tree/ChildrenDocumentTypeTreeController.cs +++ /dev/null @@ -1,24 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.DocumentType.Tree; - -public class ChildrenDocumentTypeTreeController : DocumentTypeTreeControllerBase -{ - public ChildrenDocumentTypeTreeController(IEntityService entityService, IContentTypeService contentTypeService) - : base(entityService, contentTypeService) - { - } - - [HttpGet("children")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Children(Guid parentKey, int skip = 0, int take = 100, bool foldersOnly = false) - { - RenderFoldersOnly(foldersOnly); - return await GetChildren(parentKey, skip, take); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Tree/DocumentTypeTreeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Tree/DocumentTypeTreeControllerBase.cs deleted file mode 100644 index d0a0d27143..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Tree/DocumentTypeTreeControllerBase.cs +++ /dev/null @@ -1,46 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Models.Entities; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Controllers.Tree; -using Umbraco.Cms.Api.Management.ViewModels.Tree; -using Umbraco.Cms.Api.Management.Routing; - -namespace Umbraco.Cms.Api.Management.Controllers.DocumentType.Tree; - -[ApiVersion("1.0")] -[ApiController] -[VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.Tree}/{Constants.UdiEntityType.DocumentType}")] -[ApiExplorerSettings(GroupName = "Document Type")] -public class DocumentTypeTreeControllerBase : FolderTreeControllerBase -{ - private readonly IContentTypeService _contentTypeService; - - public DocumentTypeTreeControllerBase(IEntityService entityService, IContentTypeService contentTypeService) - : base(entityService) => - _contentTypeService = contentTypeService; - - protected override UmbracoObjectTypes ItemObjectType => UmbracoObjectTypes.DocumentType; - - protected override UmbracoObjectTypes FolderObjectType => UmbracoObjectTypes.DocumentTypeContainer; - - protected override DocumentTypeTreeItemViewModel[] MapTreeItemViewModels(Guid? parentKey, IEntitySlim[] entities) - { - var contentTypes = _contentTypeService - .GetAll(entities.Select(entity => entity.Id).ToArray()) - .ToDictionary(contentType => contentType.Id); - - return entities.Select(entity => - { - DocumentTypeTreeItemViewModel viewModel = MapTreeItemViewModel(parentKey, entity); - if (contentTypes.TryGetValue(entity.Id, out IContentType? contentType)) - { - viewModel.Icon = contentType.Icon ?? viewModel.Icon; - viewModel.IsElement = contentType.IsElement; - } - - return viewModel; - }).ToArray(); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Tree/ItemsDocumentTypeTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Tree/ItemsDocumentTypeTreeController.cs deleted file mode 100644 index 411e5f7446..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Tree/ItemsDocumentTypeTreeController.cs +++ /dev/null @@ -1,20 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.DocumentType.Tree; - -public class ItemsDocumentTypeTreeController : DocumentTypeTreeControllerBase -{ - public ItemsDocumentTypeTreeController(IEntityService entityService, IContentTypeService contentTypeService) - : base(entityService, contentTypeService) - { - } - - [HttpGet("item")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] - public async Task>> Items([FromQuery(Name = "key")] Guid[] keys) - => await GetItems(keys); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Tree/RootDocumentTypeTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Tree/RootDocumentTypeTreeController.cs deleted file mode 100644 index 23ba9ebc73..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/Tree/RootDocumentTypeTreeController.cs +++ /dev/null @@ -1,24 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.DocumentType.Tree; - -public class RootDocumentTypeTreeController : DocumentTypeTreeControllerBase -{ - public RootDocumentTypeTreeController(IEntityService entityService, IContentTypeService contentTypeService) - : base(entityService, contentTypeService) - { - } - - [HttpGet("root")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Root(int skip = 0, int take = 100, bool foldersOnly = false) - { - RenderFoldersOnly(foldersOnly); - return await GetRoot(skip, take); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/HealthCheck/ExecuteActionHealthCheckController.cs b/src/Umbraco.Cms.Api.Management/Controllers/HealthCheck/ExecuteActionHealthCheckController.cs deleted file mode 100644 index bdfef7dc39..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/HealthCheck/ExecuteActionHealthCheckController.cs +++ /dev/null @@ -1,64 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Options; -using Umbraco.Cms.Api.Management.ViewModels.HealthCheck; -using Umbraco.Cms.Core.Configuration.Models; -using Umbraco.Cms.Core.HealthChecks; -using Umbraco.Cms.Core.Mapping; - -namespace Umbraco.Cms.Api.Management.Controllers.HealthCheck; - -public class ExecuteActionHealthCheckController : HealthCheckControllerBase -{ - private readonly HealthCheckCollection _healthChecks; - private readonly IUmbracoMapper _umbracoMapper; - private readonly IList _disabledCheckIds; - - public ExecuteActionHealthCheckController( - HealthCheckCollection healthChecks, - IOptions healthChecksSettings, - IUmbracoMapper umbracoMapper) - { - _healthChecks = healthChecks; - _disabledCheckIds = healthChecksSettings.Value - .DisabledChecks - .Select(x => x.Id) - .ToList(); - _umbracoMapper = umbracoMapper; - } - - /// - /// Executes a given action from a HealthCheck. - /// - /// The action to be executed. - /// The result of a health check after the health check action is performed. - [HttpPost("execute-action")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] - [ProducesResponseType(typeof(HealthCheckResultViewModel), StatusCodes.Status200OK)] - public async Task> ExecuteAction(HealthCheckActionViewModel action) - { - Guid healthCheckKey = action.HealthCheckKey; - - Core.HealthChecks.HealthCheck? healthCheck = _healthChecks - .Where(x => _disabledCheckIds.Contains(healthCheckKey) == false) - .FirstOrDefault(x => x.Id == healthCheckKey); - - if (healthCheck is null) - { - var invalidModelProblem = new ProblemDetails - { - Title = "Health Check Not Found", - Detail = $"No health check found with key = {healthCheckKey}", - Status = StatusCodes.Status400BadRequest, - Type = "Error", - }; - - return await Task.FromResult(BadRequest(invalidModelProblem)); - } - - HealthCheckStatus result = healthCheck.ExecuteAction(_umbracoMapper.Map(action)!); - - return await Task.FromResult(Ok(_umbracoMapper.Map(result))); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/HealthCheck/Group/AllHealthCheckGroupController.cs b/src/Umbraco.Cms.Api.Management/Controllers/HealthCheck/Group/AllHealthCheckGroupController.cs deleted file mode 100644 index a4f8d91c4c..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/HealthCheck/Group/AllHealthCheckGroupController.cs +++ /dev/null @@ -1,45 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.Factories; -using Umbraco.Cms.Api.Management.ViewModels.HealthCheck; -using Umbraco.Cms.Core.HealthChecks; -using Umbraco.Cms.Core.Mapping; - -namespace Umbraco.Cms.Api.Management.Controllers.HealthCheck.Group; - -public class AllHealthCheckGroupController : HealthCheckGroupControllerBase -{ - private readonly HealthCheckCollection _healthChecks; - private readonly IHealthCheckGroupWithResultViewModelFactory _healthCheckGroupWithResultViewModelFactory; - private readonly IUmbracoMapper _umbracoMapper; - - public AllHealthCheckGroupController( - HealthCheckCollection healthChecks, - IHealthCheckGroupWithResultViewModelFactory healthCheckGroupWithResultViewModelFactory, - IUmbracoMapper umbracoMapper) - { - _healthChecks = healthChecks; - _healthCheckGroupWithResultViewModelFactory = healthCheckGroupWithResultViewModelFactory; - _umbracoMapper = umbracoMapper; - } - - /// - /// Gets a paginated grouped list of all health checks without checking the result of each health check. - /// - /// The amount of items to skip. - /// The amount of items to take. - /// The paged result of health checks, grouped by health check group name. - [HttpGet] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> All(int skip = 0, int take = 100) - { - IEnumerable> groups = _healthCheckGroupWithResultViewModelFactory - .CreateGroupingFromHealthCheckCollection(_healthChecks) - .Skip(skip) - .Take(take); - - return await Task.FromResult(Ok(_umbracoMapper.Map>(groups))); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/HealthCheck/Group/ByNameWithResultHealthCheckGroupController.cs b/src/Umbraco.Cms.Api.Management/Controllers/HealthCheck/Group/ByNameWithResultHealthCheckGroupController.cs deleted file mode 100644 index 14965ea926..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/HealthCheck/Group/ByNameWithResultHealthCheckGroupController.cs +++ /dev/null @@ -1,47 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Api.Management.Factories; -using Umbraco.Cms.Api.Management.ViewModels.HealthCheck; -using Umbraco.Cms.Core.HealthChecks; -using Umbraco.Extensions; - -namespace Umbraco.Cms.Api.Management.Controllers.HealthCheck.Group; - -public class ByNameWithResultHealthCheckGroupController : HealthCheckGroupControllerBase -{ - private readonly HealthCheckCollection _healthChecks; - private readonly IHealthCheckGroupWithResultViewModelFactory _healthCheckGroupWithResultViewModelFactory; - - public ByNameWithResultHealthCheckGroupController( - HealthCheckCollection healthChecks, - IHealthCheckGroupWithResultViewModelFactory healthCheckGroupWithResultViewModelFactory) - { - _healthChecks = healthChecks; - _healthCheckGroupWithResultViewModelFactory = healthCheckGroupWithResultViewModelFactory; - } - - /// - /// Gets a health check group with all its health checks by a group name. - /// - /// The name of the group. - /// The health check result(s) will be included as part of the health checks. - /// The health check group or not found result. - [HttpGet("{name}")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(NotFoundResult), StatusCodes.Status404NotFound)] - [ProducesResponseType(typeof(HealthCheckGroupWithResultViewModel), StatusCodes.Status200OK)] - public async Task> ByName(string name) - { - IEnumerable> groups = _healthCheckGroupWithResultViewModelFactory - .CreateGroupingFromHealthCheckCollection(_healthChecks); - - IGrouping? group = groups.FirstOrDefault(x => x.Key.InvariantEquals(name.Trim())); - - if (group is null) - { - return await Task.FromResult(NotFound()); - } - - return await Task.FromResult(Ok(_healthCheckGroupWithResultViewModelFactory.CreateHealthCheckGroupWithResultViewModel(group))); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/HealthCheck/Group/HealthCheckGroupControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/HealthCheck/Group/HealthCheckGroupControllerBase.cs deleted file mode 100644 index 06731d32e1..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/HealthCheck/Group/HealthCheckGroupControllerBase.cs +++ /dev/null @@ -1,13 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Api.Management.Routing; -using Constants = Umbraco.Cms.Core.Constants; - -namespace Umbraco.Cms.Api.Management.Controllers.HealthCheck.Group; - -[ApiController] -[VersionedApiBackOfficeRoute($"{Constants.HealthChecks.RoutePath.HealthCheck}-group")] -[ApiExplorerSettings(GroupName = "Health Check")] -[ApiVersion("1.0")] -public abstract class HealthCheckGroupControllerBase : ManagementApiControllerBase -{ -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/HealthCheck/HealthCheckControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/HealthCheck/HealthCheckControllerBase.cs deleted file mode 100644 index c5681f3323..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/HealthCheck/HealthCheckControllerBase.cs +++ /dev/null @@ -1,13 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Api.Management.Routing; -using Constants = Umbraco.Cms.Core.Constants; - -namespace Umbraco.Cms.Api.Management.Controllers.HealthCheck; - -[ApiController] -[VersionedApiBackOfficeRoute($"{Constants.HealthChecks.RoutePath.HealthCheck}")] -[ApiExplorerSettings(GroupName = "Health Check")] -[ApiVersion("1.0")] -public abstract class HealthCheckControllerBase : ManagementApiControllerBase -{ -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Help/GetHelpController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Help/GetHelpController.cs deleted file mode 100644 index 1db67b14f7..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Help/GetHelpController.cs +++ /dev/null @@ -1,80 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; -using Microsoft.Extensions.Options; -using Umbraco.Cms.Core.Configuration.Models; -using Umbraco.Cms.Core.Serialization; -using Umbraco.Cms.Api.Common.Builders; -using Umbraco.Cms.Api.Management.Factories; -using Umbraco.Cms.Api.Management.ViewModels.Help; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; - -namespace Umbraco.Cms.Api.Management.Controllers.Help; - -public class GetHelpController : HelpControllerBase -{ - private readonly ILogger _logger; - private readonly IJsonSerializer _jsonSerializer; - private HelpPageSettings _helpPageSettings; - - public GetHelpController( - IOptionsMonitor helpPageSettings, - ILogger logger, - IJsonSerializer jsonSerializer) - { - _logger = logger; - _jsonSerializer = jsonSerializer; - _helpPageSettings = helpPageSettings.CurrentValue; - helpPageSettings.OnChange(UpdateHelpPageSettings); - } - - private void UpdateHelpPageSettings(HelpPageSettings settings) => _helpPageSettings = settings; - - [HttpGet] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task Get(string section, string? tree, int skip, int take, string? baseUrl = "https://our.umbraco.com") - { - if (IsAllowedUrl(baseUrl) is false) - { - _logger.LogError($"The following URL is not listed in the allowlist for HelpPage in HelpPageSettings: {baseUrl}"); - - ProblemDetails invalidModelProblem = - new ProblemDetailsBuilder() - .WithTitle("Invalid database configuration") - .WithDetail("The provided database configuration is invalid") - .Build(); - - return BadRequest(invalidModelProblem); - } - - var url = string.Format(baseUrl + "/Umbraco/Documentation/Lessons/GetContextHelpDocs?sectionAlias={0}&treeAlias={1}", section, tree); - - try - { - var httpClient = new HttpClient(); - - // fetch dashboard json and parse to JObject - var json = await httpClient.GetStringAsync(url); - List? result = _jsonSerializer.Deserialize>(json); - if (result != null) - { - return Ok(new PagedViewModel - { - Total = result.Count, - Items = result.Skip(skip).Take(take), - }); - } - } - catch (HttpRequestException rex) - { - _logger.LogInformation($"Check your network connection, exception: {rex.Message}"); - } - - return Ok(PagedViewModel.Empty()); - } - - private bool IsAllowedUrl(string? url) => - _helpPageSettings.HelpPageUrlAllowList is null || _helpPageSettings.HelpPageUrlAllowList.Contains(url); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Help/HelpControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/Help/HelpControllerBase.cs deleted file mode 100644 index f09e424a31..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Help/HelpControllerBase.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Api.Management.Routing; - -namespace Umbraco.Cms.Api.Management.Controllers.Help; - -[ApiController] -[VersionedApiBackOfficeRoute("help")] -[ApiExplorerSettings(GroupName = "Help")] -[ApiVersion("1.0")] -public abstract class HelpControllerBase : ManagementApiControllerBase -{ -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Indexer/AllIndexerController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Indexer/AllIndexerController.cs deleted file mode 100644 index 9e62a225ff..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Indexer/AllIndexerController.cs +++ /dev/null @@ -1,41 +0,0 @@ -using Examine; -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Api.Management.Factories; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Search; -using Umbraco.Extensions; - -namespace Umbraco.Cms.Api.Management.Controllers.Indexer; - -[ApiVersion("1.0")] -public class AllIndexerController : IndexerControllerBase -{ - private readonly IExamineManager _examineManager; - private readonly IIndexViewModelFactory _indexViewModelFactory; - - public AllIndexerController( - IExamineManager examineManager, - IIndexViewModelFactory indexViewModelFactory) - { - _examineManager = examineManager; - _indexViewModelFactory = indexViewModelFactory; - } - - /// - /// Get the details for indexers - /// - /// - [HttpGet] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public Task> All(int skip, int take) - { - IndexViewModel[] indexes = _examineManager.Indexes - .Select(_indexViewModelFactory.Create) - .OrderBy(indexModel => indexModel.Name.TrimEnd("Indexer")).ToArray(); - - var viewModel = new PagedViewModel { Items = indexes.Skip(skip).Take(take), Total = indexes.Length }; - return Task.FromResult(viewModel); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Indexer/DetailsIndexerController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Indexer/DetailsIndexerController.cs deleted file mode 100644 index 7275993fd2..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Indexer/DetailsIndexerController.cs +++ /dev/null @@ -1,54 +0,0 @@ -using Examine; -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Api.Management.Factories; -using Umbraco.Cms.Api.Management.ViewModels.Search; - -namespace Umbraco.Cms.Api.Management.Controllers.Indexer; - -[ApiVersion("1.0")] -public class DetailsIndexerController : IndexerControllerBase -{ - private readonly IIndexViewModelFactory _indexViewModelFactory; - private readonly IExamineManager _examineManager; - - public DetailsIndexerController( - IIndexViewModelFactory indexViewModelFactory, - IExamineManager examineManager) - { - _indexViewModelFactory = indexViewModelFactory; - _examineManager = examineManager; - } - - /// - /// Check if the index has been rebuilt - /// - /// - /// - /// - /// This is kind of rudimentary since there's no way we can know that the index has rebuilt, we - /// have a listener for the index op complete so we'll just check if that key is no longer there in the runtime cache - /// - [HttpGet("{indexName}")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] - [ProducesResponseType(typeof(IndexViewModel), StatusCodes.Status200OK)] - public async Task> Details(string indexName) - { - if (_examineManager.TryGetIndex(indexName, out IIndex? index)) - { - return await Task.FromResult(_indexViewModelFactory.Create(index!)); - } - - var invalidModelProblem = new ProblemDetails - { - Title = "Index Not Found", - Detail = $"No index found with name = {indexName}", - Status = StatusCodes.Status400BadRequest, - Type = "Error", - }; - - return await Task.FromResult(BadRequest(invalidModelProblem)); - - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Indexer/IndexerControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/Indexer/IndexerControllerBase.cs deleted file mode 100644 index 7d41b6c2ef..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Indexer/IndexerControllerBase.cs +++ /dev/null @@ -1,11 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Api.Management.Routing; - -namespace Umbraco.Cms.Api.Management.Controllers.Indexer; - -[ApiController] -[VersionedApiBackOfficeRoute("indexer")] -[ApiExplorerSettings(GroupName = "Indexer")] -public class IndexerControllerBase : ManagementApiControllerBase -{ -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Indexer/RebuildIndexerController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Indexer/RebuildIndexerController.cs deleted file mode 100644 index 4d2b51fd87..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Indexer/RebuildIndexerController.cs +++ /dev/null @@ -1,82 +0,0 @@ -using Examine; -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; -using Umbraco.Cms.Infrastructure.Examine; -using Umbraco.New.Cms.Infrastructure.Services; - -namespace Umbraco.Cms.Api.Management.Controllers.Indexer; - -[ApiVersion("1.0")] -public class RebuildIndexerController : IndexerControllerBase -{ - private readonly ILogger _logger; - private readonly IIndexingRebuilderService _indexingRebuilderService; - private readonly IExamineManager _examineManager; - - public RebuildIndexerController( - ILogger logger, - IIndexingRebuilderService indexingRebuilderService, - IExamineManager examineManager) - { - _logger = logger; - _indexingRebuilderService = indexingRebuilderService; - _examineManager = examineManager; - } - - /// - /// Rebuilds the index - /// - /// - /// - [HttpPost("{indexName}/rebuild")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] - [ProducesResponseType(typeof(OkResult), StatusCodes.Status200OK)] - public async Task Rebuild(string indexName) - { - if (!_examineManager.TryGetIndex(indexName, out var index)) - { - var invalidModelProblem = new ProblemDetails - { - Title = "Index Not Found", - Detail = $"No index found with name = {indexName}", - Status = StatusCodes.Status400BadRequest, - Type = "Error", - }; - - return await Task.FromResult(BadRequest(invalidModelProblem)); - } - - if (!_indexingRebuilderService.CanRebuild(index.Name)) - { - var invalidModelProblem = new ProblemDetails - { - Title = "Could not validate the populator", - Detail = - $"The index {index?.Name} could not be rebuilt because we could not validate its associated {typeof(IIndexPopulator)}", - Status = StatusCodes.Status400BadRequest, - Type = "Error", - }; - - return await Task.FromResult(BadRequest(invalidModelProblem)); - } - - _logger.LogInformation("Rebuilding index '{IndexName}'", indexName); - - if (_indexingRebuilderService.TryRebuild(index, indexName)) - { - return await Task.FromResult(Ok()); - } - - var problemDetails = new ProblemDetails - { - Title = "Index could not be rebuilt", - Detail = $"The index {index.Name} could not be rebuild. Check the log for details on this error.", - Status = StatusCodes.Status400BadRequest, - Type = "Error", - }; - - return await Task.FromResult(Conflict(problemDetails)); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Install/InstallControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/Install/InstallControllerBase.cs deleted file mode 100644 index 52fcd0e62e..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Install/InstallControllerBase.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core; -using Umbraco.Cms.Api.Management.Filters; -using Umbraco.Cms.Api.Management.Routing; - -namespace Umbraco.Cms.Api.Management.Controllers.Install; - -[ApiController] -[VersionedApiBackOfficeRoute("install")] -[ApiExplorerSettings(GroupName = "Install")] -[RequireRuntimeLevel(RuntimeLevel.Install)] -public abstract class InstallControllerBase : ManagementApiControllerBase -{ -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Install/SettingsInstallController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Install/SettingsInstallController.cs deleted file mode 100644 index b60d4788cb..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Install/SettingsInstallController.cs +++ /dev/null @@ -1,43 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Mapping; -using Umbraco.Cms.Infrastructure.Install; -using Umbraco.Cms.Api.Management.ViewModels.Installer; -using Umbraco.New.Cms.Core.Factories; -using Umbraco.New.Cms.Core.Models.Installer; - -namespace Umbraco.Cms.Api.Management.Controllers.Install; - -[ApiVersion("1.0")] -public class SettingsInstallController : InstallControllerBase -{ - private readonly InstallHelper _installHelper; - private readonly IInstallSettingsFactory _installSettingsFactory; - private readonly IUmbracoMapper _mapper; - - public SettingsInstallController( - InstallHelper installHelper, - IInstallSettingsFactory installSettingsFactory, - IUmbracoMapper mapper) - { - _installHelper = installHelper; - _installSettingsFactory = installSettingsFactory; - _mapper = mapper; - } - - [HttpGet("settings")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] - [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status428PreconditionRequired)] - [ProducesResponseType(typeof(InstallSettingsViewModel), StatusCodes.Status200OK)] - public async Task> Settings() - { - // Register that the install has started - await _installHelper.SetInstallStatusAsync(false, string.Empty); - - InstallSettingsModel installSettings = _installSettingsFactory.GetInstallSettings(); - InstallSettingsViewModel viewModel = _mapper.Map(installSettings)!; - - return viewModel; - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Install/SetupInstallController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Install/SetupInstallController.cs deleted file mode 100644 index 8e13fb2cfb..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Install/SetupInstallController.cs +++ /dev/null @@ -1,47 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Options; -using Umbraco.Cms.Core.Configuration.Models; -using Umbraco.Cms.Core.Hosting; -using Umbraco.Cms.Core.Mapping; -using Umbraco.Cms.Api.Management.ViewModels.Installer; -using Umbraco.Extensions; -using Umbraco.New.Cms.Core.Models.Installer; -using Umbraco.New.Cms.Core.Services.Installer; - -namespace Umbraco.Cms.Api.Management.Controllers.Install; - -[ApiVersion("1.0")] -public class SetupInstallController : InstallControllerBase -{ - private readonly IUmbracoMapper _mapper; - private readonly IInstallService _installService; - private readonly IHostingEnvironment _hostingEnvironment; - private readonly GlobalSettings _globalSettings; - - public SetupInstallController( - IUmbracoMapper mapper, - IInstallService installService, - IOptions globalSettings, - IHostingEnvironment hostingEnvironment) - { - _mapper = mapper; - _installService = installService; - _hostingEnvironment = hostingEnvironment; - _globalSettings = globalSettings.Value; - } - - [HttpPost("setup")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] - [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status428PreconditionRequired)] - [ProducesResponseType(StatusCodes.Status200OK)] - public async Task Setup(InstallViewModel installData) - { - InstallData data = _mapper.Map(installData)!; - await _installService.Install(data); - - var backOfficePath = _globalSettings.GetBackOfficePath(_hostingEnvironment); - return Created(backOfficePath, null); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Install/ValidateDatabaseInstallController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Install/ValidateDatabaseInstallController.cs deleted file mode 100644 index 16e40f1eae..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Install/ValidateDatabaseInstallController.cs +++ /dev/null @@ -1,49 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Install.Models; -using Umbraco.Cms.Core.Mapping; -using Umbraco.Cms.Infrastructure.Migrations.Install; -using Umbraco.Cms.Api.Management.ViewModels.Installer; - -namespace Umbraco.Cms.Api.Management.Controllers.Install; - -[ApiVersion("1.0")] -public class ValidateDatabaseInstallController : InstallControllerBase -{ - private readonly DatabaseBuilder _databaseBuilder; - private readonly IUmbracoMapper _mapper; - - public ValidateDatabaseInstallController( - DatabaseBuilder databaseBuilder, - IUmbracoMapper mapper) - { - _databaseBuilder = databaseBuilder; - _mapper = mapper; - } - - [HttpPost("validate-database")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] - [ProducesResponseType(StatusCodes.Status200OK)] - public async Task ValidateDatabase(DatabaseInstallViewModel viewModel) - { - DatabaseModel databaseModel = _mapper.Map(viewModel)!; - - var success = _databaseBuilder.ConfigureDatabaseConnection(databaseModel, true); - - if (success) - { - return await Task.FromResult(Ok()); - } - - var invalidModelProblem = new ProblemDetails - { - Title = "Invalid database configuration", - Detail = "The provided database configuration is invalid", - Status = StatusCodes.Status400BadRequest, - Type = "Error", - }; - - return await Task.FromResult(BadRequest(invalidModelProblem)); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Language/AllLanguageController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Language/AllLanguageController.cs deleted file mode 100644 index e2d0ec7f6c..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Language/AllLanguageController.cs +++ /dev/null @@ -1,36 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Mapping; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.ViewModels.Language; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.New.Cms.Core.Models; - -namespace Umbraco.Cms.Api.Management.Controllers.Language; - -public class AllLanguageController : LanguageControllerBase -{ - private readonly ILocalizationService _localizationService; - private readonly IUmbracoMapper _umbracoMapper; - - public AllLanguageController(ILocalizationService localizationService, IUmbracoMapper umbracoMapper) - { - _localizationService = localizationService; - _umbracoMapper = umbracoMapper; - } - - /// 1 - /// Returns all currently configured languages. - /// - /// - [HttpGet] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> GetAll(int skip, int take) - { - PagedModel allLanguages = _localizationService.GetAllLanguagesPaged(skip, take); - - return await Task.FromResult(_umbracoMapper.Map, PagedViewModel>(allLanguages)!); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Language/ByIdLanguageController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Language/ByIdLanguageController.cs deleted file mode 100644 index f9b823b440..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Language/ByIdLanguageController.cs +++ /dev/null @@ -1,35 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Mapping; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.ViewModels.Language; - -namespace Umbraco.Cms.Api.Management.Controllers.Language; - -public class ByIdLanguageController : LanguageControllerBase -{ - private readonly ILocalizationService _localizationService; - private readonly IUmbracoMapper _umbracoMapper; - - public ByIdLanguageController(ILocalizationService localizationService, IUmbracoMapper umbracoMapper) - { - _localizationService = localizationService; - _umbracoMapper = umbracoMapper; - } - - [HttpGet("{id:int}")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(NotFoundResult), StatusCodes.Status404NotFound)] - [ProducesResponseType(StatusCodes.Status200OK)] - public async Task> ById(int id) - { - ILanguage? lang = _localizationService.GetLanguageById(id); - if (lang is null) - { - return NotFound(); - } - - return await Task.FromResult(_umbracoMapper.Map(lang)); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Language/CreateLanguageController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Language/CreateLanguageController.cs deleted file mode 100644 index 720182ccce..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Language/CreateLanguageController.cs +++ /dev/null @@ -1,61 +0,0 @@ -using System.Globalization; -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Mapping; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.ViewModels.Language; -using Umbraco.New.Cms.Core.Services.Installer; - -namespace Umbraco.Cms.Api.Management.Controllers.Language; - -public class CreateLanguageController : LanguageControllerBase -{ - private readonly ILanguageService _languageService; - private readonly IUmbracoMapper _umbracoMapper; - private readonly ILocalizationService _localizationService; - - public CreateLanguageController(ILanguageService languageService, IUmbracoMapper umbracoMapper, ILocalizationService localizationService) - { - _languageService = languageService; - _umbracoMapper = umbracoMapper; - _localizationService = localizationService; - } - - /// - /// Creates or saves a language - /// - [HttpPost] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] - [ProducesResponseType(StatusCodes.Status201Created)] - // TODO: This needs to be an authorized endpoint. - public async Task Create(LanguageViewModel language) - { - if (_languageService.LanguageAlreadyExists(language.Id, language.IsoCode)) - { - // Someone is trying to create a language that already exist - ModelState.AddModelError("IsoCode", "The language " + language.IsoCode + " already exists"); - return ValidationProblem(ModelState); - } - - // Creating a new lang... - CultureInfo culture; - try - { - culture = CultureInfo.GetCultureInfo(language.IsoCode); - } - catch (CultureNotFoundException) - { - ModelState.AddModelError("IsoCode", "No Culture found with name " + language.IsoCode); - return ValidationProblem(ModelState); - } - - language.Name ??= culture.EnglishName; - - ILanguage newLang = _umbracoMapper.Map(language)!; - - _localizationService.Save(newLang); - return await Task.FromResult(Created($"api/v1.0/language/{newLang.Id}", null)); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Language/DeleteLanguageController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Language/DeleteLanguageController.cs deleted file mode 100644 index 35b16628de..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Language/DeleteLanguageController.cs +++ /dev/null @@ -1,50 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Common.Builders; - -namespace Umbraco.Cms.Api.Management.Controllers.Language; - -public class DeleteLanguageController : LanguageControllerBase -{ - private readonly ILocalizationService _localizationService; - - public DeleteLanguageController(ILocalizationService localizationService) => _localizationService = localizationService; - - /// - /// Deletes a language with a given ID - /// - [HttpDelete("{id:int}")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] - [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] - [ProducesResponseType(StatusCodes.Status200OK)] - // TODO: This needs to be an authorized endpoint. - public async Task Delete(int id) - { - ILanguage? language = _localizationService.GetLanguageById(id); - if (language == null) - { - return await Task.FromResult(NotFound()); - } - - // the service would not let us do it, but test here nevertheless - if (language.IsDefault) - { - ProblemDetails invalidModelProblem = - new ProblemDetailsBuilder() - .WithTitle("Cannot delete default language") - .WithDetail($"Language '{language.IsoCode}' is currently set to 'default' and can not be deleted.") - .Build(); - - return BadRequest(invalidModelProblem); - } - - // service is happy deleting a language that's fallback for another language, - // will just remove it - so no need to check here - _localizationService.Delete(language); - - return await Task.FromResult(Ok()); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Language/LanguageControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/Language/LanguageControllerBase.cs deleted file mode 100644 index df6cad192c..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Language/LanguageControllerBase.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Api.Management.Routing; - -namespace Umbraco.Cms.Api.Management.Controllers.Language; - -[ApiController] -[VersionedApiBackOfficeRoute("language")] -[ApiExplorerSettings(GroupName = "Language")] -[ApiVersion("1.0")] -public abstract class LanguageControllerBase : ManagementApiControllerBase -{ -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Language/UpdateLanguageController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Language/UpdateLanguageController.cs deleted file mode 100644 index 2452d6468e..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Language/UpdateLanguageController.cs +++ /dev/null @@ -1,66 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Mapping; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.ViewModels.Language; -using Umbraco.New.Cms.Core.Services.Installer; - -namespace Umbraco.Cms.Api.Management.Controllers.Language; - -public class UpdateLanguageController : LanguageControllerBase -{ - private readonly ILanguageService _languageService; - private readonly IUmbracoMapper _umbracoMapper; - private readonly ILocalizationService _localizationService; - - public UpdateLanguageController(ILanguageService languageService, IUmbracoMapper umbracoMapper, ILocalizationService localizationService) - { - _languageService = languageService; - _umbracoMapper = umbracoMapper; - _localizationService = localizationService; - } - - /// - /// Updates a language - /// - [HttpPut("{id:int}")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(NotFoundResult), StatusCodes.Status404NotFound)] - [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] - [ProducesResponseType(StatusCodes.Status200OK)] - // TODO: This needs to be an authorized endpoint. - public async Task Update(int id, LanguageViewModel language) - { - ILanguage? existingById = _localizationService.GetLanguageById(id); - if (existingById is null) - { - return await Task.FromResult(NotFound()); - } - - // note that the service will prevent the default language from being "un-defaulted" - // but does not hurt to test here - though the UI should prevent it too - if (existingById.IsDefault && !language.IsDefault) - { - ModelState.AddModelError("IsDefault", "Cannot un-default the default language."); - return await Task.FromResult(ValidationProblem(ModelState)); - } - - existingById = _umbracoMapper.Map(language, existingById); - - if (!_languageService.CanUseLanguagesFallbackLanguage(existingById)) - { - ModelState.AddModelError("FallbackLanguage", "The selected fall back language does not exist."); - return await Task.FromResult(ValidationProblem(ModelState)); - } - - if (!_languageService.CanGetProperFallbackLanguage(existingById)) - { - ModelState.AddModelError("FallbackLanguage", $"The selected fall back language {_localizationService.GetLanguageById(existingById.FallbackLanguageId!.Value)} would create a circular path."); - return await Task.FromResult(ValidationProblem(ModelState)); - } - - _localizationService.Save(existingById); - return await Task.FromResult(Ok()); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/ManagementApiControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/ManagementApiControllerBase.cs deleted file mode 100644 index 70b5328517..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/ManagementApiControllerBase.cs +++ /dev/null @@ -1,11 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Api.Common.Filters; -using Umbraco.New.Cms.Core; - -namespace Umbraco.Cms.Api.Management.Controllers; - -[JsonOptionsName(Constants.JsonOptionsNames.BackOffice)] -public class ManagementApiControllerBase : Controller -{ - -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/ChildrenMediaRecycleBinController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/ChildrenMediaRecycleBinController.cs deleted file mode 100644 index b91c4e61d7..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/ChildrenMediaRecycleBinController.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.RecycleBin; - -namespace Umbraco.Cms.Api.Management.Controllers.Media.RecycleBin; - -public class ChildrenMediaRecycleBinController : MediaRecycleBinControllerBase -{ - public ChildrenMediaRecycleBinController(IEntityService entityService) - : base(entityService) - { - } - - [HttpGet("children")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Children(Guid parentKey, int skip = 0, int take = 100) - => await GetChildren(parentKey, skip, take); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/MediaRecycleBinControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/MediaRecycleBinControllerBase.cs deleted file mode 100644 index 82756051b7..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/MediaRecycleBinControllerBase.cs +++ /dev/null @@ -1,42 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Models.Entities; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Controllers.RecycleBin; -using Umbraco.Cms.Api.Management.Filters; -using Umbraco.Cms.Api.Management.ViewModels.RecycleBin; -using Umbraco.Cms.Api.Management.Routing; - -namespace Umbraco.Cms.Api.Management.Controllers.Media.RecycleBin; - -[ApiVersion("1.0")] -[ApiController] -[VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.RecycleBin}/{Constants.UdiEntityType.Media}")] -[RequireMediaTreeRootAccess] -[ProducesResponseType(StatusCodes.Status401Unauthorized)] -[ApiExplorerSettings(GroupName = nameof(Constants.UdiEntityType.Media))] -public class MediaRecycleBinControllerBase : RecycleBinControllerBase -{ - public MediaRecycleBinControllerBase(IEntityService entityService) - : base(entityService) - { - } - - protected override UmbracoObjectTypes ItemObjectType => UmbracoObjectTypes.Media; - - protected override int RecycleBinRootId => Constants.System.RecycleBinMedia; - - protected override RecycleBinItemViewModel MapRecycleBinViewModel(Guid? parentKey, IEntitySlim entity) - { - RecycleBinItemViewModel viewModel = base.MapRecycleBinViewModel(parentKey, entity); - - if (entity is IMediaEntitySlim mediaEntitySlim) - { - viewModel.Icon = mediaEntitySlim.ContentTypeIcon ?? viewModel.Icon; - } - - return viewModel; - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/RootMediaRecycleBinController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/RootMediaRecycleBinController.cs deleted file mode 100644 index 5379fec5c3..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/RecycleBin/RootMediaRecycleBinController.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.RecycleBin; - -namespace Umbraco.Cms.Api.Management.Controllers.Media.RecycleBin; - -public class RootMediaRecycleBinController : MediaRecycleBinControllerBase -{ - public RootMediaRecycleBinController(IEntityService entityService) - : base(entityService) - { - } - - [HttpGet("root")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Root(int skip = 0, int take = 100) - => await GetRoot(skip, take); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/ChildrenMediaTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/ChildrenMediaTreeController.cs deleted file mode 100644 index 51fc8dfee5..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/ChildrenMediaTreeController.cs +++ /dev/null @@ -1,32 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Cache; -using Umbraco.Cms.Core.Security; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Services.Entities; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.Media.Tree; - -public class ChildrenMediaTreeController : MediaTreeControllerBase -{ - public ChildrenMediaTreeController( - IEntityService entityService, - IUserStartNodeEntitiesService userStartNodeEntitiesService, - IDataTypeService dataTypeService, - AppCaches appCaches, - IBackOfficeSecurityAccessor backofficeSecurityAccessor) - : base(entityService, userStartNodeEntitiesService, dataTypeService, appCaches, backofficeSecurityAccessor) - { - } - - [HttpGet("children")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Children(Guid parentKey, int skip = 0, int take = 100, Guid? dataTypeKey = null) - { - IgnoreUserStartNodesForDataType(dataTypeKey); - return await GetChildren(parentKey, skip, take); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/ItemsMediaTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/ItemsMediaTreeController.cs deleted file mode 100644 index 4305ec4cab..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/ItemsMediaTreeController.cs +++ /dev/null @@ -1,31 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Cache; -using Umbraco.Cms.Core.Security; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Services.Entities; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.Media.Tree; - -public class ItemsMediaTreeController : MediaTreeControllerBase -{ - public ItemsMediaTreeController( - IEntityService entityService, - IUserStartNodeEntitiesService userStartNodeEntitiesService, - IDataTypeService dataTypeService, - AppCaches appCaches, - IBackOfficeSecurityAccessor backofficeSecurityAccessor) - : base(entityService, userStartNodeEntitiesService, dataTypeService, appCaches, backofficeSecurityAccessor) - { - } - - [HttpGet("item")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] - public async Task>> Items([FromQuery(Name = "key")] Guid[] keys, Guid? dataTypeKey = null) - { - IgnoreUserStartNodesForDataType(dataTypeKey); - return await GetItems(keys); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/MediaTreeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/MediaTreeControllerBase.cs deleted file mode 100644 index b3a2769e87..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/MediaTreeControllerBase.cs +++ /dev/null @@ -1,72 +0,0 @@ -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.Cache; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Models.Entities; -using Umbraco.Cms.Core.Security; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Controllers.Tree; -using Umbraco.Cms.Api.Management.Services.Entities; -using Umbraco.Cms.Api.Management.ViewModels.Tree; -using Umbraco.Cms.Api.Management.Routing; - -namespace Umbraco.Cms.Api.Management.Controllers.Media.Tree; - -[ApiVersion("1.0")] -[ApiController] -[VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.Tree}/{Constants.UdiEntityType.Media}")] -[ApiExplorerSettings(GroupName = nameof(Constants.UdiEntityType.Media))] -public class MediaTreeControllerBase : UserStartNodeTreeControllerBase -{ - private readonly AppCaches _appCaches; - private readonly IBackOfficeSecurityAccessor _backofficeSecurityAccessor; - - public MediaTreeControllerBase( - IEntityService entityService, - IUserStartNodeEntitiesService userStartNodeEntitiesService, - IDataTypeService dataTypeService, - AppCaches appCaches, - IBackOfficeSecurityAccessor backofficeSecurityAccessor) - : base(entityService, userStartNodeEntitiesService, dataTypeService) - { - _appCaches = appCaches; - _backofficeSecurityAccessor = backofficeSecurityAccessor; - } - - protected override UmbracoObjectTypes ItemObjectType => UmbracoObjectTypes.Media; - - protected override Ordering ItemOrdering => Ordering.By(nameof(Infrastructure.Persistence.Dtos.NodeDto.SortOrder)); - - protected override ContentTreeItemViewModel MapTreeItemViewModel(Guid? parentKey, IEntitySlim entity) - { - ContentTreeItemViewModel viewModel = base.MapTreeItemViewModel(parentKey, entity); - - if (entity is IMediaEntitySlim mediaEntitySlim) - { - viewModel.Icon = mediaEntitySlim.ContentTypeIcon ?? viewModel.Icon; - } - - return viewModel; - } - - // TODO: delete these (faking start node setup for unlimited editor) - protected override int[] GetUserStartNodeIds() => new[] { -1 }; - - protected override string[] GetUserStartNodePaths() => Array.Empty(); - - // TODO: use these implementations instead of the dummy ones above once we have backoffice auth in place - // protected override int[] GetUserStartNodeIds() - // => _backofficeSecurityAccessor - // .BackOfficeSecurity? - // .CurrentUser? - // .CalculateMediaStartNodeIds(EntityService, _appCaches) - // ?? Array.Empty(); - // - // protected override string[] GetUserStartNodePaths() - // => _backofficeSecurityAccessor - // .BackOfficeSecurity? - // .CurrentUser? - // .GetMediaStartNodePaths(EntityService, _appCaches) - // ?? Array.Empty(); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/RootMediaTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/RootMediaTreeController.cs deleted file mode 100644 index 31d07715b6..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/RootMediaTreeController.cs +++ /dev/null @@ -1,32 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Cache; -using Umbraco.Cms.Core.Security; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Services.Entities; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.Media.Tree; - -public class RootMediaTreeController : MediaTreeControllerBase -{ - public RootMediaTreeController( - IEntityService entityService, - IUserStartNodeEntitiesService userStartNodeEntitiesService, - IDataTypeService dataTypeService, - AppCaches appCaches, - IBackOfficeSecurityAccessor backofficeSecurityAccessor) - : base(entityService, userStartNodeEntitiesService, dataTypeService, appCaches, backofficeSecurityAccessor) - { - } - - [HttpGet("root")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Root(int skip = 0, int take = 100, Guid? dataTypeKey = null) - { - IgnoreUserStartNodesForDataType(dataTypeKey); - return await GetRoot(skip, take); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/ChildrenMediaTypeTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/ChildrenMediaTypeTreeController.cs deleted file mode 100644 index 4e8ceee792..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/ChildrenMediaTypeTreeController.cs +++ /dev/null @@ -1,24 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.MediaType.Tree; - -public class ChildrenMediaTypeTreeController : MediaTypeTreeControllerBase -{ - public ChildrenMediaTypeTreeController(IEntityService entityService, IMediaTypeService mediaTypeService) - : base(entityService, mediaTypeService) - { - } - - [HttpGet("children")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Children(Guid parentKey, int skip = 0, int take = 100, bool foldersOnly = false) - { - RenderFoldersOnly(foldersOnly); - return await GetChildren(parentKey, skip, take); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/ItemsMediaTypeTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/ItemsMediaTypeTreeController.cs deleted file mode 100644 index 881276da3e..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/ItemsMediaTypeTreeController.cs +++ /dev/null @@ -1,20 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.MediaType.Tree; - -public class ItemsMediaTypeTreeController : MediaTypeTreeControllerBase -{ - public ItemsMediaTypeTreeController(IEntityService entityService, IMediaTypeService mediaTypeService) - : base(entityService, mediaTypeService) - { - } - - [HttpGet("item")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] - public async Task>> Items([FromQuery(Name = "key")] Guid[] keys) - => await GetItems(keys); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/MediaTypeTreeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/MediaTypeTreeControllerBase.cs deleted file mode 100644 index 63aeb0390d..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/MediaTypeTreeControllerBase.cs +++ /dev/null @@ -1,45 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Models.Entities; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Controllers.Tree; -using Umbraco.Cms.Api.Management.ViewModels.Tree; -using Umbraco.Cms.Api.Management.Routing; - -namespace Umbraco.Cms.Api.Management.Controllers.MediaType.Tree; - -[ApiVersion("1.0")] -[ApiController] -[VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.Tree}/{Constants.UdiEntityType.MediaType}")] -[ApiExplorerSettings(GroupName = "Media Type")] -public class MediaTypeTreeControllerBase : FolderTreeControllerBase -{ - private readonly IMediaTypeService _mediaTypeService; - - public MediaTypeTreeControllerBase(IEntityService entityService, IMediaTypeService mediaTypeService) - : base(entityService) => - _mediaTypeService = mediaTypeService; - - protected override UmbracoObjectTypes ItemObjectType => UmbracoObjectTypes.MediaType; - - protected override UmbracoObjectTypes FolderObjectType => UmbracoObjectTypes.MediaTypeContainer; - - protected override FolderTreeItemViewModel[] MapTreeItemViewModels(Guid? parentKey, IEntitySlim[] entities) - { - var mediaTypes = _mediaTypeService - .GetAll(entities.Select(entity => entity.Id).ToArray()) - .ToDictionary(contentType => contentType.Id); - - return entities.Select(entity => - { - FolderTreeItemViewModel viewModel = MapTreeItemViewModel(parentKey, entity); - if (mediaTypes.TryGetValue(entity.Id, out IMediaType? mediaType)) - { - viewModel.Icon = mediaType.Icon ?? viewModel.Icon; - } - - return viewModel; - }).ToArray(); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/RootMediaTypeTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/RootMediaTypeTreeController.cs deleted file mode 100644 index 0dd09b56d3..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/RootMediaTypeTreeController.cs +++ /dev/null @@ -1,24 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.MediaType.Tree; - -public class RootMediaTypeTreeController : MediaTypeTreeControllerBase -{ - public RootMediaTypeTreeController(IEntityService entityService, IMediaTypeService mediaTypeService) - : base(entityService, mediaTypeService) - { - } - - [HttpGet("root")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Root(int skip = 0, int take = 100, bool foldersOnly = false) - { - RenderFoldersOnly(foldersOnly); - return await GetRoot(skip, take); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/Tree/ItemsMemberGroupTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/Tree/ItemsMemberGroupTreeController.cs deleted file mode 100644 index 9f6ad89275..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/Tree/ItemsMemberGroupTreeController.cs +++ /dev/null @@ -1,20 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.MemberGroup.Tree; - -public class ItemsMemberGroupTreeController : MemberGroupTreeControllerBase -{ - public ItemsMemberGroupTreeController(IEntityService entityService) - : base(entityService) - { - } - - [HttpGet("item")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] - public async Task>> Items([FromQuery(Name = "key")] Guid[] keys) - => await GetItems(keys); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/Tree/MemberGroupTreeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/Tree/MemberGroupTreeControllerBase.cs deleted file mode 100644 index 5fa672dcaa..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/Tree/MemberGroupTreeControllerBase.cs +++ /dev/null @@ -1,31 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Models.Entities; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Controllers.Tree; -using Umbraco.Cms.Api.Management.ViewModels.Tree; -using Umbraco.Cms.Api.Management.Routing; - -namespace Umbraco.Cms.Api.Management.Controllers.MemberGroup.Tree; - -[ApiVersion("1.0")] -[ApiController] -[VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.Tree}/{Constants.UdiEntityType.MemberGroup}")] -[ApiExplorerSettings(GroupName = "Member Group")] -public class MemberGroupTreeControllerBase : EntityTreeControllerBase -{ - public MemberGroupTreeControllerBase(IEntityService entityService) - : base(entityService) - { - } - - protected override UmbracoObjectTypes ItemObjectType => UmbracoObjectTypes.MemberGroup; - - protected override EntityTreeItemViewModel MapTreeItemViewModel(Guid? parentKey, IEntitySlim entity) - { - EntityTreeItemViewModel viewModel = base.MapTreeItemViewModel(parentKey, entity); - viewModel.Icon = Constants.Icons.MemberGroup; - return viewModel; - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/Tree/RootMemberGroupTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/Tree/RootMemberGroupTreeController.cs deleted file mode 100644 index 591ab3344f..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/Tree/RootMemberGroupTreeController.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.MemberGroup.Tree; - -public class RootMemberGroupTreeController : MemberGroupTreeControllerBase -{ - public RootMemberGroupTreeController(IEntityService entityService) - : base(entityService) - { - } - - [HttpGet("root")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Root(int skip = 0, int take = 100) - => await GetRoot(skip, take); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Tree/ItemsMemberTypeTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Tree/ItemsMemberTypeTreeController.cs deleted file mode 100644 index ec8e68262f..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Tree/ItemsMemberTypeTreeController.cs +++ /dev/null @@ -1,20 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.MemberType.Tree; - -public class ItemsMemberTypeTreeController : MemberTypeTreeControllerBase -{ - public ItemsMemberTypeTreeController(IEntityService entityService) - : base(entityService) - { - } - - [HttpGet("item")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] - public async Task>> Items([FromQuery(Name = "key")] Guid[] keys) - => await GetItems(keys); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Tree/MemberTypeTreeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Tree/MemberTypeTreeControllerBase.cs deleted file mode 100644 index 8d4c2b5ba9..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Tree/MemberTypeTreeControllerBase.cs +++ /dev/null @@ -1,31 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Models.Entities; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Controllers.Tree; -using Umbraco.Cms.Api.Management.ViewModels.Tree; -using Umbraco.Cms.Api.Management.Routing; - -namespace Umbraco.Cms.Api.Management.Controllers.MemberType.Tree; - -[ApiVersion("1.0")] -[ApiController] -[VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.Tree}/{Constants.UdiEntityType.MemberType}")] -[ApiExplorerSettings(GroupName = "Member Type")] -public class MemberTypeTreeControllerBase : EntityTreeControllerBase -{ - public MemberTypeTreeControllerBase(IEntityService entityService) - : base(entityService) - { - } - - protected override UmbracoObjectTypes ItemObjectType => UmbracoObjectTypes.MemberType; - - protected override EntityTreeItemViewModel MapTreeItemViewModel(Guid? parentKey, IEntitySlim entity) - { - EntityTreeItemViewModel viewModel = base.MapTreeItemViewModel(parentKey, entity); - viewModel.Icon = Constants.Icons.User; - return viewModel; - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Tree/RootMemberTypeTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Tree/RootMemberTypeTreeController.cs deleted file mode 100644 index 4262b09085..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Tree/RootMemberTypeTreeController.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.MemberType.Tree; - -public class RootMemberTypeTreeController : MemberTypeTreeControllerBase -{ - public RootMemberTypeTreeController(IEntityService entityService) - : base(entityService) - { - } - - [HttpGet("root")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Root(int skip = 0, int take = 100) - => await GetRoot(skip, take); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/ModelsBuilder/BuildModelsBuilderController.cs b/src/Umbraco.Cms.Api.Management/Controllers/ModelsBuilder/BuildModelsBuilderController.cs deleted file mode 100644 index 5fd8233579..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/ModelsBuilder/BuildModelsBuilderController.cs +++ /dev/null @@ -1,62 +0,0 @@ -using System; -using System.Threading.Tasks; -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Options; -using Umbraco.Cms.Core.Configuration.Models; -using Umbraco.Cms.Infrastructure.ModelsBuilder; -using Umbraco.Cms.Infrastructure.ModelsBuilder.Building; -using Umbraco.Extensions; - -namespace Umbraco.Cms.Api.Management.Controllers.ModelsBuilder; - -public class BuildModelsBuilderController : ModelsBuilderControllerBase -{ - private ModelsBuilderSettings _modelsBuilderSettings; - private readonly ModelsGenerationError _mbErrors; - private readonly ModelsGenerator _modelGenerator; - - public BuildModelsBuilderController( - IOptionsMonitor modelsBuilderSettings, - ModelsGenerationError mbErrors, - ModelsGenerator modelGenerator) - { - _mbErrors = mbErrors; - _modelGenerator = modelGenerator; - _modelsBuilderSettings = modelsBuilderSettings.CurrentValue; - - modelsBuilderSettings.OnChange(x => _modelsBuilderSettings = x); - } - - [HttpPost("build")] - [ProducesResponseType(typeof(CreatedResult), StatusCodes.Status201Created)] - [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status428PreconditionRequired)] - [MapToApiVersion("1.0")] - public async Task BuildModels() - { - try - { - if (!_modelsBuilderSettings.ModelsMode.SupportsExplicitGeneration()) - { - var problemDetailsModel = new ProblemDetails - { - Title = "Models generation is not enabled", - Detail = "ModelsBuilderMode is not set to SourceCodeManual or SourceCodeAuto", - Status = StatusCodes.Status428PreconditionRequired, - Type = "Error", - }; - - return await Task.FromResult(new ObjectResult(problemDetailsModel) { StatusCode = StatusCodes.Status428PreconditionRequired }); - } - - _modelGenerator.GenerateModels(); - _mbErrors.Clear(); - } - catch (Exception e) - { - _mbErrors.Report("Failed to build models.", e); - } - - return await Task.FromResult(Created("api/v1/modelsBuilderDashboard", null)); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/ModelsBuilder/GetModelsBuilderController.cs b/src/Umbraco.Cms.Api.Management/Controllers/ModelsBuilder/GetModelsBuilderController.cs deleted file mode 100644 index 4b7d29a443..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/ModelsBuilder/GetModelsBuilderController.cs +++ /dev/null @@ -1,18 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Api.Management.Factories; -using Umbraco.Cms.Api.Management.ViewModels.ModelsBuilderDashboard; - -namespace Umbraco.Cms.Api.Management.Controllers.ModelsBuilder; - -public class GetModelsBuilderController : ModelsBuilderControllerBase -{ - private readonly IModelsBuilderViewModelFactory _modelsBuilderViewModelFactory; - - public GetModelsBuilderController(IModelsBuilderViewModelFactory modelsBuilderViewModelFactory) => _modelsBuilderViewModelFactory = modelsBuilderViewModelFactory; - - [HttpGet("dashboard")] - [ProducesResponseType(typeof(ModelsBuilderViewModel), StatusCodes.Status200OK)] - [MapToApiVersion("1.0")] - public async Task> GetDashboard() => await Task.FromResult(Ok(_modelsBuilderViewModelFactory.Create())); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/ModelsBuilder/ModelsBuilderControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/ModelsBuilder/ModelsBuilderControllerBase.cs deleted file mode 100644 index ca018896ed..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/ModelsBuilder/ModelsBuilderControllerBase.cs +++ /dev/null @@ -1,13 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Api.Management.Routing; - -namespace Umbraco.Cms.Api.Management.Controllers.ModelsBuilder; - -[ApiController] -[VersionedApiBackOfficeRoute("models-builder")] -[ApiExplorerSettings(GroupName = "Models Builder")] -[ApiVersion("1.0")] - -public class ModelsBuilderControllerBase : ManagementApiControllerBase -{ -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/ModelsBuilder/StatusModelsBuilderController.cs b/src/Umbraco.Cms.Api.Management/Controllers/ModelsBuilder/StatusModelsBuilderController.cs deleted file mode 100644 index b660fdedcc..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/ModelsBuilder/StatusModelsBuilderController.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System.Threading.Tasks; -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Infrastructure.ModelsBuilder; -using Umbraco.Cms.Api.Management.ViewModels.ModelsBuilderDashboard; -using Umbraco.New.Cms.Core.Models; - -namespace Umbraco.Cms.Api.Management.Controllers.ModelsBuilder; - -public class StatusModelsBuilderController : ModelsBuilderControllerBase -{ - private readonly OutOfDateModelsStatus _outOfDateModelsStatus; - - public StatusModelsBuilderController(OutOfDateModelsStatus outOfDateModelsStatus) => _outOfDateModelsStatus = outOfDateModelsStatus; - - [HttpGet("status")] - [ProducesResponseType(typeof(OutOfDateStatusViewModel), StatusCodes.Status200OK)] - [MapToApiVersion("1.0")] - public async Task> GetModelsOutOfDateStatus() - { - OutOfDateStatusViewModel status = _outOfDateModelsStatus.IsEnabled - ? _outOfDateModelsStatus.IsOutOfDate - ? new OutOfDateStatusViewModel { Status = OutOfDateType.OutOfDate } - : new OutOfDateStatusViewModel { Status = OutOfDateType.Current } - : new OutOfDateStatusViewModel { Status = OutOfDateType.Unknown }; - - return await Task.FromResult(Ok(status)); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Tree/ChildrenPartialViewTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Tree/ChildrenPartialViewTreeController.cs deleted file mode 100644 index 408feeb09e..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Tree/ChildrenPartialViewTreeController.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.IO; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.PartialView.Tree; - -public class ChildrenPartialViewTreeController : PartialViewTreeControllerBase -{ - public ChildrenPartialViewTreeController(FileSystems fileSystems) - : base(fileSystems) - { - } - - [HttpGet("children")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Children(string path, int skip = 0, int take = 100) - => await GetChildren(path, skip, take); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Tree/ItemsPartialViewTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Tree/ItemsPartialViewTreeController.cs deleted file mode 100644 index 48bf294822..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Tree/ItemsPartialViewTreeController.cs +++ /dev/null @@ -1,20 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.IO; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.PartialView.Tree; - -public class ItemsPartialViewTreeController : PartialViewTreeControllerBase -{ - public ItemsPartialViewTreeController(FileSystems fileSystems) - : base(fileSystems) - { - } - - [HttpGet("item")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] - public async Task>> Items([FromQuery(Name = "path")] string[] paths) - => await GetItems(paths); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Tree/PartialViewTreeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Tree/PartialViewTreeControllerBase.cs deleted file mode 100644 index 45fef6eb7f..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Tree/PartialViewTreeControllerBase.cs +++ /dev/null @@ -1,24 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.IO; -using Umbraco.Cms.Api.Management.Controllers.Tree; -using Umbraco.Cms.Api.Management.Routing; - -namespace Umbraco.Cms.Api.Management.Controllers.PartialView.Tree; - -[ApiVersion("1.0")] -[ApiController] -[VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.Tree}/{Constants.UdiEntityType.PartialView}")] -[ApiExplorerSettings(GroupName = "Partial View")] -public class PartialViewTreeControllerBase : FileSystemTreeControllerBase -{ - public PartialViewTreeControllerBase(FileSystems fileSystems) - => FileSystem = fileSystems.PartialViewsFileSystem ?? - throw new ArgumentException("Missing partial views file system", nameof(fileSystems)); - - protected override IFileSystem FileSystem { get; } - - protected override string FileIcon(string path) => Constants.Icons.PartialView; - - protected override string ItemType(string path) => Constants.UdiEntityType.PartialView; -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Tree/RootPartialViewTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Tree/RootPartialViewTreeController.cs deleted file mode 100644 index c4c689df51..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Tree/RootPartialViewTreeController.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.IO; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.PartialView.Tree; - -public class RootPartialViewTreeController : PartialViewTreeControllerBase -{ - public RootPartialViewTreeController(FileSystems fileSystems) - : base(fileSystems) - { - } - - [HttpGet("root")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Root(int skip = 0, int take = 100) - => await GetRoot(skip, take); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Profiling/ProfilingControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/Profiling/ProfilingControllerBase.cs deleted file mode 100644 index 07b068f5c9..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Profiling/ProfilingControllerBase.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Api.Management.Routing; - -namespace Umbraco.Cms.Api.Management.Controllers.Profiling; - -[ApiVersion("1.0")] -[ApiController] -[VersionedApiBackOfficeRoute("profiling")] -[ApiExplorerSettings(GroupName = "Profiling")] -public class ProfilingControllerBase : ManagementApiControllerBase -{ -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Profiling/StatusProfilingController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Profiling/StatusProfilingController.cs deleted file mode 100644 index 5738655e14..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Profiling/StatusProfilingController.cs +++ /dev/null @@ -1,19 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Hosting; -using Umbraco.Cms.Api.Management.ViewModels.Profiling; - -namespace Umbraco.Cms.Api.Management.Controllers.Profiling; - -public class StatusProfilingController : ProfilingControllerBase -{ - private readonly IHostingEnvironment _hosting; - - public StatusProfilingController(IHostingEnvironment hosting) => _hosting = hosting; - - [HttpGet("status")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(ProfilingStatusViewModel), StatusCodes.Status200OK)] - public async Task> Status() - => await Task.FromResult(Ok(new ProfilingStatusViewModel(_hosting.IsDebugMode))); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/PublishedCache/CollectPublishedCacheController.cs b/src/Umbraco.Cms.Api.Management/Controllers/PublishedCache/CollectPublishedCacheController.cs deleted file mode 100644 index eecb495f7a..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/PublishedCache/CollectPublishedCacheController.cs +++ /dev/null @@ -1,23 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.PublishedCache; - -namespace Umbraco.Cms.Api.Management.Controllers.PublishedCache; - -public class CollectPublishedCacheController : PublishedCacheControllerBase -{ - private readonly IPublishedSnapshotService _publishedSnapshotService; - - public CollectPublishedCacheController(IPublishedSnapshotService publishedSnapshotService) - => _publishedSnapshotService = publishedSnapshotService; - - [HttpPost("collect")] - [MapToApiVersion("1.0")] - [ProducesResponseType(StatusCodes.Status200OK)] - public async Task Collect() - { - GC.Collect(); - await _publishedSnapshotService.CollectAsync(); - return Ok(); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/PublishedCache/PublishedCacheControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/PublishedCache/PublishedCacheControllerBase.cs deleted file mode 100644 index aa8db8b316..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/PublishedCache/PublishedCacheControllerBase.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Api.Management.Routing; - -namespace Umbraco.Cms.Api.Management.Controllers.PublishedCache; - -[ApiVersion("1.0")] -[ApiController] -[VersionedApiBackOfficeRoute("published-cache")] -[ApiExplorerSettings(GroupName = "Published Cache")] -public class PublishedCacheControllerBase : ManagementApiControllerBase -{ -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/PublishedCache/RebuildPublishedCacheController.cs b/src/Umbraco.Cms.Api.Management/Controllers/PublishedCache/RebuildPublishedCacheController.cs deleted file mode 100644 index c7742b567f..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/PublishedCache/RebuildPublishedCacheController.cs +++ /dev/null @@ -1,22 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.PublishedCache; - -namespace Umbraco.Cms.Api.Management.Controllers.PublishedCache; - -public class RebuildPublishedCacheController : PublishedCacheControllerBase -{ - private readonly IPublishedSnapshotService _publishedSnapshotService; - - public RebuildPublishedCacheController(IPublishedSnapshotService publishedSnapshotService) - => _publishedSnapshotService = publishedSnapshotService; - - [HttpPost("rebuild")] - [MapToApiVersion("1.0")] - [ProducesResponseType(StatusCodes.Status200OK)] - public async Task Rebuild() - { - _publishedSnapshotService.Rebuild(); - return await Task.FromResult(Ok()); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/PublishedCache/ReloadPublishedCacheController.cs b/src/Umbraco.Cms.Api.Management/Controllers/PublishedCache/ReloadPublishedCacheController.cs deleted file mode 100644 index 36c36a64b7..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/PublishedCache/ReloadPublishedCacheController.cs +++ /dev/null @@ -1,23 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Cache; -using Umbraco.Extensions; - -namespace Umbraco.Cms.Api.Management.Controllers.PublishedCache; - -public class ReloadPublishedCacheController : PublishedCacheControllerBase -{ - private readonly DistributedCache _distributedCache; - - public ReloadPublishedCacheController(DistributedCache distributedCache) => _distributedCache = distributedCache; - - [HttpPost("reload")] - [MapToApiVersion("1.0")] - [ProducesResponseType(StatusCodes.Status200OK)] - public async Task Reload() - { - _distributedCache.RefreshAllPublishedSnapshot(); - return await Task.FromResult(Ok()); - } -} - diff --git a/src/Umbraco.Cms.Api.Management/Controllers/PublishedCache/StatusPublishedCacheController.cs b/src/Umbraco.Cms.Api.Management/Controllers/PublishedCache/StatusPublishedCacheController.cs deleted file mode 100644 index ba24605f79..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/PublishedCache/StatusPublishedCacheController.cs +++ /dev/null @@ -1,19 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.PublishedCache; - -namespace Umbraco.Cms.Api.Management.Controllers.PublishedCache; - -public class StatusPublishedCacheController : PublishedCacheControllerBase -{ - private readonly IPublishedSnapshotStatus _publishedSnapshotStatus; - - public StatusPublishedCacheController(IPublishedSnapshotStatus publishedSnapshotStatus) - => _publishedSnapshotStatus = publishedSnapshotStatus; - - [HttpGet("status")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(string), StatusCodes.Status200OK)] - public async Task> Status() - => await Task.FromResult(Ok(_publishedSnapshotStatus.GetStatus())); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/RecycleBin/RecycleBinControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/RecycleBin/RecycleBinControllerBase.cs deleted file mode 100644 index f92b6fd879..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/RecycleBin/RecycleBinControllerBase.cs +++ /dev/null @@ -1,111 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Models.Entities; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Services.Paging; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.RecycleBin; - -namespace Umbraco.Cms.Api.Management.Controllers.RecycleBin; - -public abstract class RecycleBinControllerBase : Controller - where TItem : RecycleBinItemViewModel, new() -{ - private readonly IEntityService _entityService; - private readonly string _itemUdiType; - - protected RecycleBinControllerBase(IEntityService entityService) - { - _entityService = entityService; - // ReSharper disable once VirtualMemberCallInConstructor - _itemUdiType = ItemObjectType.GetUdiType(); - } - - protected abstract UmbracoObjectTypes ItemObjectType { get; } - - protected abstract int RecycleBinRootId { get; } - - protected async Task>> GetRoot(int skip, int take) - { - if (PaginationService.ConvertSkipTakeToPaging(skip, take, out var pageNumber, out var pageSize, out ProblemDetails? error) == false) - { - return BadRequest(error); - } - - IEntitySlim[] rootEntities = GetPagedRootEntities(pageNumber, pageSize, out var totalItems); - - TItem[] treeItemViewModels = MapRecycleBinViewModels(null, rootEntities); - - PagedViewModel result = PagedViewModel(treeItemViewModels, totalItems); - return await Task.FromResult(Ok(result)); - } - - protected async Task>> GetChildren(Guid parentKey, int skip, int take) - { - if (PaginationService.ConvertSkipTakeToPaging(skip, take, out var pageNumber, out var pageSize, out ProblemDetails? error) == false) - { - return BadRequest(error); - } - - IEntitySlim[] children = GetPagedChildEntities(parentKey, pageNumber, pageSize, out var totalItems); - - TItem[] treeItemViewModels = MapRecycleBinViewModels(parentKey, children); - - PagedViewModel result = PagedViewModel(treeItemViewModels, totalItems); - - return await Task.FromResult(Ok(result)); - } - - protected virtual TItem MapRecycleBinViewModel(Guid? parentKey, IEntitySlim entity) - { - if (entity == null) - { - throw new ArgumentNullException(nameof(entity)); - } - - var viewModel = new TItem - { - Icon = _itemUdiType, - Name = entity.Name!, - Key = entity.Key, - Type = _itemUdiType, - HasChildren = entity.HasChildren, - IsContainer = entity.IsContainer, - ParentKey = parentKey - }; - - return viewModel; - } - - private IEntitySlim[] GetPagedRootEntities(long pageNumber, int pageSize, out long totalItems) - { - IEntitySlim[] rootEntities = _entityService - .GetPagedTrashedChildren(RecycleBinRootId, ItemObjectType, pageNumber, pageSize, out totalItems) - .ToArray(); - - return rootEntities; - } - - private IEntitySlim[] GetPagedChildEntities(Guid parentKey, long pageNumber, int pageSize, out long totalItems) - { - IEntitySlim? parent = _entityService.Get(parentKey, ItemObjectType); - if (parent == null || parent.Trashed == false) - { - // not much else we can do here but return nothing - totalItems = 0; - return Array.Empty(); - } - - IEntitySlim[] children = _entityService - .GetPagedTrashedChildren(parent.Id, ItemObjectType, pageNumber, pageSize, out totalItems) - .ToArray(); - - return children; - } - - private TItem[] MapRecycleBinViewModels(Guid? parentKey, IEntitySlim[] entities) - => entities.Select(entity => MapRecycleBinViewModel(parentKey, entity)).ToArray(); - - private PagedViewModel PagedViewModel(IEnumerable treeItemViewModels, long totalItems) - => new() { Total = totalItems, Items = treeItemViewModels }; -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/ByKeyRedirectUrlManagementController.cs b/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/ByKeyRedirectUrlManagementController.cs deleted file mode 100644 index 57e7f17df3..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/ByKeyRedirectUrlManagementController.cs +++ /dev/null @@ -1,38 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.Factories; -using Umbraco.Cms.Api.Management.ViewModels.RedirectUrlManagement; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Services; - -namespace Umbraco.Cms.Api.Management.Controllers.RedirectUrlManagement; - -public class ByKeyRedirectUrlManagementController : RedirectUrlManagementBaseController -{ - private readonly IRedirectUrlService _redirectUrlService; - private readonly IRedirectUrlViewModelFactory _redirectUrlViewModelFactory; - - public ByKeyRedirectUrlManagementController( - IRedirectUrlService redirectUrlService, - IRedirectUrlViewModelFactory redirectUrlViewModelFactory) - { - _redirectUrlService = redirectUrlService; - _redirectUrlViewModelFactory = redirectUrlViewModelFactory; - } - - [HttpGet("{key:guid}")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public Task>> ByKey(Guid key, int skip, int take) - { - IRedirectUrl[] redirects = _redirectUrlService.GetContentRedirectUrls(key).ToArray(); - - IEnumerable viewModels = _redirectUrlViewModelFactory.CreateMany(redirects); - - return Task.FromResult>>(new PagedViewModel - { - Items = viewModels.Skip(skip).Take(take), - Total = redirects.Length, - }); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/DeleteByKeyRedirectUrlManagementController.cs b/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/DeleteByKeyRedirectUrlManagementController.cs deleted file mode 100644 index fbab340a73..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/DeleteByKeyRedirectUrlManagementController.cs +++ /dev/null @@ -1,23 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Services; - -namespace Umbraco.Cms.Api.Management.Controllers.RedirectUrlManagement; - -public class DeleteByKeyRedirectUrlManagementController : RedirectUrlManagementBaseController -{ - private readonly IRedirectUrlService _redirectUrlService; - - public DeleteByKeyRedirectUrlManagementController(IRedirectUrlService redirectUrlService) - { - _redirectUrlService = redirectUrlService; - } - - [HttpDelete("{key:guid}")] - [ProducesResponseType(StatusCodes.Status200OK)] - public async Task DeleteByKey(Guid key) - { - _redirectUrlService.Delete(key); - return Ok(); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/GetAllRedirectUrlManagementController.cs b/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/GetAllRedirectUrlManagementController.cs deleted file mode 100644 index 8c375a416e..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/GetAllRedirectUrlManagementController.cs +++ /dev/null @@ -1,43 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.Factories; -using Umbraco.Cms.Api.Management.Services.Paging; -using Umbraco.Cms.Api.Management.ViewModels.RedirectUrlManagement; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Services; - -namespace Umbraco.Cms.Api.Management.Controllers.RedirectUrlManagement; - -public class GetAllRedirectUrlManagementController : RedirectUrlManagementBaseController -{ - private readonly IRedirectUrlService _redirectUrlService; - private readonly IRedirectUrlViewModelFactory _redirectUrlViewModelFactory; - - public GetAllRedirectUrlManagementController( - IRedirectUrlService redirectUrlService, - IRedirectUrlViewModelFactory redirectUrlViewModelFactory) - { - _redirectUrlService = redirectUrlService; - _redirectUrlViewModelFactory = redirectUrlViewModelFactory; - } - - [HttpGet] - [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> GetAll(string? filter, int skip, int take) - { - if (PaginationService.ConvertSkipTakeToPaging(skip, take, out long pageNumber, out int pageSize, out ProblemDetails? error) is false) - { - return BadRequest(error); - } - - long total; - IEnumerable redirects = filter is null - ? _redirectUrlService.GetAllRedirectUrls(pageNumber, pageSize, out total) - : _redirectUrlService.SearchRedirectUrls(filter, pageNumber, pageSize, out total); - - IEnumerable redirectViewModels = _redirectUrlViewModelFactory.CreateMany(redirects); - return new PagedViewModel { Items = redirectViewModels, Total = total }; - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/GetStatusRedirectUrlManagementController.cs b/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/GetStatusRedirectUrlManagementController.cs deleted file mode 100644 index 779d95bc56..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/GetStatusRedirectUrlManagementController.cs +++ /dev/null @@ -1,19 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Api.Management.Factories; -using Umbraco.Cms.Api.Management.ViewModels.RedirectUrlManagement; - -namespace Umbraco.Cms.Api.Management.Controllers.RedirectUrlManagement; - -public class GetStatusRedirectUrlManagementController : RedirectUrlManagementBaseController -{ - private readonly IRedirectUrlStatusViewModelFactory _redirectUrlStatusViewModelFactory; - - public GetStatusRedirectUrlManagementController( - IRedirectUrlStatusViewModelFactory redirectUrlStatusViewModelFactory) => - _redirectUrlStatusViewModelFactory = redirectUrlStatusViewModelFactory; - - [HttpGet("status")] - [ProducesResponseType(typeof(RedirectUrlStatusViewModel), 200)] - public Task> GetStatus() => - Task.FromResult>(_redirectUrlStatusViewModelFactory.CreateViewModel()); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/RedirectUrlManagementBaseController.cs b/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/RedirectUrlManagementBaseController.cs deleted file mode 100644 index 0c8cc74822..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/RedirectUrlManagementBaseController.cs +++ /dev/null @@ -1,13 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Api.Management.Routing; - -namespace Umbraco.Cms.Api.Management.Controllers.RedirectUrlManagement; - -[ApiController] -[VersionedApiBackOfficeRoute("redirect-management")] -[ApiExplorerSettings(GroupName = "Redirect Management")] -[ApiVersion("1.0")] -public class RedirectUrlManagementBaseController : ManagementApiControllerBase -{ - -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/SetStatusRedirectUrlManagementController.cs b/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/SetStatusRedirectUrlManagementController.cs deleted file mode 100644 index d51e91a08d..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/RedirectUrlManagement/SetStatusRedirectUrlManagementController.cs +++ /dev/null @@ -1,53 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Configuration; -using Umbraco.Cms.Core.Security; -using Umbraco.New.Cms.Core.Models.RedirectUrlManagement; - -namespace Umbraco.Cms.Api.Management.Controllers.RedirectUrlManagement; - -public class SetStatusRedirectUrlManagementController : RedirectUrlManagementBaseController -{ - private readonly IBackOfficeSecurityAccessor _backOfficeSecurityAccessor; - private readonly IConfigManipulator _configManipulator; - - public SetStatusRedirectUrlManagementController( - IBackOfficeSecurityAccessor backOfficeSecurityAccessor, - IConfigManipulator configManipulator) - { - _backOfficeSecurityAccessor = backOfficeSecurityAccessor; - _configManipulator = configManipulator; - } - - // TODO: Consider if we should even allow this, or only allow using the appsettings - // We generally don't want to edit the appsettings from our code. - // But maybe there is a valid use case for doing it on the fly. - [HttpPost("status")] - public async Task SetStatus([FromQuery] RedirectStatus status) - { - // TODO: uncomment this when auth is implemented. - // var userIsAdmin = _backOfficeSecurityAccessor.BackOfficeSecurity?.CurrentUser?.IsAdmin(); - // if (userIsAdmin is null or false) - // { - // return Unauthorized(); - // } - - var enable = status switch - { - RedirectStatus.Enabled => true, - RedirectStatus.Disabled => false - }; - - // For now I'm not gonna change this to limit breaking, but it's weird to have a "disabled" switch, - // since you're essentially negating the boolean from the get go, - // it's much easier to reason with enabled = false == disabled. - _configManipulator.SaveDisableRedirectUrlTracking(!enable); - - // Taken from the existing implementation in RedirectUrlManagementController - // TODO this is ridiculous, but we need to ensure the configuration is reloaded, before this request is ended. - // otherwise we can read the old value in GetEnableState. - // The value is equal to JsonConfigurationSource.ReloadDelay - Thread.Sleep(250); - - return Ok(); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Relation/ByChildRelationController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Relation/ByChildRelationController.cs deleted file mode 100644 index c6153d5639..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Relation/ByChildRelationController.cs +++ /dev/null @@ -1,52 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Factories; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Relation; -using Umbraco.Extensions; - -namespace Umbraco.Cms.Api.Management.Controllers.Relation; - -public class ByChildRelationController : RelationControllerBase -{ - private readonly IRelationService _relationService; - private readonly IRelationViewModelFactory _relationViewModelFactory; - - public ByChildRelationController( - IRelationService relationService, - IRelationViewModelFactory relationViewModelFactory) - { - _relationService = relationService; - _relationViewModelFactory = relationViewModelFactory; - } - - [HttpGet("child-relation/{childId:int}")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task> ByChild(int childId, int skip, int take, string? relationTypeAlias = "") - { - IRelation[] relations = _relationService.GetByChildId(childId).ToArray(); - RelationViewModel[] result = Array.Empty(); - - if (relations.Any()) - { - if (string.IsNullOrWhiteSpace(relationTypeAlias) == false) - { - result = _relationViewModelFactory.CreateMultiple(relations.Where(x => - x.RelationType.Alias.InvariantEquals(relationTypeAlias))).ToArray(); - } - else - { - result = _relationViewModelFactory.CreateMultiple(relations).ToArray(); - } - } - - return await Task.FromResult(new PagedViewModel - { - Total = result.Length, - Items = result.Skip(skip).Take(take), - }); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Relation/ByIdRelationController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Relation/ByIdRelationController.cs deleted file mode 100644 index a9ac8cf0cd..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Relation/ByIdRelationController.cs +++ /dev/null @@ -1,35 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Factories; -using Umbraco.Cms.Api.Management.ViewModels.Relation; - -namespace Umbraco.Cms.Api.Management.Controllers.Relation; - -public class ByIdRelationController : RelationControllerBase -{ - private readonly IRelationService _relationService; - private readonly IRelationViewModelFactory _relationViewModelFactory; - - public ByIdRelationController(IRelationService relationService, IRelationViewModelFactory relationViewModelFactory) - { - _relationService = relationService; - _relationViewModelFactory = relationViewModelFactory; - } - - [HttpGet("{id:int}")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(RelationViewModel), StatusCodes.Status200OK)] - [ProducesResponseType(typeof(NotFoundResult), StatusCodes.Status404NotFound)] - public async Task ById(int id) - { - IRelation? relation = _relationService.GetById(id); - if (relation is null) - { - return NotFound(); - } - - return await Task.FromResult(Ok(_relationViewModelFactory.Create(relation))); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Relation/RelationControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/Relation/RelationControllerBase.cs deleted file mode 100644 index 4c0f525898..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Relation/RelationControllerBase.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Api.Management.Routing; - -namespace Umbraco.Cms.Api.Management.Controllers.Relation; - -[ApiController] -[VersionedApiBackOfficeRoute("relation")] -[ApiExplorerSettings(GroupName = "Relation")] -[ApiVersion("1.0")] -// TODO: Implement Authentication -public abstract class RelationControllerBase : ManagementApiControllerBase -{ - -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/RelationType/Tree/ItemsRelationTypeTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/RelationType/Tree/ItemsRelationTypeTreeController.cs deleted file mode 100644 index 8271d80706..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/RelationType/Tree/ItemsRelationTypeTreeController.cs +++ /dev/null @@ -1,32 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.RelationType.Tree; - -public class ItemsRelationTypeTreeController : RelationTypeTreeControllerBase -{ - private readonly IRelationService _relationService; - - public ItemsRelationTypeTreeController(IEntityService entityService, IRelationService relationService) - : base(entityService) => - _relationService = relationService; - - [HttpGet("item")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] - public async Task>> Items([FromQuery(Name = "key")] Guid[] keys) - { - // relation service does not allow fetching a collection of relation types by their ids; instead it relies - // heavily on caching, which means this is as fast as it gets - even if it looks less than performant - IRelationType[] relationTypes = _relationService - .GetAllRelationTypes() - .Where(relationType => keys.Contains(relationType.Key)).ToArray(); - - EntityTreeItemViewModel[] viewModels = MapTreeItemViewModels(null, relationTypes); - - return await Task.FromResult(Ok(viewModels)); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/RelationType/Tree/RelationTypeTreeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/RelationType/Tree/RelationTypeTreeControllerBase.cs deleted file mode 100644 index 10d53ffcbb..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/RelationType/Tree/RelationTypeTreeControllerBase.cs +++ /dev/null @@ -1,37 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Controllers.Tree; -using Umbraco.Cms.Api.Management.ViewModels.Tree; -using Umbraco.Cms.Api.Management.Routing; - -namespace Umbraco.Cms.Api.Management.Controllers.RelationType.Tree; - -[ApiVersion("1.0")] -[ApiController] -[VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.Tree}/{Constants.UdiEntityType.RelationType}")] -[ApiExplorerSettings(GroupName = "Relation Type")] -// NOTE: at the moment relation types aren't supported by EntityService, so we have little use of the -// tree controller base. We'll keep it though, in the hope that we can mend EntityService. -public class RelationTypeTreeControllerBase : EntityTreeControllerBase -{ - public RelationTypeTreeControllerBase(IEntityService entityService) - : base(entityService) - { - } - - protected override UmbracoObjectTypes ItemObjectType => UmbracoObjectTypes.RelationType; - - protected EntityTreeItemViewModel[] MapTreeItemViewModels(Guid? parentKey, IRelationType[] relationTypes) - => relationTypes.Select(relationType => new EntityTreeItemViewModel - { - Icon = Constants.Icons.RelationType, - Name = relationType.Name!, - Key = relationType.Key, - Type = Constants.UdiEntityType.RelationType, - HasChildren = false, - IsContainer = false, - ParentKey = parentKey - }).ToArray(); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/RelationType/Tree/RootRelationTypeTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/RelationType/Tree/RootRelationTypeTreeController.cs deleted file mode 100644 index c7d3e122b4..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/RelationType/Tree/RootRelationTypeTreeController.cs +++ /dev/null @@ -1,44 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Services.Paging; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.RelationType.Tree; - -public class RootRelationTypeTreeController : RelationTypeTreeControllerBase -{ - private readonly IRelationService _relationService; - - public RootRelationTypeTreeController(IEntityService entityService, IRelationService relationService) - : base(entityService) => - _relationService = relationService; - - [HttpGet("root")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Root(int skip = 0, int take = 100) - { - if (PaginationService.ConvertSkipTakeToPaging(skip, take, out var pageNumber, out var pageSize, out ProblemDetails? error) == false) - { - return BadRequest(error); - } - - // pagination is not supported (yet) by relation service, so we do it in memory for now - // - chances are we won't have many relation types, so it won't be an actual issue - IRelationType[] allRelationTypes = _relationService.GetAllRelationTypes().ToArray(); - - EntityTreeItemViewModel[] viewModels = MapTreeItemViewModels( - null, - allRelationTypes - .OrderBy(relationType => relationType.Name) - .Skip((int)(pageNumber * pageSize)) - .Take(pageSize) - .ToArray()); - - PagedViewModel result = PagedViewModel(viewModels, allRelationTypes.Length); - return await Task.FromResult(Ok(result)); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Script/Tree/ChildrenScriptTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Script/Tree/ChildrenScriptTreeController.cs deleted file mode 100644 index 53974b3575..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Script/Tree/ChildrenScriptTreeController.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.IO; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.Script.Tree; - -public class ChildrenScriptTreeController : ScriptTreeControllerBase -{ - public ChildrenScriptTreeController(FileSystems fileSystems) - : base(fileSystems) - { - } - - [HttpGet("children")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Children(string path, int skip = 0, int take = 100) - => await GetChildren(path, skip, take); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Script/Tree/ItemsScriptTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Script/Tree/ItemsScriptTreeController.cs deleted file mode 100644 index 4db18a409b..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Script/Tree/ItemsScriptTreeController.cs +++ /dev/null @@ -1,20 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.IO; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.Script.Tree; - -public class ItemsScriptTreeController : ScriptTreeControllerBase -{ - public ItemsScriptTreeController(FileSystems fileSystems) - : base(fileSystems) - { - } - - [HttpGet("item")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] - public async Task>> Items([FromQuery(Name = "path")] string[] paths) - => await GetItems(paths); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Script/Tree/RootScriptTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Script/Tree/RootScriptTreeController.cs deleted file mode 100644 index d04525daa4..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Script/Tree/RootScriptTreeController.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.IO; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.Script.Tree; - -public class RootScriptTreeController : ScriptTreeControllerBase -{ - public RootScriptTreeController(FileSystems fileSystems) - : base(fileSystems) - { - } - - [HttpGet("root")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Root(int skip = 0, int take = 100) - => await GetRoot(skip, take); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Script/Tree/ScriptTreeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/Script/Tree/ScriptTreeControllerBase.cs deleted file mode 100644 index d5206e1734..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Script/Tree/ScriptTreeControllerBase.cs +++ /dev/null @@ -1,24 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.IO; -using Umbraco.Cms.Api.Management.Controllers.Tree; -using Umbraco.Cms.Api.Management.Routing; - -namespace Umbraco.Cms.Api.Management.Controllers.Script.Tree; - -[ApiVersion("1.0")] -[ApiController] -[VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.Tree}/{Constants.UdiEntityType.Script}")] -[ApiExplorerSettings(GroupName = nameof(Constants.UdiEntityType.Script))] -public class ScriptTreeControllerBase : FileSystemTreeControllerBase -{ - public ScriptTreeControllerBase(FileSystems fileSystems) - => FileSystem = fileSystems.ScriptsFileSystem ?? - throw new ArgumentException("Missing scripts file system", nameof(fileSystems)); - - protected override IFileSystem FileSystem { get; } - - protected override string FileIcon(string path) => Constants.Icons.Script; - - protected override string ItemType(string path) => Constants.UdiEntityType.Script; -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Searcher/AllSearcherController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Searcher/AllSearcherController.cs deleted file mode 100644 index c4cf3863bb..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Searcher/AllSearcherController.cs +++ /dev/null @@ -1,38 +0,0 @@ -using Examine; -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Search; -using Umbraco.Extensions; - -namespace Umbraco.Cms.Api.Management.Controllers.Searcher; - -[ApiVersion("1.0")] -public class AllSearcherController : SearcherControllerBase -{ - private readonly IExamineManager _examineManager; - - public AllSearcherController(IExamineManager examineManager) => _examineManager = examineManager; - - /// - /// Get the details for searchers - /// - /// - [HttpGet] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> All(int skip, int take) - { - var searchers = new List( - _examineManager.RegisteredSearchers.Select(searcher => new SearcherViewModel { Name = searcher.Name }) - .OrderBy(x => - x.Name.TrimEnd("Searcher"))); // order by name , but strip the "Searcher" from the end if it exists - var viewModel = new PagedViewModel - { - Items = searchers.Skip(skip).Take(take), - Total = searchers.Count, - }; - - return await Task.FromResult(Ok(viewModel)); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Searcher/QuerySearcherController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Searcher/QuerySearcherController.cs deleted file mode 100644 index ac34444fcb..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Searcher/QuerySearcherController.cs +++ /dev/null @@ -1,80 +0,0 @@ -using Examine; -using Examine.Search; -using Lucene.Net.QueryParsers.Classic; -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Api.Management.Services; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Search; -using Umbraco.Extensions; - -namespace Umbraco.Cms.Api.Management.Controllers.Searcher; - -[ApiVersion("1.0")] -public class QuerySearcherController : SearcherControllerBase -{ - private readonly IExamineManagerService _examineManagerService; - - public QuerySearcherController(IExamineManagerService examineManagerService) => _examineManagerService = examineManagerService; - - [HttpGet("{searcherName}/query")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)] - public async Task>> Query(string searcherName, string? term, int skip, int take) - { - term = term?.Trim(); - - if (term.IsNullOrWhiteSpace()) - { - return new PagedViewModel(); - } - - if (!_examineManagerService.TryFindSearcher(searcherName, out ISearcher searcher)) - { - var invalidModelProblem = new ProblemDetails - { - Title = "Could not find a valid searcher", - Detail = "The provided searcher name did not match any of our registered searchers", - Status = StatusCodes.Status404NotFound, - Type = "Error", - }; - - return NotFound(invalidModelProblem); - } - - ISearchResults results; - - // NativeQuery will work for a single word/phrase too (but depends on the implementation) the lucene one will work. - try - { - results = searcher - .CreateQuery() - .NativeQuery(term) - .Execute(QueryOptions.SkipTake(skip, take)); - } - catch (ParseException) - { - var invalidModelProblem = new ProblemDetails - { - Title = "Could not parse the query", - Detail = "Parser could not parse the query. Please double check if the query is valid. Sometimes this can also happen if your query starts with a wildcard (*)", - Status = StatusCodes.Status404NotFound, - Type = "Error", - }; - - return BadRequest(invalidModelProblem); - } - - return await Task.FromResult(new PagedViewModel - { - Total = results.TotalItemCount, - Items = results.Select(x => new SearchResultViewModel - { - Id = x.Id, - Score = x.Score, - Fields = x.AllValues.OrderBy(y => y.Key).Select(y => new FieldViewModel { Name = y.Key, Values = y.Value }), - }), - }); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Searcher/SearcherControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/Searcher/SearcherControllerBase.cs deleted file mode 100644 index d27fe28826..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Searcher/SearcherControllerBase.cs +++ /dev/null @@ -1,11 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Api.Management.Routing; - -namespace Umbraco.Cms.Api.Management.Controllers.Searcher; - -[ApiController] -[VersionedApiBackOfficeRoute("searcher")] -[ApiExplorerSettings(GroupName = "Searcher")] -public class SearcherControllerBase : ManagementApiControllerBase -{ -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Security/BackOfficeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Security/BackOfficeController.cs deleted file mode 100644 index a7731e1f46..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Security/BackOfficeController.cs +++ /dev/null @@ -1,144 +0,0 @@ -using System.Security.Claims; -using Microsoft.AspNetCore; -using Microsoft.AspNetCore.Authentication; -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Identity; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Options; -using OpenIddict.Abstractions; -using OpenIddict.Server.AspNetCore; -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.Configuration.Models; -using Umbraco.Cms.Core.Security; -using Umbraco.Cms.Web.BackOffice.Security; -using Umbraco.Extensions; -using Umbraco.Cms.Api.Management.Routing; -using SignInResult = Microsoft.AspNetCore.Mvc.SignInResult; -using IdentitySignInResult = Microsoft.AspNetCore.Identity.SignInResult; - -namespace Umbraco.Cms.Api.Management.Controllers.Security; - -[ApiController] -[VersionedApiBackOfficeRoute(Paths.BackOfficeApiEndpointTemplate)] -[ApiExplorerSettings(GroupName = "Security")] -public class BackOfficeController : ManagementApiControllerBase -{ - private readonly IHttpContextAccessor _httpContextAccessor; - private readonly IBackOfficeSignInManager _backOfficeSignInManager; - private readonly IBackOfficeUserManager _backOfficeUserManager; - private readonly IOptions _securitySettings; - - public BackOfficeController( - IHttpContextAccessor httpContextAccessor, - IBackOfficeSignInManager backOfficeSignInManager, - IBackOfficeUserManager backOfficeUserManager, - IOptions securitySettings) - { - _httpContextAccessor = httpContextAccessor; - _backOfficeSignInManager = backOfficeSignInManager; - _backOfficeUserManager = backOfficeUserManager; - _securitySettings = securitySettings; - } - - [HttpGet("authorize")] - [HttpPost("authorize")] - [MapToApiVersion("1.0")] - public async Task Authorize() - { - HttpContext context = _httpContextAccessor.GetRequiredHttpContext(); - OpenIddictRequest? request = context.GetOpenIddictServerRequest(); - if (request == null) - { - return BadRequest("Unable to obtain OpenID data from the current request"); - } - - return request.IdentityProvider.IsNullOrWhiteSpace() - ? await AuthorizeInternal(request) - : await AuthorizeExternal(request); - } - - private async Task AuthorizeInternal(OpenIddictRequest request) - { - // TODO: ensure we handle sign-in notifications for internal logins. - // when the new login screen is implemented for internal logins, make sure it still handles - // user sign-in notifications (calls BackOfficeSignInManager.HandleSignIn) as part of the - // sign-in process - // for future reference, notifications are already handled for the external login flow by - // by calling BackOfficeSignInManager.ExternalLoginSignInAsync - - // retrieve the user principal stored in the authentication cookie. - AuthenticateResult cookieAuthResult = await HttpContext.AuthenticateAsync(Constants.Security.BackOfficeAuthenticationType); - var userName = cookieAuthResult.Succeeded - ? cookieAuthResult.Principal?.Identity?.Name - : null; - - if (userName != null) - { - BackOfficeIdentityUser? backOfficeUser = await _backOfficeUserManager.FindByNameAsync(userName); - if (backOfficeUser != null) - { - return await SignInBackOfficeUser(backOfficeUser, request); - } - } - - return DefaultChallengeResult(); - } - - private async Task AuthorizeExternal(OpenIddictRequest request) - { - var provider = request.IdentityProvider ?? throw new ArgumentException("No identity provider found in request", nameof(request)); - - ExternalLoginInfo? loginInfo = await _backOfficeSignInManager.GetExternalLoginInfoAsync(); - if (loginInfo?.Principal != null) - { - IdentitySignInResult result = await _backOfficeSignInManager.ExternalLoginSignInAsync(loginInfo, false, _securitySettings.Value.UserBypassTwoFactorForExternalLogins); - - if (result.Succeeded) - { - // Update any authentication tokens if succeeded - await _backOfficeSignInManager.UpdateExternalAuthenticationTokensAsync(loginInfo); - - // sign in the backoffice user associated with the login provider and unique provider key - BackOfficeIdentityUser? backOfficeUser = await _backOfficeUserManager.FindByLoginAsync(loginInfo.LoginProvider, loginInfo.ProviderKey); - if (backOfficeUser != null) - { - return await SignInBackOfficeUser(backOfficeUser, request); - } - } - else - { - // avoid infinite auth loops when something fails by performing the default challenge (default login screen) - return DefaultChallengeResult(); - } - } - - AuthenticationProperties properties = _backOfficeSignInManager.ConfigureExternalAuthenticationProperties(provider, null); - return new ChallengeResult(provider, properties); - } - - private async Task SignInBackOfficeUser(BackOfficeIdentityUser backOfficeUser, OpenIddictRequest request) - { - ClaimsPrincipal backOfficePrincipal = await _backOfficeSignInManager.CreateUserPrincipalAsync(backOfficeUser); - backOfficePrincipal.SetClaim(OpenIddictConstants.Claims.Subject, backOfficeUser.Key.ToString()); - - // TODO: it is not optimal to append all claims to the token. - // the token size grows with each claim, although it is still smaller than the old cookie. - // see if we can find a better way so we do not risk leaking sensitive data in bearer tokens. - // maybe work with scopes instead? - Claim[] backOfficeClaims = backOfficePrincipal.Claims.ToArray(); - foreach (Claim backOfficeClaim in backOfficeClaims) - { - backOfficeClaim.SetDestinations(OpenIddictConstants.Destinations.AccessToken); - } - - if (request.GetScopes().Contains(OpenIddictConstants.Scopes.OfflineAccess)) - { - // "offline_access" scope is required to use refresh tokens - backOfficePrincipal.SetScopes(OpenIddictConstants.Scopes.OfflineAccess); - } - - return new SignInResult(OpenIddictServerAspNetCoreDefaults.AuthenticationScheme, backOfficePrincipal); - } - - private static IActionResult DefaultChallengeResult() => new ChallengeResult(Constants.Security.BackOfficeAuthenticationType); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Security/Paths.cs b/src/Umbraco.Cms.Api.Management/Controllers/Security/Paths.cs deleted file mode 100644 index ee527c85e2..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Security/Paths.cs +++ /dev/null @@ -1,12 +0,0 @@ -namespace Umbraco.Cms.Api.Management.Controllers.Security; - -public static class Paths -{ - public const string BackOfficeApiEndpointTemplate = "security/back-office"; - - public static readonly string BackOfficeApiAuthorizationEndpoint = BackOfficeApiEndpointPath($"{BackOfficeApiEndpointTemplate}/authorize"); - - public static readonly string BackOfficeApiTokenEndpoint = BackOfficeApiEndpointPath($"{BackOfficeApiEndpointTemplate}/token"); - - private static string BackOfficeApiEndpointPath(string relativePath) => $"/umbraco/management/api/v1.0/{relativePath}"; -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Server/ServerControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/Server/ServerControllerBase.cs deleted file mode 100644 index 646f1f6996..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Server/ServerControllerBase.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Api.Management.Routing; - -namespace Umbraco.Cms.Api.Management.Controllers.Server; - -[ApiController] -[VersionedApiBackOfficeRoute("server")] -[ApiExplorerSettings(GroupName = "Server")] -public abstract class ServerControllerBase : ManagementApiControllerBase -{ - -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Server/StatusServerController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Server/StatusServerController.cs deleted file mode 100644 index f11147fdbb..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Server/StatusServerController.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.ViewModels.Server; - -namespace Umbraco.Cms.Api.Management.Controllers.Server; - -[ApiVersion("1.0")] -public class StatusServerController : ServerControllerBase -{ - private readonly IRuntimeState _runtimeState; - - public StatusServerController(IRuntimeState runtimeState) => _runtimeState = runtimeState; - - [HttpGet("status")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] - [ProducesResponseType(typeof(ServerStatusViewModel), StatusCodes.Status200OK)] - public async Task> Get() => - await Task.FromResult(new ServerStatusViewModel { ServerStatus = _runtimeState.Level }); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Server/VersionServerController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Server/VersionServerController.cs deleted file mode 100644 index bb9ce5846e..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Server/VersionServerController.cs +++ /dev/null @@ -1,25 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Configuration; -using Umbraco.Cms.Api.Management.ViewModels.Server; -using Umbraco.Extensions; - -namespace Umbraco.Cms.Api.Management.Controllers.Server; - -[ApiVersion("1.0")] -public class VersionServerController : ServerControllerBase -{ - private readonly IUmbracoVersion _umbracoVersion; - - public VersionServerController(IUmbracoVersion umbracoVersion) => _umbracoVersion = umbracoVersion; - - [HttpGet("version")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] - [ProducesResponseType(typeof(VersionViewModel), StatusCodes.Status200OK)] - public async Task> Get() => - await Task.FromResult(new VersionViewModel - { - Version = _umbracoVersion.SemanticVersion.ToSemanticStringWithoutBuild() - }); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/StaticFile/Tree/ChildrenStaticFileTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/StaticFile/Tree/ChildrenStaticFileTreeController.cs deleted file mode 100644 index 826d2b3103..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/StaticFile/Tree/ChildrenStaticFileTreeController.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.IO; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.StaticFile.Tree; - -public class ChildrenStaticFileTreeController : StaticFileTreeControllerBase -{ - public ChildrenStaticFileTreeController(IPhysicalFileSystem physicalFileSystem) - : base(physicalFileSystem) - { - } - - [HttpGet("children")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Children(string path, int skip = 0, int take = 100) - => await GetChildren(path, skip, take); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/StaticFile/Tree/ItemsStaticFileTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/StaticFile/Tree/ItemsStaticFileTreeController.cs deleted file mode 100644 index 78d63d9143..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/StaticFile/Tree/ItemsStaticFileTreeController.cs +++ /dev/null @@ -1,20 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.IO; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.StaticFile.Tree; - -public class ItemsStaticFileTreeController : StaticFileTreeControllerBase -{ - public ItemsStaticFileTreeController(IPhysicalFileSystem physicalFileSystem) - : base(physicalFileSystem) - { - } - - [HttpGet("item")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] - public async Task>> Items([FromQuery(Name = "path")] string[] paths) - => await GetItems(paths); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/StaticFile/Tree/RootStaticFileTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/StaticFile/Tree/RootStaticFileTreeController.cs deleted file mode 100644 index 48d4cacc4d..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/StaticFile/Tree/RootStaticFileTreeController.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.IO; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.StaticFile.Tree; - -public class RootStaticFileTreeController : StaticFileTreeControllerBase -{ - public RootStaticFileTreeController(IPhysicalFileSystem physicalFileSystem) - : base(physicalFileSystem) - { - } - - [HttpGet("root")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Root(int skip = 0, int take = 100) - => await GetRoot(skip, take); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/StaticFile/Tree/StaticFileTreeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/StaticFile/Tree/StaticFileTreeControllerBase.cs deleted file mode 100644 index aed2042255..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/StaticFile/Tree/StaticFileTreeControllerBase.cs +++ /dev/null @@ -1,41 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.IO; -using Umbraco.Cms.Api.Management.Controllers.Tree; -using Umbraco.Cms.Api.Management.Routing; - -namespace Umbraco.Cms.Api.Management.Controllers.StaticFile.Tree; - -[ApiVersion("1.0")] -[ApiController] -[VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.Tree}/static-file")] -[ApiExplorerSettings(GroupName = "Static File")] -public class StaticFileTreeControllerBase : FileSystemTreeControllerBase -{ - private static readonly string[] _allowedRootFolders = { "App_Plugins", "wwwroot" }; - - public StaticFileTreeControllerBase(IPhysicalFileSystem physicalFileSystem) - => FileSystem = physicalFileSystem; - - protected override IFileSystem FileSystem { get; } - - protected override string FileIcon(string path) => Constants.Icons.DefaultIcon; - - protected override string ItemType(string path) => "static-file"; - - protected override string[] GetDirectories(string path) => - IsTreeRootPath(path) - ? _allowedRootFolders - : IsAllowedPath(path) - ? base.GetDirectories(path) - : Array.Empty(); - - protected override string[] GetFiles(string path) - => IsTreeRootPath(path) || IsAllowedPath(path) == false - ? Array.Empty() - : base.GetFiles(path); - - private bool IsTreeRootPath(string path) => string.IsNullOrWhiteSpace(path); - - private bool IsAllowedPath(string path) => _allowedRootFolders.Contains(path) || _allowedRootFolders.Any(folder => path.StartsWith($"{folder}/")); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Tree/ChildrenStylesheetTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Tree/ChildrenStylesheetTreeController.cs deleted file mode 100644 index 8e6a0022d4..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Tree/ChildrenStylesheetTreeController.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.IO; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.Stylesheet.Tree; - -public class ChildrenStylesheetTreeController : StylesheetTreeControllerBase -{ - public ChildrenStylesheetTreeController(FileSystems fileSystems) - : base(fileSystems) - { - } - - [HttpGet("children")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Children(string path, int skip = 0, int take = 100) - => await GetChildren(path, skip, take); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Tree/ItemsStylesheetTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Tree/ItemsStylesheetTreeController.cs deleted file mode 100644 index ff54931403..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Tree/ItemsStylesheetTreeController.cs +++ /dev/null @@ -1,20 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.IO; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.Stylesheet.Tree; - -public class ItemsStylesheetTreeController : StylesheetTreeControllerBase -{ - public ItemsStylesheetTreeController(FileSystems fileSystems) - : base(fileSystems) - { - } - - [HttpGet("item")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] - public async Task>> Items([FromQuery(Name = "path")] string[] paths) - => await GetItems(paths); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Tree/RootStylesheetTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Tree/RootStylesheetTreeController.cs deleted file mode 100644 index cb8ca07d75..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Tree/RootStylesheetTreeController.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.IO; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.Stylesheet.Tree; - -public class RootStylesheetTreeController : StylesheetTreeControllerBase -{ - public RootStylesheetTreeController(FileSystems fileSystems) - : base(fileSystems) - { - } - - [HttpGet("root")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Root(int skip = 0, int take = 100) - => await GetRoot(skip, take); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Tree/StylesheetTreeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Tree/StylesheetTreeControllerBase.cs deleted file mode 100644 index 905d31bb1f..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Tree/StylesheetTreeControllerBase.cs +++ /dev/null @@ -1,24 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.IO; -using Umbraco.Cms.Api.Management.Controllers.Tree; -using Umbraco.Cms.Api.Management.Routing; - -namespace Umbraco.Cms.Api.Management.Controllers.Stylesheet.Tree; - -[ApiVersion("1.0")] -[ApiController] -[VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.Tree}/{Constants.UdiEntityType.Stylesheet}")] -[ApiExplorerSettings(GroupName = nameof(Constants.UdiEntityType.Stylesheet))] -public class StylesheetTreeControllerBase : FileSystemTreeControllerBase -{ - public StylesheetTreeControllerBase(FileSystems fileSystems) - => FileSystem = fileSystems.StylesheetsFileSystem ?? - throw new ArgumentException("Missing stylesheets file system", nameof(fileSystems)); - - protected override IFileSystem FileSystem { get; } - - protected override string FileIcon(string path) => Constants.Icons.Stylesheet; - - protected override string ItemType(string path) => Constants.UdiEntityType.Stylesheet; -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Telemetry/AllTelemetryController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Telemetry/AllTelemetryController.cs deleted file mode 100644 index 2ad72017fa..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Telemetry/AllTelemetryController.cs +++ /dev/null @@ -1,23 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Telemetry; - -namespace Umbraco.Cms.Api.Management.Controllers.Telemetry; - -public class AllTelemetryController : TelemetryControllerBase -{ - [HttpGet] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task> GetAll(int skip, int take) - { - TelemetryLevel[] levels = Enum.GetValues(); - return await Task.FromResult(new PagedViewModel - { - Total = levels.Length, - Items = levels.Skip(skip).Take(take).Select(level => new TelemetryViewModel { TelemetryLevel = level }), - }); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Telemetry/GetTelemetryController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Telemetry/GetTelemetryController.cs deleted file mode 100644 index 52a4a47d06..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Telemetry/GetTelemetryController.cs +++ /dev/null @@ -1,18 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.ViewModels.Telemetry; - -namespace Umbraco.Cms.Api.Management.Controllers.Telemetry; - -public class GetTelemetryController : TelemetryControllerBase -{ - private readonly IMetricsConsentService _metricsConsentService; - - public GetTelemetryController(IMetricsConsentService metricsConsentService) => _metricsConsentService = metricsConsentService; - - [HttpGet("level")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(TelemetryViewModel), StatusCodes.Status200OK)] - public async Task Get() => await Task.FromResult(new TelemetryViewModel { TelemetryLevel = _metricsConsentService.GetConsentLevel() }); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Telemetry/SetTelemetryController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Telemetry/SetTelemetryController.cs deleted file mode 100644 index 0667c7df3b..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Telemetry/SetTelemetryController.cs +++ /dev/null @@ -1,35 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.ViewModels.Telemetry; - -namespace Umbraco.Cms.Api.Management.Controllers.Telemetry; - -public class SetTelemetryController : TelemetryControllerBase -{ - private readonly IMetricsConsentService _metricsConsentService; - - public SetTelemetryController(IMetricsConsentService metricsConsentService) => _metricsConsentService = metricsConsentService; - - [HttpPost("level")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] - [ProducesResponseType(StatusCodes.Status200OK)] - public async Task SetConsentLevel(TelemetryViewModel telemetryViewModel) - { - if (!Enum.IsDefined(telemetryViewModel.TelemetryLevel)) - { - var invalidModelProblem = new ProblemDetails - { - Title = "Invalid TelemetryLevel value", - Detail = "The provided value for TelemetryLevel is not valid", - Status = StatusCodes.Status400BadRequest, - Type = "Error", - }; - return BadRequest(invalidModelProblem); - } - - _metricsConsentService.SetConsentLevel(telemetryViewModel.TelemetryLevel); - return await Task.FromResult(Ok()); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Telemetry/TelemetryControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/Telemetry/TelemetryControllerBase.cs deleted file mode 100644 index bb65bf1b85..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Telemetry/TelemetryControllerBase.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Api.Management.Routing; - -namespace Umbraco.Cms.Api.Management.Controllers.Telemetry; - -[ApiController] -[VersionedApiBackOfficeRoute("telemetry")] -[ApiExplorerSettings(GroupName = "Telemetry")] -[ApiVersion("1.0")] -public abstract class TelemetryControllerBase : ManagementApiControllerBase -{ -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Template/Tree/ChildrenTemplateTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Template/Tree/ChildrenTemplateTreeController.cs deleted file mode 100644 index 19968927a2..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Template/Tree/ChildrenTemplateTreeController.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.Template.Tree; - -public class ChildrenTemplateTreeController : TemplateTreeControllerBase -{ - public ChildrenTemplateTreeController(IEntityService entityService) - : base(entityService) - { - } - - [HttpGet("children")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Children(Guid parentKey, int skip = 0, int take = 100) - => await GetChildren(parentKey, skip, take); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Template/Tree/ItemsTemplateTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Template/Tree/ItemsTemplateTreeController.cs deleted file mode 100644 index 63a8e0cf22..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Template/Tree/ItemsTemplateTreeController.cs +++ /dev/null @@ -1,20 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.Template.Tree; - -public class ItemsTemplateTreeController : TemplateTreeControllerBase -{ - public ItemsTemplateTreeController(IEntityService entityService) - : base(entityService) - { - } - - [HttpGet("item")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] - public async Task>> Items([FromQuery(Name = "key")] Guid[] keys) - => await GetItems(keys); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Template/Tree/RootTemplateTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Template/Tree/RootTemplateTreeController.cs deleted file mode 100644 index 50efa34e4f..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Template/Tree/RootTemplateTreeController.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.Template.Tree; - -public class RootTemplateTreeController : TemplateTreeControllerBase -{ - public RootTemplateTreeController(IEntityService entityService) - : base(entityService) - { - } - - [HttpGet("root")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Root(int skip = 0, int take = 100) - => await GetRoot(skip, take); -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Template/Tree/TemplateTreeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/Template/Tree/TemplateTreeControllerBase.cs deleted file mode 100644 index d1c0ce5271..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Template/Tree/TemplateTreeControllerBase.cs +++ /dev/null @@ -1,31 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Models.Entities; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Controllers.Tree; -using Umbraco.Cms.Api.Management.ViewModels.Tree; -using Umbraco.Cms.Api.Management.Routing; - -namespace Umbraco.Cms.Api.Management.Controllers.Template.Tree; - -[ApiVersion("1.0")] -[ApiController] -[VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.Tree}/{Constants.UdiEntityType.Template}")] -[ApiExplorerSettings(GroupName = nameof(Constants.UdiEntityType.Template))] -public class TemplateTreeControllerBase : EntityTreeControllerBase -{ - public TemplateTreeControllerBase(IEntityService entityService) - : base(entityService) - { - } - - protected override UmbracoObjectTypes ItemObjectType => UmbracoObjectTypes.Template; - - protected override EntityTreeItemViewModel MapTreeItemViewModel(Guid? parentKey, IEntitySlim entity) - { - EntityTreeItemViewModel viewModel = base.MapTreeItemViewModel(parentKey, entity); - viewModel.Icon = Constants.Icons.Template; - return viewModel; - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/TrackedReference/ByIdTrackedReferenceController.cs b/src/Umbraco.Cms.Api.Management/Controllers/TrackedReference/ByIdTrackedReferenceController.cs deleted file mode 100644 index 39d2cfe3c2..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/TrackedReference/ByIdTrackedReferenceController.cs +++ /dev/null @@ -1,49 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Mapping; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.TrackedReferences; -using Umbraco.New.Cms.Core.Models; - -namespace Umbraco.Cms.Api.Management.Controllers.TrackedReference; - -public class ByIdTrackedReferenceController : TrackedReferenceControllerBase -{ - private readonly ITrackedReferencesService _trackedReferencesService; - private readonly IUmbracoMapper _umbracoMapper; - - public ByIdTrackedReferenceController(ITrackedReferencesService trackedReferencesService, IUmbracoMapper umbracoMapper) - { - _trackedReferencesService = trackedReferencesService; - _umbracoMapper = umbracoMapper; - } - - /// - /// Gets a page list of tracked references for the current item, so you can see where an item is being used. - /// - /// - /// Used by info tabs on content, media etc. and for the delete and unpublish of single items. - /// This is basically finding parents of relations. - /// - [HttpGet("{id:int}")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Get( - int id, - long skip, - long take, - bool? filterMustBeIsDependency) - { - PagedModel relationItems = _trackedReferencesService.GetPagedRelationsForItem(id, skip, take, filterMustBeIsDependency ?? false); - - var pagedViewModel = new PagedViewModel - { - Total = relationItems.Total, - Items = _umbracoMapper.MapEnumerable(relationItems.Items), - }; - - return await Task.FromResult(pagedViewModel); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/TrackedReference/DescendantsTrackedReferenceController.cs b/src/Umbraco.Cms.Api.Management/Controllers/TrackedReference/DescendantsTrackedReferenceController.cs deleted file mode 100644 index 752b6d8846..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/TrackedReference/DescendantsTrackedReferenceController.cs +++ /dev/null @@ -1,45 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Mapping; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.TrackedReferences; -using Umbraco.New.Cms.Core.Models; - -namespace Umbraco.Cms.Api.Management.Controllers.TrackedReference; - -public class DescendantsTrackedReferenceController : TrackedReferenceControllerBase -{ - private readonly ITrackedReferencesService _trackedReferencesSkipTakeService; - private readonly IUmbracoMapper _umbracoMapper; - - public DescendantsTrackedReferenceController(ITrackedReferencesService trackedReferencesSkipTakeService, IUmbracoMapper umbracoMapper) - { - _trackedReferencesSkipTakeService = trackedReferencesSkipTakeService; - _umbracoMapper = umbracoMapper; - } - - /// - /// Gets a page list of the child nodes of the current item used in any kind of relation. - /// - /// - /// Used when deleting and unpublishing a single item to check if this item has any descending items that are in any - /// kind of relation. - /// This is basically finding the descending items which are children in relations. - /// - [HttpGet("descendants/{parentId:int}")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Descendants(int parentId, long skip, long take, bool? filterMustBeIsDependency) - { - PagedModel relationItems = _trackedReferencesSkipTakeService.GetPagedDescendantsInReferences(parentId, skip, take, filterMustBeIsDependency ?? true); - var pagedViewModel = new PagedViewModel - { - Total = relationItems.Total, - Items = _umbracoMapper.MapEnumerable(relationItems.Items), - }; - - return await Task.FromResult(pagedViewModel); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/TrackedReference/ItemsTrackedReferenceController.cs b/src/Umbraco.Cms.Api.Management/Controllers/TrackedReference/ItemsTrackedReferenceController.cs deleted file mode 100644 index ecc0e3434d..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/TrackedReference/ItemsTrackedReferenceController.cs +++ /dev/null @@ -1,44 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Mapping; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.TrackedReferences; -using Umbraco.New.Cms.Core.Models; - -namespace Umbraco.Cms.Api.Management.Controllers.TrackedReference; - -public class ItemsTrackedReferenceController : TrackedReferenceControllerBase -{ - private readonly ITrackedReferencesService _trackedReferencesSkipTakeService; - private readonly IUmbracoMapper _umbracoMapper; - - public ItemsTrackedReferenceController(ITrackedReferencesService trackedReferencesSkipTakeService, IUmbracoMapper umbracoMapper) - { - _trackedReferencesSkipTakeService = trackedReferencesSkipTakeService; - _umbracoMapper = umbracoMapper; - } - - /// - /// Gets a page list of the items used in any kind of relation from selected integer ids. - /// - /// - /// Used when bulk deleting content/media and bulk unpublishing content (delete and unpublish on List view). - /// This is basically finding children of relations. - /// - [HttpGet("item")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> GetPagedReferencedItems([FromQuery]int[] ids, long skip, long take, bool? filterMustBeIsDependency) - { - PagedModel relationItems = _trackedReferencesSkipTakeService.GetPagedItemsWithRelations(ids, skip, take, filterMustBeIsDependency ?? true); - var pagedViewModel = new PagedViewModel - { - Total = relationItems.Total, - Items = _umbracoMapper.MapEnumerable(relationItems.Items), - }; - - return await Task.FromResult(pagedViewModel); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/TrackedReference/TrackedReferencesControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/TrackedReference/TrackedReferencesControllerBase.cs deleted file mode 100644 index 68d7fb7c31..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/TrackedReference/TrackedReferencesControllerBase.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Api.Management.Routing; - -namespace Umbraco.Cms.Api.Management.Controllers.TrackedReference; - -[ApiController] -[VersionedApiBackOfficeRoute("tracked-reference")] -[ApiExplorerSettings(GroupName = "Tracked Reference")] -[ApiVersion("1.0")] -public abstract class TrackedReferenceControllerBase : ManagementApiControllerBase -{ -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Tree/EntityTreeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/Tree/EntityTreeControllerBase.cs deleted file mode 100644 index 0857b11541..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Tree/EntityTreeControllerBase.cs +++ /dev/null @@ -1,132 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Models.Entities; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Services.Paging; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Tree; -using Umbraco.Extensions; - -namespace Umbraco.Cms.Api.Management.Controllers.Tree; - -public abstract class EntityTreeControllerBase : ManagementApiControllerBase - where TItem : EntityTreeItemViewModel, new() -{ - private readonly string _itemUdiType; - - protected EntityTreeControllerBase(IEntityService entityService) - { - EntityService = entityService; - - // ReSharper disable once VirtualMemberCallInConstructor - _itemUdiType = ItemObjectType.GetUdiType(); - } - - protected IEntityService EntityService { get; } - - protected abstract UmbracoObjectTypes ItemObjectType { get; } - - protected virtual Ordering ItemOrdering => Ordering.By(nameof(Infrastructure.Persistence.Dtos.NodeDto.Text)); - - protected async Task>> GetRoot(int skip, int take) - { - if (PaginationService.ConvertSkipTakeToPaging(skip, take, out var pageNumber, out var pageSize, out ProblemDetails? error) == false) - { - return BadRequest(error); - } - - IEntitySlim[] rootEntities = GetPagedRootEntities(pageNumber, pageSize, out var totalItems); - - TItem[] treeItemViewModels = MapTreeItemViewModels(null, rootEntities); - - PagedViewModel result = PagedViewModel(treeItemViewModels, totalItems); - return await Task.FromResult(Ok(result)); - } - - protected async Task>> GetChildren(Guid parentKey, int skip, int take) - { - if (PaginationService.ConvertSkipTakeToPaging(skip, take, out var pageNumber, out var pageSize, out ProblemDetails? error) == false) - { - return BadRequest(error); - } - - IEntitySlim[] children = GetPagedChildEntities(parentKey, pageNumber, pageSize, out var totalItems); - - TItem[] treeItemViewModels = MapTreeItemViewModels(parentKey, children); - - PagedViewModel result = PagedViewModel(treeItemViewModels, totalItems); - return await Task.FromResult(Ok(result)); - } - - protected async Task>> GetItems(Guid[] keys) - { - if (keys.IsCollectionEmpty()) - { - return await Task.FromResult(Ok(PagedViewModel(Array.Empty(), 0))); - } - - IEntitySlim[] itemEntities = GetEntities(keys); - - TItem[] treeItemViewModels = MapTreeItemViewModels(null, itemEntities); - - return await Task.FromResult(Ok(treeItemViewModels)); - } - - protected virtual IEntitySlim[] GetPagedRootEntities(long pageNumber, int pageSize, out long totalItems) - => EntityService - .GetPagedChildren( - Constants.System.Root, - ItemObjectType, - pageNumber, - pageSize, - out totalItems, - ordering: ItemOrdering) - .ToArray(); - - protected virtual IEntitySlim[] GetPagedChildEntities(Guid parentKey, long pageNumber, int pageSize, out long totalItems) - { - // EntityService is only able to get paged children by parent ID, so we must first map parent key to parent ID - Attempt parentId = EntityService.GetId(parentKey, ItemObjectType); - if (parentId.Success == false) - { - // not much else we can do here but return nothing - totalItems = 0; - return Array.Empty(); - } - - IEntitySlim[] children = EntityService.GetPagedChildren( - parentId.Result, - ItemObjectType, - pageNumber, - pageSize, - out totalItems, - ordering: ItemOrdering) - .ToArray(); - return children; - } - - protected virtual IEntitySlim[] GetEntities(Guid[] keys) => EntityService.GetAll(ItemObjectType, keys).ToArray(); - - protected virtual TItem[] MapTreeItemViewModels(Guid? parentKey, IEntitySlim[] entities) - => entities.Select(entity => MapTreeItemViewModel(parentKey, entity)).ToArray(); - - protected virtual TItem MapTreeItemViewModel(Guid? parentKey, IEntitySlim entity) - { - var viewModel = new TItem - { - Icon = _itemUdiType, - Name = entity.Name!, - Key = entity.Key, - Type = _itemUdiType, - HasChildren = entity.HasChildren, - IsContainer = entity.IsContainer, - ParentKey = parentKey - }; - - return viewModel; - } - - protected PagedViewModel PagedViewModel(IEnumerable treeItemViewModels, long totalItems) - => new() { Total = totalItems, Items = treeItemViewModels }; -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Tree/FileSystemTreeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/Tree/FileSystemTreeControllerBase.cs deleted file mode 100644 index 0bd7712967..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Tree/FileSystemTreeControllerBase.cs +++ /dev/null @@ -1,110 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.IO; -using Umbraco.Cms.Api.Management.Services.Paging; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Tree; -using Umbraco.Extensions; - -namespace Umbraco.Cms.Api.Management.Controllers.Tree; - -public abstract class FileSystemTreeControllerBase : ManagementApiControllerBase -{ - protected abstract IFileSystem FileSystem { get; } - - protected abstract string FileIcon(string path); - - protected abstract string ItemType(string path); - - protected async Task>> GetRoot(int skip, int take) - { - if (PaginationService.ConvertSkipTakeToPaging(skip, take, out var pageNumber, out var pageSize, out ProblemDetails? error) == false) - { - return BadRequest(error); - } - - FileSystemTreeItemViewModel[] viewModels = GetPathViewModels(string.Empty, pageNumber, pageSize, out var totalItems); - - PagedViewModel result = PagedViewModel(viewModels, totalItems); - return await Task.FromResult(Ok(result)); - } - - protected async Task>> GetChildren(string path, int skip, int take) - { - if (PaginationService.ConvertSkipTakeToPaging(skip, take, out var pageNumber, out var pageSize, out ProblemDetails? error) == false) - { - return BadRequest(error); - } - - FileSystemTreeItemViewModel[] viewModels = GetPathViewModels(path, pageNumber, pageSize, out var totalItems); - - PagedViewModel result = PagedViewModel(viewModels, totalItems); - return await Task.FromResult(Ok(result)); - } - - protected async Task>> GetItems(string[] paths) - { - FileSystemTreeItemViewModel[] viewModels = paths - .Where(FileSystem.FileExists) - .Select(path => - { - var fileName = GetFileName(path); - return fileName.IsNullOrWhiteSpace() - ? null - : MapViewModel(path, fileName, false); - }).WhereNotNull().ToArray(); - - return await Task.FromResult(Ok(viewModels)); - } - - protected virtual string[] GetDirectories(string path) => FileSystem - .GetDirectories(path) - .OrderBy(directory => directory) - .ToArray(); - - protected virtual string[] GetFiles(string path) => FileSystem - .GetFiles(path) - .OrderBy(file => file) - .ToArray(); - - protected virtual string GetFileName(string path) => FileSystem.GetFileName(path); - - protected virtual bool DirectoryHasChildren(string path) - => FileSystem.GetFiles(path).Any() || FileSystem.GetDirectories(path).Any(); - - private FileSystemTreeItemViewModel[] GetPathViewModels(string path, long pageNumber, int pageSize, out long totalItems) - { - var allItems = GetDirectories(path) - .Select(directory => new { Path = directory, IsFolder = true }) - .Union(GetFiles(path).Select(file => new { Path = file, IsFolder = false })) - .ToArray(); - - totalItems = allItems.Length; - - FileSystemTreeItemViewModel ViewModel(string itemPath, bool isFolder) - => MapViewModel( - itemPath, - isFolder ? Path.GetFileName(itemPath) : FileSystem.GetFileName(itemPath), - isFolder); - - return allItems - .Skip((int)(pageNumber * pageSize)) - .Take(pageSize) - .Select(item => ViewModel(item.Path, item.IsFolder)) - .ToArray(); - } - - private PagedViewModel PagedViewModel(IEnumerable viewModels, long totalItems) - => new() { Total = totalItems, Items = viewModels }; - - private FileSystemTreeItemViewModel MapViewModel(string path, string name, bool isFolder) - => new() - { - Path = path, - Name = name, - Icon = isFolder ? Constants.Icons.Folder : FileIcon(path), - HasChildren = isFolder && DirectoryHasChildren(path), - Type = ItemType(path), - IsFolder = isFolder - }; -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Tree/FolderTreeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/Tree/FolderTreeControllerBase.cs deleted file mode 100644 index 6c76eae966..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Tree/FolderTreeControllerBase.cs +++ /dev/null @@ -1,88 +0,0 @@ -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Models.Entities; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.ViewModels.Tree; - -namespace Umbraco.Cms.Api.Management.Controllers.Tree; - -public abstract class FolderTreeControllerBase : EntityTreeControllerBase - where TItem : FolderTreeItemViewModel, new() -{ - private readonly Guid _folderObjectTypeId; - private bool _foldersOnly; - - protected FolderTreeControllerBase(IEntityService entityService) - : base(entityService) => - // ReSharper disable once VirtualMemberCallInConstructor - _folderObjectTypeId = FolderObjectType.GetGuid(); - - protected abstract UmbracoObjectTypes FolderObjectType { get; } - - protected void RenderFoldersOnly(bool foldersOnly) => _foldersOnly = foldersOnly; - - protected override IEntitySlim[] GetPagedRootEntities(long pageNumber, int pageSize, out long totalItems) - => GetEntities( - Constants.System.Root, - pageNumber, - pageSize, - out totalItems); - - protected override IEntitySlim[] GetPagedChildEntities(Guid parentKey, long pageNumber, int pageSize, out long totalItems) - { - // EntityService is only able to get paged children by parent ID, so we must first map parent key to parent ID - Attempt parentId = EntityService.GetId(parentKey, FolderObjectType); - if (parentId.Success == false) - { - parentId = EntityService.GetId(parentKey, ItemObjectType); - if (parentId.Success == false) - { - // not much else we can do here but return nothing - totalItems = 0; - return Array.Empty(); - } - } - - return GetEntities( - parentId.Result, - pageNumber, - pageSize, - out totalItems); - } - - protected override TItem MapTreeItemViewModel(Guid? parentKey, IEntitySlim entity) - { - TItem viewModel = base.MapTreeItemViewModel(parentKey, entity); - - if (entity.NodeObjectType == _folderObjectTypeId) - { - viewModel.IsFolder = true; - viewModel.Icon = Constants.Icons.Folder; - } - - return viewModel; - } - - private IEntitySlim[] GetEntities(int parentId, long pageNumber, int pageSize, out long totalItems) - { - totalItems = 0; - - // EntityService is not able to paginate children of multiple item types, so we will only paginate the - // item type entities and always return all folders as part of the the first result page - IEntitySlim[] folderEntities = pageNumber == 0 - ? EntityService.GetChildren(parentId, FolderObjectType).OrderBy(c => c.Name).ToArray() - : Array.Empty(); - IEntitySlim[] itemEntities = _foldersOnly - ? Array.Empty() - : EntityService.GetPagedChildren( - parentId, - ItemObjectType, - pageNumber, - pageSize, - out totalItems, - ordering: ItemOrdering) - .ToArray(); - - return folderEntities.Union(itemEntities).ToArray(); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Tree/UserStartNodeTreeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/Tree/UserStartNodeTreeControllerBase.cs deleted file mode 100644 index 27de4a4876..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Tree/UserStartNodeTreeControllerBase.cs +++ /dev/null @@ -1,117 +0,0 @@ -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.Models.Entities; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Models.Entities; -using Umbraco.Cms.Api.Management.Services.Entities; -using Umbraco.Cms.Api.Management.ViewModels.Tree; -using Umbraco.Extensions; - -namespace Umbraco.Cms.Api.Management.Controllers.Tree; - -public abstract class UserStartNodeTreeControllerBase : EntityTreeControllerBase - where TItem : ContentTreeItemViewModel, new() -{ - private readonly IUserStartNodeEntitiesService _userStartNodeEntitiesService; - private readonly IDataTypeService _dataTypeService; - - private int[]? _userStartNodeIds; - private string[]? _userStartNodePaths; - private Dictionary _accessMap = new(); - private Guid? _dataTypeKey; - - protected UserStartNodeTreeControllerBase( - IEntityService entityService, - IUserStartNodeEntitiesService userStartNodeEntitiesService, - IDataTypeService dataTypeService) - : base(entityService) - { - _userStartNodeEntitiesService = userStartNodeEntitiesService; - _dataTypeService = dataTypeService; - } - - protected abstract int[] GetUserStartNodeIds(); - - protected abstract string[] GetUserStartNodePaths(); - - protected void IgnoreUserStartNodesForDataType(Guid? dataTypeKey) => _dataTypeKey = dataTypeKey; - - protected override IEntitySlim[] GetPagedRootEntities(long pageNumber, int pageSize, out long totalItems) - => UserHasRootAccess() || IgnoreUserStartNodes() - ? base.GetPagedRootEntities(pageNumber, pageSize, out totalItems) - : CalculateAccessMap(() => _userStartNodeEntitiesService.RootUserAccessEntities(ItemObjectType, UserStartNodeIds), out totalItems); - - protected override IEntitySlim[] GetPagedChildEntities(Guid parentKey, long pageNumber, int pageSize, out long totalItems) - { - IEntitySlim[] children = base.GetPagedChildEntities(parentKey, pageNumber, pageSize, out totalItems); - return UserHasRootAccess() || IgnoreUserStartNodes() - ? children - : CalculateAccessMap(() => _userStartNodeEntitiesService.ChildUserAccessEntities(children, UserStartNodePaths), out totalItems); - } - - protected override IEntitySlim[] GetEntities(Guid[] keys) - { - IEntitySlim[] entities = base.GetEntities(keys); - return UserHasRootAccess() || IgnoreUserStartNodes() - ? entities - : CalculateAccessMap(() => _userStartNodeEntitiesService.UserAccessEntities(entities, UserStartNodePaths), out _); - } - - protected override TItem[] MapTreeItemViewModels(Guid? parentKey, IEntitySlim[] entities) - { - if (UserHasRootAccess() || IgnoreUserStartNodes()) - { - return base.MapTreeItemViewModels(parentKey, entities); - } - - // for users with no root access, only add items for the entities contained within the calculated access map. - // the access map may contain entities that the user does not have direct access to, but need still to see, - // because it has descendants that the user *does* have access to. these entities are added as "no access" items. - TItem[] contentTreeItemViewModels = entities.Select(entity => - { - if (_accessMap.TryGetValue(entity.Key, out var hasAccess) == false) - { - // entity is not a part of the calculated access map - return null; - } - - // direct access => return a regular item - // no direct access => return a "no access" item - return hasAccess - ? MapTreeItemViewModel(parentKey, entity) - : MapTreeItemViewModelAsNoAccess(parentKey, entity); - }) - .WhereNotNull() - .ToArray(); - - return contentTreeItemViewModels; - } - - private int[] UserStartNodeIds => _userStartNodeIds ??= GetUserStartNodeIds(); - - private string[] UserStartNodePaths => _userStartNodePaths ??= GetUserStartNodePaths(); - - private bool UserHasRootAccess() => UserStartNodeIds.Contains(Constants.System.Root); - - private bool IgnoreUserStartNodes() - => _dataTypeKey.HasValue - && _dataTypeService.IsDataTypeIgnoringUserStartNodes(_dataTypeKey.Value); - - private IEntitySlim[] CalculateAccessMap(Func> getUserAccessEntities, out long totalItems) - { - UserAccessEntity[] userAccessEntities = getUserAccessEntities().ToArray(); - - _accessMap = userAccessEntities.ToDictionary(uae => uae.Entity.Key, uae => uae.HasAccess); - - IEntitySlim[] entities = userAccessEntities.Select(uae => uae.Entity).ToArray(); - totalItems = entities.Length; - - return entities; - } - - private TItem MapTreeItemViewModelAsNoAccess(Guid? parentKey, IEntitySlim entity) - { - TItem viewModel = MapTreeItemViewModel(parentKey, entity); - viewModel.NoAccess = true; - return viewModel; - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Upgrade/AuthorizeUpgradeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Upgrade/AuthorizeUpgradeController.cs deleted file mode 100644 index 713ae4224b..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Upgrade/AuthorizeUpgradeController.cs +++ /dev/null @@ -1,24 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.New.Cms.Core.Services.Installer; - -namespace Umbraco.Cms.Api.Management.Controllers.Upgrade; - -[ApiVersion("1.0")] -public class AuthorizeUpgradeController : UpgradeControllerBase -{ - private readonly IUpgradeService _upgradeService; - - public AuthorizeUpgradeController(IUpgradeService upgradeService) => _upgradeService = upgradeService; - - [HttpPost("authorize")] - [MapToApiVersion("1.0")] - [ProducesResponseType(StatusCodes.Status200OK)] - [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status428PreconditionRequired)] - [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status500InternalServerError)] - public async Task Authorize() - { - await _upgradeService.Upgrade(); - return Ok(); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Upgrade/SettingsUpgradeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Upgrade/SettingsUpgradeController.cs deleted file mode 100644 index dec77cce3b..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Upgrade/SettingsUpgradeController.cs +++ /dev/null @@ -1,38 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Mapping; -using Umbraco.Cms.Api.Management.ViewModels.Installer; -using Umbraco.New.Cms.Core.Factories; -using Umbraco.New.Cms.Core.Models.Installer; - -namespace Umbraco.Cms.Api.Management.Controllers.Upgrade; - -[ApiVersion("1.0")] -public class SettingsUpgradeController : UpgradeControllerBase -{ - private readonly IUpgradeSettingsFactory _upgradeSettingsFactory; - private readonly IUmbracoMapper _mapper; - - public SettingsUpgradeController( - IUpgradeSettingsFactory upgradeSettingsFactory, - IUmbracoMapper mapper) - { - _upgradeSettingsFactory = upgradeSettingsFactory; - _mapper = mapper; - } - - [HttpGet("settings")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(UpgradeSettingsViewModel), StatusCodes.Status200OK)] - [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status428PreconditionRequired)] - public async Task> Settings() - { - // TODO: Async - We need to figure out what we want to do with async endpoints that doesn't do anything async - // We want these to be async for future use (Ideally we'll have more async things), - // But we need to figure out how we want to handle it in the meantime? use Task.FromResult or? - UpgradeSettingsModel upgradeSettings = _upgradeSettingsFactory.GetUpgradeSettings(); - UpgradeSettingsViewModel viewModel = _mapper.Map(upgradeSettings)!; - - return await Task.FromResult(viewModel); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Upgrade/UpgradeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/Upgrade/UpgradeControllerBase.cs deleted file mode 100644 index 80bb617ff8..0000000000 --- a/src/Umbraco.Cms.Api.Management/Controllers/Upgrade/UpgradeControllerBase.cs +++ /dev/null @@ -1,17 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core; -using Umbraco.Cms.Api.Management.Filters; -using Umbraco.Cms.Api.Management.Routing; - -namespace Umbraco.Cms.Api.Management.Controllers.Upgrade; - -// TODO: This needs to be an authorized controller. - -[ApiController] -[RequireRuntimeLevel(RuntimeLevel.Upgrade)] -[VersionedApiBackOfficeRoute("upgrade")] -[ApiExplorerSettings(GroupName = "Upgrade")] -public abstract class UpgradeControllerBase : ManagementApiControllerBase -{ - -} diff --git a/src/Umbraco.Cms.Api.Management/DependencyInjection/BackOfficeAuthBuilderExtensions.cs b/src/Umbraco.Cms.Api.Management/DependencyInjection/BackOfficeAuthBuilderExtensions.cs deleted file mode 100644 index 332d744ba4..0000000000 --- a/src/Umbraco.Cms.Api.Management/DependencyInjection/BackOfficeAuthBuilderExtensions.cs +++ /dev/null @@ -1,168 +0,0 @@ -using Microsoft.AspNetCore.Authorization; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; -using OpenIddict.Validation.AspNetCore; -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.DependencyInjection; -using Umbraco.Cms.Api.Management.Middleware; -using Umbraco.Cms.Api.Management.Security; -using Umbraco.Cms.Web.Common.Authorization; -using Umbraco.New.Cms.Infrastructure.HostedServices; -using Umbraco.New.Cms.Infrastructure.Security; - -namespace Umbraco.Cms.Api.Management.DependencyInjection; - -public static class BackOfficeAuthBuilderExtensions -{ - public static IUmbracoBuilder AddBackOfficeAuthentication(this IUmbracoBuilder builder) - { - builder - .AddDbContext() - .AddOpenIddict(); - - return builder; - } - - private static IUmbracoBuilder AddDbContext(this IUmbracoBuilder builder) - { - builder.Services.AddDbContext(options => - { - // Configure the DB context - // TODO: use actual Umbraco DbContext once EF is implemented - and remove dependency on Microsoft.EntityFrameworkCore.InMemory - options.UseInMemoryDatabase(nameof(DbContext)); - - // Register the entity sets needed by OpenIddict. - options.UseOpenIddict(); - }); - - return builder; - } - - private static IUmbracoBuilder AddOpenIddict(this IUmbracoBuilder builder) - { - builder.Services.AddAuthentication(); - builder.Services.AddAuthorization(CreatePolicies); - - builder.Services.AddOpenIddict() - - // Register the OpenIddict core components. - .AddCore(options => - { - options - .UseEntityFrameworkCore() - .UseDbContext(); - }) - - // Register the OpenIddict server components. - .AddServer(options => - { - // Enable the authorization and token endpoints. - options - .SetAuthorizationEndpointUris(Controllers.Security.Paths.BackOfficeApiAuthorizationEndpoint) - .SetTokenEndpointUris(Controllers.Security.Paths.BackOfficeApiTokenEndpoint); - - // Enable authorization code flow with PKCE - options - .AllowAuthorizationCodeFlow() - .RequireProofKeyForCodeExchange() - .AllowRefreshTokenFlow(); - - // Register the encryption and signing credentials. - // - see https://documentation.openiddict.com/configuration/encryption-and-signing-credentials.html - options - // TODO: use actual certificates here, see docs above - .AddDevelopmentEncryptionCertificate() - .AddDevelopmentSigningCertificate() - .DisableAccessTokenEncryption(); - - // Register the ASP.NET Core host and configure for custom authentication endpoint. - options - .UseAspNetCore() - .EnableAuthorizationEndpointPassthrough(); - - // Enable reference tokens - // - see https://documentation.openiddict.com/configuration/token-storage.html - options - .UseReferenceAccessTokens() - .UseReferenceRefreshTokens(); - - // Use ASP.NET Core Data Protection for tokens instead of JWT. - // This is more secure, and has the added benefit of having a high throughput - // but means that all servers (such as in a load balanced setup) - // needs to use the same application name and key ring, - // however this is already recommended for load balancing, so should be fine. - // See https://documentation.openiddict.com/configuration/token-formats.html#switching-to-data-protection-tokens - // and https://learn.microsoft.com/en-us/aspnet/core/security/data-protection/configuration/overview?view=aspnetcore-7.0 - // for more information - options.UseDataProtection(); - }) - - // Register the OpenIddict validation components. - .AddValidation(options => - { - // Import the configuration from the local OpenIddict server instance. - options.UseLocalServer(); - - // Register the ASP.NET Core host. - options.UseAspNetCore(); - - // Enable token entry validation - // - see https://documentation.openiddict.com/configuration/token-storage.html#enabling-token-entry-validation-at-the-api-level - options.EnableTokenEntryValidation(); - - // Use ASP.NET Core Data Protection for tokens instead of JWT. (see note in AddServer) - options.UseDataProtection(); - }); - - builder.Services.AddTransient(); - builder.Services.AddSingleton(); - - builder.Services.AddHostedService(); - builder.Services.AddHostedService(); - - return builder; - } - - // TODO: remove this once EF is implemented - public class DatabaseManager : IHostedService - { - private readonly IServiceProvider _serviceProvider; - - public DatabaseManager(IServiceProvider serviceProvider) => _serviceProvider = serviceProvider; - - public async Task StartAsync(CancellationToken cancellationToken) - { - using IServiceScope scope = _serviceProvider.CreateScope(); - - DbContext context = scope.ServiceProvider.GetRequiredService(); - await context.Database.EnsureCreatedAsync(cancellationToken); - - // TODO: add BackOfficeAuthorizationInitializationMiddleware before UseAuthorization (to make it run for unauthorized API requests) and remove this - IBackOfficeApplicationManager backOfficeApplicationManager = scope.ServiceProvider.GetRequiredService(); - await backOfficeApplicationManager.EnsureBackOfficeApplicationAsync(new Uri("https://localhost:44331/"), cancellationToken); - } - - public Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask; - } - - // TODO: move this to an appropriate location and implement the policy scheme that should be used for the new management APIs - private static void CreatePolicies(AuthorizationOptions options) - { - void AddPolicy(string policyName, string claimType, params string[] allowedClaimValues) - { - options.AddPolicy($"New{policyName}", policy => - { - policy.AuthenticationSchemes.Add(OpenIddictValidationAspNetCoreDefaults.AuthenticationScheme); - policy.RequireClaim(claimType, allowedClaimValues); - }); - } - - // NOTE: these are ONLY sample policies that allow us to test the new management APIs - AddPolicy(AuthorizationPolicies.SectionAccessContent, Constants.Security.AllowedApplicationsClaimType, Constants.Applications.Content); - AddPolicy(AuthorizationPolicies.SectionAccessForContentTree, Constants.Security.AllowedApplicationsClaimType, Constants.Applications.Content); - AddPolicy(AuthorizationPolicies.SectionAccessForMediaTree, Constants.Security.AllowedApplicationsClaimType, Constants.Applications.Media); - AddPolicy(AuthorizationPolicies.SectionAccessMedia, Constants.Security.AllowedApplicationsClaimType, Constants.Applications.Media); - AddPolicy(AuthorizationPolicies.SectionAccessContentOrMedia, Constants.Security.AllowedApplicationsClaimType, Constants.Applications.Content, Constants.Applications.Media); - } -} diff --git a/src/Umbraco.Cms.Api.Management/DependencyInjection/FactoryBuilderExtensions.cs b/src/Umbraco.Cms.Api.Management/DependencyInjection/FactoryBuilderExtensions.cs deleted file mode 100644 index b8d04c115c..0000000000 --- a/src/Umbraco.Cms.Api.Management/DependencyInjection/FactoryBuilderExtensions.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Microsoft.Extensions.DependencyInjection; -using Umbraco.Cms.Core.DependencyInjection; -using Umbraco.Cms.Api.Management.Factories; -using Umbraco.New.Cms.Core.Factories; - -namespace Umbraco.Cms.Api.Management.DependencyInjection; - -public static class FactoryBuilderExtensions -{ - internal static IUmbracoBuilder AddFactories(this IUmbracoBuilder builder) - { - builder.Services.AddTransient(); - builder.Services.AddTransient(); - builder.Services.AddTransient(); - builder.Services.AddTransient(); - builder.Services.AddTransient(); - builder.Services.AddTransient(); - - return builder; - } -} diff --git a/src/Umbraco.Cms.Api.Management/DependencyInjection/InstallerBuilderExtensions.cs b/src/Umbraco.Cms.Api.Management/DependencyInjection/InstallerBuilderExtensions.cs deleted file mode 100644 index 263bb508a2..0000000000 --- a/src/Umbraco.Cms.Api.Management/DependencyInjection/InstallerBuilderExtensions.cs +++ /dev/null @@ -1,85 +0,0 @@ -using Microsoft.Extensions.DependencyInjection; -using Umbraco.Cms.Core.DependencyInjection; -using Umbraco.Cms.Core.Mapping; -using Umbraco.Cms.Api.Management.Mapping.Dictionary; -using Umbraco.Cms.Api.Management.Mapping.Installer; -using Umbraco.Cms.Api.Management.Services.Entities; -using Umbraco.Cms.Api.Management.Services.Paging; -using Umbraco.New.Cms.Core.Factories; -using Umbraco.New.Cms.Core.Installer; -using Umbraco.New.Cms.Core.Installer.Steps; -using Umbraco.New.Cms.Core.Services.Installer; -using Umbraco.New.Cms.Infrastructure.Factories.Installer; -using Umbraco.New.Cms.Infrastructure.Installer.Steps; -using Umbraco.New.Cms.Web.Common.Installer; - -namespace Umbraco.Cms.Api.Management.DependencyInjection; - -public static class InstallerBuilderExtensions -{ - internal static IUmbracoBuilder AddNewInstaller(this IUmbracoBuilder builder) - { - IServiceCollection services = builder.Services; - - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - - builder.AddInstallSteps(); - services.AddTransient(); - - return builder; - } - - internal static IUmbracoBuilder AddUpgrader(this IUmbracoBuilder builder) - { - IServiceCollection services = builder.Services; - - services.AddTransient(); - builder.AddUpgradeSteps(); - services.AddTransient(); - - return builder; - } - - internal static IUmbracoBuilder AddInstallSteps(this IUmbracoBuilder builder) - { - builder.InstallSteps() - .Append() - .Append() - .Append() - .Append() - .Append() - .Append() - .Append() - .Append() - .Append(); - - return builder; - } - - public static NewInstallStepCollectionBuilder InstallSteps(this IUmbracoBuilder builder) - => builder.WithCollectionBuilder(); - - internal static IUmbracoBuilder AddUpgradeSteps(this IUmbracoBuilder builder) - { - builder.UpgradeSteps() - .Append() - .Append() - .Append() - .Append() - .Append() - .Append(); - - return builder; - } - - public static UpgradeStepCollectionBuilder UpgradeSteps(this IUmbracoBuilder builder) - => builder.WithCollectionBuilder(); - - internal static IUmbracoBuilder AddTrees(this IUmbracoBuilder builder) - { - builder.Services.AddTransient(); - return builder; - } -} diff --git a/src/Umbraco.Cms.Api.Management/DependencyInjection/MappingBuilderExtensions.cs b/src/Umbraco.Cms.Api.Management/DependencyInjection/MappingBuilderExtensions.cs deleted file mode 100644 index 4f1d5c5842..0000000000 --- a/src/Umbraco.Cms.Api.Management/DependencyInjection/MappingBuilderExtensions.cs +++ /dev/null @@ -1,30 +0,0 @@ -using Umbraco.Cms.Core.DependencyInjection; -using Umbraco.Cms.Core.Mapping; -using Umbraco.Cms.Api.Management.Mapping.Culture; -using Umbraco.Cms.Api.Management.Mapping.Dictionary; -using Umbraco.Cms.Api.Management.Mapping.HealthCheck; -using Umbraco.Cms.Api.Management.Mapping.Installer; -using Umbraco.Cms.Api.Management.Mapping.Languages; -using Umbraco.Cms.Api.Management.Mapping.Relation; -using Umbraco.Cms.Api.Management.Mapping.TrackedReferences; -using Umbraco.New.Cms.Infrastructure.Persistence.Mappers; - -namespace Umbraco.Cms.Api.Management.DependencyInjection; - -public static class MappingBuilderExtensions -{ - internal static IUmbracoBuilder AddMappers(this IUmbracoBuilder builder) - { - builder.WithCollectionBuilder() - .Add() - .Add() - .Add() - .Add() - .Add() - .Add() - .Add() - .Add(); - - return builder; - } -} diff --git a/src/Umbraco.Cms.Api.Management/DependencyInjection/SearchManagementBuilderExtensions.cs b/src/Umbraco.Cms.Api.Management/DependencyInjection/SearchManagementBuilderExtensions.cs deleted file mode 100644 index 726c076a62..0000000000 --- a/src/Umbraco.Cms.Api.Management/DependencyInjection/SearchManagementBuilderExtensions.cs +++ /dev/null @@ -1,24 +0,0 @@ -using Microsoft.Extensions.DependencyInjection; -using Umbraco.Cms.Core.DependencyInjection; -using Umbraco.Cms.Infrastructure.Examine; -using Umbraco.Cms.Api.Management.Factories; -using Umbraco.Cms.Api.Management.Services; -using Umbraco.New.Cms.Infrastructure.Services; - -namespace Umbraco.Cms.Api.Management.DependencyInjection; - -public static class SearchManagementBuilderExtensions -{ - internal static IUmbracoBuilder AddSearchManagement(this IUmbracoBuilder builder) - { - // Add examine service - builder.Services.AddTransient(); - builder.Services.AddTransient(); - - // Add factories - builder.Services.AddTransient(); - builder.Services.AddTransient(); - builder.Services.AddTransient(); - return builder; - } -} diff --git a/src/Umbraco.Cms.Api.Management/DependencyInjection/ServicesBuilderExtensions.cs b/src/Umbraco.Cms.Api.Management/DependencyInjection/ServicesBuilderExtensions.cs deleted file mode 100644 index dc1b60f31f..0000000000 --- a/src/Umbraco.Cms.Api.Management/DependencyInjection/ServicesBuilderExtensions.cs +++ /dev/null @@ -1,30 +0,0 @@ -using Microsoft.Extensions.DependencyInjection; -using Umbraco.Cms.Core.DependencyInjection; -using Umbraco.Cms.Core.Routing; -using Umbraco.Cms.Api.Management.Serialization; -using Umbraco.Cms.Api.Management.Services; -using Umbraco.Extensions; -using Umbraco.New.Cms.Core.Services.Installer; -using Umbraco.New.Cms.Core.Services.Languages; - -namespace Umbraco.Cms.Api.Management.DependencyInjection; - -public static class ServicesBuilderExtensions -{ - internal static IUmbracoBuilder AddServices(this IUmbracoBuilder builder) - { - builder.Services.AddTransient(); - builder.Services.AddTransient(); - builder.Services.AddTransient(); - builder.Services.AddTransient(); - builder.Services.AddTransient(); - - // TODO: handle new management API path in core UmbracoRequestPaths (it's a behavioural breaking change so it goes here for now) - builder.Services.Configure(options => - { - options.IsBackOfficeRequest = urlPath => urlPath.InvariantStartsWith($"/umbraco/management/api/"); - }); - - return builder; - } -} diff --git a/src/Umbraco.Cms.Api.Management/Factories/DictionaryFactory.cs b/src/Umbraco.Cms.Api.Management/Factories/DictionaryFactory.cs deleted file mode 100644 index 651a806244..0000000000 --- a/src/Umbraco.Cms.Api.Management/Factories/DictionaryFactory.cs +++ /dev/null @@ -1,99 +0,0 @@ -using System.Xml; -using Umbraco.Cms.Core.Mapping; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Models.Mapping; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Models; -using Umbraco.Cms.Api.Management.ViewModels.Dictionary; -using Umbraco.New.Cms.Core.Factories; - -namespace Umbraco.Cms.Api.Management.Factories; - -public class DictionaryFactory : IDictionaryFactory -{ - private readonly IUmbracoMapper _umbracoMapper; - private readonly ILocalizationService _localizationService; - private readonly IDictionaryService _dictionaryService; - private readonly CommonMapper _commonMapper; - - public DictionaryFactory( - IUmbracoMapper umbracoMapper, - ILocalizationService localizationService, - IDictionaryService dictionaryService, - CommonMapper commonMapper) - { - _umbracoMapper = umbracoMapper; - _localizationService = localizationService; - _dictionaryService = dictionaryService; - _commonMapper = commonMapper; - } - - public IDictionaryItem CreateDictionaryItem(DictionaryViewModel dictionaryViewModel) - { - IDictionaryItem mappedItem = _umbracoMapper.Map(dictionaryViewModel)!; - IDictionaryItem? dictionaryItem = _localizationService.GetDictionaryItemById(dictionaryViewModel.Key); - mappedItem.Id = dictionaryItem!.Id; - return mappedItem; - } - - public DictionaryViewModel CreateDictionaryViewModel(IDictionaryItem dictionaryItem) - { - DictionaryViewModel dictionaryViewModel = _umbracoMapper.Map(dictionaryItem)!; - - dictionaryViewModel.ContentApps = _commonMapper.GetContentAppsForEntity(dictionaryItem); - dictionaryViewModel.Path = _dictionaryService.CalculatePath(dictionaryItem.ParentId, dictionaryItem.Id); - - var translations = new List(); - // add all languages and the translations - foreach (ILanguage lang in _localizationService.GetAllLanguages()) - { - var langId = lang.Id; - IDictionaryTranslation? translation = dictionaryItem.Translations?.FirstOrDefault(x => x.LanguageId == langId); - - translations.Add(new DictionaryTranslationViewModel - { - IsoCode = lang.IsoCode, - DisplayName = lang.CultureName, - Translation = translation?.Value ?? string.Empty, - LanguageId = lang.Id, - Id = translation?.Id ?? 0, - Key = translation?.Key ?? Guid.Empty, - }); - } - - dictionaryViewModel.Translations = translations; - - return dictionaryViewModel; - } - - public DictionaryImportViewModel CreateDictionaryImportViewModel(FormFileUploadResult formFileUploadResult) - { - if (formFileUploadResult.CouldLoad is false || formFileUploadResult.XmlDocument is null) - { - throw new ArgumentNullException("The document of the FormFileUploadResult cannot be null"); - } - - var model = new DictionaryImportViewModel - { - TempFileName = formFileUploadResult.TemporaryPath, DictionaryItems = new List(), - }; - - var level = 1; - var currentParent = string.Empty; - foreach (XmlNode dictionaryItem in formFileUploadResult.XmlDocument.GetElementsByTagName("DictionaryItem")) - { - var name = dictionaryItem.Attributes?.GetNamedItem("Name")?.Value ?? string.Empty; - var parentKey = dictionaryItem?.ParentNode?.Attributes?.GetNamedItem("Key")?.Value ?? string.Empty; - - if (parentKey != currentParent || level == 1) - { - level += 1; - currentParent = parentKey; - } - - model.DictionaryItems.Add(new DictionaryItemsImportViewModel { Level = level, Name = name }); - } - - return model; - } -} diff --git a/src/Umbraco.Cms.Api.Management/Factories/HealthCheckGroupWithResultViewModelFactory.cs b/src/Umbraco.Cms.Api.Management/Factories/HealthCheckGroupWithResultViewModelFactory.cs deleted file mode 100644 index c09dd6d5cc..0000000000 --- a/src/Umbraco.Cms.Api.Management/Factories/HealthCheckGroupWithResultViewModelFactory.cs +++ /dev/null @@ -1,74 +0,0 @@ -using Microsoft.Extensions.Logging; -using Microsoft.Extensions.Options; -using Umbraco.Cms.Api.Management.ViewModels.HealthCheck; -using Umbraco.Cms.Core.Configuration.Models; -using Umbraco.Cms.Core.HealthChecks; -using Umbraco.Cms.Core.Mapping; - -namespace Umbraco.Cms.Api.Management.Factories; - -public class HealthCheckGroupWithResultViewModelFactory : IHealthCheckGroupWithResultViewModelFactory -{ - private readonly HealthChecksSettings _healthChecksSettings; - private readonly ILogger _logger; - private readonly IUmbracoMapper _umbracoMapper; - - public HealthCheckGroupWithResultViewModelFactory( - IOptions healthChecksSettings, - ILogger logger, - IUmbracoMapper umbracoMapper) - { - _healthChecksSettings = healthChecksSettings.Value; - _logger = logger; - _umbracoMapper = umbracoMapper; - } - - public IEnumerable> CreateGroupingFromHealthCheckCollection(HealthCheckCollection healthChecks) - { - IList disabledCheckIds = _healthChecksSettings.DisabledChecks - .Select(x => x.Id) - .ToList(); - - IEnumerable> groups = healthChecks - .Where(x => disabledCheckIds.Contains(x.Id) == false) - .GroupBy(x => x.Group) - .OrderBy(x => x.Key); - - return groups; - } - - public HealthCheckGroupWithResultViewModel CreateHealthCheckGroupWithResultViewModel(IGrouping healthCheckGroup) - { - var healthChecks = new List(); - - foreach (HealthCheck healthCheck in healthCheckGroup) - { - healthChecks.Add(CreateHealthCheckWithResultViewModel(healthCheck)); - } - - var healthCheckGroupViewModel = new HealthCheckGroupWithResultViewModel - { - Name = healthCheckGroup.Key, - Checks = healthChecks - }; - - return healthCheckGroupViewModel; - } - - public HealthCheckWithResultViewModel CreateHealthCheckWithResultViewModel(HealthCheck healthCheck) - { - _logger.LogDebug("Running health check: " + healthCheck.Name); - - IEnumerable results = healthCheck.GetStatus().Result; - - var healthCheckViewModel = new HealthCheckWithResultViewModel - { - Key = healthCheck.Id, - Name = healthCheck.Name, - Description = healthCheck.Description, - Results = _umbracoMapper.MapEnumerable(results) - }; - - return healthCheckViewModel; - } -} diff --git a/src/Umbraco.Cms.Api.Management/Factories/IDictionaryFactory.cs b/src/Umbraco.Cms.Api.Management/Factories/IDictionaryFactory.cs deleted file mode 100644 index fb86b6aec0..0000000000 --- a/src/Umbraco.Cms.Api.Management/Factories/IDictionaryFactory.cs +++ /dev/null @@ -1,13 +0,0 @@ -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Api.Management.Models; -using Umbraco.Cms.Api.Management.ViewModels.Dictionary; - -namespace Umbraco.New.Cms.Core.Factories; - -public interface IDictionaryFactory -{ - IDictionaryItem CreateDictionaryItem(DictionaryViewModel dictionaryViewModel); - DictionaryViewModel CreateDictionaryViewModel(IDictionaryItem dictionaryItem); - - DictionaryImportViewModel CreateDictionaryImportViewModel(FormFileUploadResult formFileUploadResult); -} diff --git a/src/Umbraco.Cms.Api.Management/Factories/IHealthCheckGroupWithResultViewModelFactory.cs b/src/Umbraco.Cms.Api.Management/Factories/IHealthCheckGroupWithResultViewModelFactory.cs deleted file mode 100644 index 3ee0146b29..0000000000 --- a/src/Umbraco.Cms.Api.Management/Factories/IHealthCheckGroupWithResultViewModelFactory.cs +++ /dev/null @@ -1,13 +0,0 @@ -using Umbraco.Cms.Api.Management.ViewModels.HealthCheck; -using Umbraco.Cms.Core.HealthChecks; - -namespace Umbraco.Cms.Api.Management.Factories; - -public interface IHealthCheckGroupWithResultViewModelFactory -{ - IEnumerable> CreateGroupingFromHealthCheckCollection(HealthCheckCollection healthChecks); - - HealthCheckGroupWithResultViewModel CreateHealthCheckGroupWithResultViewModel(IGrouping healthCheckGroup); - - HealthCheckWithResultViewModel CreateHealthCheckWithResultViewModel(HealthCheck healthCheck); -} diff --git a/src/Umbraco.Cms.Api.Management/Factories/IIndexViewModelFactory.cs b/src/Umbraco.Cms.Api.Management/Factories/IIndexViewModelFactory.cs deleted file mode 100644 index 211606609a..0000000000 --- a/src/Umbraco.Cms.Api.Management/Factories/IIndexViewModelFactory.cs +++ /dev/null @@ -1,9 +0,0 @@ -using Examine; -using Umbraco.Cms.Api.Management.ViewModels.Search; - -namespace Umbraco.Cms.Api.Management.Factories; - -public interface IIndexViewModelFactory -{ - IndexViewModel Create(IIndex index); -} diff --git a/src/Umbraco.Cms.Api.Management/Factories/IModelsBuilderViewModelFactory.cs b/src/Umbraco.Cms.Api.Management/Factories/IModelsBuilderViewModelFactory.cs deleted file mode 100644 index dcaacaa750..0000000000 --- a/src/Umbraco.Cms.Api.Management/Factories/IModelsBuilderViewModelFactory.cs +++ /dev/null @@ -1,8 +0,0 @@ -using Umbraco.Cms.Api.Management.ViewModels.ModelsBuilderDashboard; - -namespace Umbraco.Cms.Api.Management.Factories; - -public interface IModelsBuilderViewModelFactory -{ - ModelsBuilderViewModel Create(); -} diff --git a/src/Umbraco.Cms.Api.Management/Factories/IRedirectUrlStatusViewModelFactory.cs b/src/Umbraco.Cms.Api.Management/Factories/IRedirectUrlStatusViewModelFactory.cs deleted file mode 100644 index 95b5a2614a..0000000000 --- a/src/Umbraco.Cms.Api.Management/Factories/IRedirectUrlStatusViewModelFactory.cs +++ /dev/null @@ -1,8 +0,0 @@ -using Umbraco.Cms.Api.Management.ViewModels.RedirectUrlManagement; - -namespace Umbraco.Cms.Api.Management.Factories; - -public interface IRedirectUrlStatusViewModelFactory -{ - RedirectUrlStatusViewModel CreateViewModel(); -} diff --git a/src/Umbraco.Cms.Api.Management/Factories/IRedirectUrlViewModelFactory.cs b/src/Umbraco.Cms.Api.Management/Factories/IRedirectUrlViewModelFactory.cs deleted file mode 100644 index 9ce0eb4c27..0000000000 --- a/src/Umbraco.Cms.Api.Management/Factories/IRedirectUrlViewModelFactory.cs +++ /dev/null @@ -1,11 +0,0 @@ -using Umbraco.Cms.Api.Management.ViewModels.RedirectUrlManagement; -using Umbraco.Cms.Core.Models; - -namespace Umbraco.Cms.Api.Management.Factories; - -public interface IRedirectUrlViewModelFactory -{ - RedirectUrlViewModel Create(IRedirectUrl source); - - IEnumerable CreateMany(IEnumerable sources); -} diff --git a/src/Umbraco.Cms.Api.Management/Factories/IRelationViewModelFactory.cs b/src/Umbraco.Cms.Api.Management/Factories/IRelationViewModelFactory.cs deleted file mode 100644 index 9a333a0cf4..0000000000 --- a/src/Umbraco.Cms.Api.Management/Factories/IRelationViewModelFactory.cs +++ /dev/null @@ -1,11 +0,0 @@ -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Api.Management.ViewModels.Relation; - -namespace Umbraco.Cms.Api.Management.Factories; - -public interface IRelationViewModelFactory -{ - RelationViewModel Create(IRelation relation); - - IEnumerable CreateMultiple(IEnumerable relations); -} diff --git a/src/Umbraco.Cms.Api.Management/Factories/IndexViewModelFactory.cs b/src/Umbraco.Cms.Api.Management/Factories/IndexViewModelFactory.cs deleted file mode 100644 index debf38995f..0000000000 --- a/src/Umbraco.Cms.Api.Management/Factories/IndexViewModelFactory.cs +++ /dev/null @@ -1,68 +0,0 @@ -using Examine; -using Umbraco.Cms.Core; -using Umbraco.Cms.Infrastructure.Examine; -using Umbraco.Cms.Api.Management.ViewModels.Search; -using Umbraco.New.Cms.Infrastructure.Services; - -namespace Umbraco.Cms.Api.Management.Factories; - -public class IndexViewModelFactory : IIndexViewModelFactory -{ - private readonly IIndexDiagnosticsFactory _indexDiagnosticsFactory; - private readonly IIndexRebuilder _indexRebuilder; - private readonly IIndexingRebuilderService _indexingRebuilderService; - - public IndexViewModelFactory(IIndexDiagnosticsFactory indexDiagnosticsFactory, IIndexRebuilder indexRebuilder, IIndexingRebuilderService indexingRebuilderService) - { - _indexDiagnosticsFactory = indexDiagnosticsFactory; - _indexRebuilder = indexRebuilder; - _indexingRebuilderService = indexingRebuilderService; - } - - public IndexViewModel Create(IIndex index) - { - if (_indexingRebuilderService.IsRebuilding(index.Name)) - { - return new IndexViewModel - { - Name = index.Name, - HealthStatus = "Rebuilding", - SearcherName = index.Searcher.Name, - DocumentCount = 0, - FieldCount = 0, - }; - } - - IIndexDiagnostics indexDiag = _indexDiagnosticsFactory.Create(index); - - Attempt isHealthy = indexDiag.IsHealthy(); - - var properties = new Dictionary(); - - foreach (var property in indexDiag.Metadata) - { - if (property.Value is null) - { - properties[property.Key] = null; - } - else - { - var propertyType = property.Value.GetType(); - properties[property.Key] = propertyType.IsClass && !propertyType.IsArray ? property.Value?.ToString() : property.Value; - } - } - - var indexerModel = new IndexViewModel - { - Name = index.Name, - HealthStatus = isHealthy.Success ? isHealthy.Result ?? "Healthy" : isHealthy.Result ?? "Unhealthy", - CanRebuild = _indexRebuilder.CanRebuild(index.Name), - SearcherName = index.Searcher.Name, - DocumentCount = indexDiag.GetDocumentCount(), - FieldCount = indexDiag.GetFieldNames().Count(), - ProviderProperties = properties, - }; - - return indexerModel; - } -} diff --git a/src/Umbraco.Cms.Api.Management/Factories/ModelsBuilderViewModelFactory.cs b/src/Umbraco.Cms.Api.Management/Factories/ModelsBuilderViewModelFactory.cs deleted file mode 100644 index e9d2b658e1..0000000000 --- a/src/Umbraco.Cms.Api.Management/Factories/ModelsBuilderViewModelFactory.cs +++ /dev/null @@ -1,39 +0,0 @@ -using System.Text; -using Microsoft.Extensions.Options; -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.Configuration; -using Umbraco.Cms.Core.Configuration.Models; -using Umbraco.Cms.Infrastructure.ModelsBuilder; -using Umbraco.Cms.Api.Management.ViewModels.ModelsBuilderDashboard; -using Umbraco.Extensions; - -namespace Umbraco.Cms.Api.Management.Factories; - -public class ModelsBuilderViewModelFactory : IModelsBuilderViewModelFactory -{ - private ModelsBuilderSettings _modelsBuilderSettings; - private readonly ModelsGenerationError _mbErrors; - private readonly OutOfDateModelsStatus _outOfDateModels; - - public ModelsBuilderViewModelFactory(IOptionsMonitor modelsBuilderSettings, ModelsGenerationError mbErrors, OutOfDateModelsStatus outOfDateModels) - { - _mbErrors = mbErrors; - _outOfDateModels = outOfDateModels; - _modelsBuilderSettings = modelsBuilderSettings.CurrentValue; - - modelsBuilderSettings.OnChange(x => _modelsBuilderSettings = x); - } - - - public ModelsBuilderViewModel Create() => - new() - { - Mode = _modelsBuilderSettings.ModelsMode, - CanGenerate = _modelsBuilderSettings.ModelsMode.SupportsExplicitGeneration(), - OutOfDateModels = _outOfDateModels.IsOutOfDate, - LastError = _mbErrors.GetLastError(), - Version = ApiVersion.Current.Version.ToString(), - ModelsNamespace = _modelsBuilderSettings.ModelsNamespace, - TrackingOutOfDateModels = _modelsBuilderSettings.FlagOutOfDateModels, - }; -} diff --git a/src/Umbraco.Cms.Api.Management/Factories/RedirectUrlStatusViewModelFactory.cs b/src/Umbraco.Cms.Api.Management/Factories/RedirectUrlStatusViewModelFactory.cs deleted file mode 100644 index 1db6772e39..0000000000 --- a/src/Umbraco.Cms.Api.Management/Factories/RedirectUrlStatusViewModelFactory.cs +++ /dev/null @@ -1,38 +0,0 @@ -using Microsoft.Extensions.Options; -using Umbraco.Cms.Api.Management.ViewModels.RedirectUrlManagement; -using Umbraco.Cms.Core.Configuration.Models; -using Umbraco.Cms.Core.Security; -using Umbraco.Extensions; -using Umbraco.New.Cms.Core.Models.RedirectUrlManagement; - -namespace Umbraco.Cms.Api.Management.Factories; - -public class RedirectUrlStatusViewModelFactory : IRedirectUrlStatusViewModelFactory -{ - private readonly IOptionsMonitor _webRoutingSettings; - private readonly IBackOfficeSecurityAccessor _backOfficeSecurityAccessor; - - public RedirectUrlStatusViewModelFactory( - IOptionsMonitor webRoutingSettings, - IBackOfficeSecurityAccessor backOfficeSecurityAccessor) - { - _webRoutingSettings = webRoutingSettings; - _backOfficeSecurityAccessor = backOfficeSecurityAccessor; - } - - public RedirectUrlStatusViewModel CreateViewModel() - { - RedirectStatus status = _webRoutingSettings.CurrentValue.DisableRedirectUrlTracking switch - { - true => RedirectStatus.Disabled, - false => RedirectStatus.Enabled - }; - - return new RedirectUrlStatusViewModel - { - Status = status, - // TODO: Ensure that CurrentUser can be found when we use the new auth. - UserIsAdmin = _backOfficeSecurityAccessor.BackOfficeSecurity?.CurrentUser?.IsAdmin() ?? false, - }; - } -} diff --git a/src/Umbraco.Cms.Api.Management/Factories/RedirectUrlViewModelFactory.cs b/src/Umbraco.Cms.Api.Management/Factories/RedirectUrlViewModelFactory.cs deleted file mode 100644 index b2da370586..0000000000 --- a/src/Umbraco.Cms.Api.Management/Factories/RedirectUrlViewModelFactory.cs +++ /dev/null @@ -1,42 +0,0 @@ -using Umbraco.Cms.Api.Management.ViewModels.RedirectUrlManagement; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Routing; - -namespace Umbraco.Cms.Api.Management.Factories; - -public class RedirectUrlViewModelFactory : IRedirectUrlViewModelFactory -{ - private readonly IPublishedUrlProvider _publishedUrlProvider; - - public RedirectUrlViewModelFactory(IPublishedUrlProvider publishedUrlProvider) - { - _publishedUrlProvider = publishedUrlProvider; - } - - public RedirectUrlViewModel Create(IRedirectUrl source) - { - var destinationUrl = source.ContentId > 0 - ? _publishedUrlProvider.GetUrl(source.ContentId, culture: source.Culture) - : "#"; - - var originalUrl = _publishedUrlProvider.GetUrlFromRoute(source.ContentId, source.Url, source.Culture); - - return new RedirectUrlViewModel - { - OriginalUrl = originalUrl, - DestinationUrl = destinationUrl, - ContentKey = source.ContentKey, - Created = source.CreateDateUtc, - Culture = source.Culture, - Key = source.Key, - }; - } - - public IEnumerable CreateMany(IEnumerable sources) - { - foreach (IRedirectUrl source in sources) - { - yield return Create(source); - } - } -} diff --git a/src/Umbraco.Cms.Api.Management/Factories/RelationViewModelFactory.cs b/src/Umbraco.Cms.Api.Management/Factories/RelationViewModelFactory.cs deleted file mode 100644 index 368a4d999c..0000000000 --- a/src/Umbraco.Cms.Api.Management/Factories/RelationViewModelFactory.cs +++ /dev/null @@ -1,35 +0,0 @@ -using Umbraco.Cms.Core.Mapping; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Models.Entities; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.ViewModels.Relation; - -namespace Umbraco.Cms.Api.Management.Factories; - -public class RelationViewModelFactory : IRelationViewModelFactory -{ - private readonly IRelationService _relationService; - private readonly IUmbracoMapper _umbracoMapper; - - public RelationViewModelFactory(IRelationService relationService, IUmbracoMapper umbracoMapper) - { - _relationService = relationService; - _umbracoMapper = umbracoMapper; - } - - public RelationViewModel Create(IRelation relation) - { - RelationViewModel relationViewModel = _umbracoMapper.Map(relation)!; - Tuple? entities = _relationService.GetEntitiesFromRelation(relation); - - if (entities is not null) - { - relationViewModel.ParentName = entities.Item1.Name; - relationViewModel.ChildName = entities.Item2.Name; - } - - return relationViewModel; - } - - public IEnumerable CreateMultiple(IEnumerable relations) => relations.Select(Create); -} diff --git a/src/Umbraco.Cms.Api.Management/Filters/RequireDocumentTreeRootAccessAttribute.cs b/src/Umbraco.Cms.Api.Management/Filters/RequireDocumentTreeRootAccessAttribute.cs deleted file mode 100644 index 7adb281f17..0000000000 --- a/src/Umbraco.Cms.Api.Management/Filters/RequireDocumentTreeRootAccessAttribute.cs +++ /dev/null @@ -1,19 +0,0 @@ -using Microsoft.AspNetCore.Mvc.Filters; -using Microsoft.Extensions.DependencyInjection; -using Umbraco.Cms.Core.Cache; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Models.Membership; -using Umbraco.Cms.Core.Services; - -namespace Umbraco.Cms.Api.Management.Filters; - -public class RequireDocumentTreeRootAccessAttribute : RequireTreeRootAccessAttribute -{ - protected override int[] GetUserStartNodeIds(IUser user, ActionExecutingContext context) - { - AppCaches appCaches = context.HttpContext.RequestServices.GetRequiredService(); - IEntityService entityService = context.HttpContext.RequestServices.GetRequiredService(); - - return user.CalculateContentStartNodeIds(entityService, appCaches) ?? Array.Empty(); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Filters/RequireMediaTreeRootAccessAttribute.cs b/src/Umbraco.Cms.Api.Management/Filters/RequireMediaTreeRootAccessAttribute.cs deleted file mode 100644 index 65fa1e4094..0000000000 --- a/src/Umbraco.Cms.Api.Management/Filters/RequireMediaTreeRootAccessAttribute.cs +++ /dev/null @@ -1,19 +0,0 @@ -using Microsoft.AspNetCore.Mvc.Filters; -using Microsoft.Extensions.DependencyInjection; -using Umbraco.Cms.Core.Cache; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Models.Membership; -using Umbraco.Cms.Core.Services; - -namespace Umbraco.Cms.Api.Management.Filters; - -public class RequireMediaTreeRootAccessAttribute : RequireTreeRootAccessAttribute -{ - protected override int[] GetUserStartNodeIds(IUser user, ActionExecutingContext context) - { - AppCaches appCaches = context.HttpContext.RequestServices.GetRequiredService(); - IEntityService entityService = context.HttpContext.RequestServices.GetRequiredService(); - - return user.CalculateMediaStartNodeIds(entityService, appCaches) ?? Array.Empty(); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Filters/RequireRuntimeLevelAttribute.cs b/src/Umbraco.Cms.Api.Management/Filters/RequireRuntimeLevelAttribute.cs deleted file mode 100644 index 23b767b6fe..0000000000 --- a/src/Umbraco.Cms.Api.Management/Filters/RequireRuntimeLevelAttribute.cs +++ /dev/null @@ -1,36 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Mvc.Filters; -using Microsoft.Extensions.DependencyInjection; -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.Services; - -namespace Umbraco.Cms.Api.Management.Filters; - -public class RequireRuntimeLevelAttribute : ActionFilterAttribute -{ - private readonly RuntimeLevel _requiredRuntimeLevel; - - public RequireRuntimeLevelAttribute(RuntimeLevel requiredRuntimeLevel) => - _requiredRuntimeLevel = requiredRuntimeLevel; - - public override void OnActionExecuting(ActionExecutingContext context) - { - IRuntimeState runtimeState = context.HttpContext.RequestServices.GetRequiredService(); - if (runtimeState.Level == _requiredRuntimeLevel) - { - return; - } - - // We're not in the expected runtime level, so we need to short circuit - var problemDetails = new ProblemDetails - { - Title = "Invalid runtime level", - Detail = $"Runtime level {_requiredRuntimeLevel} is required", - Status = StatusCodes.Status428PreconditionRequired, - Type = "Error", - }; - - context.Result = new ObjectResult(problemDetails) { StatusCode = StatusCodes.Status428PreconditionRequired }; - } -} diff --git a/src/Umbraco.Cms.Api.Management/Filters/RequireTreeRootAccessAttribute.cs b/src/Umbraco.Cms.Api.Management/Filters/RequireTreeRootAccessAttribute.cs deleted file mode 100644 index afe85fdc9c..0000000000 --- a/src/Umbraco.Cms.Api.Management/Filters/RequireTreeRootAccessAttribute.cs +++ /dev/null @@ -1,40 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Mvc.Filters; -using Microsoft.Extensions.DependencyInjection; -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.Models.Membership; -using Umbraco.Cms.Core.Security; - -namespace Umbraco.Cms.Api.Management.Filters; - -public abstract class RequireTreeRootAccessAttribute : ActionFilterAttribute -{ - public override void OnActionExecuting(ActionExecutingContext context) - { - IBackOfficeSecurityAccessor backOfficeSecurityAccessor = context.HttpContext.RequestServices.GetRequiredService(); - IUser? user = backOfficeSecurityAccessor.BackOfficeSecurity?.CurrentUser; - - var startNodeIds = user != null ? GetUserStartNodeIds(user, context) : Array.Empty(); - - // TODO: remove this once we have backoffice auth in place - startNodeIds = new[] { Constants.System.Root }; - - if (startNodeIds.Contains(Constants.System.Root)) - { - return; - } - - var problemDetails = new ProblemDetails - { - Title = "Unauthorized user", - Detail = "The current backoffice user should have access to the tree root", - Status = StatusCodes.Status401Unauthorized, - Type = "Error", - }; - - context.Result = new ObjectResult(problemDetails) { StatusCode = StatusCodes.Status401Unauthorized }; - } - - protected abstract int[] GetUserStartNodeIds(IUser user, ActionExecutingContext context); -} diff --git a/src/Umbraco.Cms.Api.Management/ManagementApiComposer.cs b/src/Umbraco.Cms.Api.Management/ManagementApiComposer.cs deleted file mode 100644 index d7a967853e..0000000000 --- a/src/Umbraco.Cms.Api.Management/ManagementApiComposer.cs +++ /dev/null @@ -1,274 +0,0 @@ -using System.Text.Json; -using System.Text.Json.Serialization; -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Diagnostics; -using Microsoft.AspNetCore.Hosting; -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Mvc.ApiExplorer; -using Microsoft.AspNetCore.Mvc.Versioning; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.FileProviders; -using Microsoft.Extensions.Hosting; -using Microsoft.Extensions.Options; -using Microsoft.OpenApi.Models; -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.Composing; -using Umbraco.Cms.Core.Configuration.Models; -using Umbraco.Cms.Core.DependencyInjection; -using Umbraco.Cms.Api.Common.Configuration; -using Umbraco.Cms.Api.Common.DependencyInjection; -using Umbraco.Cms.Api.Management.Controllers.Security; -using Umbraco.Cms.Api.Management.DependencyInjection; -using Umbraco.Cms.Api.Management.OpenApi; -using Umbraco.Cms.Infrastructure.Serialization; -using Umbraco.Cms.Web.Common.ApplicationBuilder; -using Umbraco.Extensions; -using Umbraco.New.Cms.Core.Models.Configuration; -using IHostingEnvironment = Umbraco.Cms.Core.Hosting.IHostingEnvironment; - -namespace Umbraco.Cms.Api.Management; - -public class ManagementApiComposer : IComposer -{ - private const string ApiTitle = "Umbraco Backoffice API"; - private const string ApiDefaultDocumentName = "v1"; - - private ApiVersion DefaultApiVersion => new ApiVersion(1, 0); - - public void Compose(IUmbracoBuilder builder) - { - // TODO Should just call a single extension method that can be called fromUmbracoTestServerTestBase too, instead of calling this method - - IServiceCollection services = builder.Services; - - builder - .AddNewInstaller() - .AddUpgrader() - .AddSearchManagement() - .AddFactories() - .AddTrees() - .AddFactories() - .AddServices() - .AddMappers() - .AddBackOfficeAuthentication(); - - services.ConfigureOptions(); - services.AddApiVersioning(); - - services.AddSwaggerGen(swaggerGenOptions => - { - swaggerGenOptions.CustomOperationIds(e => - { - var httpMethod = e.HttpMethod?.ToLower().ToFirstUpper() ?? "Get"; - - // if the route info "Name" is supplied we'll use this explicitly as the operation ID - // - usage example: [HttpGet("my-api/route}", Name = "MyCustomRoute")] - if (string.IsNullOrWhiteSpace(e.ActionDescriptor.AttributeRouteInfo?.Name) == false) - { - var explicitOperationId = e.ActionDescriptor.AttributeRouteInfo!.Name; - return explicitOperationId.InvariantStartsWith(httpMethod) - ? explicitOperationId - : $"{httpMethod}{explicitOperationId}"; - } - - var relativePath = e.RelativePath; - - if (string.IsNullOrWhiteSpace(relativePath)) - { - throw new Exception( - $"There is no relative path for controller action {e.ActionDescriptor.RouteValues["controller"]}"); - } - - // Remove the prefixed base path with version, e.g. /umbraco/management/api/v1/tracked-reference/{id} => tracked-reference/{id} - var unprefixedRelativePath = - OperationIdRegexes.VersionPrefixRegex().Replace(relativePath, string.Empty); - - // Remove template placeholders, e.g. tracked-reference/{id} => tracked-reference/Id - var formattedOperationId = OperationIdRegexes.TemplatePlaceholdersRegex() - .Replace(unprefixedRelativePath, m => $"By{m.Groups[1].Value.ToFirstUpper()}"); - - // Remove dashes (-) and slashes (/) and convert the following letter to uppercase with - // the word "By" in front, e.g. tracked-reference/Id => TrackedReferenceById - formattedOperationId = OperationIdRegexes.ToCamelCaseRegex() - .Replace(formattedOperationId, m => m.Groups[1].Value.ToUpper()); - - // Return the operation ID with the formatted http method verb in front, e.g. GetTrackedReferenceById - return $"{httpMethod}{formattedOperationId.ToFirstUpper()}"; - }); - swaggerGenOptions.SwaggerDoc( - ApiDefaultDocumentName, - new OpenApiInfo - { - Title = ApiTitle, - Version = DefaultApiVersion.ToString(), - Description = - "This shows all APIs available in this version of Umbraco - including all the legacy apis that are available for backward compatibility" - }); - - swaggerGenOptions.DocInclusionPredicate((_, api) => !string.IsNullOrWhiteSpace(api.GroupName)); - - swaggerGenOptions.TagActionsBy(api => new[] { api.GroupName }); - - // see https://github.com/domaindrivendev/Swashbuckle.AspNetCore#change-operation-sort-order-eg-for-ui-sorting - string ActionSortKeySelector(ApiDescription apiDesc) - { - return - $"{apiDesc.GroupName}_{apiDesc.ActionDescriptor.AttributeRouteInfo?.Template ?? apiDesc.ActionDescriptor.RouteValues["controller"]}_{apiDesc.ActionDescriptor.RouteValues["action"]}_{apiDesc.HttpMethod}"; - } - - swaggerGenOptions.OrderActionsBy(ActionSortKeySelector); - - swaggerGenOptions.AddSecurityDefinition( - "OAuth", - new OpenApiSecurityScheme - { - In = ParameterLocation.Header, - Name = "Umbraco", - Type = SecuritySchemeType.OAuth2, - Description = "Umbraco Authentication", - Flows = new OpenApiOAuthFlows - { - AuthorizationCode = new OpenApiOAuthFlow - { - AuthorizationUrl = - new Uri(Paths.BackOfficeApiAuthorizationEndpoint, UriKind.Relative), - TokenUrl = new Uri(Paths.BackOfficeApiTokenEndpoint, UriKind.Relative) - } - } - }); - - swaggerGenOptions.AddSecurityRequirement(new OpenApiSecurityRequirement - { - // this weird looking construct works because OpenApiSecurityRequirement - // is a specialization of Dictionary<,> - { - new OpenApiSecurityScheme - { - Reference = new OpenApiReference { Id = "OAuth", Type = ReferenceType.SecurityScheme } - }, - new List() - } - }); - - swaggerGenOptions.DocumentFilter(); - swaggerGenOptions.SchemaFilter(); - - swaggerGenOptions.CustomSchemaIds(SchemaIdGenerator.Generate); - }); - - - services.ConfigureOptions(); - services.AddVersionedApiExplorer(); - services.AddControllers() - .AddJsonOptions(options => - { - // any generic JSON options go here - }) - .AddJsonOptions(Umbraco.New.Cms.Core.Constants.JsonOptionsNames.BackOffice, options => - { - // all back-office specific JSON options go here - options.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase; - options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter()); - options.JsonSerializerOptions.Converters.Add(new JsonObjectConverter()); - }); - builder.Services.ConfigureOptions(); - - // TODO: when this is moved to core, make the AddUmbracoOptions extension private again and remove core InternalsVisibleTo for Umbraco.Cms.Api.Management - builder.AddUmbracoOptions(); - builder.Services.AddSingleton, NewBackOfficeSettingsValidator>(); - - builder.Services.Configure(options => - { - options.AddFilter(new UmbracoPipelineFilter( - "BackofficeSwagger", - applicationBuilder => - { - // Only use the API exception handler when we are requesting an API - applicationBuilder.UseWhen( - httpContext => - { - GlobalSettings? settings = httpContext.RequestServices - .GetRequiredService>().Value; - IHostingEnvironment hostingEnvironment = - httpContext.RequestServices.GetRequiredService(); - var officePath = settings.GetBackOfficePath(hostingEnvironment); - - return httpContext.Request.Path.Value?.StartsWith($"{officePath}/management/api/") ?? false; - }, - innerBuilder => - { - innerBuilder.UseExceptionHandler(exceptionBuilder => exceptionBuilder.Run(async context => - { - Exception? exception = context.Features.Get()?.Error; - if (exception is null) - { - return; - } - - var response = new ProblemDetails - { - Title = exception.Message, - Detail = exception.StackTrace, - Status = StatusCodes.Status500InternalServerError, - Instance = exception.GetType().Name, - Type = "Error" - }; - await context.Response.WriteAsJsonAsync(response); - })); - }); - }, - applicationBuilder => - { - IServiceProvider provider = applicationBuilder.ApplicationServices; - IWebHostEnvironment webHostEnvironment = provider.GetRequiredService(); - - if (!webHostEnvironment.IsProduction()) - { - GlobalSettings? settings = provider.GetRequiredService>().Value; - IHostingEnvironment hostingEnvironment = provider.GetRequiredService(); - var officePath = settings.GetBackOfficePath(hostingEnvironment); - - applicationBuilder.UseSwagger(swaggerOptions => - { - swaggerOptions.RouteTemplate = - $"{officePath.TrimStart(Constants.CharArrays.ForwardSlash)}/swagger/{{documentName}}/swagger.json"; - }); - applicationBuilder.UseSwaggerUI( - swaggerUiOptions => - { - swaggerUiOptions.SwaggerEndpoint( - $"{officePath}/swagger/v1/swagger.json", - $"{ApiTitle} {DefaultApiVersion}"); - swaggerUiOptions.RoutePrefix = - $"{officePath.TrimStart(Constants.CharArrays.ForwardSlash)}/swagger"; - - swaggerUiOptions.OAuthClientId(New.Cms.Core.Constants.OauthClientIds.Swagger); - swaggerUiOptions.OAuthUsePkce(); - }); - } - }, - applicationBuilder => - { - IServiceProvider provider = applicationBuilder.ApplicationServices; - - applicationBuilder.UseEndpoints(endpoints => - { - GlobalSettings? settings = provider.GetRequiredService>().Value; - IHostingEnvironment hostingEnvironment = provider.GetRequiredService(); - var officePath = settings.GetBackOfficePath(hostingEnvironment); - // Maps attribute routed controllers. - endpoints.MapControllers(); - - // Serve contract - endpoints.MapGet($"{officePath}/management/api/openapi.json", async context => - { - await context.Response.SendFileAsync( - new EmbeddedFileProvider(GetType().Assembly).GetFileInfo("OpenApi.json")); - }); - }); - })); - }); - } -} - diff --git a/src/Umbraco.Cms.Api.Management/Mapping/Culture/CultureViewModelMapDefinition.cs b/src/Umbraco.Cms.Api.Management/Mapping/Culture/CultureViewModelMapDefinition.cs deleted file mode 100644 index 71e0b26857..0000000000 --- a/src/Umbraco.Cms.Api.Management/Mapping/Culture/CultureViewModelMapDefinition.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System.Globalization; -using Umbraco.Cms.Core.Mapping; -using Umbraco.Cms.Api.Management.ViewModels.Culture; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; - -namespace Umbraco.Cms.Api.Management.Mapping.Culture; - -/// -public class CultureViewModelMapDefinition : IMapDefinition -{ - /// - public void DefineMaps(IUmbracoMapper mapper) - { - mapper.Define, PagedViewModel>((source, context) => new PagedViewModel(), Map); - mapper.Define((source, context) => new CultureViewModel(), Map); - } - - // Umbraco.Code.MapAll - private static void Map(CultureInfo source, CultureViewModel target, MapperContext context) - { - target.Name = source.Name; - target.EnglishName = source.EnglishName; - } - - // Umbraco.Code.MapAll - private static void Map(IEnumerable source, PagedViewModel target, MapperContext context) - { - CultureInfo[] cultureInfos = source.ToArray(); - target.Items = context.MapEnumerable(cultureInfos); - target.Total = cultureInfos.Length; - } -} diff --git a/src/Umbraco.Cms.Api.Management/Mapping/Dictionary/DictionaryViewModelMapDefinition.cs b/src/Umbraco.Cms.Api.Management/Mapping/Dictionary/DictionaryViewModelMapDefinition.cs deleted file mode 100644 index f0721bb032..0000000000 --- a/src/Umbraco.Cms.Api.Management/Mapping/Dictionary/DictionaryViewModelMapDefinition.cs +++ /dev/null @@ -1,71 +0,0 @@ -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.Mapping; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Models.ContentEditing; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.ViewModels.Dictionary; - -namespace Umbraco.Cms.Api.Management.Mapping.Dictionary; - -public class DictionaryViewModelMapDefinition : IMapDefinition -{ - private readonly ILocalizationService _localizationService; - - public DictionaryViewModelMapDefinition(ILocalizationService localizationService) => _localizationService = localizationService; - - public void DefineMaps(IUmbracoMapper mapper) - { - mapper.Define((source, context) => new DictionaryItem(string.Empty), Map); - mapper.Define((source, context) => new DictionaryViewModel(), Map); - mapper.Define((source, context) => new DictionaryTranslation(source.LanguageId, string.Empty), Map); - mapper.Define((source, context) => new DictionaryOverviewViewModel(), Map); - - } - - // Umbraco.Code.MapAll -Id -CreateDate -UpdateDate - private void Map(DictionaryViewModel source, IDictionaryItem target, MapperContext context) - { - target.ItemKey = source.Name!; - target.Key = source.Key; - target.ParentId = source.ParentId; - target.Translations = context.MapEnumerable(source.Translations); - target.DeleteDate = null; - } - - // Umbraco.Code.MapAll -CreateDate -DeleteDate -UpdateDate -Language - private void Map(DictionaryTranslationViewModel source, IDictionaryTranslation target, MapperContext context) - { - target.Value = source.Translation; - target.Id = source.Id; - target.Key = source.Key; - } - - // Umbraco.Code.MapAll -Icon -Trashed -Alias -NameIsDirty -ContentApps -Path -Translations - private void Map(IDictionaryItem source, DictionaryViewModel target, MapperContext context) - { - target.Key = source.Key; - target.Name = source.ItemKey; - target.ParentId = source.ParentId ?? null; - } - - // Umbraco.Code.MapAll -Level -Translations - private void Map(IDictionaryItem source, DictionaryOverviewViewModel target, MapperContext context) - { - target.Key = source.Key; - target.Name = source.ItemKey; - - // add all languages and the translations - foreach (ILanguage lang in _localizationService.GetAllLanguages()) - { - var langId = lang.Id; - IDictionaryTranslation? translation = source.Translations?.FirstOrDefault(x => x.LanguageId == langId); - - target.Translations.Add( - new DictionaryTranslationOverviewViewModel - { - DisplayName = lang.CultureName, - HasTranslation = translation != null && string.IsNullOrEmpty(translation.Value) == false, - }); - } - } -} diff --git a/src/Umbraco.Cms.Api.Management/Mapping/HealthCheck/HealthCheckViewModelsMapDefinition.cs b/src/Umbraco.Cms.Api.Management/Mapping/HealthCheck/HealthCheckViewModelsMapDefinition.cs deleted file mode 100644 index bc70fd5f7b..0000000000 --- a/src/Umbraco.Cms.Api.Management/Mapping/HealthCheck/HealthCheckViewModelsMapDefinition.cs +++ /dev/null @@ -1,80 +0,0 @@ -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.HealthCheck; -using Umbraco.Cms.Core.HealthChecks; -using Umbraco.Cms.Core.Mapping; - -namespace Umbraco.Cms.Api.Management.Mapping.HealthCheck; - -public class HealthCheckViewModelsMapDefinition : IMapDefinition -{ - public void DefineMaps(IUmbracoMapper mapper) - { - mapper.Define((source, context) => new HealthCheckAction(), Map); - mapper.Define((source, context) => new HealthCheckActionViewModel() { ValueRequired = false }, Map); - mapper.Define((source, context) => new HealthCheckResultViewModel() { Message = string.Empty }, Map); - mapper.Define((source, context) => new HealthCheckViewModel() { Name = string.Empty }, Map); - mapper.Define, HealthCheckGroupViewModel>((source, context) => new HealthCheckGroupViewModel() { Checks = new List() }, Map); - mapper.Define>, PagedViewModel>((source, context) => new PagedViewModel(), Map); - } - - // Umbraco.Code.MapAll -ActionParameters - private static void Map(HealthCheckActionViewModel source, HealthCheckAction target, MapperContext context) - { - target.Alias = source.Alias; - target.HealthCheckId = source.HealthCheckKey; - target.Name = source.Name; - target.Description = source.Description; - target.ValueRequired = source.ValueRequired; - target.ProvidedValueValidation = source.ProvidedValueValidation; - target.ProvidedValueValidationRegex = source.ProvidedValueValidationRegex; - target.ProvidedValue = source.ProvidedValue; - } - - // Umbraco.Code.MapAll - private static void Map(HealthCheckAction source, HealthCheckActionViewModel target, MapperContext context) - { - if (source.HealthCheckId is not null) - { - target.HealthCheckKey = (Guid)source.HealthCheckId; - } - - target.Alias = source.Alias; - target.Name = source.Name; - target.Description = source.Description; - target.ValueRequired = source.ValueRequired; - target.ProvidedValue = source.ProvidedValue; - target.ProvidedValueValidation = source.ProvidedValueValidation; - target.ProvidedValueValidationRegex = source.ProvidedValueValidationRegex; - } - - // Umbraco.Code.MapAll - private static void Map(HealthCheckStatus source, HealthCheckResultViewModel target, MapperContext context) - { - target.Message = source.Message; - target.ResultType = source.ResultType; - target.ReadMoreLink = source.ReadMoreLink; - target.Actions = context.MapEnumerable(source.Actions); - } - - // Umbraco.Code.MapAll - private static void Map(Core.HealthChecks.HealthCheck source, HealthCheckViewModel target, MapperContext context) - { - target.Key = source.Id; - target.Name = source.Name; - target.Description = source.Description; - } - - // Umbraco.Code.MapAll - private static void Map(IGrouping source, HealthCheckGroupViewModel target, MapperContext context) - { - target.Name = source.Key; - target.Checks = context.MapEnumerable(source.OrderBy(x => x.Name)); - } - - // Umbraco.Code.MapAll - private static void Map(IEnumerable> source, PagedViewModel target, MapperContext context) - { - target.Items = context.MapEnumerable, HealthCheckGroupViewModel>(source); - target.Total = source.Count(); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Mapping/Installer/InstallerViewModelsMapDefinition.cs b/src/Umbraco.Cms.Api.Management/Mapping/Installer/InstallerViewModelsMapDefinition.cs deleted file mode 100644 index fa3df994f7..0000000000 --- a/src/Umbraco.Cms.Api.Management/Mapping/Installer/InstallerViewModelsMapDefinition.cs +++ /dev/null @@ -1,144 +0,0 @@ -using Umbraco.Cms.Core.Install.Models; -using Umbraco.Cms.Core.Mapping; -using Umbraco.Cms.Infrastructure.Persistence; -using Umbraco.Cms.Api.Management.ViewModels.Installer; -using Umbraco.New.Cms.Core.Models.Installer; - -namespace Umbraco.Cms.Api.Management.Mapping.Installer; - -public class InstallerViewModelsMapDefinition : IMapDefinition -{ - public void DefineMaps(IUmbracoMapper mapper) - { - mapper.Define((source, context) => new InstallData(), Map); - mapper.Define((source, context) => new UserInstallData(), Map); - mapper.Define((source, context) => new DatabaseInstallData(), Map); - mapper.Define((source, context) => new DatabaseModel(), Map); - mapper.Define((source, context) => new DatabaseModel(), Map); - mapper.Define((source, context) => new InstallSettingsViewModel(), Map); - mapper.Define((source, context) => new UserSettingsViewModel(), Map); - mapper.Define((source, context) => new DatabaseSettingsModel(), Map); - mapper.Define((source, context) => new DatabaseSettingsViewModel(), Map); - mapper.Define((source, context) => new ConsentLevelViewModel(), Map); - mapper.Define((source, context) => new UpgradeSettingsViewModel(), Map); - } - - // Umbraco.Code.MapAll - private void Map(UpgradeSettingsModel source, UpgradeSettingsViewModel target, MapperContext context) - { - target.CurrentState = source.CurrentState; - target.NewState = source.NewState; - target.NewVersion = source.NewVersion.ToString(); - target.OldVersion = source.OldVersion.ToString(); - } - - // Umbraco.Code.MapAll - private void Map(DatabaseInstallViewModel source, DatabaseModel target, MapperContext context) - { - target.ConnectionString = source.ConnectionString; - target.DatabaseName = source.Name ?? string.Empty; - target.DatabaseProviderMetadataId = source.Id; - target.IntegratedAuth = source.UseIntegratedAuthentication; - target.Login = source.Username; - target.Password = source.Password; - target.ProviderName = source.ProviderName; - target.Server = source.Server!; - } - - // Umbraco.Code.MapAll - private static void Map(InstallViewModel source, InstallData target, MapperContext context) - { - target.TelemetryLevel = source.TelemetryLevel; - target.User = context.Map(source.User)!; - target.Database = context.Map(source.Database)!; - } - - // Umbraco.Code.MapAll - private static void Map(UserInstallViewModel source, UserInstallData target, MapperContext context) - { - target.Email = source.Email; - target.Name = source.Name; - target.Password = source.Password; - target.SubscribeToNewsletter = source.SubscribeToNewsletter; - } - - // Umbraco.Code.MapAll - private static void Map(DatabaseInstallViewModel source, DatabaseInstallData target, MapperContext context) - { - target.Id = source.Id; - target.ProviderName = source.ProviderName; - target.Server = source.Server; - target.Name = source.Name; - target.Username = source.Username; - target.Password = source.Password; - target.UseIntegratedAuthentication = source.UseIntegratedAuthentication; - target.ConnectionString = source.ConnectionString; - } - - // Umbraco.Code.MapAll - private static void Map(DatabaseInstallData source, DatabaseModel target, MapperContext context) - { - target.ConnectionString = source.ConnectionString; - target.DatabaseName = source.Name ?? string.Empty; - target.DatabaseProviderMetadataId = source.Id; - target.IntegratedAuth = source.UseIntegratedAuthentication; - target.Login = source.Username; - target.Password = source.Password; - target.ProviderName = source.ProviderName; - target.Server = source.Server!; - } - - // Umbraco.Code.MapAll - private static void Map(InstallSettingsModel source, InstallSettingsViewModel target, MapperContext context) - { - target.User = context.Map(source.UserSettings)!; - target.Databases = context.MapEnumerable(source.DatabaseSettings); - } - - // Umbraco.Code.MapAll - private static void Map(UserSettingsModel source, UserSettingsViewModel target, MapperContext context) - { - target.MinCharLength = source.PasswordSettings.MinCharLength; - target.MinNonAlphaNumericLength = source.PasswordSettings.MinNonAlphaNumericLength; - target.ConsentLevels = context.MapEnumerable(source.ConsentLevels); - } - - // Umbraco.Code.MapAll - private static void Map(IDatabaseProviderMetadata source, DatabaseSettingsModel target, MapperContext context) - { - target.DefaultDatabaseName = source.DefaultDatabaseName; - target.DisplayName = source.DisplayName; - target.Id = source.Id; - target.ProviderName = source.ProviderName ?? string.Empty; - target.RequiresConnectionTest = source.RequiresConnectionTest; - target.RequiresCredentials = source.RequiresCredentials; - target.RequiresServer = source.RequiresServer; - target.ServerPlaceholder = source.ServerPlaceholder ?? string.Empty; - target.SortOrder = source.SortOrder; - target.SupportsIntegratedAuthentication = source.SupportsIntegratedAuthentication; - target.IsConfigured = false; // Defaults to false, we'll set this to true if needed, - } - - // Umbraco.Code.MapAll - private static void Map(DatabaseSettingsModel source, DatabaseSettingsViewModel target, MapperContext context) - { - target.DefaultDatabaseName = source.DefaultDatabaseName; - target.DisplayName = source.DisplayName; - target.Id = source.Id; - target.IsConfigured = source.IsConfigured; - target.ProviderName = source.ProviderName; - target.RequiresConnectionTest = source.RequiresConnectionTest; - target.RequiresCredentials = source.RequiresCredentials; - target.RequiresServer = source.RequiresServer; - target.ServerPlaceholder = source.ServerPlaceholder; - target.SortOrder = source.SortOrder; - target.SupportsIntegratedAuthentication = source.SupportsIntegratedAuthentication; - } - - // Umbraco.Code.MapAll - private static void Map(ConsentLevelModel source, ConsentLevelViewModel target, MapperContext context) - { - target.Description = source.Description; - target.Level = source.Level; - } -} diff --git a/src/Umbraco.Cms.Api.Management/Mapping/Languages/LanguageViewModelsMapDefinition.cs b/src/Umbraco.Cms.Api.Management/Mapping/Languages/LanguageViewModelsMapDefinition.cs deleted file mode 100644 index 289f8636c9..0000000000 --- a/src/Umbraco.Cms.Api.Management/Mapping/Languages/LanguageViewModelsMapDefinition.cs +++ /dev/null @@ -1,70 +0,0 @@ -using NPoco.FluentMappings; -using Umbraco.Cms.Core.Mapping; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Api.Management.ViewModels.Language; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.New.Cms.Core.Models; - -namespace Umbraco.Cms.Api.Management.Mapping.Languages; - -public class LanguageViewModelsMapDefinition : IMapDefinition -{ - public void DefineMaps(IUmbracoMapper mapper) - { - mapper.Define((source, context) => new Language(string.Empty, string.Empty), Map); - mapper.Define((source, context) => new LanguageViewModel(), Map); - mapper.Define, PagedViewModel>((source, context) => new PagedViewModel(), Map); - - } - - // Umbraco.Code.MapAll - private static void Map(ILanguage source, LanguageViewModel target, MapperContext context) - { - target.Id = source.Id; - target.IsoCode = source.IsoCode; - target.Name = source.CultureName; - target.IsDefault = source.IsDefault; - target.IsMandatory = source.IsMandatory; - target.FallbackLanguageId = source.FallbackLanguageId; - } - - - // Umbraco.Code.MapAll - private static void Map(LanguageViewModel source, ILanguage target, MapperContext context) - { - target.CreateDate = default; - if (!string.IsNullOrEmpty(source.Name)) - { - target.CultureName = source.Name; - } - - target.DeleteDate = null; - target.FallbackLanguageId = source.FallbackLanguageId; - target.Id = source.Id; - target.IsDefault = source.IsDefault; - target.IsMandatory = source.IsMandatory; - target.IsoCode = source.IsoCode; - target.Key = default; - target.UpdateDate = default; - } - - private static void Map(PagedModel source, PagedViewModel target, MapperContext context) - { - List temp = context.MapEnumerable(source.Items); - - // Put the default language first in the list & then sort rest by a-z - LanguageViewModel? defaultLang = temp.SingleOrDefault(x => x.IsDefault); - - var languages = new List(); - - // insert default lang first, then remaining language a-z - if (defaultLang is not null) - { - languages.Add(defaultLang); - languages.AddRange(temp.Where(x => x != defaultLang).OrderBy(x => x.Name)); - } - - target.Items = languages; - target.Total = source.Total; - } -} diff --git a/src/Umbraco.Cms.Api.Management/Mapping/Relation/RelationViewModelsMapDefinition.cs b/src/Umbraco.Cms.Api.Management/Mapping/Relation/RelationViewModelsMapDefinition.cs deleted file mode 100644 index b2b0acb88e..0000000000 --- a/src/Umbraco.Cms.Api.Management/Mapping/Relation/RelationViewModelsMapDefinition.cs +++ /dev/null @@ -1,22 +0,0 @@ -using Umbraco.Cms.Core.Mapping; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Api.Management.ViewModels.Relation; - -namespace Umbraco.Cms.Api.Management.Mapping.Relation; - -public class RelationViewModelsMapDefinition : IMapDefinition -{ - public void DefineMaps(IUmbracoMapper mapper) - { - mapper.Define((source, context) => new RelationViewModel(), Map); - } - - // Umbraco.Code.MapAll -ParentName -ChildName - private void Map(IRelation source, RelationViewModel target, MapperContext context) - { - target.ChildId = source.ChildId; - target.Comment = source.Comment; - target.CreateDate = source.CreateDate; - target.ParentId = source.ParentId; - } -} diff --git a/src/Umbraco.Cms.Api.Management/Mapping/TrackedReferences/TrackedReferenceViewModelsMapDefinition.cs b/src/Umbraco.Cms.Api.Management/Mapping/TrackedReferences/TrackedReferenceViewModelsMapDefinition.cs deleted file mode 100644 index 9b36669fcf..0000000000 --- a/src/Umbraco.Cms.Api.Management/Mapping/TrackedReferences/TrackedReferenceViewModelsMapDefinition.cs +++ /dev/null @@ -1,28 +0,0 @@ -using Umbraco.Cms.Core.Mapping; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Api.Management.ViewModels.TrackedReferences; - -namespace Umbraco.Cms.Api.Management.Mapping.TrackedReferences; - -public class TrackedReferenceViewModelsMapDefinition : IMapDefinition -{ - public void DefineMaps(IUmbracoMapper mapper) - { - mapper.Define((source, context) => new RelationItemViewModel(), Map); - } - - // Umbraco.Code.MapAll - private void Map(RelationItemModel source, RelationItemViewModel target, MapperContext context) - { - target.ContentTypeAlias = source.ContentTypeAlias; - target.ContentTypeIcon = source.ContentTypeIcon; - target.ContentTypeName = source.ContentTypeName; - target.NodeKey = source.NodeKey; - target.NodeName = source.NodeName; - target.NodeType = source.NodeType; - target.RelationTypeIsBidirectional = source.RelationTypeIsBidirectional; - target.RelationTypeIsDependency = source.RelationTypeIsDependency; - target.RelationTypeName = source.RelationTypeName; - } - -} diff --git a/src/Umbraco.Cms.Api.Management/Middleware/BackOfficeAuthorizationInitializationMiddleware.cs b/src/Umbraco.Cms.Api.Management/Middleware/BackOfficeAuthorizationInitializationMiddleware.cs deleted file mode 100644 index ab2d69e496..0000000000 --- a/src/Umbraco.Cms.Api.Management/Middleware/BackOfficeAuthorizationInitializationMiddleware.cs +++ /dev/null @@ -1,62 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Http.Extensions; -using Microsoft.Extensions.DependencyInjection; -using Umbraco.Cms.Core.Routing; -using Umbraco.New.Cms.Infrastructure.Security; - -namespace Umbraco.Cms.Api.Management.Middleware; - -public class BackOfficeAuthorizationInitializationMiddleware : IMiddleware -{ - private static bool _firstBackOfficeRequest; - private static SemaphoreSlim _firstBackOfficeRequestLocker = new(1); - - private readonly UmbracoRequestPaths _umbracoRequestPaths; - private readonly IServiceProvider _serviceProvider; - - public BackOfficeAuthorizationInitializationMiddleware(UmbracoRequestPaths umbracoRequestPaths, IServiceProvider serviceProvider) - { - _umbracoRequestPaths = umbracoRequestPaths; - _serviceProvider = serviceProvider; - } - - public async Task InvokeAsync(HttpContext context, RequestDelegate next) - { - await InitializeBackOfficeAuthorizationOnceAsync(context); - await next(context); - } - - private async Task InitializeBackOfficeAuthorizationOnceAsync(HttpContext context) - { - if (_firstBackOfficeRequest) - { - return; - } - - if (_umbracoRequestPaths.IsBackOfficeRequest(context.Request.Path) == false) - { - return; - } - - await _firstBackOfficeRequestLocker.WaitAsync(); - if (_firstBackOfficeRequest == false) - { - using IServiceScope scope = _serviceProvider.CreateScope(); - IBackOfficeApplicationManager backOfficeApplicationManager = scope.ServiceProvider.GetRequiredService(); - await backOfficeApplicationManager.EnsureBackOfficeApplicationAsync(new Uri(context.Request.GetDisplayUrl())); - _firstBackOfficeRequest = true; - } - - _firstBackOfficeRequestLocker.Release(); - } -} - -// TODO: remove this (used for testing BackOfficeAuthorizationInitializationMiddleware until it can be added to the existing UseBackOffice extension) -// public static class UmbracoApplicationBuilderExtensions -// { -// public static IUmbracoApplicationBuilderContext UseNewBackOffice(this IUmbracoApplicationBuilderContext builder) -// { -// builder.AppBuilder.UseMiddleware(); -// return builder; -// } -// } diff --git a/src/Umbraco.Cms.Api.Management/Models/Entities/UserAccessEntity.cs b/src/Umbraco.Cms.Api.Management/Models/Entities/UserAccessEntity.cs deleted file mode 100644 index 4976b769dd..0000000000 --- a/src/Umbraco.Cms.Api.Management/Models/Entities/UserAccessEntity.cs +++ /dev/null @@ -1,16 +0,0 @@ -using Umbraco.Cms.Core.Models.Entities; - -namespace Umbraco.Cms.Api.Management.Models.Entities; - -public class UserAccessEntity -{ - public UserAccessEntity(IEntitySlim entity, bool hasAccess) - { - Entity = entity; - HasAccess = hasAccess; - } - - public IEntitySlim Entity { get; } - - public bool HasAccess { get; } -} diff --git a/src/Umbraco.Cms.Api.Management/Models/FormFileUploadResult.cs b/src/Umbraco.Cms.Api.Management/Models/FormFileUploadResult.cs deleted file mode 100644 index e5f51311bc..0000000000 --- a/src/Umbraco.Cms.Api.Management/Models/FormFileUploadResult.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System.Xml; - -namespace Umbraco.Cms.Api.Management.Models; - -public class FormFileUploadResult -{ - public bool CouldLoad { get; set; } - - public XmlDocument? XmlDocument { get; set; } - - public string? ErrorMessage { get; set; } - - public string? TemporaryPath { get; set; } -} diff --git a/src/Umbraco.Cms.Api.Management/OpenApi.json b/src/Umbraco.Cms.Api.Management/OpenApi.json deleted file mode 100644 index 9f9cc9a95e..0000000000 --- a/src/Umbraco.Cms.Api.Management/OpenApi.json +++ /dev/null @@ -1,7644 +0,0 @@ -{ - "openapi": "3.0.1", - "info": { - "title": "Umbraco Backoffice API", - "description": "This shows all APIs available in this version of Umbraco - including all the legacy apis that are available for backward compatibility", - "version": "1.0" - }, - "paths": { - "/umbraco/management/api/v1/culture": { - "get": { - "tags": [ - "Culture" - ], - "operationId": "GetCulture", - "parameters": [ - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedCulture" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/data-type/children": { - "get": { - "tags": [ - "Data Type" - ], - "operationId": "GetTreeDataTypeChildren", - "parameters": [ - { - "name": "parentKey", - "in": "query", - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 0 - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 100 - } - }, - { - "name": "foldersOnly", - "in": "query", - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedFolderTreeItem" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/data-type/item": { - "get": { - "tags": [ - "Data Type" - ], - "operationId": "GetTreeDataTypeItem", - "parameters": [ - { - "name": "key", - "in": "query", - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "uuid" - } - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FolderTreeItem" - } - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/data-type/root": { - "get": { - "tags": [ - "Data Type" - ], - "operationId": "GetTreeDataTypeRoot", - "parameters": [ - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 0 - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 100 - } - }, - { - "name": "foldersOnly", - "in": "query", - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedFolderTreeItem" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/dictionary": { - "get": { - "tags": [ - "Dictionary" - ], - "operationId": "GetDictionary", - "parameters": [ - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedDictionaryOverview" - } - } - } - } - } - }, - "post": { - "tags": [ - "Dictionary" - ], - "operationId": "PostDictionary", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DictionaryItem" - } - } - } - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreatedResult" - } - } - } - }, - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProblemDetails" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/dictionary/{id}": { - "patch": { - "tags": [ - "Dictionary" - ], - "operationId": "PatchDictionaryById", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JsonPatch" - } - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ContentResult" - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NotFoundResult" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/dictionary/{key}": { - "get": { - "tags": [ - "Dictionary" - ], - "operationId": "GetDictionaryByKey", - "parameters": [ - { - "name": "key", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Dictionary" - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NotFoundResult" - } - } - } - } - } - }, - "delete": { - "tags": [ - "Dictionary" - ], - "operationId": "DeleteDictionaryByKey", - "parameters": [ - { - "name": "key", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "Success" - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NotFoundResult" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/dictionary/export/{key}": { - "get": { - "tags": [ - "Dictionary" - ], - "operationId": "GetDictionaryExportByKey", - "parameters": [ - { - "name": "key", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "includeChildren", - "in": "query", - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NotFoundResult" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/dictionary/import": { - "post": { - "tags": [ - "Dictionary" - ], - "operationId": "PostDictionaryImport", - "parameters": [ - { - "name": "file", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "parentId", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ContentResult" - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NotFoundResult" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/dictionary/upload": { - "post": { - "tags": [ - "Dictionary" - ], - "operationId": "PostDictionaryUpload", - "requestBody": { - "content": {} - }, - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DictionaryImport" - } - } - } - }, - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProblemDetails" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/dictionary/children": { - "get": { - "tags": [ - "Dictionary" - ], - "operationId": "GetTreeDictionaryChildren", - "parameters": [ - { - "name": "parentKey", - "in": "query", - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 0 - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 100 - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedEntityTreeItem" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/dictionary/item": { - "get": { - "tags": [ - "Dictionary" - ], - "operationId": "GetTreeDictionaryItem", - "parameters": [ - { - "name": "key", - "in": "query", - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "uuid" - } - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FolderTreeItem" - } - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/dictionary/root": { - "get": { - "tags": [ - "Dictionary" - ], - "operationId": "GetTreeDictionaryRoot", - "parameters": [ - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 0 - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 100 - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedEntityTreeItem" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/document-blueprint/item": { - "get": { - "tags": [ - "Document Blueprint" - ], - "operationId": "GetTreeDocumentBlueprintItem", - "parameters": [ - { - "name": "key", - "in": "query", - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "uuid" - } - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DocumentBlueprintTreeItem" - } - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/document-blueprint/root": { - "get": { - "tags": [ - "Document Blueprint" - ], - "operationId": "GetTreeDocumentBlueprintRoot", - "parameters": [ - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 0 - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 100 - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedDocumentBlueprintTreeItem" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/document-type/children": { - "get": { - "tags": [ - "Document Type" - ], - "operationId": "GetTreeDocumentTypeChildren", - "parameters": [ - { - "name": "parentKey", - "in": "query", - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 0 - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 100 - } - }, - { - "name": "foldersOnly", - "in": "query", - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedDocumentTypeTreeItem" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/document-type/item": { - "get": { - "tags": [ - "Document Type" - ], - "operationId": "GetTreeDocumentTypeItem", - "parameters": [ - { - "name": "key", - "in": "query", - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "uuid" - } - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DocumentTypeTreeItem" - } - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/document-type/root": { - "get": { - "tags": [ - "Document Type" - ], - "operationId": "GetTreeDocumentTypeRoot", - "parameters": [ - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 0 - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 100 - } - }, - { - "name": "foldersOnly", - "in": "query", - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedDocumentTypeTreeItem" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/recycle-bin/document/children": { - "get": { - "tags": [ - "Document" - ], - "operationId": "GetRecycleBinDocumentChildren", - "parameters": [ - { - "name": "parentKey", - "in": "query", - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 0 - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 100 - } - } - ], - "responses": { - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProblemDetails" - } - } - } - }, - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedRecycleBinItem" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/recycle-bin/document/root": { - "get": { - "tags": [ - "Document" - ], - "operationId": "GetRecycleBinDocumentRoot", - "parameters": [ - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 0 - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 100 - } - } - ], - "responses": { - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProblemDetails" - } - } - } - }, - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedRecycleBinItem" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/document/children": { - "get": { - "tags": [ - "Document" - ], - "operationId": "GetTreeDocumentChildren", - "parameters": [ - { - "name": "parentKey", - "in": "query", - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 0 - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 100 - } - }, - { - "name": "dataTypeKey", - "in": "query", - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "culture", - "in": "query", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedDocumentTreeItem" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/document/item": { - "get": { - "tags": [ - "Document" - ], - "operationId": "GetTreeDocumentItem", - "parameters": [ - { - "name": "key", - "in": "query", - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "uuid" - } - } - }, - { - "name": "dataTypeKey", - "in": "query", - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "culture", - "in": "query", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DocumentTreeItem" - } - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/document/root": { - "get": { - "tags": [ - "Document" - ], - "operationId": "GetTreeDocumentRoot", - "parameters": [ - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 0 - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 100 - } - }, - { - "name": "dataTypeKey", - "in": "query", - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "culture", - "in": "query", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedDocumentTreeItem" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/health-check-group": { - "get": { - "tags": [ - "Health Check" - ], - "operationId": "GetHealthCheckGroup", - "parameters": [ - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 0 - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 100 - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedHealthCheckGroup" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/health-check-group/{name}": { - "get": { - "tags": [ - "Health Check" - ], - "operationId": "GetHealthCheckGroupByName", - "parameters": [ - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NotFoundResult" - } - } - } - }, - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HealthCheckGroupWithResult" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/health-check/execute-action": { - "post": { - "tags": [ - "Health Check" - ], - "operationId": "PostHealthCheckExecuteAction", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HealthCheckAction" - } - } - } - }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProblemDetails" - } - } - } - }, - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HealthCheckResult" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/help": { - "get": { - "tags": [ - "Help" - ], - "operationId": "GetHelp", - "parameters": [ - { - "name": "section", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "tree", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "baseUrl", - "in": "query", - "schema": { - "type": "string", - "default": "https://our.umbraco.com" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProblemDetails" - } - } - } - }, - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedHelpPage" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/indexer": { - "get": { - "tags": [ - "Indexer" - ], - "operationId": "GetIndexer", - "parameters": [ - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedIndex" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/indexer/{indexName}": { - "get": { - "tags": [ - "Indexer" - ], - "operationId": "GetIndexerByIndexName", - "parameters": [ - { - "name": "indexName", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProblemDetails" - } - } - } - }, - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Index" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/indexer/{indexName}/rebuild": { - "post": { - "tags": [ - "Indexer" - ], - "operationId": "PostIndexerByIndexNameRebuild", - "parameters": [ - { - "name": "indexName", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProblemDetails" - } - } - } - }, - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OkResult" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/install/settings": { - "get": { - "tags": [ - "Install" - ], - "operationId": "GetInstallSettings", - "responses": { - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProblemDetails" - } - } - } - }, - "428": { - "description": "Client Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProblemDetails" - } - } - } - }, - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/InstallSettings" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/install/setup": { - "post": { - "tags": [ - "Install" - ], - "operationId": "PostInstallSetup", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Install" - } - } - } - }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProblemDetails" - } - } - } - }, - "428": { - "description": "Client Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProblemDetails" - } - } - } - }, - "200": { - "description": "Success" - } - } - } - }, - "/umbraco/management/api/v1/install/validate-database": { - "post": { - "tags": [ - "Install" - ], - "operationId": "PostInstallValidateDatabase", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DatabaseInstall" - } - } - } - }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProblemDetails" - } - } - } - }, - "200": { - "description": "Success" - } - } - } - }, - "/umbraco/management/api/v1/language": { - "post": { - "tags": [ - "Language" - ], - "operationId": "PostLanguage", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Language" - } - } - } - }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProblemDetails" - } - } - } - }, - "201": { - "description": "Created" - } - } - }, - "get": { - "tags": [ - "Language" - ], - "operationId": "GetLanguage", - "parameters": [ - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedLanguage" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/language/{id}": { - "get": { - "tags": [ - "Language" - ], - "operationId": "GetLanguageById", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NotFoundResult" - } - } - } - }, - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Language" - } - } - } - } - } - }, - "delete": { - "tags": [ - "Language" - ], - "operationId": "DeleteLanguageById", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProblemDetails" - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProblemDetails" - } - } - } - }, - "200": { - "description": "Success" - } - } - }, - "put": { - "tags": [ - "Language" - ], - "operationId": "PutLanguageById", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Language" - } - } - } - }, - "responses": { - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NotFoundResult" - } - } - } - }, - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProblemDetails" - } - } - } - }, - "200": { - "description": "Success" - } - } - } - }, - "/umbraco/management/api/v1/tree/media-type/children": { - "get": { - "tags": [ - "Media Type" - ], - "operationId": "GetTreeMediaTypeChildren", - "parameters": [ - { - "name": "parentKey", - "in": "query", - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 0 - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 100 - } - }, - { - "name": "foldersOnly", - "in": "query", - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedFolderTreeItem" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/media-type/item": { - "get": { - "tags": [ - "Media Type" - ], - "operationId": "GetTreeMediaTypeItem", - "parameters": [ - { - "name": "key", - "in": "query", - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "uuid" - } - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FolderTreeItem" - } - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/media-type/root": { - "get": { - "tags": [ - "Media Type" - ], - "operationId": "GetTreeMediaTypeRoot", - "parameters": [ - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 0 - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 100 - } - }, - { - "name": "foldersOnly", - "in": "query", - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedFolderTreeItem" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/recycle-bin/media/children": { - "get": { - "tags": [ - "Media" - ], - "operationId": "GetRecycleBinMediaChildren", - "parameters": [ - { - "name": "parentKey", - "in": "query", - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 0 - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 100 - } - } - ], - "responses": { - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProblemDetails" - } - } - } - }, - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedRecycleBinItem" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/recycle-bin/media/root": { - "get": { - "tags": [ - "Media" - ], - "operationId": "GetRecycleBinMediaRoot", - "parameters": [ - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 0 - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 100 - } - } - ], - "responses": { - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProblemDetails" - } - } - } - }, - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedRecycleBinItem" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/media/children": { - "get": { - "tags": [ - "Media" - ], - "operationId": "GetTreeMediaChildren", - "parameters": [ - { - "name": "parentKey", - "in": "query", - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 0 - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 100 - } - }, - { - "name": "dataTypeKey", - "in": "query", - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedContentTreeItem" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/media/item": { - "get": { - "tags": [ - "Media" - ], - "operationId": "GetTreeMediaItem", - "parameters": [ - { - "name": "key", - "in": "query", - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "uuid" - } - } - }, - { - "name": "dataTypeKey", - "in": "query", - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ContentTreeItem" - } - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/media/root": { - "get": { - "tags": [ - "Media" - ], - "operationId": "GetTreeMediaRoot", - "parameters": [ - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 0 - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 100 - } - }, - { - "name": "dataTypeKey", - "in": "query", - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedContentTreeItem" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/member-group/item": { - "get": { - "tags": [ - "Member Group" - ], - "operationId": "GetTreeMemberGroupItem", - "parameters": [ - { - "name": "key", - "in": "query", - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "uuid" - } - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityTreeItem" - } - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/member-group/root": { - "get": { - "tags": [ - "Member Group" - ], - "operationId": "GetTreeMemberGroupRoot", - "parameters": [ - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 0 - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 100 - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedEntityTreeItem" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/member-type/item": { - "get": { - "tags": [ - "Member Type" - ], - "operationId": "GetTreeMemberTypeItem", - "parameters": [ - { - "name": "key", - "in": "query", - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "uuid" - } - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityTreeItem" - } - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/member-type/root": { - "get": { - "tags": [ - "Member Type" - ], - "operationId": "GetTreeMemberTypeRoot", - "parameters": [ - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 0 - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 100 - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedEntityTreeItem" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/models-builder/build": { - "post": { - "tags": [ - "Models Builder" - ], - "operationId": "PostModelsBuilderBuild", - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreatedResult" - } - } - } - }, - "428": { - "description": "Client Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProblemDetails" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/models-builder/dashboard": { - "get": { - "tags": [ - "Models Builder" - ], - "operationId": "GetModelsBuilderDashboard", - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ModelsBuilder" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/models-builder/status": { - "get": { - "tags": [ - "Models Builder" - ], - "operationId": "GetModelsBuilderStatus", - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OutOfDateStatus" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/partial-view/children": { - "get": { - "tags": [ - "Partial View" - ], - "operationId": "GetTreePartialViewChildren", - "parameters": [ - { - "name": "path", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 0 - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 100 - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedFileSystemTreeItem" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/partial-view/item": { - "get": { - "tags": [ - "Partial View" - ], - "operationId": "GetTreePartialViewItem", - "parameters": [ - { - "name": "path", - "in": "query", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FileSystemTreeItem" - } - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/partial-view/root": { - "get": { - "tags": [ - "Partial View" - ], - "operationId": "GetTreePartialViewRoot", - "parameters": [ - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 0 - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 100 - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedFileSystemTreeItem" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/profiling/status": { - "get": { - "tags": [ - "Profiling" - ], - "operationId": "GetProfilingStatus", - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProfilingStatus" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/published-cache/collect": { - "post": { - "tags": [ - "Published Cache" - ], - "operationId": "PostPublishedCacheCollect", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/umbraco/management/api/v1/published-cache/rebuild": { - "post": { - "tags": [ - "Published Cache" - ], - "operationId": "PostPublishedCacheRebuild", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/umbraco/management/api/v1/published-cache/reload": { - "post": { - "tags": [ - "Published Cache" - ], - "operationId": "PostPublishedCacheReload", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/umbraco/management/api/v1/published-cache/status": { - "get": { - "tags": [ - "Published Cache" - ], - "operationId": "GetPublishedCacheStatus", - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/redirect-management": { - "get": { - "tags": [ - "Redirect Management" - ], - "operationId": "GetRedirectManagement", - "parameters": [ - { - "name": "filter", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProblemDetails" - } - } - } - }, - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedRedirectUrl" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/redirect-management/{key}": { - "get": { - "tags": [ - "Redirect Management" - ], - "operationId": "GetRedirectManagementByKey", - "parameters": [ - { - "name": "key", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedRedirectUrl" - } - } - } - } - } - }, - "delete": { - "tags": [ - "Redirect Management" - ], - "operationId": "DeleteRedirectManagementByKey", - "parameters": [ - { - "name": "key", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/umbraco/management/api/v1/redirect-management/status": { - "get": { - "tags": [ - "Redirect Management" - ], - "operationId": "GetRedirectManagementStatus", - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RedirectUrlStatus" - } - } - } - } - } - }, - "post": { - "tags": [ - "Redirect Management" - ], - "operationId": "PostRedirectManagementStatus", - "parameters": [ - { - "name": "status", - "in": "query", - "schema": { - "$ref": "#/components/schemas/RedirectStatus" - } - } - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/umbraco/management/api/v1/tree/relation-type/item": { - "get": { - "tags": [ - "Relation Type" - ], - "operationId": "GetTreeRelationTypeItem", - "parameters": [ - { - "name": "key", - "in": "query", - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "uuid" - } - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FolderTreeItem" - } - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/relation-type/root": { - "get": { - "tags": [ - "Relation Type" - ], - "operationId": "GetTreeRelationTypeRoot", - "parameters": [ - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 0 - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 100 - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedEntityTreeItem" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/relation/{id}": { - "get": { - "tags": [ - "Relation" - ], - "operationId": "GetRelationById", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Relation" - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NotFoundResult" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/relation/child-relation/{childId}": { - "get": { - "tags": [ - "Relation" - ], - "operationId": "GetRelationChildRelationByChildId", - "parameters": [ - { - "name": "childId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "relationTypeAlias", - "in": "query", - "schema": { - "type": "string", - "default": "" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedRelation" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/script/children": { - "get": { - "tags": [ - "Script" - ], - "operationId": "GetTreeScriptChildren", - "parameters": [ - { - "name": "path", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 0 - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 100 - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedFileSystemTreeItem" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/script/item": { - "get": { - "tags": [ - "Script" - ], - "operationId": "GetTreeScriptItem", - "parameters": [ - { - "name": "path", - "in": "query", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FileSystemTreeItem" - } - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/script/root": { - "get": { - "tags": [ - "Script" - ], - "operationId": "GetTreeScriptRoot", - "parameters": [ - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 0 - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 100 - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedFileSystemTreeItem" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/searcher": { - "get": { - "tags": [ - "Searcher" - ], - "operationId": "GetSearcher", - "parameters": [ - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedSearcher" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/searcher/{searcherName}/query": { - "get": { - "tags": [ - "Searcher" - ], - "operationId": "GetSearcherBySearcherNameQuery", - "parameters": [ - { - "name": "searcherName", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "term", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedSearchResult" - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProblemDetails" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/security/back-office/authorize": { - "get": { - "tags": [ - "Security" - ], - "operationId": "GetSecurityBackOfficeAuthorize", - "responses": { - "200": { - "description": "Success" - } - } - }, - "post": { - "tags": [ - "Security" - ], - "operationId": "PostSecurityBackOfficeAuthorize", - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/umbraco/management/api/v1/server/status": { - "get": { - "tags": [ - "Server" - ], - "operationId": "GetServerStatus", - "responses": { - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProblemDetails" - } - } - } - }, - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ServerStatus" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/server/version": { - "get": { - "tags": [ - "Server" - ], - "operationId": "GetServerVersion", - "responses": { - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProblemDetails" - } - } - } - }, - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Version" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/static-file/children": { - "get": { - "tags": [ - "Static File" - ], - "operationId": "GetTreeStaticFileChildren", - "parameters": [ - { - "name": "path", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 0 - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 100 - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedFileSystemTreeItem" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/static-file/item": { - "get": { - "tags": [ - "Static File" - ], - "operationId": "GetTreeStaticFileItem", - "parameters": [ - { - "name": "path", - "in": "query", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FileSystemTreeItem" - } - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/static-file/root": { - "get": { - "tags": [ - "Static File" - ], - "operationId": "GetTreeStaticFileRoot", - "parameters": [ - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 0 - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 100 - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedFileSystemTreeItem" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/stylesheet/children": { - "get": { - "tags": [ - "Stylesheet" - ], - "operationId": "GetTreeStylesheetChildren", - "parameters": [ - { - "name": "path", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 0 - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 100 - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedFileSystemTreeItem" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/stylesheet/item": { - "get": { - "tags": [ - "Stylesheet" - ], - "operationId": "GetTreeStylesheetItem", - "parameters": [ - { - "name": "path", - "in": "query", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FileSystemTreeItem" - } - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/stylesheet/root": { - "get": { - "tags": [ - "Stylesheet" - ], - "operationId": "GetTreeStylesheetRoot", - "parameters": [ - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 0 - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 100 - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedFileSystemTreeItem" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/telemetry": { - "get": { - "tags": [ - "Telemetry" - ], - "operationId": "GetTelemetry", - "parameters": [ - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedTelemetry" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/telemetry/level": { - "get": { - "tags": [ - "Telemetry" - ], - "operationId": "GetTelemetryLevel", - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Telemetry" - } - } - } - } - } - }, - "post": { - "tags": [ - "Telemetry" - ], - "operationId": "PostTelemetryLevel", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Telemetry" - } - } - } - }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProblemDetails" - } - } - } - }, - "200": { - "description": "Success" - } - } - } - }, - "/umbraco/management/api/v1/tree/template/children": { - "get": { - "tags": [ - "Template" - ], - "operationId": "GetTreeTemplateChildren", - "parameters": [ - { - "name": "parentKey", - "in": "query", - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 0 - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 100 - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedEntityTreeItem" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/template/item": { - "get": { - "tags": [ - "Template" - ], - "operationId": "GetTreeTemplateItem", - "parameters": [ - { - "name": "key", - "in": "query", - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "uuid" - } - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityTreeItem" - } - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tree/template/root": { - "get": { - "tags": [ - "Template" - ], - "operationId": "GetTreeTemplateRoot", - "parameters": [ - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 0 - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 100 - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedEntityTreeItem" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tracked-reference/{id}": { - "get": { - "tags": [ - "Tracked Reference" - ], - "operationId": "GetTrackedReferenceById", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "filterMustBeIsDependency", - "in": "query", - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedRelationItem" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tracked-reference/descendants/{parentId}": { - "get": { - "tags": [ - "Tracked Reference" - ], - "operationId": "GetTrackedReferenceDescendantsByParentId", - "parameters": [ - { - "name": "parentId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "filterMustBeIsDependency", - "in": "query", - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedRelationItem" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tracked-reference/item": { - "get": { - "tags": [ - "Tracked Reference" - ], - "operationId": "GetTrackedReferenceItem", - "parameters": [ - { - "name": "ids", - "in": "query", - "schema": { - "type": "array", - "items": { - "type": "integer", - "format": "int32" - } - } - }, - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "filterMustBeIsDependency", - "in": "query", - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedRelationItem" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/upgrade/authorize": { - "post": { - "tags": [ - "Upgrade" - ], - "operationId": "PostUpgradeAuthorize", - "responses": { - "200": { - "description": "Success" - }, - "428": { - "description": "Client Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProblemDetails" - } - } - } - }, - "500": { - "description": "Server Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProblemDetails" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/upgrade/settings": { - "get": { - "tags": [ - "Upgrade" - ], - "operationId": "GetUpgradeSettings", - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpgradeSettings" - } - } - } - }, - "428": { - "description": "Client Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProblemDetails" - } - } - } - } - } - } - } - }, - "components": { - "schemas": { - "Assembly": { - "type": "object", - "properties": { - "definedTypes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TypeInfo" - }, - "nullable": true, - "readOnly": true - }, - "exportedTypes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Type" - }, - "nullable": true, - "readOnly": true - }, - "codeBase": { - "type": "string", - "nullable": true, - "readOnly": true, - "deprecated": true - }, - "entryPoint": { - "$ref": "#/components/schemas/MethodInfo" - }, - "fullName": { - "type": "string", - "nullable": true, - "readOnly": true - }, - "imageRuntimeVersion": { - "type": "string", - "nullable": true, - "readOnly": true - }, - "isDynamic": { - "type": "boolean", - "readOnly": true - }, - "location": { - "type": "string", - "nullable": true, - "readOnly": true - }, - "reflectionOnly": { - "type": "boolean", - "readOnly": true - }, - "isCollectible": { - "type": "boolean", - "readOnly": true - }, - "isFullyTrusted": { - "type": "boolean", - "readOnly": true - }, - "customAttributes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomAttributeData" - }, - "nullable": true, - "readOnly": true - }, - "escapedCodeBase": { - "type": "string", - "nullable": true, - "readOnly": true, - "deprecated": true - }, - "manifestModule": { - "$ref": "#/components/schemas/Module" - }, - "modules": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Module" - }, - "nullable": true, - "readOnly": true - }, - "globalAssemblyCache": { - "type": "boolean", - "readOnly": true, - "deprecated": true - }, - "hostContext": { - "type": "integer", - "format": "int64", - "readOnly": true - }, - "securityRuleSet": { - "$ref": "#/components/schemas/SecurityRuleSet" - } - }, - "additionalProperties": false - }, - "BackOfficeNotification": { - "type": "object", - "properties": { - "header": { - "type": "string", - "nullable": true - }, - "message": { - "type": "string", - "nullable": true - }, - "notificationType": { - "$ref": "#/components/schemas/NotificationStyle" - } - }, - "additionalProperties": false - }, - "CallingConventions": { - "enum": [ - "Standard", - "VarArgs", - "Any", - "HasThis", - "ExplicitThis" - ], - "type": "integer", - "format": "int32" - }, - "ConsentLevel": { - "type": "object", - "properties": { - "level": { - "$ref": "#/components/schemas/TelemetryLevel" - }, - "description": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "ConstructorInfo": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true, - "readOnly": true - }, - "declaringType": { - "$ref": "#/components/schemas/Type" - }, - "reflectedType": { - "$ref": "#/components/schemas/Type" - }, - "module": { - "$ref": "#/components/schemas/Module" - }, - "customAttributes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomAttributeData" - }, - "nullable": true, - "readOnly": true - }, - "isCollectible": { - "type": "boolean", - "readOnly": true - }, - "metadataToken": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "attributes": { - "$ref": "#/components/schemas/MethodAttributes" - }, - "methodImplementationFlags": { - "$ref": "#/components/schemas/MethodImplAttributes" - }, - "callingConvention": { - "$ref": "#/components/schemas/CallingConventions" - }, - "isAbstract": { - "type": "boolean", - "readOnly": true - }, - "isConstructor": { - "type": "boolean", - "readOnly": true - }, - "isFinal": { - "type": "boolean", - "readOnly": true - }, - "isHideBySig": { - "type": "boolean", - "readOnly": true - }, - "isSpecialName": { - "type": "boolean", - "readOnly": true - }, - "isStatic": { - "type": "boolean", - "readOnly": true - }, - "isVirtual": { - "type": "boolean", - "readOnly": true - }, - "isAssembly": { - "type": "boolean", - "readOnly": true - }, - "isFamily": { - "type": "boolean", - "readOnly": true - }, - "isFamilyAndAssembly": { - "type": "boolean", - "readOnly": true - }, - "isFamilyOrAssembly": { - "type": "boolean", - "readOnly": true - }, - "isPrivate": { - "type": "boolean", - "readOnly": true - }, - "isPublic": { - "type": "boolean", - "readOnly": true - }, - "isConstructedGenericMethod": { - "type": "boolean", - "readOnly": true - }, - "isGenericMethod": { - "type": "boolean", - "readOnly": true - }, - "isGenericMethodDefinition": { - "type": "boolean", - "readOnly": true - }, - "containsGenericParameters": { - "type": "boolean", - "readOnly": true - }, - "methodHandle": { - "$ref": "#/components/schemas/RuntimeMethodHandle" - }, - "isSecurityCritical": { - "type": "boolean", - "readOnly": true - }, - "isSecuritySafeCritical": { - "type": "boolean", - "readOnly": true - }, - "isSecurityTransparent": { - "type": "boolean", - "readOnly": true - }, - "memberType": { - "$ref": "#/components/schemas/MemberTypes" - } - }, - "additionalProperties": false - }, - "ContentApp": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "alias": { - "type": "string", - "nullable": true - }, - "weight": { - "type": "integer", - "format": "int32" - }, - "icon": { - "type": "string", - "nullable": true - }, - "view": { - "type": "string", - "nullable": true - }, - "viewModel": { - "nullable": true - }, - "active": { - "type": "boolean" - }, - "badge": { - "$ref": "#/components/schemas/ContentAppBadge" - } - }, - "additionalProperties": false - }, - "ContentAppBadge": { - "type": "object", - "properties": { - "count": { - "type": "integer", - "format": "int32" - }, - "type": { - "$ref": "#/components/schemas/ContentAppBadgeType" - } - }, - "additionalProperties": false - }, - "ContentAppBadgeType": { - "enum": [ - "default", - "warning", - "alert" - ], - "type": "integer", - "format": "int32" - }, - "ContentResult": { - "type": "object", - "properties": { - "content": { - "type": "string", - "nullable": true - }, - "contentType": { - "type": "string", - "nullable": true - }, - "statusCode": { - "type": "integer", - "format": "int32", - "nullable": true - } - }, - "additionalProperties": false - }, - "ContentTreeItem": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "type": { - "type": "string", - "nullable": true - }, - "icon": { - "type": "string", - "nullable": true - }, - "hasChildren": { - "type": "boolean" - }, - "key": { - "type": "string", - "format": "uuid" - }, - "isContainer": { - "type": "boolean" - }, - "parentKey": { - "type": "string", - "format": "uuid", - "nullable": true - }, - "noAccess": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "CreatedResult": { - "type": "object", - "properties": { - "value": { - "nullable": true - }, - "formatters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/IOutputFormatter" - }, - "nullable": true - }, - "contentTypes": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "declaredType": { - "$ref": "#/components/schemas/Type" - }, - "statusCode": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "location": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "Culture": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "englishName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "CustomAttributeData": { - "type": "object", - "properties": { - "attributeType": { - "$ref": "#/components/schemas/Type" - }, - "constructor": { - "$ref": "#/components/schemas/ConstructorInfo" - }, - "constructorArguments": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomAttributeTypedArgument" - }, - "nullable": true, - "readOnly": true - }, - "namedArguments": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomAttributeNamedArgument" - }, - "nullable": true, - "readOnly": true - } - }, - "additionalProperties": false - }, - "CustomAttributeNamedArgument": { - "type": "object", - "properties": { - "memberInfo": { - "$ref": "#/components/schemas/MemberInfo" - }, - "typedValue": { - "$ref": "#/components/schemas/CustomAttributeTypedArgument" - }, - "memberName": { - "type": "string", - "nullable": true, - "readOnly": true - }, - "isField": { - "type": "boolean", - "readOnly": true - } - }, - "additionalProperties": false - }, - "CustomAttributeTypedArgument": { - "type": "object", - "properties": { - "argumentType": { - "$ref": "#/components/schemas/Type" - }, - "value": { - "nullable": true - } - }, - "additionalProperties": false - }, - "DatabaseInstall": { - "required": [ - "id", - "providerName" - ], - "type": "object", - "properties": { - "id": { - "type": "string", - "format": "uuid" - }, - "providerName": { - "minLength": 1, - "type": "string" - }, - "server": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - }, - "username": { - "type": "string", - "nullable": true - }, - "password": { - "type": "string", - "nullable": true - }, - "useIntegratedAuthentication": { - "type": "boolean" - }, - "connectionString": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "DatabaseSettings": { - "type": "object", - "properties": { - "id": { - "type": "string", - "format": "uuid" - }, - "sortOrder": { - "type": "integer", - "format": "int32" - }, - "displayName": { - "type": "string", - "nullable": true - }, - "defaultDatabaseName": { - "type": "string", - "nullable": true - }, - "providerName": { - "type": "string", - "nullable": true - }, - "isConfigured": { - "type": "boolean" - }, - "requiresServer": { - "type": "boolean" - }, - "serverPlaceholder": { - "type": "string", - "nullable": true - }, - "requiresCredentials": { - "type": "boolean" - }, - "supportsIntegratedAuthentication": { - "type": "boolean" - }, - "requiresConnectionTest": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "Dictionary": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "parentId": { - "type": "string", - "format": "uuid", - "nullable": true - }, - "translations": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DictionaryTranslation" - }, - "nullable": true - }, - "contentApps": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ContentApp" - }, - "nullable": true - }, - "notifications": { - "type": "array", - "items": { - "$ref": "#/components/schemas/BackOfficeNotification" - }, - "nullable": true, - "readOnly": true - }, - "name": { - "minLength": 1, - "type": "string" - }, - "key": { - "type": "string", - "format": "uuid" - }, - "path": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "DictionaryImport": { - "type": "object", - "properties": { - "dictionaryItems": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DictionaryItemsImport" - }, - "nullable": true - }, - "tempFileName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "DictionaryItem": { - "type": "object", - "properties": { - "parentId": { - "type": "string", - "format": "uuid", - "nullable": true - }, - "key": { - "type": "string", - "format": "uuid" - } - }, - "additionalProperties": false - }, - "DictionaryItemsImport": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "level": { - "type": "integer", - "format": "int32" - } - }, - "additionalProperties": false - }, - "DictionaryOverview": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "key": { - "type": "string", - "format": "uuid" - }, - "level": { - "type": "integer", - "format": "int32" - }, - "translations": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DictionaryTranslationOverview" - }, - "nullable": true, - "readOnly": true - } - }, - "additionalProperties": false - }, - "DictionaryTranslation": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32" - }, - "key": { - "type": "string", - "format": "uuid" - }, - "displayName": { - "type": "string", - "nullable": true - }, - "isoCode": { - "type": "string", - "nullable": true - }, - "translation": { - "type": "string", - "nullable": true - }, - "languageId": { - "type": "integer", - "format": "int32" - } - }, - "additionalProperties": false - }, - "DictionaryTranslationOverview": { - "type": "object", - "properties": { - "displayName": { - "type": "string", - "nullable": true - }, - "hasTranslation": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "DocumentBlueprintTreeItem": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "type": { - "type": "string", - "nullable": true - }, - "icon": { - "type": "string", - "nullable": true - }, - "hasChildren": { - "type": "boolean" - }, - "key": { - "type": "string", - "format": "uuid" - }, - "isContainer": { - "type": "boolean" - }, - "parentKey": { - "type": "string", - "format": "uuid", - "nullable": true - }, - "documentTypeKey": { - "type": "string", - "format": "uuid" - }, - "documentTypeAlias": { - "type": "string", - "nullable": true - }, - "documentTypeName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "DocumentTreeItem": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "type": { - "type": "string", - "nullable": true - }, - "icon": { - "type": "string", - "nullable": true - }, - "hasChildren": { - "type": "boolean" - }, - "key": { - "type": "string", - "format": "uuid" - }, - "isContainer": { - "type": "boolean" - }, - "parentKey": { - "type": "string", - "format": "uuid", - "nullable": true - }, - "noAccess": { - "type": "boolean" - }, - "isProtected": { - "type": "boolean" - }, - "isPublished": { - "type": "boolean" - }, - "isEdited": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "DocumentTypeTreeItem": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "type": { - "type": "string", - "nullable": true - }, - "icon": { - "type": "string", - "nullable": true - }, - "hasChildren": { - "type": "boolean" - }, - "key": { - "type": "string", - "format": "uuid" - }, - "isContainer": { - "type": "boolean" - }, - "parentKey": { - "type": "string", - "format": "uuid", - "nullable": true - }, - "isFolder": { - "type": "boolean" - }, - "isElement": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "EntityTreeItem": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "type": { - "type": "string", - "nullable": true - }, - "icon": { - "type": "string", - "nullable": true - }, - "hasChildren": { - "type": "boolean" - }, - "key": { - "type": "string", - "format": "uuid" - }, - "isContainer": { - "type": "boolean" - }, - "parentKey": { - "type": "string", - "format": "uuid", - "nullable": true - } - }, - "additionalProperties": false - }, - "EventAttributes": { - "enum": [ - "None", - "SpecialName", - "RTSpecialName", - "ReservedMask" - ], - "type": "integer", - "format": "int32" - }, - "EventInfo": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true, - "readOnly": true - }, - "declaringType": { - "$ref": "#/components/schemas/Type" - }, - "reflectedType": { - "$ref": "#/components/schemas/Type" - }, - "module": { - "$ref": "#/components/schemas/Module" - }, - "customAttributes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomAttributeData" - }, - "nullable": true, - "readOnly": true - }, - "isCollectible": { - "type": "boolean", - "readOnly": true - }, - "metadataToken": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "memberType": { - "$ref": "#/components/schemas/MemberTypes" - }, - "attributes": { - "$ref": "#/components/schemas/EventAttributes" - }, - "isSpecialName": { - "type": "boolean", - "readOnly": true - }, - "addMethod": { - "$ref": "#/components/schemas/MethodInfo" - }, - "removeMethod": { - "$ref": "#/components/schemas/MethodInfo" - }, - "raiseMethod": { - "$ref": "#/components/schemas/MethodInfo" - }, - "isMulticast": { - "type": "boolean", - "readOnly": true - }, - "eventHandlerType": { - "$ref": "#/components/schemas/Type" - } - }, - "additionalProperties": false - }, - "Field": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "values": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - } - }, - "additionalProperties": false - }, - "FieldAttributes": { - "enum": [ - "PrivateScope", - "Private", - "FamANDAssem", - "Assembly", - "Family", - "FamORAssem", - "Public", - "FieldAccessMask", - "Static", - "InitOnly", - "Literal", - "NotSerialized", - "HasFieldRVA", - "SpecialName", - "RTSpecialName", - "HasFieldMarshal", - "PinvokeImpl", - "HasDefault", - "ReservedMask" - ], - "type": "integer", - "format": "int32" - }, - "FieldInfo": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true, - "readOnly": true - }, - "declaringType": { - "$ref": "#/components/schemas/Type" - }, - "reflectedType": { - "$ref": "#/components/schemas/Type" - }, - "module": { - "$ref": "#/components/schemas/Module" - }, - "customAttributes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomAttributeData" - }, - "nullable": true, - "readOnly": true - }, - "isCollectible": { - "type": "boolean", - "readOnly": true - }, - "metadataToken": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "memberType": { - "$ref": "#/components/schemas/MemberTypes" - }, - "attributes": { - "$ref": "#/components/schemas/FieldAttributes" - }, - "fieldType": { - "$ref": "#/components/schemas/Type" - }, - "isInitOnly": { - "type": "boolean", - "readOnly": true - }, - "isLiteral": { - "type": "boolean", - "readOnly": true - }, - "isNotSerialized": { - "type": "boolean", - "readOnly": true - }, - "isPinvokeImpl": { - "type": "boolean", - "readOnly": true - }, - "isSpecialName": { - "type": "boolean", - "readOnly": true - }, - "isStatic": { - "type": "boolean", - "readOnly": true - }, - "isAssembly": { - "type": "boolean", - "readOnly": true - }, - "isFamily": { - "type": "boolean", - "readOnly": true - }, - "isFamilyAndAssembly": { - "type": "boolean", - "readOnly": true - }, - "isFamilyOrAssembly": { - "type": "boolean", - "readOnly": true - }, - "isPrivate": { - "type": "boolean", - "readOnly": true - }, - "isPublic": { - "type": "boolean", - "readOnly": true - }, - "isSecurityCritical": { - "type": "boolean", - "readOnly": true - }, - "isSecuritySafeCritical": { - "type": "boolean", - "readOnly": true - }, - "isSecurityTransparent": { - "type": "boolean", - "readOnly": true - }, - "fieldHandle": { - "$ref": "#/components/schemas/RuntimeFieldHandle" - } - }, - "additionalProperties": false - }, - "FileSystemTreeItem": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "type": { - "type": "string", - "nullable": true - }, - "icon": { - "type": "string", - "nullable": true - }, - "hasChildren": { - "type": "boolean" - }, - "path": { - "type": "string", - "nullable": true - }, - "isFolder": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FolderTreeItem": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "type": { - "type": "string", - "nullable": true - }, - "icon": { - "type": "string", - "nullable": true - }, - "hasChildren": { - "type": "boolean" - }, - "key": { - "type": "string", - "format": "uuid" - }, - "isContainer": { - "type": "boolean" - }, - "parentKey": { - "type": "string", - "format": "uuid", - "nullable": true - }, - "isFolder": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "GenericParameterAttributes": { - "enum": [ - "None", - "Covariant", - "Contravariant", - "VarianceMask", - "ReferenceTypeConstraint", - "NotNullableValueTypeConstraint", - "DefaultConstructorConstraint", - "SpecialConstraintMask" - ], - "type": "integer", - "format": "int32" - }, - "HealthCheck": { - "type": "object", - "properties": { - "key": { - "type": "string", - "format": "uuid" - }, - "name": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "HealthCheckAction": { - "type": "object", - "properties": { - "healthCheckKey": { - "type": "string", - "format": "uuid" - }, - "alias": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "valueRequired": { - "type": "boolean" - }, - "providedValue": { - "type": "string", - "nullable": true - }, - "providedValueValidation": { - "type": "string", - "nullable": true - }, - "providedValueValidationRegex": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "HealthCheckGroup": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "checks": { - "type": "array", - "items": { - "$ref": "#/components/schemas/HealthCheck" - }, - "nullable": true - } - }, - "additionalProperties": false - }, - "HealthCheckGroupWithResult": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "checks": { - "type": "array", - "items": { - "$ref": "#/components/schemas/HealthCheckWithResult" - }, - "nullable": true - } - }, - "additionalProperties": false - }, - "HealthCheckResult": { - "type": "object", - "properties": { - "message": { - "type": "string", - "nullable": true - }, - "resultType": { - "$ref": "#/components/schemas/StatusResultType" - }, - "actions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/HealthCheckAction" - }, - "nullable": true - }, - "readMoreLink": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "HealthCheckWithResult": { - "type": "object", - "properties": { - "key": { - "type": "string", - "format": "uuid" - }, - "name": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/HealthCheckResult" - }, - "nullable": true - } - }, - "additionalProperties": false - }, - "HelpPage": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "url": { - "type": "string", - "nullable": true - }, - "type": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "ICustomAttributeProvider": { - "type": "object", - "additionalProperties": false - }, - "IOutputFormatter": { - "type": "object", - "additionalProperties": false - }, - "Index": { - "required": [ - "canRebuild", - "documentCount", - "fieldCount", - "isHealthy", - "name" - ], - "type": "object", - "properties": { - "name": { - "minLength": 1, - "type": "string" - }, - "healthStatus": { - "type": "string", - "nullable": true - }, - "isHealthy": { - "type": "boolean", - "readOnly": true - }, - "canRebuild": { - "type": "boolean" - }, - "searcherName": { - "type": "string", - "nullable": true - }, - "documentCount": { - "type": "integer", - "format": "int64" - }, - "fieldCount": { - "type": "integer", - "format": "int32" - }, - "providerProperties": { - "type": "object", - "additionalProperties": {}, - "nullable": true - } - }, - "additionalProperties": false - }, - "Install": { - "required": [ - "database", - "user" - ], - "type": "object", - "properties": { - "user": { - "$ref": "#/components/schemas/UserInstall" - }, - "database": { - "$ref": "#/components/schemas/DatabaseInstall" - }, - "telemetryLevel": { - "$ref": "#/components/schemas/TelemetryLevel" - } - }, - "additionalProperties": false - }, - "InstallSettings": { - "type": "object", - "properties": { - "user": { - "$ref": "#/components/schemas/UserSettings" - }, - "databases": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DatabaseSettings" - }, - "nullable": true - } - }, - "additionalProperties": false - }, - "IntPtr": { - "type": "object", - "additionalProperties": false - }, - "JsonPatch": { - "type": "object", - "properties": { - "op": { - "type": "string", - "nullable": true - }, - "path": { - "type": "string", - "nullable": true - }, - "value": { - "nullable": true - } - }, - "additionalProperties": false - }, - "Language": { - "required": [ - "isoCode" - ], - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32" - }, - "isoCode": { - "minLength": 1, - "type": "string" - }, - "name": { - "type": "string", - "nullable": true - }, - "isDefault": { - "type": "boolean" - }, - "isMandatory": { - "type": "boolean" - }, - "fallbackLanguageId": { - "type": "integer", - "format": "int32", - "nullable": true - } - }, - "additionalProperties": false - }, - "LayoutKind": { - "enum": [ - "Sequential", - "Explicit", - "Auto" - ], - "type": "integer", - "format": "int32" - }, - "MemberInfo": { - "type": "object", - "properties": { - "memberType": { - "$ref": "#/components/schemas/MemberTypes" - }, - "name": { - "type": "string", - "nullable": true, - "readOnly": true - }, - "declaringType": { - "$ref": "#/components/schemas/Type" - }, - "reflectedType": { - "$ref": "#/components/schemas/Type" - }, - "module": { - "$ref": "#/components/schemas/Module" - }, - "customAttributes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomAttributeData" - }, - "nullable": true, - "readOnly": true - }, - "isCollectible": { - "type": "boolean", - "readOnly": true - }, - "metadataToken": { - "type": "integer", - "format": "int32", - "readOnly": true - } - }, - "additionalProperties": false - }, - "MemberTypes": { - "enum": [ - "Constructor", - "Event", - "Field", - "Method", - "Property", - "TypeInfo", - "Custom", - "NestedType", - "All" - ], - "type": "integer", - "format": "int32" - }, - "MethodAttributes": { - "enum": [ - "ReuseSlot", - "PrivateScope", - "Private", - "FamANDAssem", - "Assembly", - "Family", - "FamORAssem", - "Public", - "MemberAccessMask", - "UnmanagedExport", - "Static", - "Final", - "Virtual", - "HideBySig", - "NewSlot", - "VtableLayoutMask", - "CheckAccessOnOverride", - "Abstract", - "SpecialName", - "RTSpecialName", - "PinvokeImpl", - "HasSecurity", - "RequireSecObject", - "ReservedMask" - ], - "type": "integer", - "format": "int32" - }, - "MethodBase": { - "type": "object", - "properties": { - "memberType": { - "$ref": "#/components/schemas/MemberTypes" - }, - "name": { - "type": "string", - "nullable": true, - "readOnly": true - }, - "declaringType": { - "$ref": "#/components/schemas/Type" - }, - "reflectedType": { - "$ref": "#/components/schemas/Type" - }, - "module": { - "$ref": "#/components/schemas/Module" - }, - "customAttributes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomAttributeData" - }, - "nullable": true, - "readOnly": true - }, - "isCollectible": { - "type": "boolean", - "readOnly": true - }, - "metadataToken": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "attributes": { - "$ref": "#/components/schemas/MethodAttributes" - }, - "methodImplementationFlags": { - "$ref": "#/components/schemas/MethodImplAttributes" - }, - "callingConvention": { - "$ref": "#/components/schemas/CallingConventions" - }, - "isAbstract": { - "type": "boolean", - "readOnly": true - }, - "isConstructor": { - "type": "boolean", - "readOnly": true - }, - "isFinal": { - "type": "boolean", - "readOnly": true - }, - "isHideBySig": { - "type": "boolean", - "readOnly": true - }, - "isSpecialName": { - "type": "boolean", - "readOnly": true - }, - "isStatic": { - "type": "boolean", - "readOnly": true - }, - "isVirtual": { - "type": "boolean", - "readOnly": true - }, - "isAssembly": { - "type": "boolean", - "readOnly": true - }, - "isFamily": { - "type": "boolean", - "readOnly": true - }, - "isFamilyAndAssembly": { - "type": "boolean", - "readOnly": true - }, - "isFamilyOrAssembly": { - "type": "boolean", - "readOnly": true - }, - "isPrivate": { - "type": "boolean", - "readOnly": true - }, - "isPublic": { - "type": "boolean", - "readOnly": true - }, - "isConstructedGenericMethod": { - "type": "boolean", - "readOnly": true - }, - "isGenericMethod": { - "type": "boolean", - "readOnly": true - }, - "isGenericMethodDefinition": { - "type": "boolean", - "readOnly": true - }, - "containsGenericParameters": { - "type": "boolean", - "readOnly": true - }, - "methodHandle": { - "$ref": "#/components/schemas/RuntimeMethodHandle" - }, - "isSecurityCritical": { - "type": "boolean", - "readOnly": true - }, - "isSecuritySafeCritical": { - "type": "boolean", - "readOnly": true - }, - "isSecurityTransparent": { - "type": "boolean", - "readOnly": true - } - }, - "additionalProperties": false - }, - "MethodImplAttributes": { - "enum": [ - "IL", - "Managed", - "Native", - "OPTIL", - "Runtime", - "CodeTypeMask", - "Unmanaged", - "ManagedMask", - "NoInlining", - "ForwardRef", - "Synchronized", - "NoOptimization", - "PreserveSig", - "AggressiveInlining", - "AggressiveOptimization", - "InternalCall", - "MaxMethodImplVal" - ], - "type": "integer", - "format": "int32" - }, - "MethodInfo": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true, - "readOnly": true - }, - "declaringType": { - "$ref": "#/components/schemas/Type" - }, - "reflectedType": { - "$ref": "#/components/schemas/Type" - }, - "module": { - "$ref": "#/components/schemas/Module" - }, - "customAttributes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomAttributeData" - }, - "nullable": true, - "readOnly": true - }, - "isCollectible": { - "type": "boolean", - "readOnly": true - }, - "metadataToken": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "attributes": { - "$ref": "#/components/schemas/MethodAttributes" - }, - "methodImplementationFlags": { - "$ref": "#/components/schemas/MethodImplAttributes" - }, - "callingConvention": { - "$ref": "#/components/schemas/CallingConventions" - }, - "isAbstract": { - "type": "boolean", - "readOnly": true - }, - "isConstructor": { - "type": "boolean", - "readOnly": true - }, - "isFinal": { - "type": "boolean", - "readOnly": true - }, - "isHideBySig": { - "type": "boolean", - "readOnly": true - }, - "isSpecialName": { - "type": "boolean", - "readOnly": true - }, - "isStatic": { - "type": "boolean", - "readOnly": true - }, - "isVirtual": { - "type": "boolean", - "readOnly": true - }, - "isAssembly": { - "type": "boolean", - "readOnly": true - }, - "isFamily": { - "type": "boolean", - "readOnly": true - }, - "isFamilyAndAssembly": { - "type": "boolean", - "readOnly": true - }, - "isFamilyOrAssembly": { - "type": "boolean", - "readOnly": true - }, - "isPrivate": { - "type": "boolean", - "readOnly": true - }, - "isPublic": { - "type": "boolean", - "readOnly": true - }, - "isConstructedGenericMethod": { - "type": "boolean", - "readOnly": true - }, - "isGenericMethod": { - "type": "boolean", - "readOnly": true - }, - "isGenericMethodDefinition": { - "type": "boolean", - "readOnly": true - }, - "containsGenericParameters": { - "type": "boolean", - "readOnly": true - }, - "methodHandle": { - "$ref": "#/components/schemas/RuntimeMethodHandle" - }, - "isSecurityCritical": { - "type": "boolean", - "readOnly": true - }, - "isSecuritySafeCritical": { - "type": "boolean", - "readOnly": true - }, - "isSecurityTransparent": { - "type": "boolean", - "readOnly": true - }, - "memberType": { - "$ref": "#/components/schemas/MemberTypes" - }, - "returnParameter": { - "$ref": "#/components/schemas/ParameterInfo" - }, - "returnType": { - "$ref": "#/components/schemas/Type" - }, - "returnTypeCustomAttributes": { - "$ref": "#/components/schemas/ICustomAttributeProvider" - } - }, - "additionalProperties": false - }, - "ModelsBuilder": { - "type": "object", - "properties": { - "mode": { - "$ref": "#/components/schemas/ModelsMode" - }, - "canGenerate": { - "type": "boolean" - }, - "outOfDateModels": { - "type": "boolean" - }, - "lastError": { - "type": "string", - "nullable": true - }, - "version": { - "type": "string", - "nullable": true - }, - "modelsNamespace": { - "type": "string", - "nullable": true - }, - "trackingOutOfDateModels": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "ModelsMode": { - "enum": [ - "Nothing", - "InMemoryAuto", - "SourceCodeManual", - "SourceCodeAuto" - ], - "type": "integer", - "format": "int32" - }, - "Module": { - "type": "object", - "properties": { - "assembly": { - "$ref": "#/components/schemas/Assembly" - }, - "fullyQualifiedName": { - "type": "string", - "nullable": true, - "readOnly": true - }, - "name": { - "type": "string", - "nullable": true, - "readOnly": true - }, - "mdStreamVersion": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "moduleVersionId": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "scopeName": { - "type": "string", - "nullable": true, - "readOnly": true - }, - "moduleHandle": { - "$ref": "#/components/schemas/ModuleHandle" - }, - "customAttributes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomAttributeData" - }, - "nullable": true, - "readOnly": true - }, - "metadataToken": { - "type": "integer", - "format": "int32", - "readOnly": true - } - }, - "additionalProperties": false - }, - "ModuleHandle": { - "type": "object", - "properties": { - "mdStreamVersion": { - "type": "integer", - "format": "int32", - "readOnly": true - } - }, - "additionalProperties": false - }, - "NotFoundResult": { - "type": "object", - "properties": { - "statusCode": { - "type": "integer", - "format": "int32" - } - }, - "additionalProperties": false - }, - "NotificationStyle": { - "enum": [ - "Save", - "Info", - "Error", - "Success", - "Warning" - ], - "type": "integer", - "format": "int32" - }, - "OkResult": { - "type": "object", - "properties": { - "statusCode": { - "type": "integer", - "format": "int32" - } - }, - "additionalProperties": false - }, - "OutOfDateStatus": { - "type": "object", - "properties": { - "status": { - "$ref": "#/components/schemas/OutOfDateType" - } - }, - "additionalProperties": false - }, - "OutOfDateType": { - "enum": [ - "OutOfDate", - "Current", - "Unknown" - ], - "type": "integer", - "format": "int32" - }, - "PagedContentTreeItem": { - "required": [ - "items", - "total" - ], - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64" - }, - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ContentTreeItem" - } - } - }, - "additionalProperties": false - }, - "PagedCulture": { - "required": [ - "items", - "total" - ], - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64" - }, - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Culture" - } - } - }, - "additionalProperties": false - }, - "PagedDictionaryOverview": { - "required": [ - "items", - "total" - ], - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64" - }, - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DictionaryOverview" - } - } - }, - "additionalProperties": false - }, - "PagedDocumentBlueprintTreeItem": { - "required": [ - "items", - "total" - ], - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64" - }, - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DocumentBlueprintTreeItem" - } - } - }, - "additionalProperties": false - }, - "PagedDocumentTreeItem": { - "required": [ - "items", - "total" - ], - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64" - }, - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DocumentTreeItem" - } - } - }, - "additionalProperties": false - }, - "PagedDocumentTypeTreeItem": { - "required": [ - "items", - "total" - ], - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64" - }, - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DocumentTypeTreeItem" - } - } - }, - "additionalProperties": false - }, - "PagedEntityTreeItem": { - "required": [ - "items", - "total" - ], - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64" - }, - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityTreeItem" - } - } - }, - "additionalProperties": false - }, - "PagedFileSystemTreeItem": { - "required": [ - "items", - "total" - ], - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64" - }, - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FileSystemTreeItem" - } - } - }, - "additionalProperties": false - }, - "PagedFolderTreeItem": { - "required": [ - "items", - "total" - ], - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64" - }, - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FolderTreeItem" - } - } - }, - "additionalProperties": false - }, - "PagedHealthCheckGroup": { - "required": [ - "items", - "total" - ], - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64" - }, - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/HealthCheckGroup" - } - } - }, - "additionalProperties": false - }, - "PagedHelpPage": { - "required": [ - "items", - "total" - ], - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64" - }, - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/HelpPage" - } - } - }, - "additionalProperties": false - }, - "PagedIndex": { - "required": [ - "items", - "total" - ], - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64" - }, - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Index" - } - } - }, - "additionalProperties": false - }, - "PagedLanguage": { - "required": [ - "items", - "total" - ], - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64" - }, - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Language" - } - } - }, - "additionalProperties": false - }, - "PagedRecycleBinItem": { - "required": [ - "items", - "total" - ], - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64" - }, - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RecycleBinItem" - } - } - }, - "additionalProperties": false - }, - "PagedRedirectUrl": { - "required": [ - "items", - "total" - ], - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64" - }, - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RedirectUrl" - } - } - }, - "additionalProperties": false - }, - "PagedRelation": { - "required": [ - "items", - "total" - ], - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64" - }, - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Relation" - } - } - }, - "additionalProperties": false - }, - "PagedRelationItem": { - "required": [ - "items", - "total" - ], - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64" - }, - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RelationItem" - } - } - }, - "additionalProperties": false - }, - "PagedSearchResult": { - "required": [ - "items", - "total" - ], - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64" - }, - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SearchResult" - } - } - }, - "additionalProperties": false - }, - "PagedSearcher": { - "required": [ - "items", - "total" - ], - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64" - }, - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Searcher" - } - } - }, - "additionalProperties": false - }, - "PagedTelemetry": { - "required": [ - "items", - "total" - ], - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64" - }, - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Telemetry" - } - } - }, - "additionalProperties": false - }, - "ParameterAttributes": { - "enum": [ - "None", - "In", - "Out", - "Lcid", - "Retval", - "Optional", - "HasDefault", - "HasFieldMarshal", - "Reserved3", - "Reserved4", - "ReservedMask" - ], - "type": "integer", - "format": "int32" - }, - "ParameterInfo": { - "type": "object", - "properties": { - "attributes": { - "$ref": "#/components/schemas/ParameterAttributes" - }, - "member": { - "$ref": "#/components/schemas/MemberInfo" - }, - "name": { - "type": "string", - "nullable": true, - "readOnly": true - }, - "parameterType": { - "$ref": "#/components/schemas/Type" - }, - "position": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "isIn": { - "type": "boolean", - "readOnly": true - }, - "isLcid": { - "type": "boolean", - "readOnly": true - }, - "isOptional": { - "type": "boolean", - "readOnly": true - }, - "isOut": { - "type": "boolean", - "readOnly": true - }, - "isRetval": { - "type": "boolean", - "readOnly": true - }, - "defaultValue": { - "nullable": true, - "readOnly": true - }, - "rawDefaultValue": { - "nullable": true, - "readOnly": true - }, - "hasDefaultValue": { - "type": "boolean", - "readOnly": true - }, - "customAttributes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomAttributeData" - }, - "nullable": true, - "readOnly": true - }, - "metadataToken": { - "type": "integer", - "format": "int32", - "readOnly": true - } - }, - "additionalProperties": false - }, - "ProblemDetails": { - "type": "object", - "properties": { - "type": { - "type": "string", - "nullable": true - }, - "title": { - "type": "string", - "nullable": true - }, - "status": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "detail": { - "type": "string", - "nullable": true - }, - "instance": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": {} - }, - "ProfilingStatus": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "PropertyAttributes": { - "enum": [ - "None", - "SpecialName", - "RTSpecialName", - "HasDefault", - "Reserved2", - "Reserved3", - "Reserved4", - "ReservedMask" - ], - "type": "integer", - "format": "int32" - }, - "PropertyInfo": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true, - "readOnly": true - }, - "declaringType": { - "$ref": "#/components/schemas/Type" - }, - "reflectedType": { - "$ref": "#/components/schemas/Type" - }, - "module": { - "$ref": "#/components/schemas/Module" - }, - "customAttributes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomAttributeData" - }, - "nullable": true, - "readOnly": true - }, - "isCollectible": { - "type": "boolean", - "readOnly": true - }, - "metadataToken": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "memberType": { - "$ref": "#/components/schemas/MemberTypes" - }, - "propertyType": { - "$ref": "#/components/schemas/Type" - }, - "attributes": { - "$ref": "#/components/schemas/PropertyAttributes" - }, - "isSpecialName": { - "type": "boolean", - "readOnly": true - }, - "canRead": { - "type": "boolean", - "readOnly": true - }, - "canWrite": { - "type": "boolean", - "readOnly": true - }, - "getMethod": { - "$ref": "#/components/schemas/MethodInfo" - }, - "setMethod": { - "$ref": "#/components/schemas/MethodInfo" - } - }, - "additionalProperties": false - }, - "RecycleBinItem": { - "type": "object", - "properties": { - "key": { - "type": "string", - "format": "uuid" - }, - "name": { - "type": "string", - "nullable": true - }, - "type": { - "type": "string", - "nullable": true - }, - "icon": { - "type": "string", - "nullable": true - }, - "hasChildren": { - "type": "boolean" - }, - "isContainer": { - "type": "boolean" - }, - "parentKey": { - "type": "string", - "format": "uuid", - "nullable": true - } - }, - "additionalProperties": false - }, - "RedirectStatus": { - "enum": [ - "Enabled", - "Disabled" - ], - "type": "integer", - "format": "int32" - }, - "RedirectUrl": { - "type": "object", - "properties": { - "key": { - "type": "string", - "format": "uuid" - }, - "originalUrl": { - "type": "string", - "nullable": true - }, - "destinationUrl": { - "type": "string", - "nullable": true - }, - "created": { - "type": "string", - "format": "date-time" - }, - "contentKey": { - "type": "string", - "format": "uuid" - }, - "culture": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "RedirectUrlStatus": { - "type": "object", - "properties": { - "status": { - "$ref": "#/components/schemas/RedirectStatus" - }, - "userIsAdmin": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "Relation": { - "type": "object", - "properties": { - "parentId": { - "type": "integer", - "format": "int32" - }, - "parentName": { - "type": "string", - "nullable": true - }, - "childId": { - "type": "integer", - "format": "int32" - }, - "childName": { - "type": "string", - "nullable": true - }, - "createDate": { - "type": "string", - "format": "date-time" - }, - "comment": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "RelationItem": { - "type": "object", - "properties": { - "nodeKey": { - "type": "string", - "format": "uuid" - }, - "nodeName": { - "type": "string", - "nullable": true - }, - "nodeType": { - "type": "string", - "nullable": true - }, - "contentTypeIcon": { - "type": "string", - "nullable": true - }, - "contentTypeAlias": { - "type": "string", - "nullable": true - }, - "contentTypeName": { - "type": "string", - "nullable": true - }, - "relationTypeName": { - "type": "string", - "nullable": true - }, - "relationTypeIsBidirectional": { - "type": "boolean" - }, - "relationTypeIsDependency": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "RuntimeFieldHandle": { - "type": "object", - "properties": { - "value": { - "$ref": "#/components/schemas/IntPtr" - } - }, - "additionalProperties": false - }, - "RuntimeLevel": { - "enum": [ - "Unknown", - "Boot", - "Install", - "Upgrade", - "Run", - "BootFailed" - ], - "type": "integer", - "format": "int32" - }, - "RuntimeMethodHandle": { - "type": "object", - "properties": { - "value": { - "$ref": "#/components/schemas/IntPtr" - } - }, - "additionalProperties": false - }, - "RuntimeTypeHandle": { - "type": "object", - "properties": { - "value": { - "$ref": "#/components/schemas/IntPtr" - } - }, - "additionalProperties": false - }, - "SearchResult": { - "type": "object", - "properties": { - "id": { - "type": "string", - "nullable": true - }, - "score": { - "type": "number", - "format": "float" - }, - "fieldCount": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "fields": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Field" - }, - "nullable": true - } - }, - "additionalProperties": false - }, - "Searcher": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "SecurityRuleSet": { - "enum": [ - "None", - "Level1", - "Level2" - ], - "type": "integer", - "format": "int32" - }, - "ServerStatus": { - "type": "object", - "properties": { - "serverStatus": { - "$ref": "#/components/schemas/RuntimeLevel" - } - }, - "additionalProperties": false - }, - "StatusResultType": { - "enum": [ - "Success", - "Warning", - "Error", - "Info" - ], - "type": "integer", - "format": "int32" - }, - "StructLayoutAttribute": { - "type": "object", - "properties": { - "typeId": { - "nullable": true, - "readOnly": true - }, - "value": { - "$ref": "#/components/schemas/LayoutKind" - } - }, - "additionalProperties": false - }, - "Telemetry": { - "type": "object", - "properties": { - "telemetryLevel": { - "$ref": "#/components/schemas/TelemetryLevel" - } - }, - "additionalProperties": false - }, - "TelemetryLevel": { - "enum": [ - "Minimal", - "Basic", - "Detailed" - ], - "type": "integer", - "format": "int32" - }, - "Type": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true, - "readOnly": true - }, - "customAttributes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomAttributeData" - }, - "nullable": true, - "readOnly": true - }, - "isCollectible": { - "type": "boolean", - "readOnly": true - }, - "metadataToken": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "isInterface": { - "type": "boolean", - "readOnly": true - }, - "memberType": { - "$ref": "#/components/schemas/MemberTypes" - }, - "namespace": { - "type": "string", - "nullable": true, - "readOnly": true - }, - "assemblyQualifiedName": { - "type": "string", - "nullable": true, - "readOnly": true - }, - "fullName": { - "type": "string", - "nullable": true, - "readOnly": true - }, - "assembly": { - "$ref": "#/components/schemas/Assembly" - }, - "module": { - "$ref": "#/components/schemas/Module" - }, - "isNested": { - "type": "boolean", - "readOnly": true - }, - "declaringType": { - "$ref": "#/components/schemas/Type" - }, - "declaringMethod": { - "$ref": "#/components/schemas/MethodBase" - }, - "reflectedType": { - "$ref": "#/components/schemas/Type" - }, - "underlyingSystemType": { - "$ref": "#/components/schemas/Type" - }, - "isTypeDefinition": { - "type": "boolean", - "readOnly": true - }, - "isArray": { - "type": "boolean", - "readOnly": true - }, - "isByRef": { - "type": "boolean", - "readOnly": true - }, - "isPointer": { - "type": "boolean", - "readOnly": true - }, - "isConstructedGenericType": { - "type": "boolean", - "readOnly": true - }, - "isGenericParameter": { - "type": "boolean", - "readOnly": true - }, - "isGenericTypeParameter": { - "type": "boolean", - "readOnly": true - }, - "isGenericMethodParameter": { - "type": "boolean", - "readOnly": true - }, - "isGenericType": { - "type": "boolean", - "readOnly": true - }, - "isGenericTypeDefinition": { - "type": "boolean", - "readOnly": true - }, - "isSZArray": { - "type": "boolean", - "readOnly": true - }, - "isVariableBoundArray": { - "type": "boolean", - "readOnly": true - }, - "isByRefLike": { - "type": "boolean", - "readOnly": true - }, - "hasElementType": { - "type": "boolean", - "readOnly": true - }, - "genericTypeArguments": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Type" - }, - "nullable": true, - "readOnly": true - }, - "genericParameterPosition": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "genericParameterAttributes": { - "$ref": "#/components/schemas/GenericParameterAttributes" - }, - "attributes": { - "$ref": "#/components/schemas/TypeAttributes" - }, - "isAbstract": { - "type": "boolean", - "readOnly": true - }, - "isImport": { - "type": "boolean", - "readOnly": true - }, - "isSealed": { - "type": "boolean", - "readOnly": true - }, - "isSpecialName": { - "type": "boolean", - "readOnly": true - }, - "isClass": { - "type": "boolean", - "readOnly": true - }, - "isNestedAssembly": { - "type": "boolean", - "readOnly": true - }, - "isNestedFamANDAssem": { - "type": "boolean", - "readOnly": true - }, - "isNestedFamily": { - "type": "boolean", - "readOnly": true - }, - "isNestedFamORAssem": { - "type": "boolean", - "readOnly": true - }, - "isNestedPrivate": { - "type": "boolean", - "readOnly": true - }, - "isNestedPublic": { - "type": "boolean", - "readOnly": true - }, - "isNotPublic": { - "type": "boolean", - "readOnly": true - }, - "isPublic": { - "type": "boolean", - "readOnly": true - }, - "isAutoLayout": { - "type": "boolean", - "readOnly": true - }, - "isExplicitLayout": { - "type": "boolean", - "readOnly": true - }, - "isLayoutSequential": { - "type": "boolean", - "readOnly": true - }, - "isAnsiClass": { - "type": "boolean", - "readOnly": true - }, - "isAutoClass": { - "type": "boolean", - "readOnly": true - }, - "isUnicodeClass": { - "type": "boolean", - "readOnly": true - }, - "isCOMObject": { - "type": "boolean", - "readOnly": true - }, - "isContextful": { - "type": "boolean", - "readOnly": true - }, - "isEnum": { - "type": "boolean", - "readOnly": true - }, - "isMarshalByRef": { - "type": "boolean", - "readOnly": true - }, - "isPrimitive": { - "type": "boolean", - "readOnly": true - }, - "isValueType": { - "type": "boolean", - "readOnly": true - }, - "isSignatureType": { - "type": "boolean", - "readOnly": true - }, - "isSecurityCritical": { - "type": "boolean", - "readOnly": true - }, - "isSecuritySafeCritical": { - "type": "boolean", - "readOnly": true - }, - "isSecurityTransparent": { - "type": "boolean", - "readOnly": true - }, - "structLayoutAttribute": { - "$ref": "#/components/schemas/StructLayoutAttribute" - }, - "typeInitializer": { - "$ref": "#/components/schemas/ConstructorInfo" - }, - "typeHandle": { - "$ref": "#/components/schemas/RuntimeTypeHandle" - }, - "guid": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "baseType": { - "$ref": "#/components/schemas/Type" - }, - "isSerializable": { - "type": "boolean", - "readOnly": true - }, - "containsGenericParameters": { - "type": "boolean", - "readOnly": true - }, - "isVisible": { - "type": "boolean", - "readOnly": true - } - }, - "additionalProperties": false - }, - "TypeAttributes": { - "enum": [ - "NotPublic", - "AutoLayout", - "AnsiClass", - "Class", - "Public", - "NestedPublic", - "NestedPrivate", - "NestedFamily", - "NestedAssembly", - "NestedFamANDAssem", - "NestedFamORAssem", - "VisibilityMask", - "SequentialLayout", - "ExplicitLayout", - "LayoutMask", - "Interface", - "ClassSemanticsMask", - "Abstract", - "Sealed", - "SpecialName", - "RTSpecialName", - "Import", - "Serializable", - "WindowsRuntime", - "UnicodeClass", - "AutoClass", - "CustomFormatClass", - "StringFormatMask", - "HasSecurity", - "ReservedMask", - "BeforeFieldInit", - "CustomFormatMask" - ], - "type": "integer", - "format": "int32" - }, - "TypeInfo": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true, - "readOnly": true - }, - "customAttributes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomAttributeData" - }, - "nullable": true, - "readOnly": true - }, - "isCollectible": { - "type": "boolean", - "readOnly": true - }, - "metadataToken": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "isInterface": { - "type": "boolean", - "readOnly": true - }, - "memberType": { - "$ref": "#/components/schemas/MemberTypes" - }, - "namespace": { - "type": "string", - "nullable": true, - "readOnly": true - }, - "assemblyQualifiedName": { - "type": "string", - "nullable": true, - "readOnly": true - }, - "fullName": { - "type": "string", - "nullable": true, - "readOnly": true - }, - "assembly": { - "$ref": "#/components/schemas/Assembly" - }, - "module": { - "$ref": "#/components/schemas/Module" - }, - "isNested": { - "type": "boolean", - "readOnly": true - }, - "declaringType": { - "$ref": "#/components/schemas/Type" - }, - "declaringMethod": { - "$ref": "#/components/schemas/MethodBase" - }, - "reflectedType": { - "$ref": "#/components/schemas/Type" - }, - "underlyingSystemType": { - "$ref": "#/components/schemas/Type" - }, - "isTypeDefinition": { - "type": "boolean", - "readOnly": true - }, - "isArray": { - "type": "boolean", - "readOnly": true - }, - "isByRef": { - "type": "boolean", - "readOnly": true - }, - "isPointer": { - "type": "boolean", - "readOnly": true - }, - "isConstructedGenericType": { - "type": "boolean", - "readOnly": true - }, - "isGenericParameter": { - "type": "boolean", - "readOnly": true - }, - "isGenericTypeParameter": { - "type": "boolean", - "readOnly": true - }, - "isGenericMethodParameter": { - "type": "boolean", - "readOnly": true - }, - "isGenericType": { - "type": "boolean", - "readOnly": true - }, - "isGenericTypeDefinition": { - "type": "boolean", - "readOnly": true - }, - "isSZArray": { - "type": "boolean", - "readOnly": true - }, - "isVariableBoundArray": { - "type": "boolean", - "readOnly": true - }, - "isByRefLike": { - "type": "boolean", - "readOnly": true - }, - "hasElementType": { - "type": "boolean", - "readOnly": true - }, - "genericTypeArguments": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Type" - }, - "nullable": true, - "readOnly": true - }, - "genericParameterPosition": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "genericParameterAttributes": { - "$ref": "#/components/schemas/GenericParameterAttributes" - }, - "attributes": { - "$ref": "#/components/schemas/TypeAttributes" - }, - "isAbstract": { - "type": "boolean", - "readOnly": true - }, - "isImport": { - "type": "boolean", - "readOnly": true - }, - "isSealed": { - "type": "boolean", - "readOnly": true - }, - "isSpecialName": { - "type": "boolean", - "readOnly": true - }, - "isClass": { - "type": "boolean", - "readOnly": true - }, - "isNestedAssembly": { - "type": "boolean", - "readOnly": true - }, - "isNestedFamANDAssem": { - "type": "boolean", - "readOnly": true - }, - "isNestedFamily": { - "type": "boolean", - "readOnly": true - }, - "isNestedFamORAssem": { - "type": "boolean", - "readOnly": true - }, - "isNestedPrivate": { - "type": "boolean", - "readOnly": true - }, - "isNestedPublic": { - "type": "boolean", - "readOnly": true - }, - "isNotPublic": { - "type": "boolean", - "readOnly": true - }, - "isPublic": { - "type": "boolean", - "readOnly": true - }, - "isAutoLayout": { - "type": "boolean", - "readOnly": true - }, - "isExplicitLayout": { - "type": "boolean", - "readOnly": true - }, - "isLayoutSequential": { - "type": "boolean", - "readOnly": true - }, - "isAnsiClass": { - "type": "boolean", - "readOnly": true - }, - "isAutoClass": { - "type": "boolean", - "readOnly": true - }, - "isUnicodeClass": { - "type": "boolean", - "readOnly": true - }, - "isCOMObject": { - "type": "boolean", - "readOnly": true - }, - "isContextful": { - "type": "boolean", - "readOnly": true - }, - "isEnum": { - "type": "boolean", - "readOnly": true - }, - "isMarshalByRef": { - "type": "boolean", - "readOnly": true - }, - "isPrimitive": { - "type": "boolean", - "readOnly": true - }, - "isValueType": { - "type": "boolean", - "readOnly": true - }, - "isSignatureType": { - "type": "boolean", - "readOnly": true - }, - "isSecurityCritical": { - "type": "boolean", - "readOnly": true - }, - "isSecuritySafeCritical": { - "type": "boolean", - "readOnly": true - }, - "isSecurityTransparent": { - "type": "boolean", - "readOnly": true - }, - "structLayoutAttribute": { - "$ref": "#/components/schemas/StructLayoutAttribute" - }, - "typeInitializer": { - "$ref": "#/components/schemas/ConstructorInfo" - }, - "typeHandle": { - "$ref": "#/components/schemas/RuntimeTypeHandle" - }, - "guid": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "baseType": { - "$ref": "#/components/schemas/Type" - }, - "isSerializable": { - "type": "boolean", - "readOnly": true - }, - "containsGenericParameters": { - "type": "boolean", - "readOnly": true - }, - "isVisible": { - "type": "boolean", - "readOnly": true - }, - "genericTypeParameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Type" - }, - "nullable": true, - "readOnly": true - }, - "declaredConstructors": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ConstructorInfo" - }, - "nullable": true, - "readOnly": true - }, - "declaredEvents": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EventInfo" - }, - "nullable": true, - "readOnly": true - }, - "declaredFields": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FieldInfo" - }, - "nullable": true, - "readOnly": true - }, - "declaredMembers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MemberInfo" - }, - "nullable": true, - "readOnly": true - }, - "declaredMethods": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MethodInfo" - }, - "nullable": true, - "readOnly": true - }, - "declaredNestedTypes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TypeInfo" - }, - "nullable": true, - "readOnly": true - }, - "declaredProperties": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PropertyInfo" - }, - "nullable": true, - "readOnly": true - }, - "implementedInterfaces": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Type" - }, - "nullable": true, - "readOnly": true - } - }, - "additionalProperties": false - }, - "UpgradeSettings": { - "type": "object", - "properties": { - "currentState": { - "type": "string", - "nullable": true - }, - "newState": { - "type": "string", - "nullable": true - }, - "newVersion": { - "type": "string", - "nullable": true - }, - "oldVersion": { - "type": "string", - "nullable": true - }, - "reportUrl": { - "type": "string", - "nullable": true, - "readOnly": true - } - }, - "additionalProperties": false - }, - "UserInstall": { - "required": [ - "email", - "name", - "password" - ], - "type": "object", - "properties": { - "name": { - "maxLength": 255, - "minLength": 0, - "type": "string" - }, - "email": { - "minLength": 1, - "type": "string", - "format": "email" - }, - "password": { - "minLength": 1, - "type": "string" - }, - "subscribeToNewsletter": { - "type": "boolean", - "readOnly": true - } - }, - "additionalProperties": false - }, - "UserSettings": { - "type": "object", - "properties": { - "minCharLength": { - "type": "integer", - "format": "int32" - }, - "minNonAlphaNumericLength": { - "type": "integer", - "format": "int32" - }, - "consentLevels": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ConsentLevel" - }, - "nullable": true - } - }, - "additionalProperties": false - }, - "Version": { - "type": "object", - "properties": { - "version": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - } - }, - "securitySchemes": { - "OAuth": { - "type": "oauth2", - "description": "Umbraco Authentication", - "flows": { - "authorizationCode": { - "authorizationUrl": "/umbraco/management/api/v1.0/security/back-office/authorize", - "tokenUrl": "/umbraco/management/api/v1.0/security/back-office/token", - "scopes": {} - } - } - } - } - }, - "security": [ - { - "OAuth": [] - } - ] -} diff --git a/src/Umbraco.Cms.Api.Management/OpenApi/EnumSchemaFilter.cs b/src/Umbraco.Cms.Api.Management/OpenApi/EnumSchemaFilter.cs deleted file mode 100644 index df78dc080d..0000000000 --- a/src/Umbraco.Cms.Api.Management/OpenApi/EnumSchemaFilter.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System.Reflection; -using System.Runtime.Serialization; -using Microsoft.OpenApi.Any; -using Microsoft.OpenApi.Models; -using Swashbuckle.AspNetCore.SwaggerGen; - -namespace Umbraco.Cms.Api.Management.OpenApi; - -public class EnumSchemaFilter : ISchemaFilter -{ - public void Apply(OpenApiSchema model, SchemaFilterContext context) - { - if (context.Type.IsEnum) - { - model.Enum.Clear(); - foreach (var name in Enum.GetNames(context.Type)) - { - var actualName = context.Type.GetField(name)?.GetCustomAttribute()?.Value ?? name; - model.Enum.Add(new OpenApiString(actualName)); - } - } - } -} diff --git a/src/Umbraco.Cms.Api.Management/OpenApi/MimeTypeDocumentFilter.cs b/src/Umbraco.Cms.Api.Management/OpenApi/MimeTypeDocumentFilter.cs deleted file mode 100644 index 15a1bda815..0000000000 --- a/src/Umbraco.Cms.Api.Management/OpenApi/MimeTypeDocumentFilter.cs +++ /dev/null @@ -1,33 +0,0 @@ -using Microsoft.OpenApi.Models; -using Swashbuckle.AspNetCore.SwaggerGen; -using Umbraco.Extensions; - -namespace Umbraco.Cms.Api.Management.OpenApi; - -/// -/// This filter explicitly removes all other mime types than application/json from the produced OpenAPI document -/// -public class MimeTypeDocumentFilter : IDocumentFilter -{ - public void Apply(OpenApiDocument swaggerDoc, DocumentFilterContext context) - { - OpenApiOperation[] operations = swaggerDoc.Paths - .SelectMany(path => path.Value.Operations.Values) - .ToArray(); - - void RemoveUnwantedMimeTypes(IDictionary content) => - content.RemoveAll(r => r.Key != "application/json"); - - OpenApiRequestBody[] requestBodies = operations.Select(operation => operation.RequestBody).WhereNotNull().ToArray(); - foreach (OpenApiRequestBody requestBody in requestBodies) - { - RemoveUnwantedMimeTypes(requestBody.Content); - } - - OpenApiResponse[] responses = operations.SelectMany(operation => operation.Responses.Values).WhereNotNull().ToArray(); - foreach (OpenApiResponse response in responses) - { - RemoveUnwantedMimeTypes(response.Content); - } - } -} diff --git a/src/Umbraco.Cms.Api.Management/OpenApi/OperationIdRegexes.cs b/src/Umbraco.Cms.Api.Management/OpenApi/OperationIdRegexes.cs deleted file mode 100644 index 4b764ceaa3..0000000000 --- a/src/Umbraco.Cms.Api.Management/OpenApi/OperationIdRegexes.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System.Text.RegularExpressions; - -namespace Umbraco.Cms.Api.Management.OpenApi; - -/// -/// This is the regexes used to generate the operation IDs, the benefit of this being partial with GeneratedRegex -/// source generators is that it will be pre-compiled at startup -/// See: https://devblogs.microsoft.com/dotnet/regular-expression-improvements-in-dotnet-7/#source-generation for more info. -/// -internal static partial class OperationIdRegexes -{ - // Your IDE may be showing errors here, this is because it's a new dotnet 7 feature (it's fixed in the EAP of Rider) - [GeneratedRegex(".*?\\/v[1-9]+/")] - public static partial Regex VersionPrefixRegex(); - - [GeneratedRegex("\\{(.*?)\\:?\\}")] - public static partial Regex TemplatePlaceholdersRegex(); - - [GeneratedRegex("[\\/\\-](\\w{1})")] - public static partial Regex ToCamelCaseRegex(); -} diff --git a/src/Umbraco.Cms.Api.Management/OpenApi/SchemaIdGenerator.cs b/src/Umbraco.Cms.Api.Management/OpenApi/SchemaIdGenerator.cs deleted file mode 100644 index a23ead7acb..0000000000 --- a/src/Umbraco.Cms.Api.Management/OpenApi/SchemaIdGenerator.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System.Text.RegularExpressions; -using Umbraco.Extensions; - -namespace Umbraco.Cms.Api.Management.OpenApi; - -internal static class SchemaIdGenerator -{ - public static string Generate(Type type) - { - string SanitizedTypeName(Type t) => t.Name - // first grab the "non generic" part of any generic type name (i.e. "PagedViewModel`1" becomes "PagedViewModel") - .Split('`').First() - // then remove the "ViewModel" postfix from type names - .TrimEnd("ViewModel"); - - var name = SanitizedTypeName(type); - if (type.IsGenericType) - { - // append the generic type names, ultimately turning i.e. "PagedViewModel" into "PagedRelationItem" - name += string.Join(string.Empty, type.GenericTypeArguments.Select(SanitizedTypeName)); - } - - // make absolutely sure we don't pass any invalid named by removing all non-word chars - return Regex.Replace(name, @"[^\w]", string.Empty); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Routing/VersionedApiBackOfficeRouteAttribute.cs b/src/Umbraco.Cms.Api.Management/Routing/VersionedApiBackOfficeRouteAttribute.cs deleted file mode 100644 index b5cda38f1d..0000000000 --- a/src/Umbraco.Cms.Api.Management/Routing/VersionedApiBackOfficeRouteAttribute.cs +++ /dev/null @@ -1,11 +0,0 @@ -using Umbraco.Cms.Api.Common.Routing; - -namespace Umbraco.Cms.Api.Management.Routing; - -public class VersionedApiBackOfficeRouteAttribute : BackOfficeRouteAttribute -{ - public VersionedApiBackOfficeRouteAttribute(string template) - : base($"management/api/v{{version:apiVersion}}/{template.TrimStart('/')}") - { - } -} diff --git a/src/Umbraco.Cms.Api.Management/Security/BackOfficeApplicationManager.cs b/src/Umbraco.Cms.Api.Management/Security/BackOfficeApplicationManager.cs deleted file mode 100644 index d062edbc34..0000000000 --- a/src/Umbraco.Cms.Api.Management/Security/BackOfficeApplicationManager.cs +++ /dev/null @@ -1,131 +0,0 @@ -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.Hosting; -using Microsoft.Extensions.Options; -using OpenIddict.Abstractions; -using Umbraco.New.Cms.Core; -using Umbraco.New.Cms.Core.Models.Configuration; -using Umbraco.New.Cms.Infrastructure.Security; - -namespace Umbraco.Cms.Api.Management.Security; - -public class BackOfficeApplicationManager : IBackOfficeApplicationManager -{ - private readonly IOpenIddictApplicationManager _applicationManager; - private readonly IWebHostEnvironment _webHostEnvironment; - private readonly Uri? _backOfficeHost; - - public BackOfficeApplicationManager( - IOpenIddictApplicationManager applicationManager, - IWebHostEnvironment webHostEnvironment, - IOptionsMonitor securitySettingsMonitor) - { - _applicationManager = applicationManager; - _webHostEnvironment = webHostEnvironment; - _backOfficeHost = securitySettingsMonitor.CurrentValue.BackOfficeHost; - } - - public async Task EnsureBackOfficeApplicationAsync(Uri backOfficeUrl, CancellationToken cancellationToken = default) - { - if (backOfficeUrl.IsAbsoluteUri is false) - { - throw new ArgumentException($"Expected an absolute URL, got: {backOfficeUrl}", nameof(backOfficeUrl)); - } - - await CreateOrUpdate( - new OpenIddictApplicationDescriptor - { - DisplayName = "Umbraco back-office access", - ClientId = Constants.OauthClientIds.BackOffice, - RedirectUris = - { - CallbackUrlFor(_backOfficeHost ?? backOfficeUrl, "/umbraco/login/callback/") - }, - Type = OpenIddictConstants.ClientTypes.Public, - Permissions = - { - OpenIddictConstants.Permissions.Endpoints.Authorization, - OpenIddictConstants.Permissions.Endpoints.Token, - OpenIddictConstants.Permissions.GrantTypes.AuthorizationCode, - OpenIddictConstants.Permissions.GrantTypes.RefreshToken, - OpenIddictConstants.Permissions.ResponseTypes.Code - } - }, - cancellationToken); - - if (_webHostEnvironment.IsProduction()) - { - await Delete(Constants.OauthClientIds.Swagger, cancellationToken); - await Delete(Constants.OauthClientIds.Postman, cancellationToken); - } - else - { - await CreateOrUpdate( - new OpenIddictApplicationDescriptor - { - DisplayName = "Umbraco Swagger access", - ClientId = Constants.OauthClientIds.Swagger, - RedirectUris = - { - CallbackUrlFor(backOfficeUrl, "/umbraco/swagger/oauth2-redirect.html") - }, - Type = OpenIddictConstants.ClientTypes.Public, - Permissions = - { - OpenIddictConstants.Permissions.Endpoints.Authorization, - OpenIddictConstants.Permissions.Endpoints.Token, - OpenIddictConstants.Permissions.GrantTypes.AuthorizationCode, - OpenIddictConstants.Permissions.ResponseTypes.Code - } - }, - cancellationToken); - - await CreateOrUpdate( - new OpenIddictApplicationDescriptor - { - DisplayName = "Umbraco Postman access", - ClientId = Constants.OauthClientIds.Postman, - RedirectUris = - { - new Uri("https://oauth.pstmn.io/v1/callback") - }, - Type = OpenIddictConstants.ClientTypes.Public, - Permissions = - { - OpenIddictConstants.Permissions.Endpoints.Authorization, - OpenIddictConstants.Permissions.Endpoints.Token, - OpenIddictConstants.Permissions.GrantTypes.AuthorizationCode, - OpenIddictConstants.Permissions.ResponseTypes.Code - } - }, - cancellationToken); - } - } - - private async Task CreateOrUpdate(OpenIddictApplicationDescriptor clientDescriptor, CancellationToken cancellationToken) - { - var identifier = clientDescriptor.ClientId ?? - throw new ApplicationException($"ClientId is missing for application: {clientDescriptor.DisplayName ?? "(no name)"}"); - var client = await _applicationManager.FindByClientIdAsync(identifier, cancellationToken); - if (client is null) - { - await _applicationManager.CreateAsync(clientDescriptor, cancellationToken); - } - else - { - await _applicationManager.UpdateAsync(client, clientDescriptor, cancellationToken); - } - } - - private async Task Delete(string identifier, CancellationToken cancellationToken) - { - var client = await _applicationManager.FindByClientIdAsync(identifier, cancellationToken); - if (client is null) - { - return; - } - - await _applicationManager.DeleteAsync(client, cancellationToken); - } - - private static Uri CallbackUrlFor(Uri url, string relativePath) => new Uri( $"{url.GetLeftPart(UriPartial.Authority)}/{relativePath.TrimStart(Core.Constants.CharArrays.ForwardSlash)}"); -} diff --git a/src/Umbraco.Cms.Api.Management/Serialization/ISystemTextJsonSerializer.cs b/src/Umbraco.Cms.Api.Management/Serialization/ISystemTextJsonSerializer.cs deleted file mode 100644 index 8ec90b6740..0000000000 --- a/src/Umbraco.Cms.Api.Management/Serialization/ISystemTextJsonSerializer.cs +++ /dev/null @@ -1,7 +0,0 @@ -using Umbraco.Cms.Core.Serialization; - -namespace Umbraco.Cms.Api.Management.Serialization; - -public interface ISystemTextJsonSerializer : IJsonSerializer -{ -} diff --git a/src/Umbraco.Cms.Api.Management/Serialization/SystemTextJsonSerializer.cs b/src/Umbraco.Cms.Api.Management/Serialization/SystemTextJsonSerializer.cs deleted file mode 100644 index fce9df39cd..0000000000 --- a/src/Umbraco.Cms.Api.Management/Serialization/SystemTextJsonSerializer.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System.Text.Json; - -namespace Umbraco.Cms.Api.Management.Serialization; - -public class SystemTextJsonSerializer : ISystemTextJsonSerializer -{ - private JsonSerializerOptions _jsonSerializerOptions; - public SystemTextJsonSerializer() - { - _jsonSerializerOptions = new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase }; - } - public string Serialize(object? input) => JsonSerializer.Serialize(input, _jsonSerializerOptions); - - public T? Deserialize(string input) => JsonSerializer.Deserialize(input, _jsonSerializerOptions); - - public T? DeserializeSubset(string input, string key) => throw new NotSupportedException(); -} diff --git a/src/Umbraco.Cms.Api.Management/Services/Entities/IUserStartNodeEntitiesService.cs b/src/Umbraco.Cms.Api.Management/Services/Entities/IUserStartNodeEntitiesService.cs deleted file mode 100644 index 0a00d2e963..0000000000 --- a/src/Umbraco.Cms.Api.Management/Services/Entities/IUserStartNodeEntitiesService.cs +++ /dev/null @@ -1,42 +0,0 @@ -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Models.Entities; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Models.Entities; - -namespace Umbraco.Cms.Api.Management.Services.Entities; - -public interface IUserStartNodeEntitiesService -{ - /// - /// Calculates the applicable root entities for a given object type for users without root access. - /// - /// The object type. - /// The calculated start node IDs for the user. - /// A list of root entities for the user. - /// - /// The returned entities may include entities that outside of the user start node scope, but are needed to - /// for browsing to the actual user start nodes. These entities will be marked as "no access" entities. - /// - IEnumerable RootUserAccessEntities(UmbracoObjectTypes umbracoObjectType, int[] userStartNodeIds); - - /// - /// Calculates the applicable child entities from a list of candidate child entities for users without root access. - /// - /// The candidate child entities to filter (i.e. entities fetched with ). - /// The calculated start node paths for the user. - /// A list of child entities applicable entities for the user. - /// - /// The returned entities may include entities that outside of the user start node scope, but are needed to - /// for browsing to the actual user start nodes. These entities will be marked as "no access" entities. - /// Some candidate entities may be filtered out if they are not applicable for the user scope. - /// - IEnumerable ChildUserAccessEntities(IEnumerable candidateChildren, string[] userStartNodePaths); - - /// - /// Calculates the access level of a collection of entities for users without root access. - /// - /// The entities. - /// The calculated start node paths for the user. - /// The access level for each entity. - IEnumerable UserAccessEntities(IEnumerable entities, string[] userStartNodePaths); -} diff --git a/src/Umbraco.Cms.Api.Management/Services/Entities/UserStartNodeEntitiesService.cs b/src/Umbraco.Cms.Api.Management/Services/Entities/UserStartNodeEntitiesService.cs deleted file mode 100644 index be309815d7..0000000000 --- a/src/Umbraco.Cms.Api.Management/Services/Entities/UserStartNodeEntitiesService.cs +++ /dev/null @@ -1,76 +0,0 @@ -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Models.Entities; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Models.Entities; -using Umbraco.Extensions; - -namespace Umbraco.Cms.Api.Management.Services.Entities; - -public class UserStartNodeEntitiesService : IUserStartNodeEntitiesService -{ - private readonly IEntityService _entityService; - - public UserStartNodeEntitiesService(IEntityService entityService) => _entityService = entityService; - - /// - public IEnumerable RootUserAccessEntities(UmbracoObjectTypes umbracoObjectType, int[] userStartNodeIds) - { - // root entities for users without root access should include: - // - the start nodes that are actual root entities (level == 1) - // - the root level ancestors to the rest of the start nodes (required for browsing to the actual start nodes - will be marked as "no access") - IEntitySlim[] userStartEntities = _entityService.GetAll(umbracoObjectType, userStartNodeIds).ToArray(); - - // find the start nodes that are at root level (level == 1) - IEntitySlim[] allowedTopmostEntities = userStartEntities.Where(entity => entity.Level == 1).ToArray(); - - // find the root level ancestors of the rest of the start nodes, and add those as well - var nonAllowedTopmostEntityIds = userStartEntities.Except(allowedTopmostEntities) - .Select(entity => int.TryParse(entity.Path.Split(Constants.CharArrays.Comma).Skip(1).FirstOrDefault(), out var id) ? id : 0) - .Where(id => id > 0) - .ToArray(); - IEntitySlim[] nonAllowedTopmostEntities = nonAllowedTopmostEntityIds.Any() - ? _entityService.GetAll(umbracoObjectType, nonAllowedTopmostEntityIds).ToArray() - : Array.Empty(); - - return allowedTopmostEntities - .Select(entity => new UserAccessEntity(entity, true)) - .Union( - nonAllowedTopmostEntities - .Select(entity => new UserAccessEntity(entity, false))) - .ToArray(); - } - - /// - public IEnumerable ChildUserAccessEntities(IEnumerable candidateChildren, string[] userStartNodePaths) - // child entities for users without root access should include: - // - children that are descendant-or-self of a user start node - // - children that are ancestors of a user start node (required for browsing to the actual start nodes - will be marked as "no access") - // all other candidate children should be discarded - => candidateChildren.Select(child => - { - // is descendant-or-self of a start node? - if (IsDescendantOrSelf(child, userStartNodePaths)) - { - return new UserAccessEntity(child, true); - } - - // is ancestor of a start node? - if (userStartNodePaths.Any(path => path.StartsWith(child.Path))) - { - return new UserAccessEntity(child, false); - } - - return null; - }).WhereNotNull().ToArray(); - - /// - public IEnumerable UserAccessEntities(IEnumerable entities, string[] userStartNodePaths) - // entities for users without root access should include: - // - entities that are descendant-or-self of a user start node as regular entities - // - all other entities as "no access" entities - => entities.Select(entity => new UserAccessEntity(entity, IsDescendantOrSelf(entity, userStartNodePaths))).ToArray(); - - private static bool IsDescendantOrSelf(IEntitySlim child, string[] userStartNodePaths) - => userStartNodePaths.Any(path => child.Path.StartsWith(path)); -} diff --git a/src/Umbraco.Cms.Api.Management/Services/ExamineManagerService.cs b/src/Umbraco.Cms.Api.Management/Services/ExamineManagerService.cs deleted file mode 100644 index ce48560a48..0000000000 --- a/src/Umbraco.Cms.Api.Management/Services/ExamineManagerService.cs +++ /dev/null @@ -1,23 +0,0 @@ -using Examine; - -namespace Umbraco.Cms.Api.Management.Services; - -public class ExamineManagerService : IExamineManagerService -{ - private readonly IExamineManager _examineManager; - - public ExamineManagerService(IExamineManager examineManager) => _examineManager = examineManager; - - public bool TryFindSearcher(string searcherName, out ISearcher searcher) - { - // try to get the searcher from the indexes - if (!_examineManager.TryGetIndex(searcherName, out IIndex index)) - { - // if we didn't find anything try to find it by an explicitly declared searcher - return _examineManager.TryGetSearcher(searcherName, out searcher); - } - - searcher = index.Searcher; - return true; - } -} diff --git a/src/Umbraco.Cms.Api.Management/Services/IExamineManagerService.cs b/src/Umbraco.Cms.Api.Management/Services/IExamineManagerService.cs deleted file mode 100644 index d4be7da2a8..0000000000 --- a/src/Umbraco.Cms.Api.Management/Services/IExamineManagerService.cs +++ /dev/null @@ -1,8 +0,0 @@ -using Examine; - -namespace Umbraco.Cms.Api.Management.Services; - -public interface IExamineManagerService -{ - bool TryFindSearcher(string searcherName, out ISearcher searcher); -} diff --git a/src/Umbraco.Cms.Api.Management/Services/IJsonPatchService.cs b/src/Umbraco.Cms.Api.Management/Services/IJsonPatchService.cs deleted file mode 100644 index 7cf951bcc4..0000000000 --- a/src/Umbraco.Cms.Api.Management/Services/IJsonPatchService.cs +++ /dev/null @@ -1,9 +0,0 @@ -using Json.Patch; -using Umbraco.Cms.Api.Management.ViewModels.JsonPatch; - -namespace Umbraco.Cms.Api.Management.Services; - -public interface IJsonPatchService -{ - PatchResult? Patch(JsonPatchViewModel[] patchViewModel, object objectToPatch); -} diff --git a/src/Umbraco.Cms.Api.Management/Services/ILoadDictionaryItemService.cs b/src/Umbraco.Cms.Api.Management/Services/ILoadDictionaryItemService.cs deleted file mode 100644 index 9cd6357ecd..0000000000 --- a/src/Umbraco.Cms.Api.Management/Services/ILoadDictionaryItemService.cs +++ /dev/null @@ -1,8 +0,0 @@ -using Umbraco.Cms.Core.Models; - -namespace Umbraco.Cms.Api.Management.Services; - -public interface ILoadDictionaryItemService -{ - IDictionaryItem Load(string filePath, int? parentId); -} diff --git a/src/Umbraco.Cms.Api.Management/Services/IUploadFileService.cs b/src/Umbraco.Cms.Api.Management/Services/IUploadFileService.cs deleted file mode 100644 index 3e632217dd..0000000000 --- a/src/Umbraco.Cms.Api.Management/Services/IUploadFileService.cs +++ /dev/null @@ -1,9 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Umbraco.Cms.Api.Management.Models; - -namespace Umbraco.Cms.Api.Management.Services; - -public interface IUploadFileService -{ - FormFileUploadResult TryLoad(IFormFile file); -} diff --git a/src/Umbraco.Cms.Api.Management/Services/JsonPatchService.cs b/src/Umbraco.Cms.Api.Management/Services/JsonPatchService.cs deleted file mode 100644 index af10432492..0000000000 --- a/src/Umbraco.Cms.Api.Management/Services/JsonPatchService.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System.Text.Json.Nodes; -using Json.Patch; -using Umbraco.Cms.Api.Management.Serialization; -using Umbraco.Cms.Api.Management.ViewModels.JsonPatch; - -namespace Umbraco.Cms.Api.Management.Services; - -public class JsonPatchService : IJsonPatchService -{ - private readonly ISystemTextJsonSerializer _systemTextJsonSerializer; - - public JsonPatchService(ISystemTextJsonSerializer systemTextJsonSerializer) => _systemTextJsonSerializer = systemTextJsonSerializer; - - public PatchResult? Patch(JsonPatchViewModel[] patchViewModel, object objectToPatch) - { - var patchString = _systemTextJsonSerializer.Serialize(patchViewModel); - - var docString = _systemTextJsonSerializer.Serialize(objectToPatch); - JsonPatch? patch = _systemTextJsonSerializer.Deserialize(patchString); - var doc = JsonNode.Parse(docString); - return patch?.Apply(doc); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Services/LoadDictionaryItemService.cs b/src/Umbraco.Cms.Api.Management/Services/LoadDictionaryItemService.cs deleted file mode 100644 index 3fd791bcc0..0000000000 --- a/src/Umbraco.Cms.Api.Management/Services/LoadDictionaryItemService.cs +++ /dev/null @@ -1,52 +0,0 @@ -using System.Xml; -using System.Xml.Linq; -using Microsoft.Extensions.Logging; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Security; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Infrastructure.Packaging; - -namespace Umbraco.Cms.Api.Management.Services; - -public class LoadDictionaryItemService : ILoadDictionaryItemService -{ - private readonly IBackOfficeSecurityAccessor _backOfficeSecurityAccessor; - private readonly ILocalizationService _localizationService; - private readonly PackageDataInstallation _packageDataInstallation; - private readonly ILogger _logger; - - public LoadDictionaryItemService( - IBackOfficeSecurityAccessor backOfficeSecurityAccessor, - ILocalizationService localizationService, - PackageDataInstallation packageDataInstallation, - ILogger logger) - { - _backOfficeSecurityAccessor = backOfficeSecurityAccessor; - _localizationService = localizationService; - _packageDataInstallation = packageDataInstallation; - _logger = logger; - } - public IDictionaryItem Load(string filePath, int? parentId) - { - var xmlDocument = new XmlDocument { XmlResolver = null }; - xmlDocument.Load(filePath); - - var userId = _backOfficeSecurityAccessor.BackOfficeSecurity?.GetUserId().Result ?? 0; - var element = XElement.Parse(xmlDocument.InnerXml); - - IDictionaryItem? parentDictionaryItem = _localizationService.GetDictionaryItemById(parentId ?? 0); - IEnumerable dictionaryItems = _packageDataInstallation.ImportDictionaryItem(element, userId, parentDictionaryItem?.Key); - - // Try to clean up the temporary file. - try - { - System.IO.File.Delete(filePath); - } - catch (Exception ex) - { - _logger.LogError(ex, "Error cleaning up temporary udt file in {File}", filePath); - } - - return dictionaryItems.First(); - } -} diff --git a/src/Umbraco.Cms.Api.Management/Services/Paging/PaginationService.cs b/src/Umbraco.Cms.Api.Management/Services/Paging/PaginationService.cs deleted file mode 100644 index ea8dde174c..0000000000 --- a/src/Umbraco.Cms.Api.Management/Services/Paging/PaginationService.cs +++ /dev/null @@ -1,39 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; - -namespace Umbraco.Cms.Api.Management.Services.Paging; - -// TODO: remove this class once EF core is in place with proper skip/take pagination implementation -// this service is used for converting skip/take to classic pagination with page number and page size. -// it is a temporary solution that should be removed once EF core is in place, thus we'll live -// with this code being statically referenced across multiple controllers. the alternative would be -// an injectable service, but that would require a greater clean-up effort later on. -internal static class PaginationService -{ - internal static bool ConvertSkipTakeToPaging(int skip, int take, out long pageNumber, out int pageSize, out ProblemDetails? error) - { - if (take <= 0) - { - throw new ArgumentException("Must be greater than zero", nameof(take)); - } - - if (skip % take != 0) - { - pageSize = 0; - pageNumber = 0; - error = new ProblemDetails - { - Title = "Invalid skip/take", - Detail = "Skip must be a multiple of take - i.e. skip = 10, take = 5", - Status = StatusCodes.Status400BadRequest, - Type = "Error", - }; - return false; - } - - pageSize = take; - pageNumber = skip / take; - error = null; - return true; - } -} diff --git a/src/Umbraco.Cms.Api.Management/Services/UploadFileService.cs b/src/Umbraco.Cms.Api.Management/Services/UploadFileService.cs deleted file mode 100644 index db784744f0..0000000000 --- a/src/Umbraco.Cms.Api.Management/Services/UploadFileService.cs +++ /dev/null @@ -1,65 +0,0 @@ -using System.Xml; -using Microsoft.AspNetCore.Http; -using Microsoft.Extensions.FileProviders; -using Microsoft.Extensions.Hosting; -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.Extensions; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Models; -using Umbraco.Extensions; -using IHostingEnvironment = Umbraco.Cms.Core.Hosting.IHostingEnvironment; - -namespace Umbraco.Cms.Api.Management.Services; - -public class UploadFileService : IUploadFileService -{ - private readonly IHostEnvironment _hostEnvironment; - private readonly ILocalizedTextService _localizedTextService; - - public UploadFileService(IHostEnvironment hostEnvironment, ILocalizedTextService localizedTextService) - { - _hostEnvironment = hostEnvironment; - _localizedTextService = localizedTextService; - } - - public FormFileUploadResult TryLoad(IFormFile file) - { - var formFileUploadResult = new FormFileUploadResult(); - var fileName = file.FileName.Trim(Constants.CharArrays.DoubleQuote); - var ext = fileName.Substring(fileName.LastIndexOf('.') + 1).ToLower(); - var root = _hostEnvironment.MapPathContentRoot(Constants.SystemDirectories.TempFileUploads); - formFileUploadResult.TemporaryPath = Path.Combine(root, fileName); - - if (!Path.GetFullPath(formFileUploadResult.TemporaryPath).StartsWith(Path.GetFullPath(root))) - { - formFileUploadResult.ErrorMessage = _localizedTextService.Localize("media", "invalidFileName"); - formFileUploadResult.CouldLoad = false; - return formFileUploadResult; - } - - if (!ext.InvariantEquals("udt")) - { - formFileUploadResult.ErrorMessage = _localizedTextService.Localize("media", "disallowedFileType"); - formFileUploadResult.CouldLoad = false; - return formFileUploadResult; - } - - using (FileStream stream = File.Create(formFileUploadResult.TemporaryPath)) - { - file.CopyToAsync(stream).GetAwaiter().GetResult(); - } - - formFileUploadResult.XmlDocument = new XmlDocument {XmlResolver = null}; - formFileUploadResult.XmlDocument.Load(formFileUploadResult.TemporaryPath); - - if (formFileUploadResult.XmlDocument.DocumentElement != null) - { - return formFileUploadResult; - } - - formFileUploadResult.ErrorMessage = _localizedTextService.Localize("speechBubbles", "fileErrorNotFound"); - formFileUploadResult.CouldLoad = false; - return formFileUploadResult; - - } -} diff --git a/src/Umbraco.Cms.Api.Management/Umbraco.Cms.Api.Management.csproj b/src/Umbraco.Cms.Api.Management/Umbraco.Cms.Api.Management.csproj deleted file mode 100644 index 191d22193e..0000000000 --- a/src/Umbraco.Cms.Api.Management/Umbraco.Cms.Api.Management.csproj +++ /dev/null @@ -1,30 +0,0 @@ - - - Umbraco CMS - Management API - Contains the presentation layer for the Umbraco CMS Management API. - false - false - Umbraco.Cms.Api.Management - Umbraco.Cms.Api.Management - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Culture/CultureViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Culture/CultureViewModel.cs deleted file mode 100644 index b6ad89ccd4..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Culture/CultureViewModel.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Umbraco.Cms.Api.Management.ViewModels.Culture; - -public class CultureViewModel -{ - public string Name { get; set; } = null!; - - public string EnglishName { get; set; } = null!; -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Dictionary/DictionaryImportViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Dictionary/DictionaryImportViewModel.cs deleted file mode 100644 index d60af74a4a..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Dictionary/DictionaryImportViewModel.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Umbraco.Cms.Api.Management.ViewModels.Dictionary; - -public class DictionaryImportViewModel -{ - public List DictionaryItems { get; set; } = null!; - - public string? TempFileName { get; set; } -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Dictionary/DictionaryItemViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Dictionary/DictionaryItemViewModel.cs deleted file mode 100644 index 5616705c05..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Dictionary/DictionaryItemViewModel.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Umbraco.Cms.Api.Management.ViewModels.Dictionary; - -public class DictionaryItemViewModel -{ - public Guid? ParentId { get; set; } - - public Guid Key { get; set; } -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Dictionary/DictionaryItemsImportViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Dictionary/DictionaryItemsImportViewModel.cs deleted file mode 100644 index f0599a3e46..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Dictionary/DictionaryItemsImportViewModel.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Umbraco.Cms.Api.Management.ViewModels.Dictionary; - -public class DictionaryItemsImportViewModel -{ - public string? Name { get; set; } - - public int Level { get; set; } -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Dictionary/DictionaryOverviewViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Dictionary/DictionaryOverviewViewModel.cs deleted file mode 100644 index 05eb2fe6e3..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Dictionary/DictionaryOverviewViewModel.cs +++ /dev/null @@ -1,31 +0,0 @@ -using Umbraco.Cms.Core.Models.ContentEditing; - -namespace Umbraco.Cms.Api.Management.ViewModels.Dictionary; - -public class DictionaryOverviewViewModel -{ - /// - /// Initializes a new instance of the class. - /// - public DictionaryOverviewViewModel() => Translations = new List(); - - /// - /// Gets or sets the key. - /// - public string? Name { get; set; } - - /// - /// Gets or sets the key. - /// - public Guid Key { get; set; } - - /// - /// Gets or sets the level. - /// - public int Level { get; set; } - - /// - /// Sets the translations. - /// - public List Translations { get; } -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Dictionary/DictionaryTranslationOverviewViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Dictionary/DictionaryTranslationOverviewViewModel.cs deleted file mode 100644 index d7d5f9e568..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Dictionary/DictionaryTranslationOverviewViewModel.cs +++ /dev/null @@ -1,14 +0,0 @@ -namespace Umbraco.Cms.Api.Management.ViewModels.Dictionary; - -public class DictionaryTranslationOverviewViewModel -{ - /// - /// Gets or sets the display name. - /// - public string? DisplayName { get; set; } - - /// - /// Gets or sets a value indicating whether has translation. - /// - public bool HasTranslation { get; set; } -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Dictionary/DictionaryTranslationViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Dictionary/DictionaryTranslationViewModel.cs deleted file mode 100644 index 9d82f93f1e..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Dictionary/DictionaryTranslationViewModel.cs +++ /dev/null @@ -1,28 +0,0 @@ -namespace Umbraco.Cms.Api.Management.ViewModels.Dictionary; - -public class DictionaryTranslationViewModel -{ - public int Id { get; set; } - - public Guid Key { get; set; } - - /// - /// Gets or sets the display name. - /// - public string? DisplayName { get; set; } - - /// - /// Gets or sets the ISO code. - /// - public string? IsoCode { get; set; } - - /// - /// Gets or sets the translation. - /// - public string Translation { get; set; } = null!; - - /// - /// Gets or sets the language id. - /// - public int LanguageId { get; set; } -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Dictionary/DictionaryViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Dictionary/DictionaryViewModel.cs deleted file mode 100644 index 03fc307862..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Dictionary/DictionaryViewModel.cs +++ /dev/null @@ -1,56 +0,0 @@ -using System.ComponentModel.DataAnnotations; -using Umbraco.Cms.Core.Models.ContentEditing; -using Umbraco.Cms.Core.Models.Validation; - -namespace Umbraco.Cms.Api.Management.ViewModels.Dictionary; - -/// -/// The dictionary display model -/// -public class DictionaryViewModel : INotificationModel -{ - /// - /// Initializes a new instance of the class. - /// - public DictionaryViewModel() - { - Notifications = new List(); - Translations = new List(); - ContentApps = new List(); - } - - /// - /// Gets or sets the parent id. - /// - public Guid? ParentId { get; set; } - - /// - /// Gets or sets the translations. - /// - public IEnumerable Translations { get; set; } = Enumerable.Empty(); - - /// - /// Apps for the dictionary item - /// - public IEnumerable ContentApps { get; set; } - - /// - /// - /// This is used to add custom localized messages/strings to the response for the app to use for localized UI purposes. - /// - public List Notifications { get; private set; } - - [RequiredForPersistence(AllowEmptyStrings = false, ErrorMessage = "Required")] - [Required] - public string Name { get; set; } = null!; - - /// - /// Gets or sets the Key for the object - /// - public Guid Key { get; set; } - - /// - /// The path of the entity - /// - public string Path { get; set; } = string.Empty; -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/HealthCheck/HealthCheckActionViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/HealthCheck/HealthCheckActionViewModel.cs deleted file mode 100644 index 2b47fd999e..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/HealthCheck/HealthCheckActionViewModel.cs +++ /dev/null @@ -1,50 +0,0 @@ -namespace Umbraco.Cms.Api.Management.ViewModels.HealthCheck; - -public class HealthCheckActionViewModel -{ - /// - /// Gets or sets the health check key. - /// - public Guid HealthCheckKey { get; set; } - - /// - /// Gets or sets the alias. - /// - /// - /// It is used by the Health Check instance to execute the action. - /// - public string? Alias { get; set; } - - /// - /// Gets or sets the name. - /// - /// - /// It is used to name the "Fix" button. - /// - public string? Name { get; set; } - - /// - /// Gets or sets the description. - /// - public string? Description { get; set; } - - /// - /// Gets or sets a value indicating whether a value is required to rectify the issue. - /// - public required bool ValueRequired { get; set; } - - /// - /// Gets or sets the value to rectify the issue. - /// - public string? ProvidedValue { get; set; } - - /// - /// Gets or sets how the provided value is validated. - /// - public string? ProvidedValueValidation { get; set; } - - /// - /// Gets or sets the regex to use when validating the provided value (if the value can be validated by a regex). - /// - public string? ProvidedValueValidationRegex { get; set; } -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/HealthCheck/HealthCheckGroupViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/HealthCheck/HealthCheckGroupViewModel.cs deleted file mode 100644 index 74b5995d37..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/HealthCheck/HealthCheckGroupViewModel.cs +++ /dev/null @@ -1,14 +0,0 @@ -namespace Umbraco.Cms.Api.Management.ViewModels.HealthCheck; - -public class HealthCheckGroupViewModel -{ - /// - /// Gets or sets the name. - /// - public string? Name { get; set; } - - /// - /// Gets or sets the health checks. - /// - public required List Checks { get; set; } -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/HealthCheck/HealthCheckGroupWithResultViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/HealthCheck/HealthCheckGroupWithResultViewModel.cs deleted file mode 100644 index a5ad99eea0..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/HealthCheck/HealthCheckGroupWithResultViewModel.cs +++ /dev/null @@ -1,14 +0,0 @@ -namespace Umbraco.Cms.Api.Management.ViewModels.HealthCheck; - -public class HealthCheckGroupWithResultViewModel -{ - /// - /// Gets or sets the name. - /// - public string? Name { get; set; } - - /// - /// Gets or sets the health checks with the result(s) from each health check. - /// - public required List Checks { get; set; } -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/HealthCheck/HealthCheckResultViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/HealthCheck/HealthCheckResultViewModel.cs deleted file mode 100644 index f4c89b7b34..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/HealthCheck/HealthCheckResultViewModel.cs +++ /dev/null @@ -1,26 +0,0 @@ -using Umbraco.Cms.Core.HealthChecks; - -namespace Umbraco.Cms.Api.Management.ViewModels.HealthCheck; - -public class HealthCheckResultViewModel -{ - /// - /// Gets or sets the status message. - /// - public required string Message { get; set; } - - /// - /// Gets or sets the status type. - /// - public StatusResultType ResultType { get; set; } - - /// - /// Gets or sets the potential actions to take (if any). - /// - public IEnumerable? Actions { get; set; } - - /// - /// This is optional but would allow a developer to get or set a link that is shown as a "Read more" button. - /// - public string? ReadMoreLink { get; set; } -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/HealthCheck/HealthCheckViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/HealthCheck/HealthCheckViewModel.cs deleted file mode 100644 index 39cde4843e..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/HealthCheck/HealthCheckViewModel.cs +++ /dev/null @@ -1,19 +0,0 @@ -namespace Umbraco.Cms.Api.Management.ViewModels.HealthCheck; - -public class HealthCheckViewModel -{ - /// - /// Gets or sets the key. - /// - public Guid Key { get; set; } - - /// - /// Gets or sets the name. - /// - public required string Name { get; set; } - - /// - /// Gets or sets the description. - /// - public string? Description { get; set; } -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/HealthCheck/HealthCheckWithResultViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/HealthCheck/HealthCheckWithResultViewModel.cs deleted file mode 100644 index c566ae86b8..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/HealthCheck/HealthCheckWithResultViewModel.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Umbraco.Cms.Api.Management.ViewModels.HealthCheck; - -public class HealthCheckWithResultViewModel : HealthCheckViewModel -{ - /// - /// Gets or sets the result(s) for a health check. - /// There can be several. - /// - public List? Results { get; set; } -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Help/HelpPageViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Help/HelpPageViewModel.cs deleted file mode 100644 index 162c0b75d0..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Help/HelpPageViewModel.cs +++ /dev/null @@ -1,12 +0,0 @@ -namespace Umbraco.Cms.Api.Management.ViewModels.Help; - -public class HelpPageViewModel -{ - public string? Name { get; set; } - - public string? Description { get; set; } - - public string? Url { get; set; } - - public string? Type { get; set; } -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Installer/ConsentLevelViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Installer/ConsentLevelViewModel.cs deleted file mode 100644 index e6a17e7e45..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Installer/ConsentLevelViewModel.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System.Text.Json.Serialization; -using Umbraco.Cms.Core.Models; - -namespace Umbraco.Cms.Api.Management.ViewModels.Installer; - -public class ConsentLevelViewModel -{ - [JsonConverter(typeof(JsonStringEnumConverter))] - public TelemetryLevel Level { get; set; } - - public string Description { get; set; } = string.Empty; -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Installer/DatabaseInstallViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Installer/DatabaseInstallViewModel.cs deleted file mode 100644 index c93726d3f7..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Installer/DatabaseInstallViewModel.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System.ComponentModel; -using System.ComponentModel.DataAnnotations; - -namespace Umbraco.Cms.Api.Management.ViewModels.Installer; - -public class DatabaseInstallViewModel -{ - [Required] - public Guid Id { get; set; } - - [Required] - public string? ProviderName { get; set; } - - public string? Server { get; set; } - - public string? Name { get; set; } - - public string? Username { get; set; } - - [PasswordPropertyText] - public string? Password { get; set; } - - public bool UseIntegratedAuthentication { get; set; } - - public string? ConnectionString { get; set; } -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Installer/DatabaseSettingsViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Installer/DatabaseSettingsViewModel.cs deleted file mode 100644 index c6c5e582c3..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Installer/DatabaseSettingsViewModel.cs +++ /dev/null @@ -1,26 +0,0 @@ -namespace Umbraco.Cms.Api.Management.ViewModels.Installer; - -public class DatabaseSettingsViewModel -{ - 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; } = string.Empty; - - public bool IsConfigured { get; set; } - - public bool RequiresServer { get; set; } - - public string ServerPlaceholder { get; set; } = string.Empty; - - public bool RequiresCredentials { get; set; } - - public bool SupportsIntegratedAuthentication { get; set; } - - public bool RequiresConnectionTest { get; set; } -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Installer/InstallSettingsViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Installer/InstallSettingsViewModel.cs deleted file mode 100644 index d05823590f..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Installer/InstallSettingsViewModel.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Umbraco.Cms.Api.Management.ViewModels.Installer; - -public class InstallSettingsViewModel -{ - public UserSettingsViewModel User { get; set; } = null!; - - public IEnumerable Databases { get; set; } = Enumerable.Empty(); -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Installer/InstallViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Installer/InstallViewModel.cs deleted file mode 100644 index d8f68f8faa..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Installer/InstallViewModel.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System.ComponentModel.DataAnnotations; -using System.Text.Json.Serialization; -using Umbraco.Cms.Core.Models; - -namespace Umbraco.Cms.Api.Management.ViewModels.Installer; - -public class InstallViewModel -{ - [Required] - public UserInstallViewModel User { get; set; } = null!; - - [Required] - public DatabaseInstallViewModel Database { get; set; } = null!; - - [JsonConverter(typeof(JsonStringEnumConverter))] - public TelemetryLevel TelemetryLevel { get; set; } = TelemetryLevel.Basic; -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Installer/UpgradeSettingsViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Installer/UpgradeSettingsViewModel.cs deleted file mode 100644 index 55ceb6b761..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Installer/UpgradeSettingsViewModel.cs +++ /dev/null @@ -1,15 +0,0 @@ -namespace Umbraco.Cms.Api.Management.ViewModels.Installer; - -public class UpgradeSettingsViewModel -{ - public string CurrentState { get; set; } = string.Empty; - - public string NewState { get; set; } = string.Empty; - - public string NewVersion { get; set; } = string.Empty; - - public string OldVersion { get; set; } = string.Empty; - - public string ReportUrl => - $"https://our.umbraco.com/contribute/releases/compare?from={OldVersion}&to={NewVersion}¬es=1"; -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Installer/UserInstallViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Installer/UserInstallViewModel.cs deleted file mode 100644 index fe18241763..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Installer/UserInstallViewModel.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System.ComponentModel; -using System.ComponentModel.DataAnnotations; - -namespace Umbraco.Cms.Api.Management.ViewModels.Installer; - -public class UserInstallViewModel -{ - [Required] - [StringLength(255)] - public string Name { get; set; } = null!; - - [Required] - [EmailAddress] - public string Email { get; set; } = null!; - - [Required] - [PasswordPropertyText] - public string Password { get; set; } = null!; - - public bool SubscribeToNewsletter { get; } -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Installer/UserSettingsViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Installer/UserSettingsViewModel.cs deleted file mode 100644 index 242e3ae3b3..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Installer/UserSettingsViewModel.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Umbraco.Cms.Api.Management.ViewModels.Installer; - -public class UserSettingsViewModel -{ - public int MinCharLength { get; set; } - - public int MinNonAlphaNumericLength { get; set; } - - public IEnumerable ConsentLevels { get; set; } = Enumerable.Empty(); -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/JsonPatch/JsonPatchViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/JsonPatch/JsonPatchViewModel.cs deleted file mode 100644 index ecba170d4e..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/JsonPatch/JsonPatchViewModel.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Umbraco.Cms.Api.Management.ViewModels.JsonPatch; - -public class JsonPatchViewModel -{ - public string Op { get; set; } = null!; - - public string Path { get; set; } = null!; - - public object Value { get; set; } = null!; -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Language/LanguageViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Language/LanguageViewModel.cs deleted file mode 100644 index a5cc1a7f1a..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Language/LanguageViewModel.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace Umbraco.Cms.Api.Management.ViewModels.Language; - -public class LanguageViewModel -{ - public int Id { get; set; } - - [Required(AllowEmptyStrings = false)] - public string IsoCode { get; set; } = null!; - - public string? Name { get; set; } - - public bool IsDefault { get; set; } - - public bool IsMandatory { get; set; } - - public int? FallbackLanguageId { get; set; } -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/ModelsBuilderDashboard/ModelsBuilderViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/ModelsBuilderDashboard/ModelsBuilderViewModel.cs deleted file mode 100644 index a6bec1444b..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/ModelsBuilderDashboard/ModelsBuilderViewModel.cs +++ /dev/null @@ -1,20 +0,0 @@ -using Umbraco.Cms.Core.Configuration; - -namespace Umbraco.Cms.Api.Management.ViewModels.ModelsBuilderDashboard; - -public class ModelsBuilderViewModel -{ - public ModelsMode Mode { get; set; } - - public bool CanGenerate { get; set; } - - public bool OutOfDateModels { get; set; } - - public string? LastError { get; set; } - - public string? Version { get; set; } - - public string? ModelsNamespace { get; set; } - - public bool TrackingOutOfDateModels { get; set; } -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/ModelsBuilderDashboard/OutOfDateStatusViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/ModelsBuilderDashboard/OutOfDateStatusViewModel.cs deleted file mode 100644 index 8e18356ef4..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/ModelsBuilderDashboard/OutOfDateStatusViewModel.cs +++ /dev/null @@ -1,8 +0,0 @@ -using Umbraco.New.Cms.Core.Models; - -namespace Umbraco.Cms.Api.Management.ViewModels.ModelsBuilderDashboard; - -public class OutOfDateStatusViewModel -{ - public OutOfDateType Status { get; set; } -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Move/MoveViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Move/MoveViewModel.cs deleted file mode 100644 index 88942df570..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Move/MoveViewModel.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace Umbraco.Cms.Api.Management.ViewModels.Move; - -/// -/// A model representing a model for moving or copying -/// -public class MoveViewModel -{ - /// - /// The Id of the node to move or copy to - /// - [Required] - public int ParentId { get; set; } - - /// - /// The id of the node to move or copy - /// - [Required] - public int Id { get; set; } -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Profiling/ProfilingStatusViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Profiling/ProfilingStatusViewModel.cs deleted file mode 100644 index 6fe73dd158..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Profiling/ProfilingStatusViewModel.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Umbraco.Cms.Api.Management.ViewModels.Profiling; - -public class ProfilingStatusViewModel -{ - public ProfilingStatusViewModel(bool enabled) => Enabled = enabled; - - public bool Enabled { get; } -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/RecycleBin/RecycleBinItemViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/RecycleBin/RecycleBinItemViewModel.cs deleted file mode 100644 index d3d25622f0..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/RecycleBin/RecycleBinItemViewModel.cs +++ /dev/null @@ -1,19 +0,0 @@ -namespace Umbraco.Cms.Api.Management.ViewModels.RecycleBin; - -public class RecycleBinItemViewModel -{ - public Guid Key { get; set; } - - public string Name { get; set; } = string.Empty; - - public string Type { get; set; } = string.Empty; - - public string Icon { get; set; } = string.Empty; - - public bool HasChildren { get; set; } - - public bool IsContainer { get; set; } - - public Guid? ParentKey { get; set; } -} - diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/RedirectUrlManagement/RedirectUrlStatusViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/RedirectUrlManagement/RedirectUrlStatusViewModel.cs deleted file mode 100644 index 0efa0ef843..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/RedirectUrlManagement/RedirectUrlStatusViewModel.cs +++ /dev/null @@ -1,10 +0,0 @@ -using Umbraco.New.Cms.Core.Models.RedirectUrlManagement; - -namespace Umbraco.Cms.Api.Management.ViewModels.RedirectUrlManagement; - -public class RedirectUrlStatusViewModel -{ - public RedirectStatus Status { get; set; } - - public bool UserIsAdmin { get; set; } -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/RedirectUrlManagement/RedirectUrlViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/RedirectUrlManagement/RedirectUrlViewModel.cs deleted file mode 100644 index 6840ae1c19..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/RedirectUrlManagement/RedirectUrlViewModel.cs +++ /dev/null @@ -1,16 +0,0 @@ -namespace Umbraco.Cms.Api.Management.ViewModels.RedirectUrlManagement; - -public class RedirectUrlViewModel -{ - public Guid Key { get; set; } - - public required string OriginalUrl { get; set; } - - public required string DestinationUrl { get; set; } - - public DateTime Created { get; set; } - - public Guid ContentKey { get; set; } - - public string? Culture { get; set; } -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Relation/RelationViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Relation/RelationViewModel.cs deleted file mode 100644 index 7518075e77..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Relation/RelationViewModel.cs +++ /dev/null @@ -1,43 +0,0 @@ -using System.ComponentModel; -using System.Text.Json.Serialization; - -namespace Umbraco.Cms.Api.Management.ViewModels.Relation; - -public class RelationViewModel -{ - /// - /// Gets or sets the Parent Id of the Relation (Source). - /// - [ReadOnly(true)] - public int ParentId { get; set; } - - /// - /// Gets or sets the Parent Name of the relation (Source). - /// - [ReadOnly(true)] - public string? ParentName { get; set; } - - /// - /// Gets or sets the Child Id of the Relation (Destination). - /// - [ReadOnly(true)] - public int ChildId { get; set; } - - /// - /// Gets or sets the Child Name of the relation (Destination). - /// - [ReadOnly(true)] - public string? ChildName { get; set; } - - /// - /// Gets or sets the date when the Relation was created. - /// - [ReadOnly(true)] - public DateTime CreateDate { get; set; } - - /// - /// Gets or sets a comment for the Relation. - /// - [ReadOnly(true)] - public string? Comment { get; set; } -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Search/FieldViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Search/FieldViewModel.cs deleted file mode 100644 index b6eb496865..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Search/FieldViewModel.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Umbraco.Cms.Api.Management.ViewModels.Search; - -public class FieldViewModel -{ - public string Name { get; init; } = null!; - - public IEnumerable Values { get; init; } = null!; -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Search/IndexViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Search/IndexViewModel.cs deleted file mode 100644 index 54110bc578..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Search/IndexViewModel.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace Umbraco.Cms.Api.Management.ViewModels.Search; - -public class IndexViewModel -{ - [Required] - public string Name { get; init; } = null!; - - public string? HealthStatus { get; init; } - - [Required] - public bool IsHealthy => HealthStatus == "Healthy"; - - [Required] - public bool CanRebuild { get; init; } - - public string SearcherName { get; init; } = null!; - - [Required] - public long DocumentCount { get; init; } - - [Required] - public int FieldCount { get; init; } - - public IReadOnlyDictionary? ProviderProperties { get; init; } -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Search/SearchResultViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Search/SearchResultViewModel.cs deleted file mode 100644 index 19a03405f9..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Search/SearchResultViewModel.cs +++ /dev/null @@ -1,12 +0,0 @@ -namespace Umbraco.Cms.Api.Management.ViewModels.Search; - -public class SearchResultViewModel -{ - public string Id { get; set; } = null!; - - public float Score { get; set; } - - public int FieldCount => Fields.Count(); - - public IEnumerable Fields { get; set; } = null!; -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Search/SearcherViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Search/SearcherViewModel.cs deleted file mode 100644 index 38fcb7d984..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Search/SearcherViewModel.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace Umbraco.Cms.Api.Management.ViewModels.Search; - -public class SearcherViewModel -{ - public string Name { get; set; } = null!; -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Server/ServerStatusViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Server/ServerStatusViewModel.cs deleted file mode 100644 index bca009947c..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Server/ServerStatusViewModel.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System.Text.Json.Serialization; -using Umbraco.Cms.Core; - -namespace Umbraco.Cms.Api.Management.ViewModels.Server; - -public class ServerStatusViewModel -{ - [JsonConverter(typeof(JsonStringEnumConverter))] - public RuntimeLevel ServerStatus { get; set; } -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Server/VersionViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Server/VersionViewModel.cs deleted file mode 100644 index 255ed4d08d..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Server/VersionViewModel.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace Umbraco.Cms.Api.Management.ViewModels.Server; - -public class VersionViewModel -{ - public string Version { get; set; } = null!; -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Telemetry/TelemetryViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Telemetry/TelemetryViewModel.cs deleted file mode 100644 index f0ef63e25e..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Telemetry/TelemetryViewModel.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System.Text.Json.Serialization; -using Umbraco.Cms.Core.Models; - -namespace Umbraco.Cms.Api.Management.ViewModels.Telemetry; - -public class TelemetryViewModel -{ - [JsonConverter(typeof(JsonStringEnumConverter))] - public TelemetryLevel TelemetryLevel { get; set; } -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/TrackedReferences/RelationItemViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/TrackedReferences/RelationItemViewModel.cs deleted file mode 100644 index f27c81f3eb..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/TrackedReferences/RelationItemViewModel.cs +++ /dev/null @@ -1,22 +0,0 @@ -namespace Umbraco.Cms.Api.Management.ViewModels.TrackedReferences; - -public class RelationItemViewModel -{ - public Guid NodeKey { get; set; } - - public string? NodeName { get; set; } - - public string? NodeType { get; set; } - - public string? ContentTypeIcon { get; set; } - - public string? ContentTypeAlias { get; set; } - - public string? ContentTypeName { get; set; } - - public string? RelationTypeName { get; set; } - - public bool RelationTypeIsBidirectional { get; set; } - - public bool RelationTypeIsDependency { get; set; } -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Tree/ContentTreeItemViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Tree/ContentTreeItemViewModel.cs deleted file mode 100644 index ccaa4182e6..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Tree/ContentTreeItemViewModel.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace Umbraco.Cms.Api.Management.ViewModels.Tree; - -public class ContentTreeItemViewModel : EntityTreeItemViewModel -{ - public bool NoAccess { get; set; } -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Tree/DocumentBlueprintTreeItemViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Tree/DocumentBlueprintTreeItemViewModel.cs deleted file mode 100644 index 940f0ec793..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Tree/DocumentBlueprintTreeItemViewModel.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Umbraco.Cms.Api.Management.ViewModels.Tree; - -public class DocumentBlueprintTreeItemViewModel : EntityTreeItemViewModel -{ - public Guid DocumentTypeKey { get; set; } - - public string DocumentTypeAlias { get; set; } = string.Empty; - - public string? DocumentTypeName { get; set; } = string.Empty; -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Tree/DocumentTreeItemViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Tree/DocumentTreeItemViewModel.cs deleted file mode 100644 index 09ffd927d8..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Tree/DocumentTreeItemViewModel.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Umbraco.Cms.Api.Management.ViewModels.Tree; - -public class DocumentTreeItemViewModel : ContentTreeItemViewModel -{ - public bool IsProtected { get; set; } - - public bool IsPublished { get; set; } - - public bool IsEdited { get; set; } -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Tree/DocumentTypeTreeItemViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Tree/DocumentTypeTreeItemViewModel.cs deleted file mode 100644 index b789c89975..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Tree/DocumentTypeTreeItemViewModel.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace Umbraco.Cms.Api.Management.ViewModels.Tree; - -public class DocumentTypeTreeItemViewModel : FolderTreeItemViewModel -{ - public bool IsElement { get; set; } -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Tree/EntityTreeItemViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Tree/EntityTreeItemViewModel.cs deleted file mode 100644 index a163a4f9a7..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Tree/EntityTreeItemViewModel.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Umbraco.Cms.Api.Management.ViewModels.Tree; - -public class EntityTreeItemViewModel : TreeItemViewModel -{ - public Guid Key { get; set; } - - public bool IsContainer { get; set; } - - public Guid? ParentKey { get; set; } -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Tree/FileSystemTreeItemViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Tree/FileSystemTreeItemViewModel.cs deleted file mode 100644 index 0ad7a45e9b..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Tree/FileSystemTreeItemViewModel.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Umbraco.Cms.Api.Management.ViewModels.Tree; - -public class FileSystemTreeItemViewModel : TreeItemViewModel -{ - public string Path { get; set; } = string.Empty; - - public bool IsFolder { get; set; } -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Tree/FolderTreeItemViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Tree/FolderTreeItemViewModel.cs deleted file mode 100644 index 920a67a26c..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Tree/FolderTreeItemViewModel.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace Umbraco.Cms.Api.Management.ViewModels.Tree; - -public class FolderTreeItemViewModel : EntityTreeItemViewModel -{ - public bool IsFolder { get; set; } -} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Tree/TreeItemViewModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Tree/TreeItemViewModel.cs deleted file mode 100644 index b32a96af2f..0000000000 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Tree/TreeItemViewModel.cs +++ /dev/null @@ -1,12 +0,0 @@ -namespace Umbraco.Cms.Api.Management.ViewModels.Tree; - -public class TreeItemViewModel -{ - public string Name { get; set; } = string.Empty; - - public string Type { get; set; } = string.Empty; - - public string Icon { get; set; } = string.Empty; - - public bool HasChildren { get; set; } -} diff --git a/src/Umbraco.PublishedCache.NuCache/Umbraco.PublishedCache.NuCache.csproj b/src/Umbraco.PublishedCache.NuCache/Umbraco.PublishedCache.NuCache.csproj index 8e310a5f42..39412ef362 100644 --- a/src/Umbraco.PublishedCache.NuCache/Umbraco.PublishedCache.NuCache.csproj +++ b/src/Umbraco.PublishedCache.NuCache/Umbraco.PublishedCache.NuCache.csproj @@ -9,8 +9,6 @@ - - diff --git a/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj b/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj index 160680d3ee..4be13cb615 100644 --- a/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj +++ b/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj @@ -8,7 +8,6 @@ - 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 deleted file mode 100644 index ecb3112d7c..0000000000 --- a/tests/Umbraco.Tests.Integration/NewBackoffice/OpenAPIContractTest.cs +++ /dev/null @@ -1,58 +0,0 @@ -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Options; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using NUnit.Framework; -using Umbraco.Cms.Core.Configuration.Models; -using Umbraco.Cms.Core.Hosting; -using Umbraco.Cms.Tests.Integration.TestServerTest; - -namespace Umbraco.Cms.Tests.Integration.NewBackoffice; - -[TestFixture] -internal sealed class OpenAPIContractTest : UmbracoTestServerTestBase -{ - private GlobalSettings GlobalSettings => GetRequiredService>().Value; - - private IHostingEnvironment HostingEnvironment => GetRequiredService(); - - protected override void CustomTestSetup(IUmbracoBuilder builder) - { - builder.AddMvcAndRazor(mvcBuilder => - { - // Adds Umbraco.Cms.Api.Management - mvcBuilder.AddApplicationPart(typeof(Api.Management.Controllers.Install.InstallControllerBase).Assembly); - }); - - new Api.Management.ManagementApiComposer().Compose(builder); - } - - [Test] - public async Task Validate_OpenApi_Contract_is_implemented() - { - string[] keysToIgnore = { "servers", "x-generator" }; - - var officePath = GlobalSettings.GetBackOfficePath(HostingEnvironment); - - var urlToContract = $"{officePath}/management/api/openapi.json"; - var swaggerPath = $"{officePath}/swagger/v1/swagger.json"; - var apiContract = JObject.Parse(await Client.GetStringAsync(urlToContract)); - - var generatedJsonString = await Client.GetStringAsync(swaggerPath); - var mergedContract = JObject.Parse(generatedJsonString); - var originalGeneratedContract = JObject.Parse(generatedJsonString); - - mergedContract.Merge(apiContract, new JsonMergeSettings - { - MergeArrayHandling = MergeArrayHandling.Merge - }); - - foreach (var key in keysToIgnore) - { - originalGeneratedContract.Remove(key); - mergedContract.Remove(key); - } - - Assert.AreEqual(originalGeneratedContract.ToString(Formatting.Indented), mergedContract.ToString(Formatting.Indented), $"Generated API do not respect the contract."); - } -} 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 dfe7b9377b..162713d8fb 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.Persistence.Sqlite; using Umbraco.Cms.Persistence.SqlServer; using Umbraco.Cms.Tests.Common.Testing; @@ -251,7 +249,7 @@ namespace Umbraco.Cms.Tests.Integration.TestServerTest ///
protected virtual void ConfigureTestServices(IServiceCollection services) { - + } protected void Configure(IApplicationBuilder app) 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 8fa8f0e252..18b50b1b8e 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 e9c4ac320b..c60083f4c8 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 40bdd6cf67..765eea85c6 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Packaging/PackageDataInstallationTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Packaging/PackageDataInstallationTests.cs @@ -1,7 +1,6 @@ // Copyright (c) Umbraco. // See LICENSE for more details. -using System; using System.Collections.Generic; using System.Linq; using System.Xml.Linq; 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 48aa0e2849..20631f8e19 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 d342a1b3cc..c1bc1adc01 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 aae69e2f61..d769bfc4c1 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 628fa419c2..26f0c123a9 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/DictionaryRepositoryTest.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/DictionaryRepositoryTest.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/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 3d9b6c30e1..3fbd76a87f 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 05b9946425..2cab05cba5 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 a7c04d2503..477738ef4f 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 e6e06a684f..82e9b947ab 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/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 4886a7b497..538eeb328a 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 586eeb0873..e087f73104 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentServiceNotificationTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentServiceNotificationTests.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.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 bafd0aa138..b2507bf4f5 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 e5ef5789db..695b75099e 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 ebf161072d..15005f2e08 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.Models; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentServiceTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentServiceTests.cs index d489e6a26c..f399a00a3d 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 d4b9279487..de214a9d13 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentTypeServiceVariantsTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentTypeServiceVariantsTests.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/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 21b9c0a68a..7e07823c64 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/DataTypeServiceTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/DataTypeServiceTests.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/EntityServiceTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/EntityServiceTests.cs index 3003d28f4c..f19f86a6fc 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 6ba1356acd..1ef9ac6ecf 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/EntityXmlSerializerTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/EntityXmlSerializerTests.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/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 96deac66bd..ca40735bf1 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. -// 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.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 LanguageId="2" LanguageCultureAlias="nb-NO"><![CDATA[ForelderVerdi]]></Value> - /// <Value LanguageId="3" LanguageCultureAlias="en-GB"><![CDATA[ParentValue]]></Value> - /// <DictionaryItem Key="e7dba0a9-d517-4ba4-8e18-2764d392c611" Name=" [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. +// 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.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 LanguageId="2" LanguageCultureAlias="nb-NO"><![CDATA[ForelderVerdi]]></Value> + /// <Value LanguageId="3" LanguageCultureAlias="en-GB"><![CDATA[ParentValue]]></Value> + /// <DictionaryItem Key="e7dba0a9-d517-4ba4-8e18-2764d392c611" Name=" [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 2ca4af5fae..4924ee51f7 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/LocalizationServiceTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/LocalizationServiceTests.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/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 6e88306e11..43dd49b2a9 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Tests.Integration.csproj +++ b/tests/Umbraco.Tests.Integration/Umbraco.Tests.Integration.csproj @@ -22,7 +22,6 @@ - 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 c15c9b5b39..c6cdf01074 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 e627a3300f..ec4a2598f1 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Web.BackOffice/Filters/OutgoingEditorModelEventFilterTests.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Web.BackOffice/Filters/OutgoingEditorModelEventFilterTests.cs @@ -1,5 +1,4 @@ -using System; -using System.Linq; +using System.Linq; using System.Net; using System.Net.Http; using System.Threading.Tasks; 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 cfc57ee9ff..33b89f1738 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 1b7efdd923..f7bc8aec67 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 5bf72b8500..2568fe6b5e 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 47ea784fdc..a289f03131 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/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/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/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/ManifestContentAppTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Manifest/ManifestContentAppTests.cs index 350c1f1944..f85bfd1cd0 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Manifest/ManifestContentAppTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Manifest/ManifestContentAppTests.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/ManifestParserTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Manifest/ManifestParserTests.cs index 71d1a25228..d1e08dca45 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Manifest/ManifestParserTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Manifest/ManifestParserTests.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 a2da904889..ba9bbdd485 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 f6425607d3..86f40b624c 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 c29116c8bd..623efcfcc0 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 f0417b663e..8eaecd7a1f 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 4ed6ce842c..d4856c2b12 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 04ab83801d..906ee0e808 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 9d7d95554a..f45c12db3f 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 83aa368d70..e8f381699a 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Telemetry/TelemetryServiceTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Telemetry/TelemetryServiceTests.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/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 59d6539b4f..398aa263eb 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 37a5f08286..4faacab0c7 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 9e2a769e74..b631e2140f 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 0a1b2f3240..b7b9b85c94 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 83d39a4245..b9c6a63812 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 711914a01e..ed513270a5 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Common/ImageCropperTest.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Web.Common/ImageCropperTest.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.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; diff --git a/umbraco.sln b/umbraco.sln index 8a9c1ddecc..236e8627ba 100644 --- a/umbraco.sln +++ b/umbraco.sln @@ -95,19 +95,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Umbraco.Templates", "templa EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Umbraco.Cms", "src\Umbraco.Cms\Umbraco.Cms.csproj", "{92EAA57A-CC99-4F5D-9D9C-B865293F6000}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NewBackoffice", "NewBackoffice", "{995D9EFA-8BB1-4333-80AD-C525A06FD984}" - ProjectSection(SolutionItems) = preProject - .github\New BackOffice - README.md = .github\New BackOffice - README.md - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Umbraco.Cms.Api.Management", "src\Umbraco.Cms.Api.Management\Umbraco.Cms.Api.Management.csproj", "{0946531B-F06D-415B-A4E3-6CBFF5DB1C12}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Umbraco.New.Cms.Core", "src\Umbraco.New.Cms.Core\Umbraco.New.Cms.Core.csproj", "{CBCE0A1E-BF29-49A6-9581-EAB3587D823A}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Umbraco.New.Cms.Infrastructure", "src\Umbraco.New.Cms.Infrastructure\Umbraco.New.Cms.Infrastructure.csproj", "{2D978DAF-8F48-4D59-8FEA-7EF0F40DBC2C}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Umbraco.New.Cms.Web.Common", "src\Umbraco.New.Cms.Web.Common\Umbraco.New.Cms.Web.Common.csproj", "{5ED13EC6-399E-49D5-9D26-86501729B08D}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Umbraco.Cms.Targets", "src\Umbraco.Cms.Targets\Umbraco.Cms.Targets.csproj", "{B51C10FC-FD20-451E-90DD-A117133403DF}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{E5D4B5F9-6CCE-46CE-8985-9A350445F92B}" @@ -284,30 +271,6 @@ Global {92EAA57A-CC99-4F5D-9D9C-B865293F6000}.Release|Any CPU.Build.0 = Release|Any CPU {92EAA57A-CC99-4F5D-9D9C-B865293F6000}.SkipTests|Any CPU.ActiveCfg = Debug|Any CPU {92EAA57A-CC99-4F5D-9D9C-B865293F6000}.SkipTests|Any CPU.Build.0 = Debug|Any CPU - {0946531B-F06D-415B-A4E3-6CBFF5DB1C12}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0946531B-F06D-415B-A4E3-6CBFF5DB1C12}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0946531B-F06D-415B-A4E3-6CBFF5DB1C12}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0946531B-F06D-415B-A4E3-6CBFF5DB1C12}.Release|Any CPU.Build.0 = Release|Any CPU - {0946531B-F06D-415B-A4E3-6CBFF5DB1C12}.SkipTests|Any CPU.ActiveCfg = Debug|Any CPU - {0946531B-F06D-415B-A4E3-6CBFF5DB1C12}.SkipTests|Any CPU.Build.0 = Debug|Any CPU - {CBCE0A1E-BF29-49A6-9581-EAB3587D823A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CBCE0A1E-BF29-49A6-9581-EAB3587D823A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CBCE0A1E-BF29-49A6-9581-EAB3587D823A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CBCE0A1E-BF29-49A6-9581-EAB3587D823A}.Release|Any CPU.Build.0 = Release|Any CPU - {CBCE0A1E-BF29-49A6-9581-EAB3587D823A}.SkipTests|Any CPU.ActiveCfg = Debug|Any CPU - {CBCE0A1E-BF29-49A6-9581-EAB3587D823A}.SkipTests|Any CPU.Build.0 = Debug|Any CPU - {2D978DAF-8F48-4D59-8FEA-7EF0F40DBC2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2D978DAF-8F48-4D59-8FEA-7EF0F40DBC2C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2D978DAF-8F48-4D59-8FEA-7EF0F40DBC2C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2D978DAF-8F48-4D59-8FEA-7EF0F40DBC2C}.Release|Any CPU.Build.0 = Release|Any CPU - {2D978DAF-8F48-4D59-8FEA-7EF0F40DBC2C}.SkipTests|Any CPU.ActiveCfg = Debug|Any CPU - {2D978DAF-8F48-4D59-8FEA-7EF0F40DBC2C}.SkipTests|Any CPU.Build.0 = Debug|Any CPU - {5ED13EC6-399E-49D5-9D26-86501729B08D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5ED13EC6-399E-49D5-9D26-86501729B08D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5ED13EC6-399E-49D5-9D26-86501729B08D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5ED13EC6-399E-49D5-9D26-86501729B08D}.Release|Any CPU.Build.0 = Release|Any CPU - {5ED13EC6-399E-49D5-9D26-86501729B08D}.SkipTests|Any CPU.ActiveCfg = Debug|Any CPU - {5ED13EC6-399E-49D5-9D26-86501729B08D}.SkipTests|Any CPU.Build.0 = Debug|Any CPU {B51C10FC-FD20-451E-90DD-A117133403DF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B51C10FC-FD20-451E-90DD-A117133403DF}.Debug|Any CPU.Build.0 = Debug|Any CPU {B51C10FC-FD20-451E-90DD-A117133403DF}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -345,10 +308,6 @@ Global {9102ABDF-E537-4E46-B525-C9ED4833EED0} = {B5BD12C1-A454-435E-8A46-FF4A364C0382} {2A5027D9-F71D-4957-929E-F7A56AA1B95A} = {05878304-40EB-4F84-B40B-91BDB70DE094} {05C1D0C8-C592-468F-AF8F-A299B9B3A903} = {6D72A60B-0542-4AA9-A493-DD4179E838A1} - {0946531B-F06D-415B-A4E3-6CBFF5DB1C12} = {995D9EFA-8BB1-4333-80AD-C525A06FD984} - {CBCE0A1E-BF29-49A6-9581-EAB3587D823A} = {995D9EFA-8BB1-4333-80AD-C525A06FD984} - {2D978DAF-8F48-4D59-8FEA-7EF0F40DBC2C} = {995D9EFA-8BB1-4333-80AD-C525A06FD984} - {5ED13EC6-399E-49D5-9D26-86501729B08D} = {995D9EFA-8BB1-4333-80AD-C525A06FD984} {20CE9C97-9314-4A19-BCF1-D12CF49B7205} = {E5D4B5F9-6CCE-46CE-8985-9A350445F92B} {F2BF84D9-0A14-40AF-A0F3-B9BBBBC16A44} = {20CE9C97-9314-4A19-BCF1-D12CF49B7205} {2B47AD9F-FFF1-448A-88F1-D4F568811738} = {F2BF84D9-0A14-40AF-A0F3-B9BBBBC16A44} From 83230d377c114134166f6375d2d44305afce6d9c Mon Sep 17 00:00:00 2001 From: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com> Date: Mon, 8 May 2023 06:52:02 +0200 Subject: [PATCH 41/43] Handle unhappy paths for the multiple items endpoint (#14199) --- .../Controllers/ContentApiControllerBase.cs | 24 +++++ .../Controllers/QueryContentApiController.cs | 15 +++- .../Services/ApiContentQueryService.cs | 90 +++++++++++-------- .../DeliveryApi/IApiContentQueryService.cs | 7 +- .../DeliveryApi/NoopApiContentQueryService.cs | 5 +- .../ApiContentQueryOperationStatus.cs | 10 +++ 6 files changed, 108 insertions(+), 43 deletions(-) create mode 100644 src/Umbraco.Core/Services/OperationStatus/ApiContentQueryOperationStatus.cs 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/Services/ApiContentQueryService.cs b/src/Umbraco.Cms.Api.Delivery/Services/ApiContentQueryService.cs index 7a6a0181e8..83d0f1652f 100644 --- a/src/Umbraco.Cms.Api.Delivery/Services/ApiContentQueryService.cs +++ b/src/Umbraco.Cms.Api.Delivery/Services/ApiContentQueryService.cs @@ -5,6 +5,7 @@ using Umbraco.Cms.Api.Delivery.Indexing.Sorts; 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; @@ -39,13 +40,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(); @@ -56,14 +57,26 @@ 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).SelectFields(_itemIdOnlyFieldSet); + IOrdering? sortQuery = HandleSorting(sorts, queryOperation)?.SelectFields(_itemIdOnlyFieldSet); + + // If there is an invalid Sort option, we return no results + if (sortQuery is null) + { + return Attempt.FailWithStatus(ApiContentQueryOperationStatus.SortOptionNotFound, emptyResult); + } ISearchResults? results = sortQuery .SelectFields(_itemIdOnlyFieldSet) @@ -71,14 +84,16 @@ internal sealed class ApiContentQueryService : IApiContentQueryService // Examin if (results is null) { - return emptyResult; + // The query yield no results + return Attempt.SucceedWithStatus(ApiContentQueryOperationStatus.Success, emptyResult); } Guid[] items = results .Where(r => r.Values.ContainsKey("itemId")) .Select(r => Guid.Parse(r.Values["itemId"])) .ToArray(); - return new PagedModel(results.TotalItemCount, items); + + return Attempt.SucceedWithStatus(ApiContentQueryOperationStatus.Success, new PagedModel(results.TotalItemCount, items)); } private IBooleanOperation? HandleSelector(string? fetch, IQuery baseQuery) @@ -121,45 +136,50 @@ internal sealed class ApiContentQueryService : IApiContentQueryService // Examin 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) + + private IOrdering? HandleSorting(IEnumerable sorts, IBooleanOperation queryCriteria) { IOrdering? orderingQuery = null; @@ -170,7 +190,7 @@ internal sealed class ApiContentQueryService : IApiContentQueryService // Examin if (sort is null) { - continue; + return null; } SortType sortType = sort.FieldType switch 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/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/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 +} From 8f8eeefd900357e8ce19edea7683dc2ce654c6bb Mon Sep 17 00:00:00 2001 From: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com> Date: Mon, 8 May 2023 09:34:43 +0200 Subject: [PATCH 42/43] Delivery API: Fix default sorting when querying (#14207) * Fix default sort for the query endpoint * Revert changes in PathSortIndexer * If no sort query option is provided, keep the index sorting as default * Delete path sort and path sort indexer --------- Co-authored-by: kjac --- .../Indexing/Sorts/PathSortIndexer.cs | 15 ----------- .../Querying/Sorts/PathSort.cs | 27 ------------------- .../Services/ApiContentQueryService.cs | 18 +++++-------- 3 files changed, 7 insertions(+), 53 deletions(-) delete mode 100644 src/Umbraco.Cms.Api.Delivery/Indexing/Sorts/PathSortIndexer.cs delete mode 100644 src/Umbraco.Cms.Api.Delivery/Querying/Sorts/PathSort.cs diff --git a/src/Umbraco.Cms.Api.Delivery/Indexing/Sorts/PathSortIndexer.cs b/src/Umbraco.Cms.Api.Delivery/Indexing/Sorts/PathSortIndexer.cs deleted file mode 100644 index e85cb88eee..0000000000 --- a/src/Umbraco.Cms.Api.Delivery/Indexing/Sorts/PathSortIndexer.cs +++ /dev/null @@ -1,15 +0,0 @@ -using Umbraco.Cms.Core.DeliveryApi; -using Umbraco.Cms.Core.Models; - -namespace Umbraco.Cms.Api.Delivery.Indexing.Sorts; - -public sealed class PathSortIndexer : IContentIndexHandler -{ - internal const string FieldName = "path"; - - public IEnumerable GetFieldValues(IContent content) - => new[] { new IndexFieldValue { FieldName = FieldName, Value = content.Path } }; - - public IEnumerable GetFields() - => new[] { new IndexField { FieldName = FieldName, FieldType = FieldType.StringSortable } }; -} diff --git a/src/Umbraco.Cms.Api.Delivery/Querying/Sorts/PathSort.cs b/src/Umbraco.Cms.Api.Delivery/Querying/Sorts/PathSort.cs deleted file mode 100644 index 09eeeb0398..0000000000 --- a/src/Umbraco.Cms.Api.Delivery/Querying/Sorts/PathSort.cs +++ /dev/null @@ -1,27 +0,0 @@ -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 PathSort : ISortHandler -{ - private const string SortOptionSpecifier = "path:"; - - /// - 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 = PathSortIndexer.FieldName, - Direction = sortDirection.StartsWith("asc") ? Direction.Ascending : Direction.Descending, - FieldType = FieldType.String - }; - } -} diff --git a/src/Umbraco.Cms.Api.Delivery/Services/ApiContentQueryService.cs b/src/Umbraco.Cms.Api.Delivery/Services/ApiContentQueryService.cs index 83d0f1652f..efff5ef6b7 100644 --- a/src/Umbraco.Cms.Api.Delivery/Services/ApiContentQueryService.cs +++ b/src/Umbraco.Cms.Api.Delivery/Services/ApiContentQueryService.cs @@ -1,7 +1,6 @@ using Examine; using Examine.Search; using Umbraco.Cms.Api.Delivery.Indexing.Selectors; -using Umbraco.Cms.Api.Delivery.Indexing.Sorts; using Umbraco.Cms.Core; using Umbraco.Cms.Core.DeliveryApi; using Umbraco.Cms.Core.Models.PublishedContent; @@ -13,13 +12,13 @@ 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; private readonly string _fallbackGuidValue; - private readonly ISet _itemIdOnlyFieldSet = new HashSet { "itemId" }; public ApiContentQueryService( IExamineManager examineManager, @@ -70,7 +69,7 @@ internal sealed class ApiContentQueryService : IApiContentQueryService // Examin } // Handle Sorting - IOrdering? sortQuery = HandleSorting(sorts, queryOperation)?.SelectFields(_itemIdOnlyFieldSet); + IOrdering? sortQuery = HandleSorting(sorts, queryOperation); // If there is an invalid Sort option, we return no results if (sortQuery is null) @@ -79,7 +78,7 @@ internal sealed class ApiContentQueryService : IApiContentQueryService // Examin } ISearchResults? results = sortQuery - .SelectFields(_itemIdOnlyFieldSet) + .SelectField(ItemIdFieldName) .Execute(QueryOptions.SkipTake(skip, take)); if (results is null) @@ -89,8 +88,8 @@ internal sealed class ApiContentQueryService : IApiContentQueryService // Examin } Guid[] items = results - .Where(r => r.Values.ContainsKey("itemId")) - .Select(r => Guid.Parse(r.Values["itemId"])) + .Where(r => r.Values.ContainsKey(ItemIdFieldName)) + .Select(r => Guid.Parse(r.Values[ItemIdFieldName])) .ToArray(); return Attempt.SucceedWithStatus(ApiContentQueryOperationStatus.Success, new PagedModel(results.TotalItemCount, items)); @@ -178,7 +177,6 @@ internal sealed class ApiContentQueryService : IApiContentQueryService // Examin return true; } - private IOrdering? HandleSorting(IEnumerable sorts, IBooleanOperation queryCriteria) { IOrdering? orderingQuery = null; @@ -210,9 +208,7 @@ internal sealed class ApiContentQueryService : IApiContentQueryService // Examin }; } - return orderingQuery ?? // Apply default sorting (left-aligning the content tree) if no valid sort query params - queryCriteria - .OrderBy(new SortableField(PathSortIndexer.FieldName, SortType.String)) - .OrderBy(new SortableField(SortOrderSortIndexer.FieldName, SortType.Int)); + // Keep the index sorting as default + return orderingQuery ?? queryCriteria.OrderBy(); } } From 43e0dfc7c769a4370281cac5696ff8742b968784 Mon Sep 17 00:00:00 2001 From: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com> Date: Mon, 8 May 2023 13:20:02 +0200 Subject: [PATCH 43/43] Delivery API: Make classes sealed (#14214) * Make implementations sealed and internal if possible * Remove usings * Making some models sealed as well * Making more models sealed * Last model changes * Un-seal ApiContentResponse --------- Co-authored-by: kjac --- .../Configuration/ConfigureApiExplorerOptions.cs | 3 +-- .../ConfigureApiVersioningOptions.cs | 2 +- ...uestContextOutputExpansionStrategyAccessor.cs | 2 +- ...estContextRequestStartItemProviderAccessor.cs | 2 +- .../Filters/DeliveryApiAccessAttribute.cs | 2 +- .../LocalizeFromAcceptLanguageHeaderAttribute.cs | 2 +- .../Json/DeliveryApiJsonTypeResolver.cs | 16 ++++++++-------- .../Querying/QueryOptionBase.cs | 1 - .../VersionedDeliveryApiRouteAttribute.cs | 2 +- .../NoopOutputExpansionStrategyAccessor.cs | 2 +- .../DeliveryApi/ApiContentBuilder.cs | 2 +- .../DeliveryApi/ApiContentNameProvider.cs | 2 +- .../DeliveryApi/ApiContentResponseBuilder.cs | 2 +- .../DeliveryApi/ApiContentRouteBuilder.cs | 2 +- .../DeliveryApi/ApiElementBuilder.cs | 2 +- src/Umbraco.Core/DeliveryApi/ApiMediaBuilder.cs | 2 +- .../DeliveryApi/ApiMediaUrlProvider.cs | 2 +- .../DeliveryApi/ApiPublishedContentCache.cs | 2 +- .../DeliveryApi/ContentIndexHandlerCollection.cs | 2 +- .../ContentIndexHandlerCollectionBuilder.cs | 2 +- .../DeliveryApi/FilterHandlerCollection.cs | 2 +- .../FilterHandlerCollectionBuilder.cs | 2 +- src/Umbraco.Core/DeliveryApi/FilterOption.cs | 2 +- src/Umbraco.Core/DeliveryApi/IndexField.cs | 2 +- src/Umbraco.Core/DeliveryApi/IndexFieldValue.cs | 2 +- .../DeliveryApi/SelectorHandlerCollection.cs | 2 +- .../SelectorHandlerCollectionBuilder.cs | 2 +- src/Umbraco.Core/DeliveryApi/SelectorOption.cs | 2 +- .../DeliveryApi/SortHandlerCollection.cs | 2 +- .../DeliveryApi/SortHandlerCollectionBuilder.cs | 2 +- src/Umbraco.Core/DeliveryApi/SortOption.cs | 2 +- .../Models/DeliveryApi/ApiBlockGridArea.cs | 2 +- .../Models/DeliveryApi/ApiBlockGridItem.cs | 2 +- .../Models/DeliveryApi/ApiBlockGridModel.cs | 2 +- .../Models/DeliveryApi/ApiBlockListModel.cs | 2 +- .../Models/DeliveryApi/ApiContentRoute.cs | 2 +- .../Models/DeliveryApi/ApiContentStartItem.cs | 2 +- src/Umbraco.Core/Models/DeliveryApi/ApiLink.cs | 2 +- src/Umbraco.Core/Models/DeliveryApi/ApiMedia.cs | 2 +- .../Models/DeliveryApi/RichTextElement.cs | 2 +- .../DeliveryApi/ApiRichTextParser.cs | 2 +- .../UmbracoBuilder.CoreServices.cs | 1 - ...iveryApiContentIndexFieldDefinitionBuilder.cs | 2 +- .../Examine/DeliveryApiContentIndexPopulator.cs | 2 +- .../DeliveryApiContentIndexValueSetBuilder.cs | 2 +- .../Models/DeliveryApi/ApiImageCropperValue.cs | 2 +- .../Models/DeliveryApi/ApiMediaWithCrops.cs | 2 +- 47 files changed, 52 insertions(+), 55 deletions(-) diff --git a/src/Umbraco.Cms.Api.Common/Configuration/ConfigureApiExplorerOptions.cs b/src/Umbraco.Cms.Api.Common/Configuration/ConfigureApiExplorerOptions.cs index e6093cf29e..86f5bf73ae 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 928ea3925e..e6aa81f482 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/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/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/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/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.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 e045ec9d75..34146bf5cf 100644 --- a/src/Umbraco.Core/DeliveryApi/ApiContentRouteBuilder.cs +++ b/src/Umbraco.Core/DeliveryApi/ApiContentRouteBuilder.cs @@ -8,7 +8,7 @@ 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; 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 7773ee7236..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; 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/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/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/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.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 d285cbbcbd..73b4b9f87a 100644 --- a/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.CoreServices.cs +++ b/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.CoreServices.cs @@ -58,7 +58,6 @@ using Umbraco.Cms.Infrastructure.Search; 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/Examine/DeliveryApiContentIndexFieldDefinitionBuilder.cs b/src/Umbraco.Infrastructure/Examine/DeliveryApiContentIndexFieldDefinitionBuilder.cs index 8b4094f493..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; diff --git a/src/Umbraco.Infrastructure/Examine/DeliveryApiContentIndexPopulator.cs b/src/Umbraco.Infrastructure/Examine/DeliveryApiContentIndexPopulator.cs index 91bd3dba26..47080971f8 100644 --- a/src/Umbraco.Infrastructure/Examine/DeliveryApiContentIndexPopulator.cs +++ b/src/Umbraco.Infrastructure/Examine/DeliveryApiContentIndexPopulator.cs @@ -10,7 +10,7 @@ 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; diff --git a/src/Umbraco.Infrastructure/Examine/DeliveryApiContentIndexValueSetBuilder.cs b/src/Umbraco.Infrastructure/Examine/DeliveryApiContentIndexValueSetBuilder.cs index 8b62a8507d..87d0bbf9fa 100644 --- a/src/Umbraco.Infrastructure/Examine/DeliveryApiContentIndexValueSetBuilder.cs +++ b/src/Umbraco.Infrastructure/Examine/DeliveryApiContentIndexValueSetBuilder.cs @@ -9,7 +9,7 @@ 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; 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;