From 35950ee93fde7d9f5b7be30b4f8d0a753372ca4c Mon Sep 17 00:00:00 2001 From: Kevin Jump Date: Tue, 12 Sep 2023 15:29:12 +0100 Subject: [PATCH] V12/tree nodes - Part 2 (#540) * Add ability to extend child items of the uSync tree node. * don't append build onto version (we use it to find scripts) * schema update * Add Ability to direct menus from the sub items. * Fix - path seperator not using linux safe '/' value * fix - for subtrees,return a blank menu, when they don't have a menu. * Use interface not concrete class on tree controller. * Move the ProcessCleanAction method into the base, so any handler can do it. --- dist/build-package.ps1 | 5 +- uSync.AutoTemplates/packages.lock.json | 38 +++--- .../uSync.AutoTemplates.csproj | 2 +- .../Controllers/Trees/uSyncTreeController.cs | 57 -------- uSync.BackOffice/Expansions/ISyncTreeNode.cs | 91 +++++++++++++ .../Expansions/SyncTreeNodeCollection.cs | 29 ++++ .../Expansions/uSyncTreeController.cs | 126 ++++++++++++++++++ .../Services/uSyncService_Files.cs | 4 +- .../Services/uSyncService_Single.cs | 2 +- .../SyncHandlers/Handlers/ContentHandler.cs | 2 +- .../Handlers/ContentHandlerBase.cs | 27 +--- .../SyncHandlers/Handlers/LanguageHandler.cs | 7 + .../SyncHandlers/SyncHandlerBase.cs | 51 +++++-- .../SyncHandlers/SyncHandlerFactory.cs | 4 +- .../SyncHandlers/SyncHandlerRoot.cs | 6 +- uSync.BackOffice/packages.lock.json | 52 ++++---- uSync.BackOffice/uSync.BackOffice.csproj | 4 +- .../uSyncBackOfficeBuilderExtensions.cs | 3 + uSync.Backoffice.Assets/packages.lock.json | 54 ++++---- .../uSync.Backoffice.Assets.csproj | 2 +- uSync.Community.Contrib/packages.lock.json | 48 +++---- .../uSync.Community.Contrib.csproj | 4 +- .../packages.lock.json | 46 +++---- ...uSync.Community.DataTypeSerializers.csproj | 4 +- .../Serialization/SyncSerializerRoot.cs | 3 +- uSync.Core/packages.lock.json | 38 +++--- uSync.Core/uSync.Core.csproj | 2 +- uSync.SchemaGenerator/packages.lock.json | 52 ++++---- uSync.Tests/uSync.Tests.csproj | 6 +- uSync/packages.lock.json | 54 ++++---- 30 files changed, 518 insertions(+), 305 deletions(-) delete mode 100644 uSync.BackOffice/Controllers/Trees/uSyncTreeController.cs create mode 100644 uSync.BackOffice/Expansions/ISyncTreeNode.cs create mode 100644 uSync.BackOffice/Expansions/SyncTreeNodeCollection.cs create mode 100644 uSync.BackOffice/Expansions/uSyncTreeController.cs diff --git a/dist/build-package.ps1 b/dist/build-package.ps1 index d0b6d775..71098d9d 100644 --- a/dist/build-package.ps1 +++ b/dist/build-package.ps1 @@ -94,4 +94,7 @@ if ($push) { Write-Host "uSync Packaged : $fullVersion" Remove-Item ".\last-build-*" -Out-File -FilePath ".\last-build-$fullVersion.txt" -InputObject $fullVersion \ No newline at end of file +Out-File -FilePath ".\last-build-$fullVersion.txt" -InputObject $fullVersion + +## beep means i can look away :) +[console]::beep(1984,500) \ No newline at end of file diff --git a/uSync.AutoTemplates/packages.lock.json b/uSync.AutoTemplates/packages.lock.json index 5fe16a64..a30cec0f 100644 --- a/uSync.AutoTemplates/packages.lock.json +++ b/uSync.AutoTemplates/packages.lock.json @@ -4,13 +4,13 @@ "net7.0": { "Umbraco.Cms.Web.BackOffice": { "type": "Direct", - "requested": "[12.0.0, )", - "resolved": "12.0.0", - "contentHash": "FRdv36G9fygQfO1mjEpfM4jhIaw9olBF5SPOj5nKmhFkZ0c7eZV+9wJmXNWhbobU5N5jR0vfUl57gXX9sQ1qcg==", + "requested": "[12.0.1, )", + "resolved": "12.0.1", + "contentHash": "+t2sNeHPcDTok3pk+nQqmB22PNBV1uzJkkghgOAZz7uENYMiMG3wGGYz92Yz79z2Un9tXNta5l9B8fv91G5RiA==", "dependencies": { "Newtonsoft.Json": "13.0.3", "Serilog.AspNetCore": "7.0.0", - "Umbraco.Cms.Web.Common": "12.0.0" + "Umbraco.Cms.Web.Common": "12.0.1" } }, "Asp.Versioning.Abstractions": { @@ -2013,8 +2013,8 @@ }, "Umbraco.Cms.Core": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "pP2cyBiUdqJL/f7ji6nCkr9jEv24I5m7CmmXX8RVNXkFLsZvffJgOAqXh/ozJaLr3a4lUPJeNyeSvaYWXMTpLw==", + "resolved": "12.0.1", + "contentHash": "rJPnp7KBgbDoQusCUG0JPf1+76c2Wc/kNxkECHjXllBi7Ob0KwHgpqGp9KRewSOygSshZXHK2Hp4c3pkK+9Whw==", "dependencies": { "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", "Microsoft.Extensions.FileProviders.Embedded": "7.0.7", @@ -2035,17 +2035,17 @@ }, "Umbraco.Cms.Examine.Lucene": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "M7JvsMjMRR1DhF5YPaeeZfYBex+uiblE1qUymrAklGOrkMZn+W3Kakk27Jc1RTN32wAAGW/wxbixHQM2W0TZeQ==", + "resolved": "12.0.1", + "contentHash": "aY+SAtW6Ukwp9m/GnABBoWPzJm5Rg0Ye04yh5amOcr1D7PunXZtUC4KJySFyAAsKBl8N71oxX8WPr24Xy5M9iA==", "dependencies": { "Examine": "3.1.0", - "Umbraco.Cms.Infrastructure": "12.0.0" + "Umbraco.Cms.Infrastructure": "12.0.1" } }, "Umbraco.Cms.Infrastructure": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "5krqkb4TJtUCJfu0zM2272F9ucDpdQO6nkEJSstnfjsof6Nf4JtMJogqY/0WFNutHk992+jIDJinIf9ShHzYBw==", + "resolved": "12.0.1", + "contentHash": "nw/h4Q+MCaKTSltTwgXTzH79mpNgwdoV8Wzkb0rO015vZiC2KGxd+XkPgzgMO1Gqb3+8nK20mr1HwYd5QJMLWA==", "dependencies": { "Examine.Core": "3.1.0", "HtmlAgilityPack": "1.11.48", @@ -2075,26 +2075,26 @@ "System.IO.FileSystem.AccessControl": "5.0.0", "System.Security.Cryptography.Pkcs": "7.0.2", "System.Threading.Tasks.Dataflow": "7.0.0", - "Umbraco.Cms.Core": "12.0.0", + "Umbraco.Cms.Core": "12.0.1", "ncrontab": "3.3.1" } }, "Umbraco.Cms.PublishedCache.NuCache": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "h+Q5sqX+iDN0KlUY24Oi7XMvRAlZw2JzHsrbSQZ3kJlnSKvPB5ohWpG8U5oHlZwsfadaZRkLfYb1slu5c1lUXQ==", + "resolved": "12.0.1", + "contentHash": "DQfX0pzbofyjIRujjEclwYV/C0ojx9gV97rGOe7NtXN5zMHw2usfPSpBCuwtOAgPpGgQBMBZjxmrJLZerbO3tg==", "dependencies": { "K4os.Compression.LZ4": "1.3.5", "MessagePack": "2.5.108", "Newtonsoft.Json": "13.0.3", "Umbraco.CSharpTest.Net.Collections": "15.0.0", - "Umbraco.Cms.Infrastructure": "12.0.0" + "Umbraco.Cms.Infrastructure": "12.0.1" } }, "Umbraco.Cms.Web.Common": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "LuW9rtGkheo/77T5HdY5VtG9DXXe/Z68crVCiG9BMda6WS/oO6FOoa6ijm07DSe022mS+9j3zaQ4DN7ehiIhdg==", + "resolved": "12.0.1", + "contentHash": "WKV61k0PSDzaxHgPZiHboxx5NBfX/D5/DlapesTFBTrYSvytFO0Cll0fPorEUxO/Z3SdTVeLcXAjxH557Bmi1A==", "dependencies": { "Asp.Versioning.Mvc": "7.0.0", "Asp.Versioning.Mvc.ApiExplorer": "7.0.0", @@ -2104,8 +2104,8 @@ "MiniProfiler.AspNetCore.Mvc": "4.3.8", "Smidge.InMemory": "4.3.0", "Smidge.Nuglify": "4.3.0", - "Umbraco.Cms.Examine.Lucene": "12.0.0", - "Umbraco.Cms.PublishedCache.NuCache": "12.0.0" + "Umbraco.Cms.Examine.Lucene": "12.0.1", + "Umbraco.Cms.PublishedCache.NuCache": "12.0.1" } }, "Umbraco.CSharpTest.Net.Collections": { diff --git a/uSync.AutoTemplates/uSync.AutoTemplates.csproj b/uSync.AutoTemplates/uSync.AutoTemplates.csproj index 2b57759d..257f6037 100644 --- a/uSync.AutoTemplates/uSync.AutoTemplates.csproj +++ b/uSync.AutoTemplates/uSync.AutoTemplates.csproj @@ -6,7 +6,7 @@ - + diff --git a/uSync.BackOffice/Controllers/Trees/uSyncTreeController.cs b/uSync.BackOffice/Controllers/Trees/uSyncTreeController.cs deleted file mode 100644 index 7266576f..00000000 --- a/uSync.BackOffice/Controllers/Trees/uSyncTreeController.cs +++ /dev/null @@ -1,57 +0,0 @@ - -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; - -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.Events; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Core.Trees; -using Umbraco.Cms.Web.BackOffice.Trees; -using Umbraco.Cms.Web.Common.Attributes; -using Umbraco.Cms.Web.Common.ModelBinders; - -namespace uSync.BackOffice.Controllers.Trees -{ - /// - /// Tree controller for the 'uSync' tree - /// - [Tree(Constants.Applications.Settings, uSync.Trees.uSync, - TreeGroup = uSync.Trees.Group, - TreeTitle = uSync.Name, SortOrder = 35)] - [PluginController(uSync.Name)] - public class uSyncTreeController : TreeController - { - /// - public uSyncTreeController( - ILocalizedTextService localizedTextService, - UmbracoApiControllerTypeCollection umbracoApiControllerTypeCollection, - IEventAggregator eventAggregator) - : base(localizedTextService, umbracoApiControllerTypeCollection, eventAggregator) - { } - - /// - protected override ActionResult CreateRootNode(FormCollection queryStrings) - { - var result = base.CreateRootNode(queryStrings); - - result.Value.RoutePath = $"{this.SectionAlias}/{uSync.Trees.uSync}/dashboard"; - result.Value.Icon = "icon-infinity"; - result.Value.HasChildren = false; - result.Value.MenuUrl = null; - - return result.Value; - } - - /// - protected override ActionResult GetMenuForNode(string id, [ModelBinder(typeof(HttpQueryStringModelBinder))] FormCollection queryStrings) - { - return null; - } - - /// - protected override ActionResult GetTreeNodes(string id, [ModelBinder(typeof(HttpQueryStringModelBinder))] FormCollection queryStrings) - { - return new TreeNodeCollection(); - } - } -} diff --git a/uSync.BackOffice/Expansions/ISyncTreeNode.cs b/uSync.BackOffice/Expansions/ISyncTreeNode.cs new file mode 100644 index 00000000..9a67aded --- /dev/null +++ b/uSync.BackOffice/Expansions/ISyncTreeNode.cs @@ -0,0 +1,91 @@ +using System.Collections.Generic; + +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; + +using Umbraco.Cms.Core.Trees; + +namespace uSync.BackOffice.Expansions +{ + /// + /// add on for uSync that allows you to render a node + /// under the uSync tree. + /// + public interface ISyncTreeNode + { + /// + /// position in the tree, (higher is lower down the tree) + /// + public int Weight { get; } + + /// + /// Id this will be passed to the controller. + /// + public string Id { get; } + + /// + /// alias for the tree + /// + public string TreeAlias { get; } + + /// + /// alias for the node item + /// + public string Alias { get; } + + /// + /// title of the tree item + /// + public string Title { get; } + + /// + /// icon for the tree item. + /// + public string Icon { get; } + + + /// + /// method to return any additional child nodes under the parent node + /// + public IEnumerable GetChildNodes(string id, FormCollection queryStrings); + + /// + /// to display any context menu. + /// + /// + /// + /// + public ActionResult GetMenuItems(string id, FormCollection queryStrings); + } + + /// + /// Representation of a single tree node + /// + public class uSyncTreeNode + { + /// + /// Id for this tree node + /// + public string Id { get; set; } + + /// + /// Alias of the tree item + /// + public string Alias { get; set; } + + /// + /// title (shown to user) for tree item + /// + public string Title { get; set; } + + /// + /// Icon to display. + /// + public string Icon { get; set; } + + /// + /// segment path to this item. + /// + public string Path { get; set; } + } +} diff --git a/uSync.BackOffice/Expansions/SyncTreeNodeCollection.cs b/uSync.BackOffice/Expansions/SyncTreeNodeCollection.cs new file mode 100644 index 00000000..dec5f81a --- /dev/null +++ b/uSync.BackOffice/Expansions/SyncTreeNodeCollection.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; + +using Umbraco.Cms.Core.Composing; + +namespace uSync.BackOffice.Expansions; + +/// +/// collection of UI tree nodes, allows us to dynamically extend the uSync tree +/// +public class SyncTreeNodeCollection + : BuilderCollectionBase +{ + /// + public SyncTreeNodeCollection(Func> items) + : base(items) + { } +} + +/// +/// collection builder for UI tree nodes under uSync tree.(subtrees) +/// +public class SyncTreeNodeCollectionBuilder + : LazyCollectionBuilderBase +{ + /// + protected override SyncTreeNodeCollectionBuilder This => this; +} diff --git a/uSync.BackOffice/Expansions/uSyncTreeController.cs b/uSync.BackOffice/Expansions/uSyncTreeController.cs new file mode 100644 index 00000000..b76c3c42 --- /dev/null +++ b/uSync.BackOffice/Expansions/uSyncTreeController.cs @@ -0,0 +1,126 @@ +using System.Linq; + +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; + +using Umbraco.Cms.Core; +using Umbraco.Cms.Core.Events; +using Umbraco.Cms.Core.Services; +using Umbraco.Cms.Core.Trees; +using Umbraco.Cms.Web.BackOffice.Trees; +using Umbraco.Cms.Web.Common.Attributes; +using Umbraco.Cms.Web.Common.ModelBinders; +using Umbraco.Extensions; + +namespace uSync.BackOffice.Expansions +{ + /// + /// Tree controller for the 'uSync' tree + /// + [Tree(Constants.Applications.Settings, uSync.Trees.uSync, + TreeGroup = uSync.Trees.Group, + TreeTitle = uSync.Name, SortOrder = 35)] + [PluginController(uSync.Name)] + public class uSyncTreeController : TreeController + { + public SyncTreeNodeCollection _treeNodes; + private readonly IMenuItemCollectionFactory _menuItemsFactory; + + /// + public uSyncTreeController( + ILocalizedTextService localizedTextService, + UmbracoApiControllerTypeCollection umbracoApiControllerTypeCollection, + IEventAggregator eventAggregator, + SyncTreeNodeCollection treeNodes, + IMenuItemCollectionFactory menuItemsFactory) + : base(localizedTextService, umbracoApiControllerTypeCollection, eventAggregator) + { + _treeNodes = treeNodes; + _menuItemsFactory = menuItemsFactory; + } + + /// + protected override ActionResult CreateRootNode(FormCollection queryStrings) + { + var result = base.CreateRootNode(queryStrings); + + result.Value.RoutePath = $"{SectionAlias}/{uSync.Trees.uSync}/dashboard"; + result.Value.Icon = "icon-infinity"; + result.Value.HasChildren = _treeNodes.Count > 0; + result.Value.MenuUrl = null; + + return result.Value; + } + + private string getParentId(string id) + => id.IndexOf('_') < 0 ? id : id.Substring(0, id.IndexOf("_")); + + /// + protected override ActionResult GetMenuForNode(string id, [ModelBinder(typeof(HttpQueryStringModelBinder))] FormCollection queryStrings) + { + var defaultMenu = _menuItemsFactory.Create(); + + if (_treeNodes.Count == 0) return defaultMenu; + if (id == Constants.System.RootString) return defaultMenu; + + var parentId = getParentId(id); + var current = _treeNodes.FirstOrDefault(x => x.Id == parentId); + return current?.GetMenuItems(id, queryStrings) ?? defaultMenu; + } + + /// + protected override ActionResult GetTreeNodes(string id, [ModelBinder(typeof(HttpQueryStringModelBinder))] FormCollection queryStrings) + { + if (_treeNodes.Count == 0) return new TreeNodeCollection(); + + var collection = new TreeNodeCollection(); + + if (id == Constants.System.RootString) + { + foreach (var node in _treeNodes.OrderBy(x => x.Weight)) + { + var treeNode = CreateTreeNode( + node.Id, + id, + queryStrings, + node.Title, + node.Icon, + $"{SectionAlias}/{node.TreeAlias}/{node.Alias}"); + + var children = node.GetChildNodes(id, queryStrings); + if (children?.Any() == true) + treeNode.HasChildren = true; + + collection.Add(treeNode); + + } + + return collection; + } + else + { + var treeNode = _treeNodes.FirstOrDefault(x => x.Id == getParentId(id)); + if (treeNode != null) + { + var children = treeNode.GetChildNodes(id, queryStrings); + if (children != null) + { + foreach (var child in children) + { + collection.Add(CreateTreeNode( + $"{id}_{child.Id}", + id, + queryStrings, + child.Title, + child.Icon, + $"{SectionAlias}/{treeNode.TreeAlias}/{child.Path}")); + } + } + } + } + + return collection; + + } + } +} diff --git a/uSync.BackOffice/Services/uSyncService_Files.cs b/uSync.BackOffice/Services/uSyncService_Files.cs index 5fa71cbe..57d45f5a 100644 --- a/uSync.BackOffice/Services/uSyncService_Files.cs +++ b/uSync.BackOffice/Services/uSyncService_Files.cs @@ -31,7 +31,9 @@ public MemoryStream CompressFolder(string folder) { foreach (var file in files) { - var relativePath = GetRelativePath(fullPath, file.FullName); + var relativePath = GetRelativePath(fullPath, file.FullName) + .Replace(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); + archive.CreateEntryFromFile(file.FullName, relativePath); } } diff --git a/uSync.BackOffice/Services/uSyncService_Single.cs b/uSync.BackOffice/Services/uSyncService_Single.cs index b35fc4ed..32cc9bc3 100644 --- a/uSync.BackOffice/Services/uSyncService_Single.cs +++ b/uSync.BackOffice/Services/uSyncService_Single.cs @@ -51,7 +51,7 @@ public IEnumerable ReportPartial(string folder, uSyncPagedImportOpt if (handlerPair == null) { - _logger.LogWarning("No handler was found for {alias} item might not process correctly", itemType); + _logger.LogWarning("No handler was found for {alias} ({itemType}) item might not process correctly", itemType); continue; } diff --git a/uSync.BackOffice/SyncHandlers/Handlers/ContentHandler.cs b/uSync.BackOffice/SyncHandlers/Handlers/ContentHandler.cs index fc355f19..8911f335 100644 --- a/uSync.BackOffice/SyncHandlers/Handlers/ContentHandler.cs +++ b/uSync.BackOffice/SyncHandlers/Handlers/ContentHandler.cs @@ -24,7 +24,7 @@ namespace uSync.BackOffice.SyncHandlers.Handlers /// [SyncHandler(uSyncConstants.Handlers.ContentHandler, "Content", "Content", uSyncConstants.Priorites.Content , Icon = "icon-document usync-addon-icon", IsTwoPass = true, EntityType = UdiEntityType.Document)] - public class ContentHandler : ContentHandlerBase, ISyncHandler, ISyncCleanEntryHandler, + public class ContentHandler : ContentHandlerBase, ISyncHandler, INotificationHandler>, INotificationHandler>, INotificationHandler>, diff --git a/uSync.BackOffice/SyncHandlers/Handlers/ContentHandlerBase.cs b/uSync.BackOffice/SyncHandlers/Handlers/ContentHandlerBase.cs index be0d676c..aaf06223 100644 --- a/uSync.BackOffice/SyncHandlers/Handlers/ContentHandlerBase.cs +++ b/uSync.BackOffice/SyncHandlers/Handlers/ContentHandlerBase.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using System.Linq; using System.Xml.Linq; @@ -10,7 +9,6 @@ using Umbraco.Cms.Core.Notifications; using Umbraco.Cms.Core.Services; using Umbraco.Cms.Core.Strings; -using Umbraco.Cms.Web.BackOffice.Middleware; using Umbraco.Extensions; using uSync.BackOffice.Configuration; @@ -28,7 +26,7 @@ namespace uSync.BackOffice.SyncHandlers.Handlers /// places around the tree, so we have to check for file name /// clashes. /// - public abstract class ContentHandlerBase : SyncHandlerTreeBase + public abstract class ContentHandlerBase : SyncHandlerTreeBase where TObject : IContentBase where TService : IService { @@ -72,8 +70,8 @@ protected override string GetXmlMatchString(XElement node) /* * Config options. - * Include = Paths (comma seperated) (only include if path starts with one of these) - * Exclude = Paths (comma seperated) (exclude if path starts with one of these) + * Include = Paths (comma separated) (only include if path starts with one of these) + * Exclude = Paths (comma separated) (exclude if path starts with one of these) * * RulesOnExport = bool (do we apply the rules on export as well as import?) */ @@ -198,25 +196,6 @@ protected override bool ShouldExport(XElement node, HandlerSettings config) protected override bool DoActionsMatch(uSyncAction a, uSyncAction b) => a.key == b.key; - /// - /// Process any cleanup actions that may have been loaded up - /// - public virtual IEnumerable ProcessCleanActions(string folder, IEnumerable actions, HandlerSettings config) - { - var cleans = actions.Where(x => x.Change == ChangeType.Clean && !string.IsNullOrWhiteSpace(x.FileName)).ToList(); - if (cleans.Count == 0) return Enumerable.Empty(); - - var results = new List(); - - foreach (var clean in cleans) - { - if (!string.IsNullOrWhiteSpace(clean.FileName)) - results.AddRange(CleanFolder(clean.FileName, false, config.UseFlatStructure)); - } - - return results; - } - /// /// Handle the Umbraco Moved to recycle bin notification, (treated like a move) /// diff --git a/uSync.BackOffice/SyncHandlers/Handlers/LanguageHandler.cs b/uSync.BackOffice/SyncHandlers/Handlers/LanguageHandler.cs index d929a5f5..6c37575f 100644 --- a/uSync.BackOffice/SyncHandlers/Handlers/LanguageHandler.cs +++ b/uSync.BackOffice/SyncHandlers/Handlers/LanguageHandler.cs @@ -210,5 +210,12 @@ public override void Handle(SavedNotification notification) } } + + /// + /// we don't support language deletion (because the keys are unstable) + /// + protected override IEnumerable DeleteMissingItems(int parentId, IEnumerable keys, bool reportOnly) + => Enumerable.Empty(); + } } diff --git a/uSync.BackOffice/SyncHandlers/SyncHandlerBase.cs b/uSync.BackOffice/SyncHandlers/SyncHandlerBase.cs index 94f4e3c9..06a57561 100644 --- a/uSync.BackOffice/SyncHandlers/SyncHandlerBase.cs +++ b/uSync.BackOffice/SyncHandlers/SyncHandlerBase.cs @@ -6,7 +6,6 @@ using Microsoft.Extensions.Logging; -using Umbraco.Cms.Core; using Umbraco.Cms.Core.Cache; using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Models.Entities; @@ -15,19 +14,17 @@ using uSync.BackOffice.Configuration; using uSync.BackOffice.Services; +using uSync.BackOffice.SyncHandlers.Interfaces; using uSync.Core; using uSync.Core.Models; -using static System.Net.WebRequestMethods; - namespace uSync.BackOffice.SyncHandlers { /// /// Base class for any Handlers that manage IEntity type objects /// public abstract class SyncHandlerBase - : SyncHandlerRoot - + : SyncHandlerRoot, ISyncCleanEntryHandler where TObject : IEntity where TService : IService { @@ -96,14 +93,29 @@ protected override IEnumerable CleanFolder(string cleanFile, bool r private int GetCleanParentId(string cleanFile) { - var parent = GetCleanParent(cleanFile); - if (parent == null) + var node = XElement.Load(cleanFile); + var id = node.Attribute("Id").ValueOrDefault(0); + if (id != 0) return id; + return GetCleanParent(cleanFile)?.Id ?? 0; + } + + /// + /// Process any cleanup actions that may have been loaded up + /// + public virtual IEnumerable ProcessCleanActions(string folder, IEnumerable actions, HandlerSettings config) + { + var cleans = actions.Where(x => x.Change == ChangeType.Clean && !string.IsNullOrWhiteSpace(x.FileName)).ToList(); + if (cleans.Count == 0) return Enumerable.Empty(); + + var results = new List(); + + foreach (var clean in cleans) { - var node = XElement.Load(cleanFile); - var id = node.Attribute("Id").ValueOrDefault(0); - if (id == Constants.System.Root) return Constants.System.Root; + if (!string.IsNullOrWhiteSpace(clean.FileName)) + results.AddRange(CleanFolder(clean.FileName, false, config.UseFlatStructure)); } - return parent?.Id ?? 0; + + return results; } /// @@ -120,15 +132,28 @@ protected override IEnumerable DeleteMissingItems(int parentId, IEn var actions = new List(); foreach (var item in items.Where(x => !keys.Contains(x.Key))) { + logger.LogDebug("DeleteMissingItems: Found {item} that is not in file list (Reporting: {reportOnly})", item.Id, reportOnly); + var name = String.Empty; if (item is IEntitySlim slim) name = slim.Name; + if (string.IsNullOrEmpty(name) || !reportOnly) { - var actualItem = GetFromService(item.Key); + var actualItem = GetFromService(item.Id); + if (actualItem == null) + { + logger.LogDebug("Actual Item {id} can't be found", item.Id); + continue; + } + name = GetItemName(actualItem); // actually do the delete if we are really not reporting - if (!reportOnly) DeleteViaService(actualItem); + if (!reportOnly) + { + logger.LogInformation("Deleting item: {id} {name} as part of a 'clean' import", actualItem.Id, name); + DeleteViaService(actualItem); + } } // for reporting - we use the entity name, diff --git a/uSync.BackOffice/SyncHandlers/SyncHandlerFactory.cs b/uSync.BackOffice/SyncHandlers/SyncHandlerFactory.cs index 156880f2..d722565b 100644 --- a/uSync.BackOffice/SyncHandlers/SyncHandlerFactory.cs +++ b/uSync.BackOffice/SyncHandlers/SyncHandlerFactory.cs @@ -205,7 +205,7 @@ public IEnumerable GetValidHandlers(SyncHandlerOptions option { if (!options.IncludeDisabled && handlerSetSettings.DisabledHandlers.InvariantContains(handler.Alias)) { - _logger.LogDebug("Handler {hadler} is in the disabled handler list", handler.Alias); + _logger.LogTrace("Handler {handler} is in the disabled handler list", handler.Alias); continue; } @@ -220,7 +220,7 @@ public IEnumerable GetValidHandlers(SyncHandlerOptions option { _logger.LogDebug("No Handler with {alias} has been loaded", handler.Alias); // only log if we are doing the default 'everything' group - // because weh nfoing groups we choose not to load things. + // because when foing groups we choose not to load things. if (string.IsNullOrWhiteSpace(options.Group)) _logger.LogWarning("No Handler with {alias} has been loaded", handler.Alias); } diff --git a/uSync.BackOffice/SyncHandlers/SyncHandlerRoot.cs b/uSync.BackOffice/SyncHandlers/SyncHandlerRoot.cs index ff874e88..d1d2d16c 100644 --- a/uSync.BackOffice/SyncHandlers/SyncHandlerRoot.cs +++ b/uSync.BackOffice/SyncHandlers/SyncHandlerRoot.cs @@ -517,6 +517,10 @@ virtual public IEnumerable ImportSecondPass(uSyncAction action, Han try { var file = action.FileName; + + if (!syncFileService.FileExists(file)) + return Enumerable.Empty(); + var node = syncFileService.LoadXElement(file); var item = GetFromService(node.GetKey()); if (item == null) return Enumerable.Empty(); @@ -632,7 +636,7 @@ protected IList GetFolderKeys(string folder, bool flat) { var node = XElement.Load(file); var key = node.GetKey(); - if (!keys.Contains(key)) + if (key != Guid.Empty && !keys.Contains(key)) { keys.Add(key); } diff --git a/uSync.BackOffice/packages.lock.json b/uSync.BackOffice/packages.lock.json index f8840645..4b5dc92d 100644 --- a/uSync.BackOffice/packages.lock.json +++ b/uSync.BackOffice/packages.lock.json @@ -14,22 +14,22 @@ }, "Umbraco.Cms.Web.BackOffice": { "type": "Direct", - "requested": "[12.0.0, )", - "resolved": "12.0.0", - "contentHash": "FRdv36G9fygQfO1mjEpfM4jhIaw9olBF5SPOj5nKmhFkZ0c7eZV+9wJmXNWhbobU5N5jR0vfUl57gXX9sQ1qcg==", + "requested": "[12.0.1, )", + "resolved": "12.0.1", + "contentHash": "+t2sNeHPcDTok3pk+nQqmB22PNBV1uzJkkghgOAZz7uENYMiMG3wGGYz92Yz79z2Un9tXNta5l9B8fv91G5RiA==", "dependencies": { "Newtonsoft.Json": "13.0.3", "Serilog.AspNetCore": "7.0.0", - "Umbraco.Cms.Web.Common": "12.0.0" + "Umbraco.Cms.Web.Common": "12.0.1" } }, "Umbraco.Cms.Web.Website": { "type": "Direct", - "requested": "[12.0.0, )", - "resolved": "12.0.0", - "contentHash": "MryGu+G7QSBoGHp2VZPv60hj/cgvt0pK9+TTYlXeL7XLSRyyIVFq5y3KpBDSanNWyxBjKeZsMWj7wpB8+9DK+A==", + "requested": "[12.0.1, )", + "resolved": "12.0.1", + "contentHash": "h0f27Urd/sXrEkOZvWzZdqglc26UfqZYi0nmSwZC2GdmNjVZ8SxI+Xm26+mcKLnT2oVMA/IkXTRea8vYAfCG4Q==", "dependencies": { - "Umbraco.Cms.Web.Common": "12.0.0" + "Umbraco.Cms.Web.Common": "12.0.1" } }, "Asp.Versioning.Abstractions": { @@ -2042,8 +2042,8 @@ }, "Umbraco.Cms.Core": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "pP2cyBiUdqJL/f7ji6nCkr9jEv24I5m7CmmXX8RVNXkFLsZvffJgOAqXh/ozJaLr3a4lUPJeNyeSvaYWXMTpLw==", + "resolved": "12.0.1", + "contentHash": "rJPnp7KBgbDoQusCUG0JPf1+76c2Wc/kNxkECHjXllBi7Ob0KwHgpqGp9KRewSOygSshZXHK2Hp4c3pkK+9Whw==", "dependencies": { "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", "Microsoft.Extensions.FileProviders.Embedded": "7.0.7", @@ -2064,17 +2064,17 @@ }, "Umbraco.Cms.Examine.Lucene": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "M7JvsMjMRR1DhF5YPaeeZfYBex+uiblE1qUymrAklGOrkMZn+W3Kakk27Jc1RTN32wAAGW/wxbixHQM2W0TZeQ==", + "resolved": "12.0.1", + "contentHash": "aY+SAtW6Ukwp9m/GnABBoWPzJm5Rg0Ye04yh5amOcr1D7PunXZtUC4KJySFyAAsKBl8N71oxX8WPr24Xy5M9iA==", "dependencies": { "Examine": "3.1.0", - "Umbraco.Cms.Infrastructure": "12.0.0" + "Umbraco.Cms.Infrastructure": "12.0.1" } }, "Umbraco.Cms.Infrastructure": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "5krqkb4TJtUCJfu0zM2272F9ucDpdQO6nkEJSstnfjsof6Nf4JtMJogqY/0WFNutHk992+jIDJinIf9ShHzYBw==", + "resolved": "12.0.1", + "contentHash": "nw/h4Q+MCaKTSltTwgXTzH79mpNgwdoV8Wzkb0rO015vZiC2KGxd+XkPgzgMO1Gqb3+8nK20mr1HwYd5QJMLWA==", "dependencies": { "Examine.Core": "3.1.0", "HtmlAgilityPack": "1.11.48", @@ -2104,26 +2104,26 @@ "System.IO.FileSystem.AccessControl": "5.0.0", "System.Security.Cryptography.Pkcs": "7.0.2", "System.Threading.Tasks.Dataflow": "7.0.0", - "Umbraco.Cms.Core": "12.0.0", + "Umbraco.Cms.Core": "12.0.1", "ncrontab": "3.3.1" } }, "Umbraco.Cms.PublishedCache.NuCache": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "h+Q5sqX+iDN0KlUY24Oi7XMvRAlZw2JzHsrbSQZ3kJlnSKvPB5ohWpG8U5oHlZwsfadaZRkLfYb1slu5c1lUXQ==", + "resolved": "12.0.1", + "contentHash": "DQfX0pzbofyjIRujjEclwYV/C0ojx9gV97rGOe7NtXN5zMHw2usfPSpBCuwtOAgPpGgQBMBZjxmrJLZerbO3tg==", "dependencies": { "K4os.Compression.LZ4": "1.3.5", "MessagePack": "2.5.108", "Newtonsoft.Json": "13.0.3", "Umbraco.CSharpTest.Net.Collections": "15.0.0", - "Umbraco.Cms.Infrastructure": "12.0.0" + "Umbraco.Cms.Infrastructure": "12.0.1" } }, "Umbraco.Cms.Web.Common": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "LuW9rtGkheo/77T5HdY5VtG9DXXe/Z68crVCiG9BMda6WS/oO6FOoa6ijm07DSe022mS+9j3zaQ4DN7ehiIhdg==", + "resolved": "12.0.1", + "contentHash": "WKV61k0PSDzaxHgPZiHboxx5NBfX/D5/DlapesTFBTrYSvytFO0Cll0fPorEUxO/Z3SdTVeLcXAjxH557Bmi1A==", "dependencies": { "Asp.Versioning.Mvc": "7.0.0", "Asp.Versioning.Mvc.ApiExplorer": "7.0.0", @@ -2133,8 +2133,8 @@ "MiniProfiler.AspNetCore.Mvc": "4.3.8", "Smidge.InMemory": "4.3.0", "Smidge.Nuglify": "4.3.0", - "Umbraco.Cms.Examine.Lucene": "12.0.0", - "Umbraco.Cms.PublishedCache.NuCache": "12.0.0" + "Umbraco.Cms.Examine.Lucene": "12.0.1", + "Umbraco.Cms.PublishedCache.NuCache": "12.0.1" } }, "Umbraco.CSharpTest.Net.Collections": { @@ -2145,15 +2145,15 @@ "usync.community.contrib": { "type": "Project", "dependencies": { - "Umbraco.Cms.Web.BackOffice": "[12.0.0, )", - "Umbraco.Cms.Web.Website": "[12.0.0, )", + "Umbraco.Cms.Web.BackOffice": "[12.0.1, )", + "Umbraco.Cms.Web.Website": "[12.0.1, )", "uSync.Core": "[12.0.0, )" } }, "usync.core": { "type": "Project", "dependencies": { - "Umbraco.Cms.Web.Website": "[12.0.0, )" + "Umbraco.Cms.Web.Website": "[12.0.1, )" } } } diff --git a/uSync.BackOffice/uSync.BackOffice.csproj b/uSync.BackOffice/uSync.BackOffice.csproj index c4320984..1adfbe2b 100644 --- a/uSync.BackOffice/uSync.BackOffice.csproj +++ b/uSync.BackOffice/uSync.BackOffice.csproj @@ -20,8 +20,8 @@ - - + + diff --git a/uSync.BackOffice/uSyncBackOfficeBuilderExtensions.cs b/uSync.BackOffice/uSyncBackOfficeBuilderExtensions.cs index 4d66d51d..584c63cc 100644 --- a/uSync.BackOffice/uSyncBackOfficeBuilderExtensions.cs +++ b/uSync.BackOffice/uSyncBackOfficeBuilderExtensions.cs @@ -19,6 +19,7 @@ using uSync.BackOffice.Boot; using uSync.BackOffice.Cache; using uSync.BackOffice.Configuration; +using uSync.BackOffice.Expansions; using uSync.BackOffice.Hubs; using uSync.BackOffice.Notifications; using uSync.BackOffice.Services; @@ -88,6 +89,8 @@ public static IUmbracoBuilder AdduSync(this IUmbracoBuilder builder, Action CreatePolicies(o)); + builder.WithCollectionBuilder() + .Add(() => builder.TypeLoader.GetTypes()); return builder; } diff --git a/uSync.Backoffice.Assets/packages.lock.json b/uSync.Backoffice.Assets/packages.lock.json index 7abd5ed8..ea5ed954 100644 --- a/uSync.Backoffice.Assets/packages.lock.json +++ b/uSync.Backoffice.Assets/packages.lock.json @@ -17,13 +17,13 @@ }, "Umbraco.Cms.Web.BackOffice": { "type": "Direct", - "requested": "[12.0.0, )", - "resolved": "12.0.0", - "contentHash": "FRdv36G9fygQfO1mjEpfM4jhIaw9olBF5SPOj5nKmhFkZ0c7eZV+9wJmXNWhbobU5N5jR0vfUl57gXX9sQ1qcg==", + "requested": "[12.0.1, )", + "resolved": "12.0.1", + "contentHash": "+t2sNeHPcDTok3pk+nQqmB22PNBV1uzJkkghgOAZz7uENYMiMG3wGGYz92Yz79z2Un9tXNta5l9B8fv91G5RiA==", "dependencies": { "Newtonsoft.Json": "13.0.3", "Serilog.AspNetCore": "7.0.0", - "Umbraco.Cms.Web.Common": "12.0.0" + "Umbraco.Cms.Web.Common": "12.0.1" } }, "Asp.Versioning.Abstractions": { @@ -2068,8 +2068,8 @@ }, "Umbraco.Cms.Core": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "pP2cyBiUdqJL/f7ji6nCkr9jEv24I5m7CmmXX8RVNXkFLsZvffJgOAqXh/ozJaLr3a4lUPJeNyeSvaYWXMTpLw==", + "resolved": "12.0.1", + "contentHash": "rJPnp7KBgbDoQusCUG0JPf1+76c2Wc/kNxkECHjXllBi7Ob0KwHgpqGp9KRewSOygSshZXHK2Hp4c3pkK+9Whw==", "dependencies": { "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", "Microsoft.Extensions.FileProviders.Embedded": "7.0.7", @@ -2090,17 +2090,17 @@ }, "Umbraco.Cms.Examine.Lucene": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "M7JvsMjMRR1DhF5YPaeeZfYBex+uiblE1qUymrAklGOrkMZn+W3Kakk27Jc1RTN32wAAGW/wxbixHQM2W0TZeQ==", + "resolved": "12.0.1", + "contentHash": "aY+SAtW6Ukwp9m/GnABBoWPzJm5Rg0Ye04yh5amOcr1D7PunXZtUC4KJySFyAAsKBl8N71oxX8WPr24Xy5M9iA==", "dependencies": { "Examine": "3.1.0", - "Umbraco.Cms.Infrastructure": "12.0.0" + "Umbraco.Cms.Infrastructure": "12.0.1" } }, "Umbraco.Cms.Infrastructure": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "5krqkb4TJtUCJfu0zM2272F9ucDpdQO6nkEJSstnfjsof6Nf4JtMJogqY/0WFNutHk992+jIDJinIf9ShHzYBw==", + "resolved": "12.0.1", + "contentHash": "nw/h4Q+MCaKTSltTwgXTzH79mpNgwdoV8Wzkb0rO015vZiC2KGxd+XkPgzgMO1Gqb3+8nK20mr1HwYd5QJMLWA==", "dependencies": { "Examine.Core": "3.1.0", "HtmlAgilityPack": "1.11.48", @@ -2130,26 +2130,26 @@ "System.IO.FileSystem.AccessControl": "5.0.0", "System.Security.Cryptography.Pkcs": "7.0.2", "System.Threading.Tasks.Dataflow": "7.0.0", - "Umbraco.Cms.Core": "12.0.0", + "Umbraco.Cms.Core": "12.0.1", "ncrontab": "3.3.1" } }, "Umbraco.Cms.PublishedCache.NuCache": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "h+Q5sqX+iDN0KlUY24Oi7XMvRAlZw2JzHsrbSQZ3kJlnSKvPB5ohWpG8U5oHlZwsfadaZRkLfYb1slu5c1lUXQ==", + "resolved": "12.0.1", + "contentHash": "DQfX0pzbofyjIRujjEclwYV/C0ojx9gV97rGOe7NtXN5zMHw2usfPSpBCuwtOAgPpGgQBMBZjxmrJLZerbO3tg==", "dependencies": { "K4os.Compression.LZ4": "1.3.5", "MessagePack": "2.5.108", "Newtonsoft.Json": "13.0.3", "Umbraco.CSharpTest.Net.Collections": "15.0.0", - "Umbraco.Cms.Infrastructure": "12.0.0" + "Umbraco.Cms.Infrastructure": "12.0.1" } }, "Umbraco.Cms.Web.Common": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "LuW9rtGkheo/77T5HdY5VtG9DXXe/Z68crVCiG9BMda6WS/oO6FOoa6ijm07DSe022mS+9j3zaQ4DN7ehiIhdg==", + "resolved": "12.0.1", + "contentHash": "WKV61k0PSDzaxHgPZiHboxx5NBfX/D5/DlapesTFBTrYSvytFO0Cll0fPorEUxO/Z3SdTVeLcXAjxH557Bmi1A==", "dependencies": { "Asp.Versioning.Mvc": "7.0.0", "Asp.Versioning.Mvc.ApiExplorer": "7.0.0", @@ -2159,16 +2159,16 @@ "MiniProfiler.AspNetCore.Mvc": "4.3.8", "Smidge.InMemory": "4.3.0", "Smidge.Nuglify": "4.3.0", - "Umbraco.Cms.Examine.Lucene": "12.0.0", - "Umbraco.Cms.PublishedCache.NuCache": "12.0.0" + "Umbraco.Cms.Examine.Lucene": "12.0.1", + "Umbraco.Cms.PublishedCache.NuCache": "12.0.1" } }, "Umbraco.Cms.Web.Website": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "MryGu+G7QSBoGHp2VZPv60hj/cgvt0pK9+TTYlXeL7XLSRyyIVFq5y3KpBDSanNWyxBjKeZsMWj7wpB8+9DK+A==", + "resolved": "12.0.1", + "contentHash": "h0f27Urd/sXrEkOZvWzZdqglc26UfqZYi0nmSwZC2GdmNjVZ8SxI+Xm26+mcKLnT2oVMA/IkXTRea8vYAfCG4Q==", "dependencies": { - "Umbraco.Cms.Web.Common": "12.0.0" + "Umbraco.Cms.Web.Common": "12.0.1" } }, "Umbraco.CSharpTest.Net.Collections": { @@ -2179,8 +2179,8 @@ "usync.backoffice": { "type": "Project", "dependencies": { - "Umbraco.Cms.Web.BackOffice": "[12.0.0, )", - "Umbraco.Cms.Web.Website": "[12.0.0, )", + "Umbraco.Cms.Web.BackOffice": "[12.0.1, )", + "Umbraco.Cms.Web.Website": "[12.0.1, )", "uSync.Community.Contrib": "[9.0.0, )", "uSync.Core": "[12.0.0, )" } @@ -2191,15 +2191,15 @@ "usync.community.contrib": { "type": "Project", "dependencies": { - "Umbraco.Cms.Web.BackOffice": "[12.0.0, )", - "Umbraco.Cms.Web.Website": "[12.0.0, )", + "Umbraco.Cms.Web.BackOffice": "[12.0.1, )", + "Umbraco.Cms.Web.Website": "[12.0.1, )", "uSync.Core": "[12.0.0, )" } }, "usync.core": { "type": "Project", "dependencies": { - "Umbraco.Cms.Web.Website": "[12.0.0, )" + "Umbraco.Cms.Web.Website": "[12.0.1, )" } } } diff --git a/uSync.Backoffice.Assets/uSync.Backoffice.Assets.csproj b/uSync.Backoffice.Assets/uSync.Backoffice.Assets.csproj index a61a3b0b..c56b1521 100644 --- a/uSync.Backoffice.Assets/uSync.Backoffice.Assets.csproj +++ b/uSync.Backoffice.Assets/uSync.Backoffice.Assets.csproj @@ -25,7 +25,7 @@ - + diff --git a/uSync.Community.Contrib/packages.lock.json b/uSync.Community.Contrib/packages.lock.json index 1c8667d5..46d54e87 100644 --- a/uSync.Community.Contrib/packages.lock.json +++ b/uSync.Community.Contrib/packages.lock.json @@ -14,22 +14,22 @@ }, "Umbraco.Cms.Web.BackOffice": { "type": "Direct", - "requested": "[12.0.0, )", - "resolved": "12.0.0", - "contentHash": "FRdv36G9fygQfO1mjEpfM4jhIaw9olBF5SPOj5nKmhFkZ0c7eZV+9wJmXNWhbobU5N5jR0vfUl57gXX9sQ1qcg==", + "requested": "[12.0.1, )", + "resolved": "12.0.1", + "contentHash": "+t2sNeHPcDTok3pk+nQqmB22PNBV1uzJkkghgOAZz7uENYMiMG3wGGYz92Yz79z2Un9tXNta5l9B8fv91G5RiA==", "dependencies": { "Newtonsoft.Json": "13.0.3", "Serilog.AspNetCore": "7.0.0", - "Umbraco.Cms.Web.Common": "12.0.0" + "Umbraco.Cms.Web.Common": "12.0.1" } }, "Umbraco.Cms.Web.Website": { "type": "Direct", - "requested": "[12.0.0, )", - "resolved": "12.0.0", - "contentHash": "MryGu+G7QSBoGHp2VZPv60hj/cgvt0pK9+TTYlXeL7XLSRyyIVFq5y3KpBDSanNWyxBjKeZsMWj7wpB8+9DK+A==", + "requested": "[12.0.1, )", + "resolved": "12.0.1", + "contentHash": "h0f27Urd/sXrEkOZvWzZdqglc26UfqZYi0nmSwZC2GdmNjVZ8SxI+Xm26+mcKLnT2oVMA/IkXTRea8vYAfCG4Q==", "dependencies": { - "Umbraco.Cms.Web.Common": "12.0.0" + "Umbraco.Cms.Web.Common": "12.0.1" } }, "Asp.Versioning.Abstractions": { @@ -2042,8 +2042,8 @@ }, "Umbraco.Cms.Core": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "pP2cyBiUdqJL/f7ji6nCkr9jEv24I5m7CmmXX8RVNXkFLsZvffJgOAqXh/ozJaLr3a4lUPJeNyeSvaYWXMTpLw==", + "resolved": "12.0.1", + "contentHash": "rJPnp7KBgbDoQusCUG0JPf1+76c2Wc/kNxkECHjXllBi7Ob0KwHgpqGp9KRewSOygSshZXHK2Hp4c3pkK+9Whw==", "dependencies": { "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", "Microsoft.Extensions.FileProviders.Embedded": "7.0.7", @@ -2064,17 +2064,17 @@ }, "Umbraco.Cms.Examine.Lucene": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "M7JvsMjMRR1DhF5YPaeeZfYBex+uiblE1qUymrAklGOrkMZn+W3Kakk27Jc1RTN32wAAGW/wxbixHQM2W0TZeQ==", + "resolved": "12.0.1", + "contentHash": "aY+SAtW6Ukwp9m/GnABBoWPzJm5Rg0Ye04yh5amOcr1D7PunXZtUC4KJySFyAAsKBl8N71oxX8WPr24Xy5M9iA==", "dependencies": { "Examine": "3.1.0", - "Umbraco.Cms.Infrastructure": "12.0.0" + "Umbraco.Cms.Infrastructure": "12.0.1" } }, "Umbraco.Cms.Infrastructure": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "5krqkb4TJtUCJfu0zM2272F9ucDpdQO6nkEJSstnfjsof6Nf4JtMJogqY/0WFNutHk992+jIDJinIf9ShHzYBw==", + "resolved": "12.0.1", + "contentHash": "nw/h4Q+MCaKTSltTwgXTzH79mpNgwdoV8Wzkb0rO015vZiC2KGxd+XkPgzgMO1Gqb3+8nK20mr1HwYd5QJMLWA==", "dependencies": { "Examine.Core": "3.1.0", "HtmlAgilityPack": "1.11.48", @@ -2104,26 +2104,26 @@ "System.IO.FileSystem.AccessControl": "5.0.0", "System.Security.Cryptography.Pkcs": "7.0.2", "System.Threading.Tasks.Dataflow": "7.0.0", - "Umbraco.Cms.Core": "12.0.0", + "Umbraco.Cms.Core": "12.0.1", "ncrontab": "3.3.1" } }, "Umbraco.Cms.PublishedCache.NuCache": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "h+Q5sqX+iDN0KlUY24Oi7XMvRAlZw2JzHsrbSQZ3kJlnSKvPB5ohWpG8U5oHlZwsfadaZRkLfYb1slu5c1lUXQ==", + "resolved": "12.0.1", + "contentHash": "DQfX0pzbofyjIRujjEclwYV/C0ojx9gV97rGOe7NtXN5zMHw2usfPSpBCuwtOAgPpGgQBMBZjxmrJLZerbO3tg==", "dependencies": { "K4os.Compression.LZ4": "1.3.5", "MessagePack": "2.5.108", "Newtonsoft.Json": "13.0.3", "Umbraco.CSharpTest.Net.Collections": "15.0.0", - "Umbraco.Cms.Infrastructure": "12.0.0" + "Umbraco.Cms.Infrastructure": "12.0.1" } }, "Umbraco.Cms.Web.Common": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "LuW9rtGkheo/77T5HdY5VtG9DXXe/Z68crVCiG9BMda6WS/oO6FOoa6ijm07DSe022mS+9j3zaQ4DN7ehiIhdg==", + "resolved": "12.0.1", + "contentHash": "WKV61k0PSDzaxHgPZiHboxx5NBfX/D5/DlapesTFBTrYSvytFO0Cll0fPorEUxO/Z3SdTVeLcXAjxH557Bmi1A==", "dependencies": { "Asp.Versioning.Mvc": "7.0.0", "Asp.Versioning.Mvc.ApiExplorer": "7.0.0", @@ -2133,8 +2133,8 @@ "MiniProfiler.AspNetCore.Mvc": "4.3.8", "Smidge.InMemory": "4.3.0", "Smidge.Nuglify": "4.3.0", - "Umbraco.Cms.Examine.Lucene": "12.0.0", - "Umbraco.Cms.PublishedCache.NuCache": "12.0.0" + "Umbraco.Cms.Examine.Lucene": "12.0.1", + "Umbraco.Cms.PublishedCache.NuCache": "12.0.1" } }, "Umbraco.CSharpTest.Net.Collections": { @@ -2145,7 +2145,7 @@ "usync.core": { "type": "Project", "dependencies": { - "Umbraco.Cms.Web.Website": "[12.0.0, )" + "Umbraco.Cms.Web.Website": "[12.0.1, )" } } } diff --git a/uSync.Community.Contrib/uSync.Community.Contrib.csproj b/uSync.Community.Contrib/uSync.Community.Contrib.csproj index d7c3673c..8218896b 100644 --- a/uSync.Community.Contrib/uSync.Community.Contrib.csproj +++ b/uSync.Community.Contrib/uSync.Community.Contrib.csproj @@ -15,9 +15,9 @@ - + - + diff --git a/uSync.Community.DataTypeSerializers/packages.lock.json b/uSync.Community.DataTypeSerializers/packages.lock.json index a1658ab6..228742cf 100644 --- a/uSync.Community.DataTypeSerializers/packages.lock.json +++ b/uSync.Community.DataTypeSerializers/packages.lock.json @@ -14,22 +14,22 @@ }, "Umbraco.Cms.Web.BackOffice": { "type": "Direct", - "requested": "[12.0.0, )", - "resolved": "12.0.0", - "contentHash": "FRdv36G9fygQfO1mjEpfM4jhIaw9olBF5SPOj5nKmhFkZ0c7eZV+9wJmXNWhbobU5N5jR0vfUl57gXX9sQ1qcg==", + "requested": "[12.0.1, )", + "resolved": "12.0.1", + "contentHash": "+t2sNeHPcDTok3pk+nQqmB22PNBV1uzJkkghgOAZz7uENYMiMG3wGGYz92Yz79z2Un9tXNta5l9B8fv91G5RiA==", "dependencies": { "Newtonsoft.Json": "13.0.3", "Serilog.AspNetCore": "7.0.0", - "Umbraco.Cms.Web.Common": "12.0.0" + "Umbraco.Cms.Web.Common": "12.0.1" } }, "Umbraco.Cms.Web.Website": { "type": "Direct", - "requested": "[12.0.0, )", - "resolved": "12.0.0", - "contentHash": "MryGu+G7QSBoGHp2VZPv60hj/cgvt0pK9+TTYlXeL7XLSRyyIVFq5y3KpBDSanNWyxBjKeZsMWj7wpB8+9DK+A==", + "requested": "[12.0.1, )", + "resolved": "12.0.1", + "contentHash": "h0f27Urd/sXrEkOZvWzZdqglc26UfqZYi0nmSwZC2GdmNjVZ8SxI+Xm26+mcKLnT2oVMA/IkXTRea8vYAfCG4Q==", "dependencies": { - "Umbraco.Cms.Web.Common": "12.0.0" + "Umbraco.Cms.Web.Common": "12.0.1" } }, "uSync.BackOffice": { @@ -2054,8 +2054,8 @@ }, "Umbraco.Cms.Core": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "pP2cyBiUdqJL/f7ji6nCkr9jEv24I5m7CmmXX8RVNXkFLsZvffJgOAqXh/ozJaLr3a4lUPJeNyeSvaYWXMTpLw==", + "resolved": "12.0.1", + "contentHash": "rJPnp7KBgbDoQusCUG0JPf1+76c2Wc/kNxkECHjXllBi7Ob0KwHgpqGp9KRewSOygSshZXHK2Hp4c3pkK+9Whw==", "dependencies": { "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", "Microsoft.Extensions.FileProviders.Embedded": "7.0.7", @@ -2076,17 +2076,17 @@ }, "Umbraco.Cms.Examine.Lucene": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "M7JvsMjMRR1DhF5YPaeeZfYBex+uiblE1qUymrAklGOrkMZn+W3Kakk27Jc1RTN32wAAGW/wxbixHQM2W0TZeQ==", + "resolved": "12.0.1", + "contentHash": "aY+SAtW6Ukwp9m/GnABBoWPzJm5Rg0Ye04yh5amOcr1D7PunXZtUC4KJySFyAAsKBl8N71oxX8WPr24Xy5M9iA==", "dependencies": { "Examine": "3.1.0", - "Umbraco.Cms.Infrastructure": "12.0.0" + "Umbraco.Cms.Infrastructure": "12.0.1" } }, "Umbraco.Cms.Infrastructure": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "5krqkb4TJtUCJfu0zM2272F9ucDpdQO6nkEJSstnfjsof6Nf4JtMJogqY/0WFNutHk992+jIDJinIf9ShHzYBw==", + "resolved": "12.0.1", + "contentHash": "nw/h4Q+MCaKTSltTwgXTzH79mpNgwdoV8Wzkb0rO015vZiC2KGxd+XkPgzgMO1Gqb3+8nK20mr1HwYd5QJMLWA==", "dependencies": { "Examine.Core": "3.1.0", "HtmlAgilityPack": "1.11.48", @@ -2116,26 +2116,26 @@ "System.IO.FileSystem.AccessControl": "5.0.0", "System.Security.Cryptography.Pkcs": "7.0.2", "System.Threading.Tasks.Dataflow": "7.0.0", - "Umbraco.Cms.Core": "12.0.0", + "Umbraco.Cms.Core": "12.0.1", "ncrontab": "3.3.1" } }, "Umbraco.Cms.PublishedCache.NuCache": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "h+Q5sqX+iDN0KlUY24Oi7XMvRAlZw2JzHsrbSQZ3kJlnSKvPB5ohWpG8U5oHlZwsfadaZRkLfYb1slu5c1lUXQ==", + "resolved": "12.0.1", + "contentHash": "DQfX0pzbofyjIRujjEclwYV/C0ojx9gV97rGOe7NtXN5zMHw2usfPSpBCuwtOAgPpGgQBMBZjxmrJLZerbO3tg==", "dependencies": { "K4os.Compression.LZ4": "1.3.5", "MessagePack": "2.5.108", "Newtonsoft.Json": "13.0.3", "Umbraco.CSharpTest.Net.Collections": "15.0.0", - "Umbraco.Cms.Infrastructure": "12.0.0" + "Umbraco.Cms.Infrastructure": "12.0.1" } }, "Umbraco.Cms.Web.Common": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "LuW9rtGkheo/77T5HdY5VtG9DXXe/Z68crVCiG9BMda6WS/oO6FOoa6ijm07DSe022mS+9j3zaQ4DN7ehiIhdg==", + "resolved": "12.0.1", + "contentHash": "WKV61k0PSDzaxHgPZiHboxx5NBfX/D5/DlapesTFBTrYSvytFO0Cll0fPorEUxO/Z3SdTVeLcXAjxH557Bmi1A==", "dependencies": { "Asp.Versioning.Mvc": "7.0.0", "Asp.Versioning.Mvc.ApiExplorer": "7.0.0", @@ -2145,8 +2145,8 @@ "MiniProfiler.AspNetCore.Mvc": "4.3.8", "Smidge.InMemory": "4.3.0", "Smidge.Nuglify": "4.3.0", - "Umbraco.Cms.Examine.Lucene": "12.0.0", - "Umbraco.Cms.PublishedCache.NuCache": "12.0.0" + "Umbraco.Cms.Examine.Lucene": "12.0.1", + "Umbraco.Cms.PublishedCache.NuCache": "12.0.1" } }, "Umbraco.CSharpTest.Net.Collections": { diff --git a/uSync.Community.DataTypeSerializers/uSync.Community.DataTypeSerializers.csproj b/uSync.Community.DataTypeSerializers/uSync.Community.DataTypeSerializers.csproj index 31b845d7..20cbb223 100644 --- a/uSync.Community.DataTypeSerializers/uSync.Community.DataTypeSerializers.csproj +++ b/uSync.Community.DataTypeSerializers/uSync.Community.DataTypeSerializers.csproj @@ -18,8 +18,8 @@ - - + + diff --git a/uSync.Core/Serialization/SyncSerializerRoot.cs b/uSync.Core/Serialization/SyncSerializerRoot.cs index 13014a3b..65779964 100644 --- a/uSync.Core/Serialization/SyncSerializerRoot.cs +++ b/uSync.Core/Serialization/SyncSerializerRoot.cs @@ -159,10 +159,11 @@ protected SyncAttempt ProcessAction(XElement node, SyncSerializerOption var actionType = node.Attribute("Change").ValueOrDefault(SyncActionType.None); - logger.LogDebug("Empty Node : Processing Action {0}", actionType); var (key, alias) = FindKeyAndAlias(node); + logger.LogDebug("Empty Node : Processing Action {actionType} ({key} {alias})", actionType, key, alias); + switch (actionType) { case SyncActionType.Delete: diff --git a/uSync.Core/packages.lock.json b/uSync.Core/packages.lock.json index db5ba230..8d369c78 100644 --- a/uSync.Core/packages.lock.json +++ b/uSync.Core/packages.lock.json @@ -14,11 +14,11 @@ }, "Umbraco.Cms.Web.Website": { "type": "Direct", - "requested": "[12.0.0, )", - "resolved": "12.0.0", - "contentHash": "MryGu+G7QSBoGHp2VZPv60hj/cgvt0pK9+TTYlXeL7XLSRyyIVFq5y3KpBDSanNWyxBjKeZsMWj7wpB8+9DK+A==", + "requested": "[12.0.1, )", + "resolved": "12.0.1", + "contentHash": "h0f27Urd/sXrEkOZvWzZdqglc26UfqZYi0nmSwZC2GdmNjVZ8SxI+Xm26+mcKLnT2oVMA/IkXTRea8vYAfCG4Q==", "dependencies": { - "Umbraco.Cms.Web.Common": "12.0.0" + "Umbraco.Cms.Web.Common": "12.0.1" } }, "Asp.Versioning.Abstractions": { @@ -1999,8 +1999,8 @@ }, "Umbraco.Cms.Core": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "pP2cyBiUdqJL/f7ji6nCkr9jEv24I5m7CmmXX8RVNXkFLsZvffJgOAqXh/ozJaLr3a4lUPJeNyeSvaYWXMTpLw==", + "resolved": "12.0.1", + "contentHash": "rJPnp7KBgbDoQusCUG0JPf1+76c2Wc/kNxkECHjXllBi7Ob0KwHgpqGp9KRewSOygSshZXHK2Hp4c3pkK+9Whw==", "dependencies": { "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", "Microsoft.Extensions.FileProviders.Embedded": "7.0.7", @@ -2021,17 +2021,17 @@ }, "Umbraco.Cms.Examine.Lucene": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "M7JvsMjMRR1DhF5YPaeeZfYBex+uiblE1qUymrAklGOrkMZn+W3Kakk27Jc1RTN32wAAGW/wxbixHQM2W0TZeQ==", + "resolved": "12.0.1", + "contentHash": "aY+SAtW6Ukwp9m/GnABBoWPzJm5Rg0Ye04yh5amOcr1D7PunXZtUC4KJySFyAAsKBl8N71oxX8WPr24Xy5M9iA==", "dependencies": { "Examine": "3.1.0", - "Umbraco.Cms.Infrastructure": "12.0.0" + "Umbraco.Cms.Infrastructure": "12.0.1" } }, "Umbraco.Cms.Infrastructure": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "5krqkb4TJtUCJfu0zM2272F9ucDpdQO6nkEJSstnfjsof6Nf4JtMJogqY/0WFNutHk992+jIDJinIf9ShHzYBw==", + "resolved": "12.0.1", + "contentHash": "nw/h4Q+MCaKTSltTwgXTzH79mpNgwdoV8Wzkb0rO015vZiC2KGxd+XkPgzgMO1Gqb3+8nK20mr1HwYd5QJMLWA==", "dependencies": { "Examine.Core": "3.1.0", "HtmlAgilityPack": "1.11.48", @@ -2061,26 +2061,26 @@ "System.IO.FileSystem.AccessControl": "5.0.0", "System.Security.Cryptography.Pkcs": "7.0.2", "System.Threading.Tasks.Dataflow": "7.0.0", - "Umbraco.Cms.Core": "12.0.0", + "Umbraco.Cms.Core": "12.0.1", "ncrontab": "3.3.1" } }, "Umbraco.Cms.PublishedCache.NuCache": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "h+Q5sqX+iDN0KlUY24Oi7XMvRAlZw2JzHsrbSQZ3kJlnSKvPB5ohWpG8U5oHlZwsfadaZRkLfYb1slu5c1lUXQ==", + "resolved": "12.0.1", + "contentHash": "DQfX0pzbofyjIRujjEclwYV/C0ojx9gV97rGOe7NtXN5zMHw2usfPSpBCuwtOAgPpGgQBMBZjxmrJLZerbO3tg==", "dependencies": { "K4os.Compression.LZ4": "1.3.5", "MessagePack": "2.5.108", "Newtonsoft.Json": "13.0.3", "Umbraco.CSharpTest.Net.Collections": "15.0.0", - "Umbraco.Cms.Infrastructure": "12.0.0" + "Umbraco.Cms.Infrastructure": "12.0.1" } }, "Umbraco.Cms.Web.Common": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "LuW9rtGkheo/77T5HdY5VtG9DXXe/Z68crVCiG9BMda6WS/oO6FOoa6ijm07DSe022mS+9j3zaQ4DN7ehiIhdg==", + "resolved": "12.0.1", + "contentHash": "WKV61k0PSDzaxHgPZiHboxx5NBfX/D5/DlapesTFBTrYSvytFO0Cll0fPorEUxO/Z3SdTVeLcXAjxH557Bmi1A==", "dependencies": { "Asp.Versioning.Mvc": "7.0.0", "Asp.Versioning.Mvc.ApiExplorer": "7.0.0", @@ -2090,8 +2090,8 @@ "MiniProfiler.AspNetCore.Mvc": "4.3.8", "Smidge.InMemory": "4.3.0", "Smidge.Nuglify": "4.3.0", - "Umbraco.Cms.Examine.Lucene": "12.0.0", - "Umbraco.Cms.PublishedCache.NuCache": "12.0.0" + "Umbraco.Cms.Examine.Lucene": "12.0.1", + "Umbraco.Cms.PublishedCache.NuCache": "12.0.1" } }, "Umbraco.CSharpTest.Net.Collections": { diff --git a/uSync.Core/uSync.Core.csproj b/uSync.Core/uSync.Core.csproj index 8557fc0c..e97c1e60 100644 --- a/uSync.Core/uSync.Core.csproj +++ b/uSync.Core/uSync.Core.csproj @@ -17,7 +17,7 @@ - + diff --git a/uSync.SchemaGenerator/packages.lock.json b/uSync.SchemaGenerator/packages.lock.json index 7d67305a..242e5131 100644 --- a/uSync.SchemaGenerator/packages.lock.json +++ b/uSync.SchemaGenerator/packages.lock.json @@ -2026,8 +2026,8 @@ }, "Umbraco.Cms.Core": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "pP2cyBiUdqJL/f7ji6nCkr9jEv24I5m7CmmXX8RVNXkFLsZvffJgOAqXh/ozJaLr3a4lUPJeNyeSvaYWXMTpLw==", + "resolved": "12.0.1", + "contentHash": "rJPnp7KBgbDoQusCUG0JPf1+76c2Wc/kNxkECHjXllBi7Ob0KwHgpqGp9KRewSOygSshZXHK2Hp4c3pkK+9Whw==", "dependencies": { "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", "Microsoft.Extensions.FileProviders.Embedded": "7.0.7", @@ -2048,17 +2048,17 @@ }, "Umbraco.Cms.Examine.Lucene": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "M7JvsMjMRR1DhF5YPaeeZfYBex+uiblE1qUymrAklGOrkMZn+W3Kakk27Jc1RTN32wAAGW/wxbixHQM2W0TZeQ==", + "resolved": "12.0.1", + "contentHash": "aY+SAtW6Ukwp9m/GnABBoWPzJm5Rg0Ye04yh5amOcr1D7PunXZtUC4KJySFyAAsKBl8N71oxX8WPr24Xy5M9iA==", "dependencies": { "Examine": "3.1.0", - "Umbraco.Cms.Infrastructure": "12.0.0" + "Umbraco.Cms.Infrastructure": "12.0.1" } }, "Umbraco.Cms.Infrastructure": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "5krqkb4TJtUCJfu0zM2272F9ucDpdQO6nkEJSstnfjsof6Nf4JtMJogqY/0WFNutHk992+jIDJinIf9ShHzYBw==", + "resolved": "12.0.1", + "contentHash": "nw/h4Q+MCaKTSltTwgXTzH79mpNgwdoV8Wzkb0rO015vZiC2KGxd+XkPgzgMO1Gqb3+8nK20mr1HwYd5QJMLWA==", "dependencies": { "Examine.Core": "3.1.0", "HtmlAgilityPack": "1.11.48", @@ -2088,36 +2088,36 @@ "System.IO.FileSystem.AccessControl": "5.0.0", "System.Security.Cryptography.Pkcs": "7.0.2", "System.Threading.Tasks.Dataflow": "7.0.0", - "Umbraco.Cms.Core": "12.0.0", + "Umbraco.Cms.Core": "12.0.1", "ncrontab": "3.3.1" } }, "Umbraco.Cms.PublishedCache.NuCache": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "h+Q5sqX+iDN0KlUY24Oi7XMvRAlZw2JzHsrbSQZ3kJlnSKvPB5ohWpG8U5oHlZwsfadaZRkLfYb1slu5c1lUXQ==", + "resolved": "12.0.1", + "contentHash": "DQfX0pzbofyjIRujjEclwYV/C0ojx9gV97rGOe7NtXN5zMHw2usfPSpBCuwtOAgPpGgQBMBZjxmrJLZerbO3tg==", "dependencies": { "K4os.Compression.LZ4": "1.3.5", "MessagePack": "2.5.108", "Newtonsoft.Json": "13.0.3", "Umbraco.CSharpTest.Net.Collections": "15.0.0", - "Umbraco.Cms.Infrastructure": "12.0.0" + "Umbraco.Cms.Infrastructure": "12.0.1" } }, "Umbraco.Cms.Web.BackOffice": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "FRdv36G9fygQfO1mjEpfM4jhIaw9olBF5SPOj5nKmhFkZ0c7eZV+9wJmXNWhbobU5N5jR0vfUl57gXX9sQ1qcg==", + "resolved": "12.0.1", + "contentHash": "+t2sNeHPcDTok3pk+nQqmB22PNBV1uzJkkghgOAZz7uENYMiMG3wGGYz92Yz79z2Un9tXNta5l9B8fv91G5RiA==", "dependencies": { "Newtonsoft.Json": "13.0.3", "Serilog.AspNetCore": "7.0.0", - "Umbraco.Cms.Web.Common": "12.0.0" + "Umbraco.Cms.Web.Common": "12.0.1" } }, "Umbraco.Cms.Web.Common": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "LuW9rtGkheo/77T5HdY5VtG9DXXe/Z68crVCiG9BMda6WS/oO6FOoa6ijm07DSe022mS+9j3zaQ4DN7ehiIhdg==", + "resolved": "12.0.1", + "contentHash": "WKV61k0PSDzaxHgPZiHboxx5NBfX/D5/DlapesTFBTrYSvytFO0Cll0fPorEUxO/Z3SdTVeLcXAjxH557Bmi1A==", "dependencies": { "Asp.Versioning.Mvc": "7.0.0", "Asp.Versioning.Mvc.ApiExplorer": "7.0.0", @@ -2127,16 +2127,16 @@ "MiniProfiler.AspNetCore.Mvc": "4.3.8", "Smidge.InMemory": "4.3.0", "Smidge.Nuglify": "4.3.0", - "Umbraco.Cms.Examine.Lucene": "12.0.0", - "Umbraco.Cms.PublishedCache.NuCache": "12.0.0" + "Umbraco.Cms.Examine.Lucene": "12.0.1", + "Umbraco.Cms.PublishedCache.NuCache": "12.0.1" } }, "Umbraco.Cms.Web.Website": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "MryGu+G7QSBoGHp2VZPv60hj/cgvt0pK9+TTYlXeL7XLSRyyIVFq5y3KpBDSanNWyxBjKeZsMWj7wpB8+9DK+A==", + "resolved": "12.0.1", + "contentHash": "h0f27Urd/sXrEkOZvWzZdqglc26UfqZYi0nmSwZC2GdmNjVZ8SxI+Xm26+mcKLnT2oVMA/IkXTRea8vYAfCG4Q==", "dependencies": { - "Umbraco.Cms.Web.Common": "12.0.0" + "Umbraco.Cms.Web.Common": "12.0.1" } }, "Umbraco.CSharpTest.Net.Collections": { @@ -2147,8 +2147,8 @@ "usync.backoffice": { "type": "Project", "dependencies": { - "Umbraco.Cms.Web.BackOffice": "[12.0.0, )", - "Umbraco.Cms.Web.Website": "[12.0.0, )", + "Umbraco.Cms.Web.BackOffice": "[12.0.1, )", + "Umbraco.Cms.Web.Website": "[12.0.1, )", "uSync.Community.Contrib": "[9.0.0, )", "uSync.Core": "[12.0.0, )" } @@ -2156,15 +2156,15 @@ "usync.community.contrib": { "type": "Project", "dependencies": { - "Umbraco.Cms.Web.BackOffice": "[12.0.0, )", - "Umbraco.Cms.Web.Website": "[12.0.0, )", + "Umbraco.Cms.Web.BackOffice": "[12.0.1, )", + "Umbraco.Cms.Web.Website": "[12.0.1, )", "uSync.Core": "[12.0.0, )" } }, "usync.core": { "type": "Project", "dependencies": { - "Umbraco.Cms.Web.Website": "[12.0.0, )" + "Umbraco.Cms.Web.Website": "[12.0.1, )" } } } diff --git a/uSync.Tests/uSync.Tests.csproj b/uSync.Tests/uSync.Tests.csproj index e79ff23a..ab6ad499 100644 --- a/uSync.Tests/uSync.Tests.csproj +++ b/uSync.Tests/uSync.Tests.csproj @@ -14,10 +14,10 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + diff --git a/uSync/packages.lock.json b/uSync/packages.lock.json index 3f89162c..a2e49d8f 100644 --- a/uSync/packages.lock.json +++ b/uSync/packages.lock.json @@ -2056,8 +2056,8 @@ }, "Umbraco.Cms.Core": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "pP2cyBiUdqJL/f7ji6nCkr9jEv24I5m7CmmXX8RVNXkFLsZvffJgOAqXh/ozJaLr3a4lUPJeNyeSvaYWXMTpLw==", + "resolved": "12.0.1", + "contentHash": "rJPnp7KBgbDoQusCUG0JPf1+76c2Wc/kNxkECHjXllBi7Ob0KwHgpqGp9KRewSOygSshZXHK2Hp4c3pkK+9Whw==", "dependencies": { "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", "Microsoft.Extensions.FileProviders.Embedded": "7.0.7", @@ -2078,17 +2078,17 @@ }, "Umbraco.Cms.Examine.Lucene": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "M7JvsMjMRR1DhF5YPaeeZfYBex+uiblE1qUymrAklGOrkMZn+W3Kakk27Jc1RTN32wAAGW/wxbixHQM2W0TZeQ==", + "resolved": "12.0.1", + "contentHash": "aY+SAtW6Ukwp9m/GnABBoWPzJm5Rg0Ye04yh5amOcr1D7PunXZtUC4KJySFyAAsKBl8N71oxX8WPr24Xy5M9iA==", "dependencies": { "Examine": "3.1.0", - "Umbraco.Cms.Infrastructure": "12.0.0" + "Umbraco.Cms.Infrastructure": "12.0.1" } }, "Umbraco.Cms.Infrastructure": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "5krqkb4TJtUCJfu0zM2272F9ucDpdQO6nkEJSstnfjsof6Nf4JtMJogqY/0WFNutHk992+jIDJinIf9ShHzYBw==", + "resolved": "12.0.1", + "contentHash": "nw/h4Q+MCaKTSltTwgXTzH79mpNgwdoV8Wzkb0rO015vZiC2KGxd+XkPgzgMO1Gqb3+8nK20mr1HwYd5QJMLWA==", "dependencies": { "Examine.Core": "3.1.0", "HtmlAgilityPack": "1.11.48", @@ -2118,36 +2118,36 @@ "System.IO.FileSystem.AccessControl": "5.0.0", "System.Security.Cryptography.Pkcs": "7.0.2", "System.Threading.Tasks.Dataflow": "7.0.0", - "Umbraco.Cms.Core": "12.0.0", + "Umbraco.Cms.Core": "12.0.1", "ncrontab": "3.3.1" } }, "Umbraco.Cms.PublishedCache.NuCache": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "h+Q5sqX+iDN0KlUY24Oi7XMvRAlZw2JzHsrbSQZ3kJlnSKvPB5ohWpG8U5oHlZwsfadaZRkLfYb1slu5c1lUXQ==", + "resolved": "12.0.1", + "contentHash": "DQfX0pzbofyjIRujjEclwYV/C0ojx9gV97rGOe7NtXN5zMHw2usfPSpBCuwtOAgPpGgQBMBZjxmrJLZerbO3tg==", "dependencies": { "K4os.Compression.LZ4": "1.3.5", "MessagePack": "2.5.108", "Newtonsoft.Json": "13.0.3", "Umbraco.CSharpTest.Net.Collections": "15.0.0", - "Umbraco.Cms.Infrastructure": "12.0.0" + "Umbraco.Cms.Infrastructure": "12.0.1" } }, "Umbraco.Cms.Web.BackOffice": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "FRdv36G9fygQfO1mjEpfM4jhIaw9olBF5SPOj5nKmhFkZ0c7eZV+9wJmXNWhbobU5N5jR0vfUl57gXX9sQ1qcg==", + "resolved": "12.0.1", + "contentHash": "+t2sNeHPcDTok3pk+nQqmB22PNBV1uzJkkghgOAZz7uENYMiMG3wGGYz92Yz79z2Un9tXNta5l9B8fv91G5RiA==", "dependencies": { "Newtonsoft.Json": "13.0.3", "Serilog.AspNetCore": "7.0.0", - "Umbraco.Cms.Web.Common": "12.0.0" + "Umbraco.Cms.Web.Common": "12.0.1" } }, "Umbraco.Cms.Web.Common": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "LuW9rtGkheo/77T5HdY5VtG9DXXe/Z68crVCiG9BMda6WS/oO6FOoa6ijm07DSe022mS+9j3zaQ4DN7ehiIhdg==", + "resolved": "12.0.1", + "contentHash": "WKV61k0PSDzaxHgPZiHboxx5NBfX/D5/DlapesTFBTrYSvytFO0Cll0fPorEUxO/Z3SdTVeLcXAjxH557Bmi1A==", "dependencies": { "Asp.Versioning.Mvc": "7.0.0", "Asp.Versioning.Mvc.ApiExplorer": "7.0.0", @@ -2157,16 +2157,16 @@ "MiniProfiler.AspNetCore.Mvc": "4.3.8", "Smidge.InMemory": "4.3.0", "Smidge.Nuglify": "4.3.0", - "Umbraco.Cms.Examine.Lucene": "12.0.0", - "Umbraco.Cms.PublishedCache.NuCache": "12.0.0" + "Umbraco.Cms.Examine.Lucene": "12.0.1", + "Umbraco.Cms.PublishedCache.NuCache": "12.0.1" } }, "Umbraco.Cms.Web.Website": { "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "MryGu+G7QSBoGHp2VZPv60hj/cgvt0pK9+TTYlXeL7XLSRyyIVFq5y3KpBDSanNWyxBjKeZsMWj7wpB8+9DK+A==", + "resolved": "12.0.1", + "contentHash": "h0f27Urd/sXrEkOZvWzZdqglc26UfqZYi0nmSwZC2GdmNjVZ8SxI+Xm26+mcKLnT2oVMA/IkXTRea8vYAfCG4Q==", "dependencies": { - "Umbraco.Cms.Web.Common": "12.0.0" + "Umbraco.Cms.Web.Common": "12.0.1" } }, "Umbraco.CSharpTest.Net.Collections": { @@ -2177,8 +2177,8 @@ "usync.backoffice": { "type": "Project", "dependencies": { - "Umbraco.Cms.Web.BackOffice": "[12.0.0, )", - "Umbraco.Cms.Web.Website": "[12.0.0, )", + "Umbraco.Cms.Web.BackOffice": "[12.0.1, )", + "Umbraco.Cms.Web.Website": "[12.0.1, )", "uSync.Community.Contrib": "[9.0.0, )", "uSync.Core": "[12.0.0, )" } @@ -2187,7 +2187,7 @@ "type": "Project", "dependencies": { "Microsoft.AspNetCore.Components.Web": "[7.0.7, )", - "Umbraco.Cms.Web.BackOffice": "[12.0.0, )", + "Umbraco.Cms.Web.BackOffice": "[12.0.1, )", "uSync.BackOffice": "[12.0.0, )", "uSync.BackOffice.Targets": "[12.0.0, )" } @@ -2198,15 +2198,15 @@ "usync.community.contrib": { "type": "Project", "dependencies": { - "Umbraco.Cms.Web.BackOffice": "[12.0.0, )", - "Umbraco.Cms.Web.Website": "[12.0.0, )", + "Umbraco.Cms.Web.BackOffice": "[12.0.1, )", + "Umbraco.Cms.Web.Website": "[12.0.1, )", "uSync.Core": "[12.0.0, )" } }, "usync.core": { "type": "Project", "dependencies": { - "Umbraco.Cms.Web.Website": "[12.0.0, )" + "Umbraco.Cms.Web.Website": "[12.0.1, )" } } }