diff --git a/.github/README.md b/.github/README.md index 6cc55f9..03aa211 100644 --- a/.github/README.md +++ b/.github/README.md @@ -14,7 +14,7 @@ Is your backoffice a bit untidy? - Data Types - Automatically sorts on save (configurable) -![A screenshot of the Back Office Organiser in action](https://raw.githubusercontent.com/jcdcdev/Umbraco.Community.BackOfficeOrganiser/main/docs/screenshots/backoffice.png) +![A screenshot of the Back Office Organiser in action](https://raw.githubusercontent.com/jcdcdev/Umbraco.Community.BackOfficeOrganiser/v15/docs/screenshots/backoffice.png) ## Quick Start @@ -64,6 +64,7 @@ You can implement your own `Organise Action`, a method that determines where a t using jcdcdev.Umbraco.Core.Extensions; using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Services; +using Umbraco.Community.BackOfficeOrganiser.Core.OrganiseActions; namespace Umbraco.Community.BackOfficeOrganiser.Organisers.ContentTypes; diff --git a/docs/README_nuget.md b/docs/README_nuget.md index 184ff7f..a427fab 100644 --- a/docs/README_nuget.md +++ b/docs/README_nuget.md @@ -14,7 +14,7 @@ Is your backoffice a bit untidy? - Member Types - Data Types -![A screenshot of the Back Office Organiser in action](https://raw.githubusercontent.com/jcdcdev/Umbraco.Community.BackOfficeOrganiser/main/docs/screenshots/backoffice.png) +![A screenshot of the Back Office Organiser in action](https://raw.githubusercontent.com/jcdcdev/Umbraco.Community.BackOfficeOrganiser/v15/docs/screenshots/backoffice.png) ## Contributing diff --git a/docs/screenshots/backoffice-content-types.png b/docs/screenshots/backoffice-content-types.png deleted file mode 100644 index f4f7de0..0000000 Binary files a/docs/screenshots/backoffice-content-types.png and /dev/null differ diff --git a/docs/screenshots/backoffice-data-types.png b/docs/screenshots/backoffice-data-types.png deleted file mode 100644 index 5189de1..0000000 Binary files a/docs/screenshots/backoffice-data-types.png and /dev/null differ diff --git a/docs/screenshots/backoffice-info.png b/docs/screenshots/backoffice-info.png new file mode 100644 index 0000000..422e766 Binary files /dev/null and b/docs/screenshots/backoffice-info.png differ diff --git a/docs/screenshots/backoffice-modal.png b/docs/screenshots/backoffice-modal.png index c110d44..7a31759 100644 Binary files a/docs/screenshots/backoffice-modal.png and b/docs/screenshots/backoffice-modal.png differ diff --git a/docs/screenshots/backoffice.png b/docs/screenshots/backoffice.png index e76aac4..3bdb234 100644 Binary files a/docs/screenshots/backoffice.png and b/docs/screenshots/backoffice.png differ diff --git a/src/Umbraco.Community.BackOfficeOrganiser.Client/openapi-ts.config.ts b/src/Umbraco.Community.BackOfficeOrganiser.Client/openapi-ts.config.ts index afe4be2..d0393d8 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser.Client/openapi-ts.config.ts +++ b/src/Umbraco.Community.BackOfficeOrganiser.Client/openapi-ts.config.ts @@ -1,7 +1,7 @@ import { defineConfig } from '@hey-api/openapi-ts'; export default defineConfig({ - input: 'http://localhost:54813/umbraco/swagger/default/swagger.json', + input: 'http://localhost:54813/umbraco/swagger/BackOfficeOrganiser/swagger.json', output: { format: 'prettier', path: './src/api', diff --git a/src/Umbraco.Community.BackOfficeOrganiser.Client/package-lock.json b/src/Umbraco.Community.BackOfficeOrganiser.Client/package-lock.json index f1a3337..0d1e925 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser.Client/package-lock.json +++ b/src/Umbraco.Community.BackOfficeOrganiser.Client/package-lock.json @@ -11,16 +11,16 @@ "lit": "^3.2.1" }, "devDependencies": { - "@hey-api/openapi-ts": "^0.55.3", - "@umbraco-cms/backoffice": "^15.0.0", - "typescript": "^5.6.3", - "vite": "^5.4.11" + "@hey-api/openapi-ts": "^0.60.1", + "@umbraco-cms/backoffice": "^15.1.1", + "typescript": "^5.7.2", + "vite": "^6.0.6" } }, "node_modules/@apidevtools/json-schema-ref-parser": { - "version": "11.7.2", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.7.2.tgz", - "integrity": "sha512-4gY54eEGEstClvEkGnwVkTkrx0sqwemEFG5OSRRn3tD91XH0+Q8XIkYIfo7IwEWPpJZwILb9GUXeShtplRc/eA==", + "version": "11.7.3", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.7.3.tgz", + "integrity": "sha512-WApSdLdXEBb/1FUPca2lteASewEfpjEYJ8oXZP+0gExK5qSfsEKBKcA+WjY6Q4wvXwyv0+W6Kvc372pSceib9w==", "dev": true, "license": "MIT", "dependencies": { @@ -36,9 +36,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", + "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", "cpu": [ "ppc64" ], @@ -49,13 +49,13 @@ "aix" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", + "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", "cpu": [ "arm" ], @@ -66,13 +66,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", + "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", "cpu": [ "arm64" ], @@ -83,13 +83,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", + "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", "cpu": [ "x64" ], @@ -100,13 +100,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", + "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", "cpu": [ "arm64" ], @@ -117,13 +117,13 @@ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", + "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", "cpu": [ "x64" ], @@ -134,13 +134,13 @@ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", + "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", "cpu": [ "arm64" ], @@ -151,13 +151,13 @@ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", + "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", "cpu": [ "x64" ], @@ -168,13 +168,13 @@ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", + "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", "cpu": [ "arm" ], @@ -185,13 +185,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", + "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", "cpu": [ "arm64" ], @@ -202,13 +202,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", + "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", "cpu": [ "ia32" ], @@ -219,13 +219,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", + "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", "cpu": [ "loong64" ], @@ -236,13 +236,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", + "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", "cpu": [ "mips64el" ], @@ -253,13 +253,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", + "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", "cpu": [ "ppc64" ], @@ -270,13 +270,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", + "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", "cpu": [ "riscv64" ], @@ -287,13 +287,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", + "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", "cpu": [ "s390x" ], @@ -304,13 +304,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", + "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", "cpu": [ "x64" ], @@ -321,13 +321,30 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", + "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", + "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", "cpu": [ "x64" ], @@ -338,13 +355,30 @@ "netbsd" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", + "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", + "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", "cpu": [ "x64" ], @@ -355,13 +389,13 @@ "openbsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", + "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", "cpu": [ "x64" ], @@ -372,13 +406,13 @@ "sunos" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", + "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", "cpu": [ "arm64" ], @@ -389,13 +423,13 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", + "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", "cpu": [ "ia32" ], @@ -406,13 +440,13 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", + "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", "cpu": [ "x64" ], @@ -423,17 +457,17 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@hey-api/openapi-ts": { - "version": "0.55.3", - "resolved": "https://registry.npmjs.org/@hey-api/openapi-ts/-/openapi-ts-0.55.3.tgz", - "integrity": "sha512-eboeFHqMimdTwhO5VrBl2HoPzby0wlbO8900N3ukvGu8dG9PgXGzHBcLF2ukwt4TReNcsIm3daj/9cqcJ5LWUQ==", + "version": "0.60.1", + "resolved": "https://registry.npmjs.org/@hey-api/openapi-ts/-/openapi-ts-0.60.1.tgz", + "integrity": "sha512-W3fW6pjQ3rwRsmvp9+hDEStyedTWgNjd6PfdVOIegtPBKj3o4ThK3J14kXeqdH2tJXrudfLpXHRp43+ahi4QSg==", "dev": true, - "license": "FSL-1.1-MIT", + "license": "MIT", "dependencies": { - "@apidevtools/json-schema-ref-parser": "11.7.2", + "@apidevtools/json-schema-ref-parser": "11.7.3", "c12": "2.0.1", "commander": "12.1.0", "handlebars": "4.7.8" @@ -734,9 +768,9 @@ ] }, "node_modules/@tiptap/core": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.9.1.tgz", - "integrity": "sha512-tifnLL/ARzQ6/FGEJjVwj9UT3v+pENdWHdk9x6F3X0mB1y0SeCjV21wpFLYESzwNdBPAj8NMp8Behv7dBnhIfw==", + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.10.3.tgz", + "integrity": "sha512-wAG/0/UsLeZLmshWb6rtWNXKJftcmnned91/HLccHVQAuQZ1UWH+wXeQKu/mtodxEO7JcU2mVPR9mLGQkK0McQ==", "dev": true, "license": "MIT", "peer": true, @@ -749,9 +783,9 @@ } }, "node_modules/@tiptap/extension-blockquote": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.9.1.tgz", - "integrity": "sha512-Y0jZxc/pdkvcsftmEZFyG+73um8xrx6/DMfgUcNg3JAM63CISedNcr+OEI11L0oFk1KFT7/aQ9996GM6Kubdqg==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.11.0.tgz", + "integrity": "sha512-DBjWbgmbAAR879WAsk0+5xxgqpOTweWNnY7kEqWv3EJtLUvECXN63smiv3o4fREwwbEJqgihBu5/YugRC5z1dg==", "dev": true, "license": "MIT", "peer": true, @@ -764,9 +798,9 @@ } }, "node_modules/@tiptap/extension-bold": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.9.1.tgz", - "integrity": "sha512-e2P1zGpnnt4+TyxTC5pX/lPxPasZcuHCYXY0iwQ3bf8qRQQEjDfj3X7EI+cXqILtnhOiviEOcYmeu5op2WhQDg==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.11.0.tgz", + "integrity": "sha512-3x9BQZHYD5xFA0pCEneEMHZyIoxYo4NKcbhR4CLxGad1Xd+5g109nr1+eZ1JgvnChkeVf1eD6SaQE2A28lxR5g==", "dev": true, "license": "MIT", "peer": true, @@ -779,9 +813,9 @@ } }, "node_modules/@tiptap/extension-bullet-list": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.9.1.tgz", - "integrity": "sha512-0hizL/0j9PragJObjAWUVSuGhN1jKjCFnhLQVRxtx4HutcvS/lhoWMvFg6ZF8xqWgIa06n6A7MaknQkqhTdhKA==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.11.0.tgz", + "integrity": "sha512-UALypJvO+cPSk/nC1HhkX/ImS9FxbKe2Pr0iDofakvZU1U1msumLVn2M/iq+ax1Mm9thodpvJv0hGDtFRwm7lQ==", "dev": true, "license": "MIT", "peer": true, @@ -794,9 +828,9 @@ } }, "node_modules/@tiptap/extension-code": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.9.1.tgz", - "integrity": "sha512-WQqcVGe7i/E+yO3wz5XQteU1ETNZ00euUEl4ylVVmH2NM4Dh0KDjEhbhHlCM0iCfLUo7jhjC7dmS+hMdPUb+Tg==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.11.0.tgz", + "integrity": "sha512-2roNZxcny1bGjyZ8x6VmGTuKbwfJyTZ1hiqPc/CRTQ1u42yOhbjF4ziA5kfyUoQlzygZrWH9LR5IMYGzPQ1N3w==", "dev": true, "license": "MIT", "peer": true, @@ -809,9 +843,9 @@ } }, "node_modules/@tiptap/extension-code-block": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.9.1.tgz", - "integrity": "sha512-A/50wPWDqEUUUPhrwRKILP5gXMO5UlQ0F6uBRGYB9CEVOREam9yIgvONOnZVJtszHqOayjIVMXbH/JMBeq11/g==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.11.0.tgz", + "integrity": "sha512-8of3qTOLjpveHBrrk8KVliSUVd6R2i2TNrBj0f/21HcFVAy0fP++02p6vI6UPOhwM3+p3CprGdSM48DFCu1rqw==", "dev": true, "license": "MIT", "peer": true, @@ -825,9 +859,9 @@ } }, "node_modules/@tiptap/extension-document": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.9.1.tgz", - "integrity": "sha512-1a+HCoDPnBttjqExfYLwfABq8MYdiowhy/wp8eCxVb6KGFEENO53KapstISvPzqH7eOi+qRjBB1KtVYb/ZXicg==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.11.0.tgz", + "integrity": "sha512-9YI0AT3mxyUZD7NHECHyV1uAjQ8KwxOS5ACwvrK1MU8TqY084LmodYNTXPKwpqbr51yvt3qZq1R7UIVu4/22Cg==", "dev": true, "license": "MIT", "peer": true, @@ -840,9 +874,9 @@ } }, "node_modules/@tiptap/extension-dropcursor": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-2.9.1.tgz", - "integrity": "sha512-wJZspSmJRkDBtPkzFz1g7gvZOEOayk8s93UHsgbJxcV4VWHYleZ5XhT74sZunSjefNDm3qC6v2BSgLp3vNHVKQ==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-2.11.0.tgz", + "integrity": "sha512-p7tUtlz7KzBa+06+7W2LJ8AEiHG5chdnUIapojZ7SqQCrFRVw70R+orpkzkoictxNNHsun0A9FCUy4rz8L0+nQ==", "dev": true, "license": "MIT", "peer": true, @@ -856,9 +890,9 @@ } }, "node_modules/@tiptap/extension-gapcursor": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.9.1.tgz", - "integrity": "sha512-jsRBmX01vr+5H02GljiHMo0n5H1vzoMLmFarxe0Yq2d2l9G/WV2VWX2XnGliqZAYWd1bI0phs7uLQIN3mxGQTw==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.11.0.tgz", + "integrity": "sha512-1TVOthPkUYwTQnQwP0BzuIHVz09epOiXJQ3GqgNZsmTehwcMzz2vGCpx1JXhZ5DoMaREHNLCdraXb1n2FdhDNA==", "dev": true, "license": "MIT", "peer": true, @@ -872,9 +906,9 @@ } }, "node_modules/@tiptap/extension-hard-break": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.9.1.tgz", - "integrity": "sha512-fCuaOD/b7nDjm47PZ58oanq7y4ccS2wjPh42Qm0B0yipu/1fmC8eS1SmaXmk28F89BLtuL6uOCtR1spe+lZtlQ==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.11.0.tgz", + "integrity": "sha512-7pMgPNk2FnPT0LcWaWNNxOLK3LQnRSYFgrdBGMXec3sy+y3Lit3hM+EZhbZcHpTIQTbWWs+eskh1waRMIt0ZaQ==", "dev": true, "license": "MIT", "peer": true, @@ -887,9 +921,9 @@ } }, "node_modules/@tiptap/extension-heading": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.9.1.tgz", - "integrity": "sha512-SjZowzLixOFaCrV2cMaWi1mp8REK0zK1b3OcVx7bCZfVSmsOETJyrAIUpCKA8o60NwF7pwhBg0MN8oXlNKMeFw==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.11.0.tgz", + "integrity": "sha512-vrYvxibsY7/Sd2wYQDZ8AfIORfFi/UHZAWI7JmaMtDkILuMLYQ+jXb7p4K2FFW/1nN7C8QqgLLFI5AfjZUusgw==", "dev": true, "license": "MIT", "peer": true, @@ -902,9 +936,9 @@ } }, "node_modules/@tiptap/extension-history": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.9.1.tgz", - "integrity": "sha512-wp9qR1NM+LpvyLZFmdNaAkDq0d4jDJ7z7Fz7icFQPu31NVxfQYO3IXNmvJDCNu8hFAbImpA5aG8MBuwzRo0H9w==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.11.0.tgz", + "integrity": "sha512-eEUEDoOtS17AHVEPbGfZ+x2L5A87SiIsppWYTkpfIH/8EnVQmzu+3i1tcT9cWvHC31d9JTG7TDptVuuHr30TJw==", "dev": true, "license": "MIT", "peer": true, @@ -918,9 +952,9 @@ } }, "node_modules/@tiptap/extension-horizontal-rule": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.9.1.tgz", - "integrity": "sha512-ydUhABeaBI1CoJp+/BBqPhXINfesp1qMNL/jiDcMsB66fsD4nOyphpAJT7FaRFZFtQVF06+nttBtFZVkITQVqg==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.11.0.tgz", + "integrity": "sha512-ZbkILwmcccmwQB2VTA/dzHRMB+xoJQ8UJdafcUiaAUlQfvDgl898+AYMa2GRTZkLPvzCKjXMC9hybSyy54Lz3Q==", "dev": true, "license": "MIT", "peer": true, @@ -934,9 +968,9 @@ } }, "node_modules/@tiptap/extension-image": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-image/-/extension-image-2.9.1.tgz", - "integrity": "sha512-aGqJnsuS8oagIhsx7wetm8jw4NEDsOV0OSx4FQ4VPlUqWlnzK0N+erFKKJmXTdAxL8PGzoPSlITFH63MV3eV3Q==", + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@tiptap/extension-image/-/extension-image-2.10.3.tgz", + "integrity": "sha512-YIjAF5CwDkMe28OQ5pvnmdRgbJ9JcGMIHY1kyqNunSf2iwphK+6SWz9UEIkDFiT7AsRZySqxFSq93iK1XyTifw==", "dev": true, "license": "MIT", "peer": true, @@ -949,9 +983,9 @@ } }, "node_modules/@tiptap/extension-italic": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.9.1.tgz", - "integrity": "sha512-VkNA6Vz96+/+7uBlsgM7bDXXx4b62T1fDam/3UKifA72aD/fZckeWrbT7KrtdUbzuIniJSbA0lpTs5FY29+86Q==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.11.0.tgz", + "integrity": "sha512-T+jjS0gOsvNzQXVTSArmUp/kt2R9OikPQaV1DI60bfjO0rknOgtG0tbwZmfbugzwc07RbpxOYFy3vBxMLDsksA==", "dev": true, "license": "MIT", "peer": true, @@ -964,9 +998,9 @@ } }, "node_modules/@tiptap/extension-link": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-2.9.1.tgz", - "integrity": "sha512-yG+e3e8cCCN9dZjX4ttEe3e2xhh58ryi3REJV4MdiEkOT9QF75Bl5pUbMIS4tQ8HkOr04QBFMHKM12kbSxg1BA==", + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-2.10.3.tgz", + "integrity": "sha512-8esKlkZBzEiNcpt7I8Cd6l1mWmCc/66pPbUq9LfnIniDXE3U+ahBf4m3TJltYFBGbiiTR/xqMtJyVHOpuLDtAw==", "dev": true, "license": "MIT", "peer": true, @@ -983,9 +1017,9 @@ } }, "node_modules/@tiptap/extension-list-item": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.9.1.tgz", - "integrity": "sha512-6O4NtYNR5N2Txi4AC0/4xMRJq9xd4+7ShxCZCDVL0WDVX37IhaqMO7LGQtA6MVlYyNaX4W1swfdJaqrJJ5HIUw==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.11.0.tgz", + "integrity": "sha512-Jikcg0fccpM13a3hAFLtguMcpVg4eMWI8NnC0aUULD9rFhvWZQYQYQuoK3fO6vQrAQpNhsV4oa0dfSq1btu9kg==", "dev": true, "license": "MIT", "peer": true, @@ -998,9 +1032,9 @@ } }, "node_modules/@tiptap/extension-ordered-list": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.9.1.tgz", - "integrity": "sha512-6J9jtv1XP8dW7/JNSH/K4yiOABc92tBJtgCsgP8Ep4+fjfjdj4HbjS1oSPWpgItucF2Fp/VF8qg55HXhjxHjTw==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.11.0.tgz", + "integrity": "sha512-i6pNsDHA2QvBAebwjAuvhHKwz+bZVJ929PCIJaN8mxg0ldiAmFbAsf+rwIIFHWogMp+5xEX2RBzux20usNVZ9w==", "dev": true, "license": "MIT", "peer": true, @@ -1013,9 +1047,9 @@ } }, "node_modules/@tiptap/extension-paragraph": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.9.1.tgz", - "integrity": "sha512-JOmT0xd4gd3lIhLwrsjw8lV+ZFROKZdIxLi0Ia05XSu4RLrrvWj0zdKMSB+V87xOWfSB3Epo95zAvnPox5Q16A==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.11.0.tgz", + "integrity": "sha512-xLNC05An3SQq0bVHJtOTLa8As5r6NxDZFpK0NZqO2hTq/fAIRL/9VPeZ8E0tziXULwIvIPp+L0Taw3TvaUkRUg==", "dev": true, "license": "MIT", "peer": true, @@ -1028,9 +1062,9 @@ } }, "node_modules/@tiptap/extension-placeholder": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-placeholder/-/extension-placeholder-2.9.1.tgz", - "integrity": "sha512-Q/w3OOg/C6jGBf4QKEWKF9k+iaCQCgPoaIg2IDTPx8QmaxRfgoVE5Csd+oTOY/brdmSNXOxykZWEci6OJP+MbA==", + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@tiptap/extension-placeholder/-/extension-placeholder-2.10.3.tgz", + "integrity": "sha512-0OkwnDLguZgoiJM85cfnOySuMmPUF7qqw7DHQ+c3zwTAYnvzpvqrvpupc+2Zi9GfC1sDgr+Ajrp8imBHa6PHfA==", "dev": true, "license": "MIT", "peer": true, @@ -1044,9 +1078,9 @@ } }, "node_modules/@tiptap/extension-strike": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.9.1.tgz", - "integrity": "sha512-V5aEXdML+YojlPhastcu7w4biDPwmzy/fWq0T2qjfu5Te/THcqDmGYVBKESBm5x6nBy5OLkanw2O+KHu2quDdg==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.11.0.tgz", + "integrity": "sha512-71i2IZT58kY2ohlhyO+ucyAioNNCkNkuPkrVERc9lXhmcCKOff5y6ekDHQHO2jNjnejkVE5ibyDO3Z7RUXjh1A==", "dev": true, "license": "MIT", "peer": true, @@ -1059,9 +1093,9 @@ } }, "node_modules/@tiptap/extension-subscript": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-subscript/-/extension-subscript-2.9.1.tgz", - "integrity": "sha512-jjfuHmF2dCUAtHmJH2K/7HhOCleM3aPVOI/UsBBYa8xM4mDU4xuW1O5sLAr2JWcB1xxyk9YKcBWwyRq+b1ENFA==", + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@tiptap/extension-subscript/-/extension-subscript-2.10.3.tgz", + "integrity": "sha512-GkOwXIruM7QksmlfqLTKTC6JBpWSBDN2eeoPwggxXuqetqYs4sIx1ul3LEGDQy0vglcFKGkbbO2IiHCO/0fSWA==", "dev": true, "license": "MIT", "peer": true, @@ -1074,9 +1108,9 @@ } }, "node_modules/@tiptap/extension-superscript": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-superscript/-/extension-superscript-2.9.1.tgz", - "integrity": "sha512-7cgAPpUNgO/3QdvCN9/6dWP6JQC641o8dSgkyv0XzVv0nxISck4SU+2eADRYQLyP2s4M3xuSEFhCCiKZleK2yA==", + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@tiptap/extension-superscript/-/extension-superscript-2.10.3.tgz", + "integrity": "sha512-4bXDPyT10ByVCLXFR8A70TcpFJ0H3PicRsxKJcQ+KZIauNUo5BBUpkF2cK+IOUp4UZ1W5ZBeuMQG5HWMuV9T1A==", "dev": true, "license": "MIT", "peer": true, @@ -1089,9 +1123,9 @@ } }, "node_modules/@tiptap/extension-table": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-table/-/extension-table-2.9.1.tgz", - "integrity": "sha512-OmWZFZOSZwSSEvoVUkDsRFyCXTYei/pV396Xjv9pfFzXQkVbfq/CjTp61zvb/9mmEz3rcfvfG7G39eRlZTvBNg==", + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table/-/extension-table-2.10.3.tgz", + "integrity": "sha512-XAvq0ptpHfuN7lQhTeew4Sqo8aKYHTqroa7cHL8I+gWJqYqKJSTGb4FAqdGIFEzHvnSsMCFbTL//kAHXvTdsHg==", "dev": true, "license": "MIT", "peer": true, @@ -1105,9 +1139,9 @@ } }, "node_modules/@tiptap/extension-table-cell": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-table-cell/-/extension-table-cell-2.9.1.tgz", - "integrity": "sha512-/wrcniLdhMhs5M2NDetFcfq510N5to7YKK+52KOXNotBI8K/GjMmGmtwWEKPITD0/RgYrXzpMcta/O+/0OCOPQ==", + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table-cell/-/extension-table-cell-2.10.3.tgz", + "integrity": "sha512-EYzBrnq7KUAcRhshIoTmC4ED8YoF4Ei5m8ZMPOctKX+QMAagKdcrw2UxuOf4tP2xgBYx+qDsKCautepZXQiL2g==", "dev": true, "license": "MIT", "peer": true, @@ -1120,9 +1154,9 @@ } }, "node_modules/@tiptap/extension-table-header": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-table-header/-/extension-table-header-2.9.1.tgz", - "integrity": "sha512-KtI01636Du1IB/I3pe9ZJWKkOc6INqAaIw+RFirRCnd8Xnik7tJfAwdhXzoPRcer6ViZmlzSrM2dkwaZCF7gcw==", + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table-header/-/extension-table-header-2.10.3.tgz", + "integrity": "sha512-zJqzivz+VITYIFXNH09leBbkwAPuvp504rCAFL2PMa1uaME6+oiiRqZvXQrOiRkjNpOWEXH4dqvVLwkSMZoWaw==", "dev": true, "license": "MIT", "peer": true, @@ -1135,9 +1169,9 @@ } }, "node_modules/@tiptap/extension-table-row": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-table-row/-/extension-table-row-2.9.1.tgz", - "integrity": "sha512-Wq7QlI/S5iX4UCAdX+ok/szegVMbvrM3H8o6jwO+G4p8JJt6iv7ZmEnJ19xIINhmiKsrdanqH9FFK4tQ3yvQ0A==", + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table-row/-/extension-table-row-2.10.3.tgz", + "integrity": "sha512-l6P6BAE4SuIFdPmsRd+zGP2Ks9AhLAua7nfDlHFMWDnfOeaJu7g/t4oG++9xTojDcVDHhcIe8TJYUXfhOt2anw==", "dev": true, "license": "MIT", "peer": true, @@ -1150,9 +1184,9 @@ } }, "node_modules/@tiptap/extension-text": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.9.1.tgz", - "integrity": "sha512-3wo9uCrkLVLQFgbw2eFU37QAa1jq1/7oExa+FF/DVxdtHRS9E2rnUZ8s2hat/IWzvPUHXMwo3Zg2XfhoamQpCA==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.11.0.tgz", + "integrity": "sha512-LcyrP+7ZEVx3YaKzjMAeujq+4xRt4mZ3ITGph2CQ4vOKFaMI8bzSR909q18t7Qyyvek0a9VydEU1NHSaq4G5jw==", "dev": true, "license": "MIT", "peer": true, @@ -1165,9 +1199,9 @@ } }, "node_modules/@tiptap/extension-text-align": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-text-align/-/extension-text-align-2.9.1.tgz", - "integrity": "sha512-oUp0XnwJpAImcOVV68vsY2CpkHpRZ3gzWfIRTuy+aYitQim3xDKis/qfWQUWZsANp9/TZ0VyjtkZxNMwOfcu1g==", + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@tiptap/extension-text-align/-/extension-text-align-2.10.3.tgz", + "integrity": "sha512-g75sNl73gtgjP3XIcl06kvv1qw3c0rGEUD848rUU1bvlBpU3IxjkcQLgYvHmv3vpuUp9cKUkA2wa7Sv6R3fjvw==", "dev": true, "license": "MIT", "peer": true, @@ -1180,9 +1214,9 @@ } }, "node_modules/@tiptap/extension-text-style": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-text-style/-/extension-text-style-2.9.1.tgz", - "integrity": "sha512-LAxc0SeeiPiAVBwksczeA7BJSZb6WtVpYhy5Esvy9K0mK5kttB4KxtnXWeQzMIJZQbza65yftGKfQlexf/Y7yg==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-text-style/-/extension-text-style-2.11.0.tgz", + "integrity": "sha512-vuA16wMZ6J3fboL7FObwV2f5uN9Vg0WYmqU7971vxzJyaRj9VE1eeH8Kh5fq4RgwDzc13MZGvZZV4HcE1R8o8A==", "dev": true, "license": "MIT", "peer": true, @@ -1195,9 +1229,9 @@ } }, "node_modules/@tiptap/extension-underline": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-underline/-/extension-underline-2.9.1.tgz", - "integrity": "sha512-IrUsIqKPgD7GcAjr4D+RC0WvLHUDBTMkD8uPNEoeD1uH9t9zFyDfMRPnx/z3/6Gf6fTh3HzLcHGibiW2HiMi2A==", + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@tiptap/extension-underline/-/extension-underline-2.10.3.tgz", + "integrity": "sha512-VeGs0jeNiTnXddHHJEgOc/sKljZiyTEgSSuqMmsBACrr9aGFXbLTgKTvNjkZ9WzSnu7LwgJuBrwEhg8yYixUyQ==", "dev": true, "license": "MIT", "peer": true, @@ -1210,31 +1244,31 @@ } }, "node_modules/@tiptap/pm": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-2.9.1.tgz", - "integrity": "sha512-mvV86fr7kEuDYEApQ2uMPCKL2uagUE0BsXiyyz3KOkY1zifyVm1fzdkscb24Qy1GmLzWAIIihA+3UHNRgYdOlQ==", + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-2.10.3.tgz", + "integrity": "sha512-771p53aU0KFvujvKpngvq2uAxThlEsjYaXcVVmwrhf0vxSSg+psKQEvqvWvHv/3BwkPVCGwmEKNVJZjaXFKu4g==", "dev": true, "license": "MIT", "peer": true, "dependencies": { "prosemirror-changeset": "^2.2.1", "prosemirror-collab": "^1.3.1", - "prosemirror-commands": "^1.6.0", + "prosemirror-commands": "^1.6.2", "prosemirror-dropcursor": "^1.8.1", "prosemirror-gapcursor": "^1.3.2", "prosemirror-history": "^1.4.1", "prosemirror-inputrules": "^1.4.0", "prosemirror-keymap": "^1.2.2", - "prosemirror-markdown": "^1.13.0", + "prosemirror-markdown": "^1.13.1", "prosemirror-menu": "^1.2.4", - "prosemirror-model": "^1.22.3", + "prosemirror-model": "^1.23.0", "prosemirror-schema-basic": "^1.2.3", "prosemirror-schema-list": "^1.4.1", "prosemirror-state": "^1.4.3", - "prosemirror-tables": "^1.4.0", + "prosemirror-tables": "^1.6.1", "prosemirror-trailing-node": "^3.0.0", - "prosemirror-transform": "^1.10.0", - "prosemirror-view": "^1.34.3" + "prosemirror-transform": "^1.10.2", + "prosemirror-view": "^1.37.0" }, "funding": { "type": "github", @@ -1242,34 +1276,34 @@ } }, "node_modules/@tiptap/starter-kit": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-2.9.1.tgz", - "integrity": "sha512-nsw6UF/7wDpPfHRhtGOwkj1ipIEiWZS1VGw+c14K61vM1CNj0uQ4jogbHwHZqN1dlL5Hh+FCqUHDPxG6ECbijg==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@tiptap/core": "^2.9.1", - "@tiptap/extension-blockquote": "^2.9.1", - "@tiptap/extension-bold": "^2.9.1", - "@tiptap/extension-bullet-list": "^2.9.1", - "@tiptap/extension-code": "^2.9.1", - "@tiptap/extension-code-block": "^2.9.1", - "@tiptap/extension-document": "^2.9.1", - "@tiptap/extension-dropcursor": "^2.9.1", - "@tiptap/extension-gapcursor": "^2.9.1", - "@tiptap/extension-hard-break": "^2.9.1", - "@tiptap/extension-heading": "^2.9.1", - "@tiptap/extension-history": "^2.9.1", - "@tiptap/extension-horizontal-rule": "^2.9.1", - "@tiptap/extension-italic": "^2.9.1", - "@tiptap/extension-list-item": "^2.9.1", - "@tiptap/extension-ordered-list": "^2.9.1", - "@tiptap/extension-paragraph": "^2.9.1", - "@tiptap/extension-strike": "^2.9.1", - "@tiptap/extension-text": "^2.9.1", - "@tiptap/extension-text-style": "^2.9.1", - "@tiptap/pm": "^2.9.1" + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-2.10.3.tgz", + "integrity": "sha512-oq8xdVIMqohSs91ofHSr7i5dCp2F56Lb9aYIAI25lZmwNwQJL2geGOYjMSfL0IC4cQHPylIuSKYCg7vRFdZmAA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@tiptap/core": "^2.10.3", + "@tiptap/extension-blockquote": "^2.10.3", + "@tiptap/extension-bold": "^2.10.3", + "@tiptap/extension-bullet-list": "^2.10.3", + "@tiptap/extension-code": "^2.10.3", + "@tiptap/extension-code-block": "^2.10.3", + "@tiptap/extension-document": "^2.10.3", + "@tiptap/extension-dropcursor": "^2.10.3", + "@tiptap/extension-gapcursor": "^2.10.3", + "@tiptap/extension-hard-break": "^2.10.3", + "@tiptap/extension-heading": "^2.10.3", + "@tiptap/extension-history": "^2.10.3", + "@tiptap/extension-horizontal-rule": "^2.10.3", + "@tiptap/extension-italic": "^2.10.3", + "@tiptap/extension-list-item": "^2.10.3", + "@tiptap/extension-ordered-list": "^2.10.3", + "@tiptap/extension-paragraph": "^2.10.3", + "@tiptap/extension-strike": "^2.10.3", + "@tiptap/extension-text": "^2.10.3", + "@tiptap/extension-text-style": "^2.10.3", + "@tiptap/pm": "^2.10.3" }, "funding": { "type": "github", @@ -1277,24 +1311,13 @@ } }, "node_modules/@types/diff": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@types/diff/-/diff-5.2.3.tgz", - "integrity": "sha512-K0Oqlrq3kQMaO2RhfrNQX5trmt+XLyom88zS0u84nnIcLvFnRUMRRHmrGny5GSM+kNO9IZLARsdQHDzkhAgmrQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@types/diff/-/diff-6.0.0.tgz", + "integrity": "sha512-dhVCYGv3ZSbzmQaBSagrv1WJ6rXCdkyTcDyoNu1MD8JohI7pR7k8wdZEm+mvdxRKXyHVwckFzWU1vJc+Z29MlA==", "dev": true, "license": "MIT", "peer": true }, - "node_modules/@types/dompurify": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/dompurify/-/dompurify-3.0.5.tgz", - "integrity": "sha512-1Wg0g3BtQF7sSb27fJQAKck1HECM6zV1EB66j8JH9i3LCjYabJa0FSdiSgsD5K/RbrsR0SiraKacLB+T8ZVYAg==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@types/trusted-types": "*" - } - }, "node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", @@ -1343,18 +1366,10 @@ "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", "license": "MIT" }, - "node_modules/@types/uuid": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz", - "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/@umbraco-cms/backoffice": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@umbraco-cms/backoffice/-/backoffice-15.0.0.tgz", - "integrity": "sha512-uBuxc94G56+5AAibeyp/Ozg488EG0SVyARoo7Q0lZ6G5Dd+JdeFr840rLqSuU6DIv8+9lJnZTsf3NhKMnqzYFw==", + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@umbraco-cms/backoffice/-/backoffice-15.1.1.tgz", + "integrity": "sha512-XAoRyWriFrwXYoefxTJDyc5PczPblGD0iExTy0QFTqQFBOrenKGzJiYEyXZ+G1tBYUIigxPlbWzQIX2Gq+hR6Q==", "dev": true, "license": "MIT", "workspaces": [ @@ -1365,181 +1380,178 @@ "npm": ">=10.1 < 11" }, "peerDependencies": { - "@tiptap/core": "^2.8.0", - "@tiptap/extension-image": "^2.8.0", - "@tiptap/extension-link": "^2.8.0", - "@tiptap/extension-placeholder": "^2.8.0", - "@tiptap/extension-subscript": "^2.8.0", - "@tiptap/extension-superscript": "^2.8.0", - "@tiptap/extension-table": "^2.8.0", - "@tiptap/extension-table-cell": "^2.8.0", - "@tiptap/extension-table-header": "^2.8.0", - "@tiptap/extension-table-row": "^2.8.0", - "@tiptap/extension-text-align": "^2.8.0", - "@tiptap/extension-text-style": "^2.8.0", - "@tiptap/extension-underline": "^2.8.0", - "@tiptap/pm": "^2.8.0", - "@tiptap/starter-kit": "^2.8.0", - "@types/diff": "^5.2.1", - "@types/dompurify": "^3.0.5", - "@types/uuid": "^10.0.0", - "@umbraco-ui/uui": "^1.11.0", - "@umbraco-ui/uui-css": "^1.11.0", + "@tiptap/core": "2.10.3", + "@tiptap/extension-image": "2.10.3", + "@tiptap/extension-link": "2.10.3", + "@tiptap/extension-placeholder": "2.10.3", + "@tiptap/extension-subscript": "2.10.3", + "@tiptap/extension-superscript": "2.10.3", + "@tiptap/extension-table": "2.10.3", + "@tiptap/extension-table-cell": "2.10.3", + "@tiptap/extension-table-header": "2.10.3", + "@tiptap/extension-table-row": "2.10.3", + "@tiptap/extension-text-align": "2.10.3", + "@tiptap/extension-underline": "2.10.3", + "@tiptap/pm": "2.10.3", + "@tiptap/starter-kit": "2.10.3", + "@types/diff": "^6.0.0", + "@umbraco-ui/uui": "^1.12.2", + "@umbraco-ui/uui-css": "^1.12.1", "base64-js": "^1.5.1", - "diff": "^5.2.0", - "dompurify": "^3.1.6", - "element-internals-polyfill": "^1.3.11", - "lit": "^3.2.0", - "marked": "^14.1.0", - "monaco-editor": "^0.50.0", + "diff": "^7.0.0", + "dompurify": "^3.2.1", + "element-internals-polyfill": "^1.3.12", + "lit": "^3.2.1", + "marked": "^15.0.2", + "monaco-editor": "^0.52.0", "rxjs": "^7.8.1", "tinymce": "^6.8.3", - "tinymce-i18n": "^24.7.15", - "uuid": "^10.0.0" + "tinymce-i18n": "^24.11.25", + "uuid": "^11.0.3" } }, "node_modules/@umbraco-ui/uui": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui/-/uui-1.11.0.tgz", - "integrity": "sha512-1mX7adcpAZRswPA1p64kqE83Rg5cbZsYM/b/OyUcObaL2cIuBCVvjjuUjgkL2el993GptIzl05XVocdj1dDCeQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@umbraco-ui/uui-action-bar": "1.11.0", - "@umbraco-ui/uui-avatar": "1.11.0", - "@umbraco-ui/uui-avatar-group": "1.11.0", - "@umbraco-ui/uui-badge": "1.11.0", - "@umbraco-ui/uui-base": "1.11.0", - "@umbraco-ui/uui-boolean-input": "1.11.0", - "@umbraco-ui/uui-box": "1.11.0", - "@umbraco-ui/uui-breadcrumbs": "1.11.0", - "@umbraco-ui/uui-button": "1.11.0", - "@umbraco-ui/uui-button-group": "1.11.0", - "@umbraco-ui/uui-button-inline-create": "1.11.0", - "@umbraco-ui/uui-card": "1.11.0", - "@umbraco-ui/uui-card-block-type": "1.11.0", - "@umbraco-ui/uui-card-content-node": "1.11.0", - "@umbraco-ui/uui-card-media": "1.11.0", - "@umbraco-ui/uui-card-user": "1.11.0", - "@umbraco-ui/uui-caret": "1.11.0", - "@umbraco-ui/uui-checkbox": "1.11.0", - "@umbraco-ui/uui-color-area": "1.11.0", - "@umbraco-ui/uui-color-picker": "1.11.0", - "@umbraco-ui/uui-color-slider": "1.11.0", - "@umbraco-ui/uui-color-swatch": "1.11.0", - "@umbraco-ui/uui-color-swatches": "1.11.0", - "@umbraco-ui/uui-combobox": "1.11.0", - "@umbraco-ui/uui-combobox-list": "1.11.0", - "@umbraco-ui/uui-css": "1.11.0", - "@umbraco-ui/uui-dialog": "1.11.0", - "@umbraco-ui/uui-dialog-layout": "1.11.0", - "@umbraco-ui/uui-file-dropzone": "1.11.0", - "@umbraco-ui/uui-file-preview": "1.11.0", - "@umbraco-ui/uui-form": "1.11.0", - "@umbraco-ui/uui-form-layout-item": "1.11.0", - "@umbraco-ui/uui-form-validation-message": "1.11.0", - "@umbraco-ui/uui-icon": "1.11.0", - "@umbraco-ui/uui-icon-registry": "1.11.0", - "@umbraco-ui/uui-icon-registry-essential": "1.11.0", - "@umbraco-ui/uui-input": "1.11.0", - "@umbraco-ui/uui-input-file": "1.11.0", - "@umbraco-ui/uui-input-lock": "1.11.0", - "@umbraco-ui/uui-input-password": "1.11.0", - "@umbraco-ui/uui-keyboard-shortcut": "1.11.0", - "@umbraco-ui/uui-label": "1.11.0", - "@umbraco-ui/uui-loader": "1.11.0", - "@umbraco-ui/uui-loader-bar": "1.11.0", - "@umbraco-ui/uui-loader-circle": "1.11.0", - "@umbraco-ui/uui-menu-item": "1.11.0", - "@umbraco-ui/uui-modal": "1.11.0", - "@umbraco-ui/uui-pagination": "1.11.0", - "@umbraco-ui/uui-popover": "1.11.0", - "@umbraco-ui/uui-popover-container": "1.11.0", - "@umbraco-ui/uui-progress-bar": "1.11.0", - "@umbraco-ui/uui-radio": "1.11.0", - "@umbraco-ui/uui-range-slider": "1.11.0", - "@umbraco-ui/uui-ref": "1.11.0", - "@umbraco-ui/uui-ref-list": "1.11.0", - "@umbraco-ui/uui-ref-node": "1.11.0", - "@umbraco-ui/uui-ref-node-data-type": "1.11.0", - "@umbraco-ui/uui-ref-node-document-type": "1.11.0", - "@umbraco-ui/uui-ref-node-form": "1.11.0", - "@umbraco-ui/uui-ref-node-member": "1.11.0", - "@umbraco-ui/uui-ref-node-package": "1.11.0", - "@umbraco-ui/uui-ref-node-user": "1.11.0", - "@umbraco-ui/uui-scroll-container": "1.11.0", - "@umbraco-ui/uui-select": "1.11.0", - "@umbraco-ui/uui-slider": "1.11.0", - "@umbraco-ui/uui-symbol-expand": "1.11.0", - "@umbraco-ui/uui-symbol-file": "1.11.0", - "@umbraco-ui/uui-symbol-file-dropzone": "1.11.0", - "@umbraco-ui/uui-symbol-file-thumbnail": "1.11.0", - "@umbraco-ui/uui-symbol-folder": "1.11.0", - "@umbraco-ui/uui-symbol-lock": "1.11.0", - "@umbraco-ui/uui-symbol-more": "1.11.0", - "@umbraco-ui/uui-symbol-sort": "1.11.0", - "@umbraco-ui/uui-table": "1.11.0", - "@umbraco-ui/uui-tabs": "1.11.0", - "@umbraco-ui/uui-tag": "1.11.0", - "@umbraco-ui/uui-textarea": "1.11.0", - "@umbraco-ui/uui-toast-notification": "1.11.0", - "@umbraco-ui/uui-toast-notification-container": "1.11.0", - "@umbraco-ui/uui-toast-notification-layout": "1.11.0", - "@umbraco-ui/uui-toggle": "1.11.0", - "@umbraco-ui/uui-visually-hidden": "1.11.0" + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui/-/uui-1.12.2.tgz", + "integrity": "sha512-oEqt0ysOpqlpMk7AOX+88aV0dgnHfSXxE6imJw0KQKNMnZNOKv7EpndGliLJW/N2hgXQoVPESeYAfbLLt8J0MQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@umbraco-ui/uui-action-bar": "1.12.2", + "@umbraco-ui/uui-avatar": "1.12.2", + "@umbraco-ui/uui-avatar-group": "1.12.2", + "@umbraco-ui/uui-badge": "1.12.2", + "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-boolean-input": "1.12.2", + "@umbraco-ui/uui-box": "1.12.2", + "@umbraco-ui/uui-breadcrumbs": "1.12.2", + "@umbraco-ui/uui-button": "1.12.2", + "@umbraco-ui/uui-button-group": "1.12.2", + "@umbraco-ui/uui-button-inline-create": "1.12.2", + "@umbraco-ui/uui-card": "1.12.2", + "@umbraco-ui/uui-card-block-type": "1.12.2", + "@umbraco-ui/uui-card-content-node": "1.12.2", + "@umbraco-ui/uui-card-media": "1.12.2", + "@umbraco-ui/uui-card-user": "1.12.2", + "@umbraco-ui/uui-caret": "1.12.2", + "@umbraco-ui/uui-checkbox": "1.12.2", + "@umbraco-ui/uui-color-area": "1.12.2", + "@umbraco-ui/uui-color-picker": "1.12.2", + "@umbraco-ui/uui-color-slider": "1.12.2", + "@umbraco-ui/uui-color-swatch": "1.12.2", + "@umbraco-ui/uui-color-swatches": "1.12.2", + "@umbraco-ui/uui-combobox": "1.12.2", + "@umbraco-ui/uui-combobox-list": "1.12.2", + "@umbraco-ui/uui-css": "1.12.1", + "@umbraco-ui/uui-dialog": "1.12.2", + "@umbraco-ui/uui-dialog-layout": "1.12.2", + "@umbraco-ui/uui-file-dropzone": "1.12.2", + "@umbraco-ui/uui-file-preview": "1.12.2", + "@umbraco-ui/uui-form": "1.12.2", + "@umbraco-ui/uui-form-layout-item": "1.12.2", + "@umbraco-ui/uui-form-validation-message": "1.12.2", + "@umbraco-ui/uui-icon": "1.12.2", + "@umbraco-ui/uui-icon-registry": "1.12.2", + "@umbraco-ui/uui-icon-registry-essential": "1.12.2", + "@umbraco-ui/uui-input": "1.12.2", + "@umbraco-ui/uui-input-file": "1.12.2", + "@umbraco-ui/uui-input-lock": "1.12.2", + "@umbraco-ui/uui-input-password": "1.12.2", + "@umbraco-ui/uui-keyboard-shortcut": "1.12.2", + "@umbraco-ui/uui-label": "1.12.2", + "@umbraco-ui/uui-loader": "1.12.2", + "@umbraco-ui/uui-loader-bar": "1.12.2", + "@umbraco-ui/uui-loader-circle": "1.12.2", + "@umbraco-ui/uui-menu-item": "1.12.2", + "@umbraco-ui/uui-modal": "1.12.2", + "@umbraco-ui/uui-pagination": "1.12.2", + "@umbraco-ui/uui-popover": "1.12.2", + "@umbraco-ui/uui-popover-container": "1.12.2", + "@umbraco-ui/uui-progress-bar": "1.12.2", + "@umbraco-ui/uui-radio": "1.12.2", + "@umbraco-ui/uui-range-slider": "1.12.2", + "@umbraco-ui/uui-ref": "1.12.2", + "@umbraco-ui/uui-ref-list": "1.12.2", + "@umbraco-ui/uui-ref-node": "1.12.2", + "@umbraco-ui/uui-ref-node-data-type": "1.12.2", + "@umbraco-ui/uui-ref-node-document-type": "1.12.2", + "@umbraco-ui/uui-ref-node-form": "1.12.2", + "@umbraco-ui/uui-ref-node-member": "1.12.2", + "@umbraco-ui/uui-ref-node-package": "1.12.2", + "@umbraco-ui/uui-ref-node-user": "1.12.2", + "@umbraco-ui/uui-scroll-container": "1.12.2", + "@umbraco-ui/uui-select": "1.12.2", + "@umbraco-ui/uui-slider": "1.12.2", + "@umbraco-ui/uui-symbol-expand": "1.12.2", + "@umbraco-ui/uui-symbol-file": "1.12.2", + "@umbraco-ui/uui-symbol-file-dropzone": "1.12.2", + "@umbraco-ui/uui-symbol-file-thumbnail": "1.12.2", + "@umbraco-ui/uui-symbol-folder": "1.12.2", + "@umbraco-ui/uui-symbol-lock": "1.12.2", + "@umbraco-ui/uui-symbol-more": "1.12.2", + "@umbraco-ui/uui-symbol-sort": "1.12.2", + "@umbraco-ui/uui-table": "1.12.2", + "@umbraco-ui/uui-tabs": "1.12.2", + "@umbraco-ui/uui-tag": "1.12.2", + "@umbraco-ui/uui-textarea": "1.12.2", + "@umbraco-ui/uui-toast-notification": "1.12.2", + "@umbraco-ui/uui-toast-notification-container": "1.12.2", + "@umbraco-ui/uui-toast-notification-layout": "1.12.2", + "@umbraco-ui/uui-toggle": "1.12.2", + "@umbraco-ui/uui-visually-hidden": "1.12.2" } }, "node_modules/@umbraco-ui/uui-action-bar": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-action-bar/-/uui-action-bar-1.11.0.tgz", - "integrity": "sha512-lhWw7CiLL2FIXVOWgmAt8yeb625HYWXceMQMEwhlic4bp/jpVmrbYGuKl4SyubR4ws6ein4Uzzy1EWfT5K+kFQ==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-action-bar/-/uui-action-bar-1.12.2.tgz", + "integrity": "sha512-ZWTO7//oKxo5vpA+RypyxpfVMPi5f8f1uevbJ8PMdizDi67VxN1kxYA4geMzG8OQ+x5IGp01DCTtVeAx3qoJbg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0", - "@umbraco-ui/uui-button-group": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-button-group": "1.12.2" } }, "node_modules/@umbraco-ui/uui-avatar": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar/-/uui-avatar-1.11.0.tgz", - "integrity": "sha512-ixM8Kx9rE15iWYJgk28mEGeNvVDag/I8mZH/lceuq5Mm0EhUbG6gJGPkUSkDSNTnDRijkjwlF4oeCO+8nA+DRw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar/-/uui-avatar-1.12.2.tgz", + "integrity": "sha512-b/TkEIGJoouqCZLIBl/c0veJg8imImd35Ed+R1VPlcHFXrgpO8C54Fr0AEwsM5x5OeTtkfvs/18pveLPucraww==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-avatar-group": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar-group/-/uui-avatar-group-1.11.0.tgz", - "integrity": "sha512-/edFijQFzOsNMBbhg8eu0imhDnLE4MSoC30o4dQ4bI3XCtGLfJh1BiOgA+TLUU1vH7D0NIvidzH49+OOIUrvMg==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar-group/-/uui-avatar-group-1.12.2.tgz", + "integrity": "sha512-QdymxxxC6qCRAu8vAM7Owgbe/ubZ+BL+wu0qk8RXz77CVORgLpiFeUM4YwOapOXvtogXR6haxf8m3/7nxedqdg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-avatar": "1.11.0", - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-avatar": "1.12.2", + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-badge": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-badge/-/uui-badge-1.11.0.tgz", - "integrity": "sha512-7VMZzUZ+CYaFhsCe8XS8VgadBhXZtJh0ilZ695YG9Q9IAbAVyeART59VwRzO/1kS0hfCj10DPEKp8IPMbePWEA==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-badge/-/uui-badge-1.12.2.tgz", + "integrity": "sha512-jkD8rHvunbUDNZfDCekuP5DI23ufBZD+8Y3FHv5aLOAbRm9XrbJ0B4QHyKQoglQ2Yao6iKeYq+nxzG2x88Z7Dw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-base": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-base/-/uui-base-1.11.0.tgz", - "integrity": "sha512-w7HQDNtEt0qnu+psrwxvrdNxUT08qZ1fYygqH9yeKFyE5GMDvYlL1TWU696Lo72LTbTdSMm/ka9b2QBJv1ZJxA==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-base/-/uui-base-1.12.2.tgz", + "integrity": "sha512-EyPrP28teYlGeeTZvmq+4wzP8Gh9A963HbZ1nQ3oyGj+twN6QjEKUF7W4VVZ8RvFoyS1/6bWkRODuZAzAwX31g==", "dev": true, "license": "MIT", "peer": true, @@ -1548,253 +1560,253 @@ } }, "node_modules/@umbraco-ui/uui-boolean-input": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-boolean-input/-/uui-boolean-input-1.11.0.tgz", - "integrity": "sha512-3r/lMYSrFzrw6EclCRjJADtf+1yAYPcz5QRQ4yD7WxLD/Kb338HRgQ50pMG5Jwq28cdDha4n7aNx7mGInrHD3g==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-boolean-input/-/uui-boolean-input-1.12.2.tgz", + "integrity": "sha512-/NGwAPgXLiaDIMwunTDth21jQ0+5ajH3gJ5JJH6IGIq+N2g7babAEKybkZybYq+mxH//7ljH/uKDHI9IztW58g==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-box": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-box/-/uui-box-1.11.0.tgz", - "integrity": "sha512-gYiERouKMpFy/n/6LDh9ckzWpUa2vBmCsWS41Gskct3WZNSVdApZ3g2yvE9ZoJoJB2Q26JfbKShuw0BaJkEFxg==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-box/-/uui-box-1.12.2.tgz", + "integrity": "sha512-JUxqsRjqUbZ5NM5S1w40NUlHUHPIcMFqYTeCq+nLHE9WSLchym3NN+0NZjS2+qpO70kYPGlKf39mahy+rbGP9Q==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0", - "@umbraco-ui/uui-css": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-css": "1.12.1" } }, "node_modules/@umbraco-ui/uui-breadcrumbs": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-breadcrumbs/-/uui-breadcrumbs-1.11.0.tgz", - "integrity": "sha512-wRTtuZAKb0z2Mi3P3wb1CcIO1ExnnFD8vCsHxiTEAjb2e2VzEaEwnnugHnr8chxlOKiTPyX8NtsBXDLTnL/TRA==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-breadcrumbs/-/uui-breadcrumbs-1.12.2.tgz", + "integrity": "sha512-P/L4q5whw1/HVMMUmzgq5CYOu3ZoLmtlTUoOnTXj+g5R0ziX5ikjJWF1JnLa6M7ES43aB/7su9GeyvOMkcxMpA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-button": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button/-/uui-button-1.11.0.tgz", - "integrity": "sha512-/9B8Rsar9OE9NP84fXBzu5HkEIvXuEtmoaa37QQq9STgLyqrqRMxj6Mt47k69tQgh79HDNu+nwc8A5Gv+h+HHA==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button/-/uui-button-1.12.2.tgz", + "integrity": "sha512-x3zF+GLwfpc6W2vB3xLRX6g+hdKdEWMKLXtfl+WPOkocu8+EYzodrUHQg24/lO43j7ovy8c3t+zN8OhjnZMu2Q==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0", - "@umbraco-ui/uui-icon-registry-essential": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-icon-registry-essential": "1.12.2" } }, "node_modules/@umbraco-ui/uui-button-group": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-group/-/uui-button-group-1.11.0.tgz", - "integrity": "sha512-TW2OioMnjyTCjJA6lJhoX80SyeEb/R2BK6Py82/ZCifnVQ2QFWZ6PtIcnqGT+b0x95xTvzc19f+z4N841wYc8g==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-group/-/uui-button-group-1.12.2.tgz", + "integrity": "sha512-VxWICU4hmYCORmo8JzXgSyzpa82/M3OyTxfn/kX+jHg0rk9vMg4JArQJp4NF9qhgOWsHx0ED5yURTTOtbNqFTQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-button-inline-create": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-inline-create/-/uui-button-inline-create-1.11.0.tgz", - "integrity": "sha512-hoKR3sj5V4kzJ9qR0xe5q6giz41QmcPVQRP+qd90BjpxefezgnN2fud+RC59ZbhssAmep031b1pONRZyFr+6ow==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-inline-create/-/uui-button-inline-create-1.12.2.tgz", + "integrity": "sha512-YvJTwlA2ZUhepHsmc/WwP3OqG7lkrlVmAcgG7uBbasNMwDYtLWcudMrv/NSHFrCpQe0VePyr7U4YtJqyQrbDTg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-card": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card/-/uui-card-1.11.0.tgz", - "integrity": "sha512-MIesvjoBVgSNo+2ManDIpLtWXwsO3emhsloQH+nMoyU/ryy/HZMe/p4HRx/leZmM17HG3KXm2j8GpLHie8bU+w==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card/-/uui-card-1.12.2.tgz", + "integrity": "sha512-/FqFYrQxKu38+s3y7XpiO8wW7Z2T7cyst2LvMajG+3U9KPi4A0pwxaRBlli4ay79/9V9uFEGTc4dKjB+jFKl6w==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-card-block-type": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-block-type/-/uui-card-block-type-1.11.0.tgz", - "integrity": "sha512-kZeFGwSwjdD+M9HwzJ+1bScFCnS3AV36RzXDc6YklVPh63PKlt+wDmiIDd2I4+jHp8NC1buzUz/2dkmZVYOYrg==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-block-type/-/uui-card-block-type-1.12.2.tgz", + "integrity": "sha512-aydgrznHaIUrJpHrwftjPtnaXVQOLe+r6VWrtyWNSPM4ivUeT5WaH/FVMc90Q6yWfIF3y2a3yCIQAGEqAXghhQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0", - "@umbraco-ui/uui-card": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-card": "1.12.2" } }, "node_modules/@umbraco-ui/uui-card-content-node": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-content-node/-/uui-card-content-node-1.11.0.tgz", - "integrity": "sha512-iEzCVOpucAoCQnDYaGaq2k38zXUax+09gUypt907h0YPc6vRoTou5N5masvxZYyRYJrtWxv5kFs+MtLynREjGA==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-content-node/-/uui-card-content-node-1.12.2.tgz", + "integrity": "sha512-yuNlbrjwphzMPv2xMHca8YUr+NH7FqeP0EjVjhhDSsOJVUZ8uj8Udoq4YIkypOAGAyG+N63jCzLvVTTR71LxGA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0", - "@umbraco-ui/uui-card": "1.11.0", - "@umbraco-ui/uui-icon": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-card": "1.12.2", + "@umbraco-ui/uui-icon": "1.12.2" } }, "node_modules/@umbraco-ui/uui-card-media": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-media/-/uui-card-media-1.11.0.tgz", - "integrity": "sha512-uOdN0iu5OKsOtxhTSE8epuUMo2iXq6FEVqBPQBHAmAFELDFyNf2UBwnBxnrTuU6RJ0jbGuLTqQQM7Gv8vD6Kjg==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-media/-/uui-card-media-1.12.2.tgz", + "integrity": "sha512-37Zful2c9UhDxw7qYWR2F2wdt5Qs5yMjcE0Q5R1ZRA5SFba7qgY0W4YW2iAAPMk2xvDyueaTnbVy1v6gG/jtYw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0", - "@umbraco-ui/uui-card": "1.11.0", - "@umbraco-ui/uui-symbol-file": "1.11.0", - "@umbraco-ui/uui-symbol-folder": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-card": "1.12.2", + "@umbraco-ui/uui-symbol-file": "1.12.2", + "@umbraco-ui/uui-symbol-folder": "1.12.2" } }, "node_modules/@umbraco-ui/uui-card-user": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-user/-/uui-card-user-1.11.0.tgz", - "integrity": "sha512-/6No4e+eLqCmivNeCHlLfmChKb6F8asv9pgZdi6mUr44TOc44OGvvuF1vONslf9f4B2eKbRTFmFwGVIfWpjOAw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-user/-/uui-card-user-1.12.2.tgz", + "integrity": "sha512-fwuYQvXjjiLTv0ykDpg+GpcoG3af3ZHUPTRbDa5W8ygAYlTRUvENSXc2qOUocy9XmXOa0p+P0NhenVSqOJpSIw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-avatar": "1.11.0", - "@umbraco-ui/uui-base": "1.11.0", - "@umbraco-ui/uui-card": "1.11.0" + "@umbraco-ui/uui-avatar": "1.12.2", + "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-card": "1.12.2" } }, "node_modules/@umbraco-ui/uui-caret": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-caret/-/uui-caret-1.11.0.tgz", - "integrity": "sha512-Lq+zBOMeobRvFPhEps03efcy+NFOm27w5jqwJ/4ad2TbEMLTBLdSose/3ZqPV4nvTPMlWButRIFo3Nrp+4jL/Q==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-caret/-/uui-caret-1.12.2.tgz", + "integrity": "sha512-7zVDVzvLszVld9E/pGSGFRgpp+rIipB1sY/r4xDYQ70g+ljlegOfMc3bvGs/topcMM+IlcQO8EOotlps4P44Jw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-checkbox": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-checkbox/-/uui-checkbox-1.11.0.tgz", - "integrity": "sha512-bOfJXJ5LMiGCMD37A3mzYjiGTIvzjREN2AhtqGLbwcrAgj662WVhw0aQobo2+iIwaMUIAvl3kNS8930XDeUe/A==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-checkbox/-/uui-checkbox-1.12.2.tgz", + "integrity": "sha512-C6SSAUq9JfHHWCz9LLlOOmwET1vDsLKKiYv94LIqn8Zj4H3f1bRgUnSfVPVCfy1+p//Ut8SLw2vTFcTz0F21EA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0", - "@umbraco-ui/uui-boolean-input": "1.11.0", - "@umbraco-ui/uui-icon-registry-essential": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-boolean-input": "1.12.2", + "@umbraco-ui/uui-icon-registry-essential": "1.12.2" } }, "node_modules/@umbraco-ui/uui-color-area": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-area/-/uui-color-area-1.11.0.tgz", - "integrity": "sha512-R1fWHHk7BPilveIF7vPWECAHz/FPKIdvqllYu9f/oJ3RWm7DJtfcNI+Eb7hwkPR/Uj8ug7SkcL4ZvXOG30Ux4A==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-area/-/uui-color-area-1.12.2.tgz", + "integrity": "sha512-W5qOBIvTiHGxFJcc1h3H+CdLHLY4K6QRIXU7I2BEII296PbUMwKaA8WFXAvwSq1KzmCkOJP2hPa4yxQ/qKBzJQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0", + "@umbraco-ui/uui-base": "1.12.2", "colord": "^2.9.3" } }, "node_modules/@umbraco-ui/uui-color-picker": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-picker/-/uui-color-picker-1.11.0.tgz", - "integrity": "sha512-EHU2DXmET3ehRQMwkVtS+nyrfIm8c9cu01GDQR6GFzRNl3G7nUKKdK0LyRQUEm7bSXbWpwctGz6qzB9/MCuxBg==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-picker/-/uui-color-picker-1.12.2.tgz", + "integrity": "sha512-t/FB6h1rdNzPa94dIfjGG50yRNmk/7wMjrktKjkZHt+wGWKvjM+I1RjatArZbCAmSV4EQH/7hqyvP6R1OoLIog==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0", - "@umbraco-ui/uui-popover-container": "1.11.0", + "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-popover-container": "1.12.2", "colord": "^2.9.3" } }, "node_modules/@umbraco-ui/uui-color-slider": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-slider/-/uui-color-slider-1.11.0.tgz", - "integrity": "sha512-E2mW4hvARy4C7ETZ4PUCgeUPgSvw4HEPX1CpOWl32vM85R4F/K/RdS6OsSP3GHO/8oBYPjlLfX8betMrf4+3+Q==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-slider/-/uui-color-slider-1.12.2.tgz", + "integrity": "sha512-00LxQigqY+04eG0IzHY//Uf010u50DeCQ88ZvCV1MjPNH7T4auEC2/H/O7FYoHhwQB6Ez+ZpYA9ds/NbmTCuVg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-color-swatch": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatch/-/uui-color-swatch-1.11.0.tgz", - "integrity": "sha512-BeCyW9FyVmjE2W8u3k5bPwkRUIVbudK2q9VTKmIcnkwsZz8wv6dDpFoFb92So8YSzMhdiVIRQ14fnphHwMHfWQ==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatch/-/uui-color-swatch-1.12.2.tgz", + "integrity": "sha512-fDODPeuKirwSyIOhEY46J7Ml5RJcuaeMyLBshWT9bl8pNts9zIlKSvn3oSlZ9mZ7N/Ym/3R2c+33i5avoA+rIA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0", - "@umbraco-ui/uui-icon-registry-essential": "1.11.0", + "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-icon-registry-essential": "1.12.2", "colord": "^2.9.3" } }, "node_modules/@umbraco-ui/uui-color-swatches": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatches/-/uui-color-swatches-1.11.0.tgz", - "integrity": "sha512-t+BKLHKlnFdSB/AB0vihqMl7EuIUI1M+m7q07E/or+BX7juV2H+sVAwWdYiOlCjpC5wqi1RAKh41tPWyslc/vQ==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatches/-/uui-color-swatches-1.12.2.tgz", + "integrity": "sha512-kr9gYjYFQR8mavmDJS+I2t/n5wC6kWbCaZHnJzcs3unOX2jzKHnOqJ8N05y8vc2NZP1pOKSOzoIN1Y6N3qxU+g==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0", - "@umbraco-ui/uui-color-swatch": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-color-swatch": "1.12.2" } }, "node_modules/@umbraco-ui/uui-combobox": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox/-/uui-combobox-1.11.0.tgz", - "integrity": "sha512-Z+cfhxoK6/tGdErNc1rvrT9NDjuZPJ/SHAJlm83ziPvbWxTGVgjf75nqNZ3z6VW9EVWWJ0Fstz2VTzo4K0mcRA==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox/-/uui-combobox-1.12.2.tgz", + "integrity": "sha512-ln7IoQQJ65zknIl5k44E61S0DgW1e7fo/IEuMlgbrmkPnEbkLqV5HVYXIR3377VvfwqbZ44npxegOZBUuuWGlw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0", - "@umbraco-ui/uui-button": "1.11.0", - "@umbraco-ui/uui-combobox-list": "1.11.0", - "@umbraco-ui/uui-icon": "1.11.0", - "@umbraco-ui/uui-popover-container": "1.11.0", - "@umbraco-ui/uui-scroll-container": "1.11.0", - "@umbraco-ui/uui-symbol-expand": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-button": "1.12.2", + "@umbraco-ui/uui-combobox-list": "1.12.2", + "@umbraco-ui/uui-icon": "1.12.2", + "@umbraco-ui/uui-popover-container": "1.12.2", + "@umbraco-ui/uui-scroll-container": "1.12.2", + "@umbraco-ui/uui-symbol-expand": "1.12.2" } }, "node_modules/@umbraco-ui/uui-combobox-list": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox-list/-/uui-combobox-list-1.11.0.tgz", - "integrity": "sha512-XV59sGG4NYZq6llWC3OqxxpR44Cavwfn+/7ee8kTBPmjWhzvS5XijDCGQxhrLcIK74L6OnqrfLcUgItPQUA3Dg==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox-list/-/uui-combobox-list-1.12.2.tgz", + "integrity": "sha512-tBtQgQKB6kgPwRSkXM9kShNfC4Zed7V1hstCjVFy1wkRU+IinVYiN28NMNdSvDWmmxkRcIVOt7lY70T0fgPPMw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-css": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-css/-/uui-css-1.11.0.tgz", - "integrity": "sha512-DpYKHmA4/te9gYUTLfLNgp0sotkq9TJQ9XkBzXJerwye+IzZdKhIsCWf/m5S6jf065MPjncEtwBgxDdvvB8DrQ==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-css/-/uui-css-1.12.1.tgz", + "integrity": "sha512-cWdoJw3OjdZ5QUoXhUufp/8mdGkVJ4DiI7/NgPaU2GrMbo+c1Q2cx4ST2/K0Q7nY6qa4P4WCSLMoFGyFoOwLKQ==", "dev": true, "license": "MIT", "peer": true, @@ -1803,659 +1815,659 @@ } }, "node_modules/@umbraco-ui/uui-dialog": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog/-/uui-dialog-1.11.0.tgz", - "integrity": "sha512-aEpitRE2an8YGm/s0QDfGW/0ccWlnqgA9DhrosZ7kxTElj7BVMQOGVh/nQKBjf+finOGThjvTCM33eksmgPaOw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog/-/uui-dialog-1.12.2.tgz", + "integrity": "sha512-YfHE4RTRKJiSi/ZCnZMJs+eImXx64JrZmu39bEb6FBAnMpqAMxeq70Nll4Nk43nL6liARv1bXP8OKZd2b7CPgQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0", - "@umbraco-ui/uui-css": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-css": "1.12.1" } }, "node_modules/@umbraco-ui/uui-dialog-layout": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog-layout/-/uui-dialog-layout-1.11.0.tgz", - "integrity": "sha512-z7ZTDonZ/mEJ6u/WH7De/NzT4IZ+zgqR0mJn4ypsf8T0ixB/r7aDHZG9cTP9hG4gnUag8VNbdashMCroDLSYNA==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog-layout/-/uui-dialog-layout-1.12.2.tgz", + "integrity": "sha512-Xy+Ocwia0xRcpUUARTdXgSgf5NIG2mlneDkiz6dsrIsFZ1IysXCnfh/4dXw57fneO+PyHI86bDwb9aFlWvve7Q==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-file-dropzone": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-dropzone/-/uui-file-dropzone-1.11.0.tgz", - "integrity": "sha512-oV/SKvKuSze7eTbALCU0sCGmzMe8JgVQrrOPwWpepO/x2VHlWTNQbBQpsFmTOksR89Qx8NlK3Umo84i1RkeF1w==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-dropzone/-/uui-file-dropzone-1.12.2.tgz", + "integrity": "sha512-5B/1umH72IrxwlQ+4ivKDSIXXcGbfFuhvo98v1nuIF5MGl6wmoiG/lDilhny08RJMHwlcRkdYCtCChtuWEyVUg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0", - "@umbraco-ui/uui-symbol-file-dropzone": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-symbol-file-dropzone": "1.12.2" } }, "node_modules/@umbraco-ui/uui-file-preview": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-preview/-/uui-file-preview-1.11.0.tgz", - "integrity": "sha512-ZgJb3rdlKHo3iu9XZwy+elzhcBfZXb1LzoRIsLuanVHYeq/pbSXFtw8cJYJ3a65dnA6ryvGbY2m5TrWw39slMg==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-preview/-/uui-file-preview-1.12.2.tgz", + "integrity": "sha512-Oxkm7x3V/aCHPQDNh8loMESWswYCyDJeZazbhGig7mU6zbms7Vl3Vm46CIKEBva6IMy1p1AsNOgSjY4wmIvXsw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0", - "@umbraco-ui/uui-symbol-file": "1.11.0", - "@umbraco-ui/uui-symbol-file-thumbnail": "1.11.0", - "@umbraco-ui/uui-symbol-folder": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-symbol-file": "1.12.2", + "@umbraco-ui/uui-symbol-file-thumbnail": "1.12.2", + "@umbraco-ui/uui-symbol-folder": "1.12.2" } }, "node_modules/@umbraco-ui/uui-form": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form/-/uui-form-1.11.0.tgz", - "integrity": "sha512-+RqU/N8FUfbvmNPYCOyjS5e4H86dsT7h4A/2+NT2HmuyFObeXhCFMyp/60Kpfb6X7wJtnw1qa8go3zb8Gv5cpw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form/-/uui-form-1.12.2.tgz", + "integrity": "sha512-35CEeSCODTMaJi7JlvBl988tB0MIbocNg5ewCLeqm2CLVvW1UQi4V+835CY1fjgiR6D8co6Kz6KCR/9aibX5Gg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-form-layout-item": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-layout-item/-/uui-form-layout-item-1.11.0.tgz", - "integrity": "sha512-o8V+S7mNoTV5mceCaTtY6+dFhzpJAxcR/e+1kN7yq6SfiabVjfW6EBqQYAnVc/hT9WfS3AUgO/8YFdr1CKOTqA==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-layout-item/-/uui-form-layout-item-1.12.2.tgz", + "integrity": "sha512-qc4JJhhtM7HsVT1DBtw2xRbayLEWvFDwXROXgmwTUMOVZJ9qGFpSN6EWymm9fr+gBYcbwii6ZKg0ujIeHDILTw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0", - "@umbraco-ui/uui-form-validation-message": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-form-validation-message": "1.12.2" } }, "node_modules/@umbraco-ui/uui-form-validation-message": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-validation-message/-/uui-form-validation-message-1.11.0.tgz", - "integrity": "sha512-VxkPNQNPbMNMX/cPzrkekdGC7QUlyb9aH4feGe1RzD33hRc9FQufoTxS4gjSeX6yemjYu/78nqroBAMzIEmvUg==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-validation-message/-/uui-form-validation-message-1.12.2.tgz", + "integrity": "sha512-MQ0nNQcNpawQUZA+JGYPbGW8Go9b9nj4loK26Op0qvInQpbe9mHbHAhWOdbPTBLoJSYnXpo90/3E9ycU9p9PEQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-icon": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon/-/uui-icon-1.11.0.tgz", - "integrity": "sha512-aH7tKlqfkMRU4+T8neSedU+YpHuFEhDe2ckHuqILw3iK1/j56Y0lUeoabkh1y/SWRZwydkkOjIhwDFIv48Ceag==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon/-/uui-icon-1.12.2.tgz", + "integrity": "sha512-sAz08736Jt1y6pPZSBafNT04w9YCnck46whCZUhx7FX7kiKctJX0Xr9GVZH99YAGxnbXnNx0YsN6PqFfz92FzA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-icon-registry": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry/-/uui-icon-registry-1.11.0.tgz", - "integrity": "sha512-NbNDV35f1rSgKK2xFV/CPAdLPLhAFThilCPGraMY260WNIFwpcbP8n+PQ1dzNSec6xhIEMV4AC4Y5SvK/z54LA==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry/-/uui-icon-registry-1.12.2.tgz", + "integrity": "sha512-CXinq7uwca8QzIMCMBkUNkHoq9KV5ioxJSY4+2b5s7lpS8zK+Zoe+zzt5QL/bOCET6TTGZifpCiZRIiRy1Mffg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0", - "@umbraco-ui/uui-icon": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-icon": "1.12.2" } }, "node_modules/@umbraco-ui/uui-icon-registry-essential": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry-essential/-/uui-icon-registry-essential-1.11.0.tgz", - "integrity": "sha512-WU5LRcjDFeGlr/Dq540IHLC1mMLgEkMJXjCNOb2d/7jLP3FHDs0T4qJGgzILYfeX7fDjQCnxkWVfaDmGGikSWA==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry-essential/-/uui-icon-registry-essential-1.12.2.tgz", + "integrity": "sha512-s53QmcXVzrLDwpVP3WZW1pekG95kVrjgHDyTo2T3a2J4ovvEEYpZ8/Jmf/3lJVj5CpvQV+I1l/Wx3zFtniT91g==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0", - "@umbraco-ui/uui-icon-registry": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-icon-registry": "1.12.2" } }, "node_modules/@umbraco-ui/uui-input": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input/-/uui-input-1.11.0.tgz", - "integrity": "sha512-DWe25cOCtYvRgqShL/UL4OnTRSbIZgTLp1JSdzLzSFxNm3PO2mAhYZuOMdGCjDkjv0G2lszmaqd7Ix8Xw+51ZA==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input/-/uui-input-1.12.2.tgz", + "integrity": "sha512-t/QsptHm9jMH8A0iWBvRZ2s/qeKaO5vp1Zf5oBG9RtgZoS7cNowdMQPVp6mXzc1gICc217lNFsxt+MUGVCud2w==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-input-file": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-file/-/uui-input-file-1.11.0.tgz", - "integrity": "sha512-u19lW5F7aiMN/D3wHhqJgqdreKaHJDoZ76A37nys2kItNWHvpoFbRrHkAaaN9RQVrl0rwmx3R6Sbs+IWFuTCJA==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-file/-/uui-input-file-1.12.2.tgz", + "integrity": "sha512-X/AeocW+1XLroIqsuxB4OBTmFy1n7ZzfxNrtwEsaqM1rbrA3RGY2EIjnt311eoxk9DvFWeG50/gICV85sWWNmQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-action-bar": "1.11.0", - "@umbraco-ui/uui-base": "1.11.0", - "@umbraco-ui/uui-button": "1.11.0", - "@umbraco-ui/uui-file-dropzone": "1.11.0", - "@umbraco-ui/uui-icon": "1.11.0", - "@umbraco-ui/uui-icon-registry-essential": "1.11.0" + "@umbraco-ui/uui-action-bar": "1.12.2", + "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-button": "1.12.2", + "@umbraco-ui/uui-file-dropzone": "1.12.2", + "@umbraco-ui/uui-icon": "1.12.2", + "@umbraco-ui/uui-icon-registry-essential": "1.12.2" } }, "node_modules/@umbraco-ui/uui-input-lock": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-lock/-/uui-input-lock-1.11.0.tgz", - "integrity": "sha512-VCpLcFZ+OOeCubczsQsxrhqj3iPdq7o81YMxckd+BLiqU0O5nDxioSuZf5WeU7zttkTE64a0NYu0fKaRC7hLOA==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-lock/-/uui-input-lock-1.12.2.tgz", + "integrity": "sha512-EAjzK0xZbjEEyIqHjMdDPmBQMSay/vbYj65YHb8aJBtYyL17qIqVRMEB9D/tV7cGBp5FbpkpZtb5qWmNVFQtcg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0", - "@umbraco-ui/uui-button": "1.11.0", - "@umbraco-ui/uui-icon": "1.11.0", - "@umbraco-ui/uui-input": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-button": "1.12.2", + "@umbraco-ui/uui-icon": "1.12.2", + "@umbraco-ui/uui-input": "1.12.2" } }, "node_modules/@umbraco-ui/uui-input-password": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-password/-/uui-input-password-1.11.0.tgz", - "integrity": "sha512-doilXxlrc8v6BUtXUhlrno2aQSzlApUw1B9nnG2TuFOxoJ3iynJV6p6CcwPNlNPEYzPeiHFOaizPeDaZWZYmRg==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-password/-/uui-input-password-1.12.2.tgz", + "integrity": "sha512-CYNHiaDmaBDXUYE6XFpO3lpmClwjC6aCgtlYFe8SqFlcyU1KABal36PopxpnIMuKrmMv3LFHw1Jpg5dnjk/hNA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0", - "@umbraco-ui/uui-icon-registry-essential": "1.11.0", - "@umbraco-ui/uui-input": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-icon-registry-essential": "1.12.2", + "@umbraco-ui/uui-input": "1.12.2" } }, "node_modules/@umbraco-ui/uui-keyboard-shortcut": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-keyboard-shortcut/-/uui-keyboard-shortcut-1.11.0.tgz", - "integrity": "sha512-wRhfCnjjmZzs2gVoF1gZXNvIooPH8Qytr7UE6ijr6rDWbkDsltjhHocsPpcBAu1LUhqmqmlXDPHOOnc4sraL4A==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-keyboard-shortcut/-/uui-keyboard-shortcut-1.12.2.tgz", + "integrity": "sha512-X4ZpIP6AQbx5d3zLVVGqHKIDBli4HwkOsTnepHYFPTykTTiCVBxRiVQ5TRgAM4GjeEaUe/mOyPOCYkVBJ0bKmA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-label": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-label/-/uui-label-1.11.0.tgz", - "integrity": "sha512-xeVOm9gGyPERnmwjmBNiqsfHFU4ROn6wGIEg6bV/CRdz0sjOKBHMYjdH+hg00kRQjj8oYt52HK4dVos8lDDYZg==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-label/-/uui-label-1.12.2.tgz", + "integrity": "sha512-D4j2XBwtYq2tK/pP+QJuLSxg5NtD+jGEy5DO2qhoRm2VPzGjCWw3irdykVoTIgMRjJiWOQMvE8tpgqPBsBygHw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-loader": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader/-/uui-loader-1.11.0.tgz", - "integrity": "sha512-BoNCOFV+CXwMH/WEwVo5ADj6QXg1tIRPtzVtN3gZGTcDizbqp20171JtkeW3IvOpE6s9Gypn22bv1sUI+ZZOFA==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader/-/uui-loader-1.12.2.tgz", + "integrity": "sha512-vbAds+57/wFelt+F4YdCdZ9dyR9DjBtEEPhcJDbd5yLwbgKnl+ITL6pDtu2kT45cVMacaxxZAdP5SzcwVSnR7g==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-loader-bar": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-bar/-/uui-loader-bar-1.11.0.tgz", - "integrity": "sha512-WSIGG4Xlb/SuhnMmL0yd5ZaFUUdHR1UnZ6vv9ja5ORug88AnvPTNMY/53u2ilSh6NT0GCPXWFAbVgIZDn5KaFA==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-bar/-/uui-loader-bar-1.12.2.tgz", + "integrity": "sha512-nC678xqAJFH8vKqhewfFi1CEZ8dR5r/s88REILZOwQM8S0c2z9J4bxesmjpr2ZIQ4KQ2l7BCzBdWbyqs+GUHUA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-loader-circle": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-circle/-/uui-loader-circle-1.11.0.tgz", - "integrity": "sha512-78xMkQVPUxSwEbvUIdg7L6lamliVKS+NVh+ZRGB+U3HG5t+kwXlcjgaQ4ebdkB7LgLvqrT41GEbXPsmk8hVKKQ==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-circle/-/uui-loader-circle-1.12.2.tgz", + "integrity": "sha512-CmjdLDdUM1pRp3dE+WKVEc9dTIQlvYtPtJIjCyNwP403YcKvreGMW6wKMxV/+69IEPjRtTjyaKyprNGnRVRpwg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-menu-item": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-menu-item/-/uui-menu-item-1.11.0.tgz", - "integrity": "sha512-SMbTptyJdLCh03pSa1MflC0im6c7jaRdjb3p6exQ7cz++TdoLveJyOKAWaJ2TvaAShoaLOdlVHRD88sXcuj2Eg==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-menu-item/-/uui-menu-item-1.12.2.tgz", + "integrity": "sha512-CvrkPWvfRLGSWFNDq+SCLKUm08DjWzw/nYtGLSmQL9QsXa/SMJMtmmcw2H+OYzk4d/9ME+r0GRralZgDlx08iA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0", - "@umbraco-ui/uui-loader-bar": "1.11.0", - "@umbraco-ui/uui-symbol-expand": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-loader-bar": "1.12.2", + "@umbraco-ui/uui-symbol-expand": "1.12.2" } }, "node_modules/@umbraco-ui/uui-modal": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-modal/-/uui-modal-1.11.0.tgz", - "integrity": "sha512-rNq8lhzKj4bk4EMgAIlnHcaQX0W7kQhHWBeJahvLL6jNMmiMGtN/ZtE0efG5tx1r4dixTPbiXXGAl8qMqgTIig==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-modal/-/uui-modal-1.12.2.tgz", + "integrity": "sha512-0ZJuMwdpIFDD+vi59gakhL4jsEb+/f/sMIH4yE/np8ccbZNnGSIT0RJPe94lv6b2wPKrjVIQ1VGGrqzY2znh2A==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-pagination": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-pagination/-/uui-pagination-1.11.0.tgz", - "integrity": "sha512-aQf9MH4BlBbR9r+u4jbknuivhXPrwn65YjLkO3gDDfVfeSSu+ZsrNxReUVnVehF+bP55htcxgwC/lKDJldHVEQ==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-pagination/-/uui-pagination-1.12.2.tgz", + "integrity": "sha512-TvP0GKewUZndpO7rHlPqbsw5dPqmKBJXs33berhn/crIE2pGnPVEBey3NYLIHBd5CZI5ufn+gGn4NPNVGF+Q9A==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0", - "@umbraco-ui/uui-button": "1.11.0", - "@umbraco-ui/uui-button-group": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-button": "1.12.2", + "@umbraco-ui/uui-button-group": "1.12.2" } }, "node_modules/@umbraco-ui/uui-popover": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-popover/-/uui-popover-1.11.0.tgz", - "integrity": "sha512-ZHjkuJ1z8P/zLFeBf8LB8+c/JXm6YK5SORVnZfIlF8MZSDLanFlST62uOT7dcop96yihI/zIr7O5vO8OEw44bw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-popover/-/uui-popover-1.12.2.tgz", + "integrity": "sha512-gvSUe7wox0VY/wEm8LLUV//aLVwz7twswWQd9QniR6MdahvwhjWhQ90hTVpir3VAj5GFBaTfSitqeFBElyT1og==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-popover-container": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-popover-container/-/uui-popover-container-1.11.0.tgz", - "integrity": "sha512-i90xXibf8BfP4Yd5Bp4wOfjnFEWQ2Qmn9vnDOWcxmsM9q7NQFx7m4287jJCMtfz2DUbj0VIFJlA2rffWnnSJzw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-popover-container/-/uui-popover-container-1.12.2.tgz", + "integrity": "sha512-2z//P49B1zyoN/tWdVZp6Q+8qRnbbtGb4CBveXZeuuirzNxhMOA/E77Y0aJmzjn8yTRoooMGmYzRYd+4zJGNJQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-progress-bar": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-progress-bar/-/uui-progress-bar-1.11.0.tgz", - "integrity": "sha512-ZTRlebLZV19wvNS5TtX+Ku/1cXgAXBR9anYydx/+e2sXQeotwsak74vHqVgNYTzFqD+8EuRlwYJOI4kMer8COw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-progress-bar/-/uui-progress-bar-1.12.2.tgz", + "integrity": "sha512-PW5TKeg58Lv3WfX6Sp/EPWCsl9oYqQovvl/7y0pxy7xFnSYma5tFQ+XX0mD1rKw7ed3Unlek/Ma9u79Z9GVhDQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-radio": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-radio/-/uui-radio-1.11.0.tgz", - "integrity": "sha512-s2KhChBWMlpUThSAm7HGPcbCFXJ7vQTTgSw1e+VED/p/xwKhMrcMiwGX1s4fRTXt4tnCm8AcbMSkhfrW4DW8IA==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-radio/-/uui-radio-1.12.2.tgz", + "integrity": "sha512-KfXA6+YtueMsxQTjzjp8gVgGJAk17BW9d4Da4h7kYhZGekfWK996ohEgGWF7vj/Q4Ai229OuX7zNJdufCGZIfw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-range-slider": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-range-slider/-/uui-range-slider-1.11.0.tgz", - "integrity": "sha512-ReU+Xh8VEH9L+ap4Zwo4+TFWDodoiU5iNkkM0NwbHMz/PLiBE0tVKD5wgppkJKnTRxDxS3MG98C+3DOvXqO2ZQ==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-range-slider/-/uui-range-slider-1.12.2.tgz", + "integrity": "sha512-m4ATwJYdasF4jfLLHxfFw+2n0uQmZdOha4vxzHbTreyO/gnwn8hLfICA1h9zjoZIqUGMtQ9KlhIaUezvgMpGFw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-ref": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref/-/uui-ref-1.11.0.tgz", - "integrity": "sha512-gAtI3/FgcUmmUPSNY9HMGnlMSby9PrcZ1hJRFmv+b86Ducc+4ljmsro97noTexYG1zttDPMkvYGFqOeE5bAeDQ==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref/-/uui-ref-1.12.2.tgz", + "integrity": "sha512-uwQmaiuwphD1ereZLBhcUDMUaUosO0sV6NrBOh9KLWhkmeqYjuFFG2+CRxdhQrKb1ltZfLzAmzYfGp6AoFkvmw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-ref-list": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-list/-/uui-ref-list-1.11.0.tgz", - "integrity": "sha512-c0DLRyNs/sRKPqmnjY6QAfuPa8+etQpXK683gJEn5R4zwcJGGPFzRf6BD9nIcecAAnbL+MFd6cgCBZWlDq/BJA==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-list/-/uui-ref-list-1.12.2.tgz", + "integrity": "sha512-b7reEiwfGy17Ns3qFQoO0TnngxAUclhj0jR7gLIk7dHNJZw45r37crPMkVs2CnRj657nn4DmghjQgCLDSCre9w==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-ref-node": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node/-/uui-ref-node-1.11.0.tgz", - "integrity": "sha512-/+kpfFBb1su5/7egIAHQfeCm3+VQuMrwt07evovAeAM6YAdZsEcv8l2B0V09uKIcJJn/eJOfVVWlqWqi+qQazg==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node/-/uui-ref-node-1.12.2.tgz", + "integrity": "sha512-RFma47ixyYNdcMwel1+dte5fGnULczWZpzh1CvAiI9JNKzy9ItUFi70UiFKMrkOY0gT+910xgeWhk4jPTJJgpQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0", - "@umbraco-ui/uui-icon": "1.11.0", - "@umbraco-ui/uui-ref": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-icon": "1.12.2", + "@umbraco-ui/uui-ref": "1.12.2" } }, "node_modules/@umbraco-ui/uui-ref-node-data-type": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-data-type/-/uui-ref-node-data-type-1.11.0.tgz", - "integrity": "sha512-MED2t6TvjNgzLhV2aaWf/WJ6qA5fhWgFC11hCfEDdjqzhot7TrL4yI/YRDaEJXcYjb5rivod+c346ejSL9+Eog==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-data-type/-/uui-ref-node-data-type-1.12.2.tgz", + "integrity": "sha512-s8eviANQTHaNXSVa4U61wJcPCAwzUj6YrIvw7T3Ioe4HgIQvTotIWaCkek+p4ttl3irnnBsRXfGdW+yWuaEnEg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0", - "@umbraco-ui/uui-ref-node": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-ref-node": "1.12.2" } }, "node_modules/@umbraco-ui/uui-ref-node-document-type": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-document-type/-/uui-ref-node-document-type-1.11.0.tgz", - "integrity": "sha512-S2kzH14m508FBkYalKsWEPLT2xShqryxuSs6caiYAi3cXm5MJq04phvRxl9Yo7h74PESojmZWHjRquPfCLEHog==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-document-type/-/uui-ref-node-document-type-1.12.2.tgz", + "integrity": "sha512-Dg+SAAcMSqr0EvX6IY2jjGk9I8bbgo1Pe6L5c9g0CBPmQ8H+0qOKDdSojWzn/qohtfdAIvN+21Q0AvCovVA9rA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0", - "@umbraco-ui/uui-ref-node": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-ref-node": "1.12.2" } }, "node_modules/@umbraco-ui/uui-ref-node-form": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-form/-/uui-ref-node-form-1.11.0.tgz", - "integrity": "sha512-S1RobwV2O69eyw5sDRrJJDcFNF49hfZ/UcsluK9snPBe080Hzcqjl8bp+6AnH5NyicVwwDW43s6KImXhlIhtVw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-form/-/uui-ref-node-form-1.12.2.tgz", + "integrity": "sha512-jnPNmLK8LvZenH2MY9Ea8R+4JkuDNMoBfUFVnhaLg+dHp7tsrg9opIONDNOIJJTYHryHdZ+/ksvQGW6ZWlACgQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0", - "@umbraco-ui/uui-ref-node": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-ref-node": "1.12.2" } }, "node_modules/@umbraco-ui/uui-ref-node-member": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-member/-/uui-ref-node-member-1.11.0.tgz", - "integrity": "sha512-rFqPLY2xnFNFaGgPvneYHapLbnmNhUBaGYnSBe8GJkywz1YFBfdJKj7OftKiqMVWidNz32fejGEUouj9zztxyw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-member/-/uui-ref-node-member-1.12.2.tgz", + "integrity": "sha512-ft0SRlDZ49eRbV3Xk7JtDfR5UraULoeTfYe/MHZkmAzhrDKeTtnd9oVYUQ27qsYs6EVneQ8byydwXrmSMloc8A==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0", - "@umbraco-ui/uui-ref-node": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-ref-node": "1.12.2" } }, "node_modules/@umbraco-ui/uui-ref-node-package": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-package/-/uui-ref-node-package-1.11.0.tgz", - "integrity": "sha512-ykakG0czZnDdCMy5bRawizwYTu4J267vM1bJrfUa22+hSMKGMy/o4oKS+aKQ2Rh5eUlfBq80iylLDhn4rdmJ6A==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-package/-/uui-ref-node-package-1.12.2.tgz", + "integrity": "sha512-TX9PCPpeOWpl5vK8o/QjXgEWXOt7z0lQK8wlUHYSz+a3/wcmDZD0J/OXkmpvVyS2lXe6pqR8HJ/+FwcnrOm/9w==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0", - "@umbraco-ui/uui-ref-node": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-ref-node": "1.12.2" } }, "node_modules/@umbraco-ui/uui-ref-node-user": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-user/-/uui-ref-node-user-1.11.0.tgz", - "integrity": "sha512-mrvjf+0usJmJRtTwg90bvLZvftBLG6IQPUxPqWEN7cYbwnDnT0GDn/5qA8Yx9+eND+xMU/I3Dvke9XOyLXfT9Q==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-user/-/uui-ref-node-user-1.12.2.tgz", + "integrity": "sha512-sBMICX3vxJd9WjJPWqVnhUhJL+JMuzGzZVUfHlzIjrdpANZZ6FrhnvYkHXhW83KsrfwLsY5/3CXr22xZSsVajA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0", - "@umbraco-ui/uui-ref-node": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-ref-node": "1.12.2" } }, "node_modules/@umbraco-ui/uui-scroll-container": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-scroll-container/-/uui-scroll-container-1.11.0.tgz", - "integrity": "sha512-e+8Fnc2rFtRdv52DpZW0UC9CnxzhXmIqRldYjTpbaL6Xjg9qNSdeW5AvJNk+fgufL6LJOO6NUXs6ixTp8eiOIA==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-scroll-container/-/uui-scroll-container-1.12.2.tgz", + "integrity": "sha512-MI5lpiUeLg1Scf2xHaFzBADAW8CAwcU2yEKOOfOgONuaP6PiUA80YqtE2hCm5BmoldbOYBufCJlFFi2cyuq7HQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-select": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-select/-/uui-select-1.11.0.tgz", - "integrity": "sha512-slTOIvJZMMtCnVEhBVjAs1MPQBb1BAAa6R+DOoslC4aqA1yEgXWQmFu0xVZqiN0NTz3kqEF5zfexumVJ5f79LQ==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-select/-/uui-select-1.12.2.tgz", + "integrity": "sha512-TOGodRtumlh1cgC9iKxsV/jEGH2w7bKBjIhyQ42sJ3DXyLPcXVEUooZYmh/3dOf7R/7eHSsZOxH/sskbQlNS2A==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-slider": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-slider/-/uui-slider-1.11.0.tgz", - "integrity": "sha512-sxWZCvznmTkpJ+VyoIjMRsVQuYC2SMnTWFd+7xrg3pk5SRySNxhZhyQUyf5jI1hAzrW9ATySDZlaRYCOMsC7uA==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-slider/-/uui-slider-1.12.2.tgz", + "integrity": "sha512-Eg0XqIIXwibxq7y4qe0OB9+t7QLetnlBY3i2BSeMPMfarG1NQ6jhWVOv//RKmZ1kqfUh9MCE5tya9T9h68zR1A==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-symbol-expand": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-expand/-/uui-symbol-expand-1.11.0.tgz", - "integrity": "sha512-bFGp9Dhp8heBfNnu3ozw9DOIfwjkVcKNfHLSts6wg+J3vLW4x0y9jLfxSyvArQQUcUHKsgOzEHoNw6igYDpDJw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-expand/-/uui-symbol-expand-1.12.2.tgz", + "integrity": "sha512-zW/ClcJuPCe7ELYHCyoSMm6sGWVPLDbjz8TlE1qambwmFefqTfv69p3nB0YF7QnB+7LR5ePOV63vjZSYWT9/Aw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-symbol-file": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file/-/uui-symbol-file-1.11.0.tgz", - "integrity": "sha512-AK411VsceFqOAGtvlK2VcyTqwPbYVdqJkXbTbsSxYVhIB2jMVISppwlefqerx4zbPASBp4aeIN54PZWN+Y3dfw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file/-/uui-symbol-file-1.12.2.tgz", + "integrity": "sha512-+af95C4eZOdOpqJrt8br1pic1P/NPrnyC1Q4sKLaCReuBqBdaWLl502kAXjlkkoJZsv4GsyzmjiSbBkbRIZCFQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-symbol-file-dropzone": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-dropzone/-/uui-symbol-file-dropzone-1.11.0.tgz", - "integrity": "sha512-Tma0hziyVM3ZXUduL97i8s3zs5JjbZi9lbydPx7foL/vAhEdP7fov8OXF1kMBhYIEieT11td/9ARxKlDOaLojQ==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-dropzone/-/uui-symbol-file-dropzone-1.12.2.tgz", + "integrity": "sha512-8vmHw+nYZdWgeUVNCJhTvJg4iw0zTCxQ6H5tguN1Qepc+XD1NdlRTi8yicnEKSLcq20qzI3KxxwToNLnFKseSQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-symbol-file-thumbnail": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-thumbnail/-/uui-symbol-file-thumbnail-1.11.0.tgz", - "integrity": "sha512-22JNF2zs9iumu5JTsn6WmvyMqOwjrZ5/tfeL8+4ZnrxWM5CmJ7neKTm5BHoJyj0oM1wML2NWAc4McbWNOXktrg==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-thumbnail/-/uui-symbol-file-thumbnail-1.12.2.tgz", + "integrity": "sha512-tQsQTjgZti4zB327Xd2ql8lz9rj07aVwKfJcV2bClHwyQbRb370KRAS4m6MiaT587+6qVcjRwG3Sya1blpNMfg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-symbol-folder": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-folder/-/uui-symbol-folder-1.11.0.tgz", - "integrity": "sha512-NcQQupEQASwp8pyxVFG6v7rCvNAbgtE2R9IDlLl5yC/k3449TZ/NiEgMaSlmNhexBEc4SCoTMD9IuaEBo4vmZg==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-folder/-/uui-symbol-folder-1.12.2.tgz", + "integrity": "sha512-v3bYEpbomOmt2J+LYuB3HqzzZW+LzK/Ufpvr3Km9Gl4eXjPUnrAzBn3PSdq7w5ZvR3vfEV017coPTSX0wncjKQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-symbol-lock": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-lock/-/uui-symbol-lock-1.11.0.tgz", - "integrity": "sha512-1PsxVXj5zT3vXOcb+LP6/bgfGOt0aUmIoAGtV6mO/QHb1XPmOB07xrRzkk7CX+VixOCIdkTGYNU/CFjPJwLsow==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-lock/-/uui-symbol-lock-1.12.2.tgz", + "integrity": "sha512-syW+kTYq7W9coBc7ov1BbDhRTmAMh77GacfQt4XSayHgE/hhO6UvG95uk0POaooQ0UfBW1bDv9r3/wJNZBTfmw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-symbol-more": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-more/-/uui-symbol-more-1.11.0.tgz", - "integrity": "sha512-72OwXzXAm9XXLB/+qGhtl7IRzrq/2uDdMFG93EMJs0NM3MU0EM0Ild7MuIAPecGiCGjBYn/iyZmWhYMDhS/KOA==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-more/-/uui-symbol-more-1.12.2.tgz", + "integrity": "sha512-lxcw/B6zl3TJ7mZDYgXKvX6D/1gYYLmrLvKV7J5iSTGxDNiLji8NAXu2/rgffKMGIFaLfZicEENSLLX/JF8QGQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-symbol-sort": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-sort/-/uui-symbol-sort-1.11.0.tgz", - "integrity": "sha512-Y+PQc77PvmVOGAaPGRTYrtLI3MCV/BqE9hl0f+yGZYK/C97r3ogGQxMguU5zThf49EOEL3VmB/WWS/HEFblsjA==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-sort/-/uui-symbol-sort-1.12.2.tgz", + "integrity": "sha512-iDLs6Ph9BGrLRifU6oGZr7UCOsoOKk5NMxnP7eP/sy0geq30kHlI/mcBu6XUrtYiFsy3+l8b8gSFdLxEHQrcgQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-table": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-table/-/uui-table-1.11.0.tgz", - "integrity": "sha512-AXKMARK9WtyuU9T72LGprhBQXpYKw4rWGoGQwUjRk4lwdQD8WKeY3kfIIcaeabBiK5FPnZaEoCpxIkmPt77n2w==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-table/-/uui-table-1.12.2.tgz", + "integrity": "sha512-aHSArtedBiQBcz++eXomQvTys4Q0P7/SNEUcsG/CbPS7uDWXQZJK/KajtI7rMjU/d63dtavIXq9v0LatKTM/sw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-tabs": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tabs/-/uui-tabs-1.11.0.tgz", - "integrity": "sha512-IyB1qao2G3T5UNBj3Kw9EL7ikjAp8COvHVH8eTD+fjx1PbrNJmDl6utTV6tpysxLkT7UQ3o6QtjxstDtlUSqsg==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tabs/-/uui-tabs-1.12.2.tgz", + "integrity": "sha512-20ZmwGiLFtFA5a1CkBo713Ua508d0VwaCWnaKkhoE8Kl/ttlWhlKg+PSB26wkcwB0QonWrH1clMRalwKqRhjvg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0", - "@umbraco-ui/uui-button": "1.11.0", - "@umbraco-ui/uui-popover-container": "1.11.0", - "@umbraco-ui/uui-symbol-more": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-button": "1.12.2", + "@umbraco-ui/uui-popover-container": "1.12.2", + "@umbraco-ui/uui-symbol-more": "1.12.2" } }, "node_modules/@umbraco-ui/uui-tag": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tag/-/uui-tag-1.11.0.tgz", - "integrity": "sha512-TGMkL7J+PPOq0dZiXnj5Y7f6+c/IJl71I2cme75cE/SkzoI01hr1KvEEThHT83yn64PPqews8ZCh1fKwmI1tmw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tag/-/uui-tag-1.12.2.tgz", + "integrity": "sha512-15omQCZmBeW3U6E0kCoFQs3ckUsNqWOCjslGfDMe+0x0a+r5hntam05OrUlF523plD/SG6utXGI/tRYdTidh1g==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-textarea": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-textarea/-/uui-textarea-1.11.0.tgz", - "integrity": "sha512-g4ciGte7YgHJkzhkLPn4xiGfjHXFbUWa86S4bg3WricucdF20EReLRc6I2jW7mo8lL+h+y8wLcIIQ8CquscLsQ==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-textarea/-/uui-textarea-1.12.2.tgz", + "integrity": "sha512-dlT0fZ0zjdj4BouWhjqA4UBBj4YRFGxWZkMhbP/+g2lAnsl11GN2yMzOvfv7R6Zo3pmV6/qavtEk+XRKBaAihg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/@umbraco-ui/uui-toast-notification": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification/-/uui-toast-notification-1.11.0.tgz", - "integrity": "sha512-5Mhhwn5z/IdlO3iuMMM8HYlDXg9GM23NxCykDcNGpGxMW0TeMFNLNxsBqm+5fOsNYjL2vhv3utPZyeE57ulyQA==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification/-/uui-toast-notification-1.12.2.tgz", + "integrity": "sha512-gtVAoGPd4G0VWVdSyyhaDQupzuLLfFzuaVTVai0970hLAZAzcbodG3W382iPhPIbHwQX7T8LMV02ScPfGuhjbA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0", - "@umbraco-ui/uui-button": "1.11.0", - "@umbraco-ui/uui-css": "1.11.0", - "@umbraco-ui/uui-icon": "1.11.0", - "@umbraco-ui/uui-icon-registry-essential": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-button": "1.12.2", + "@umbraco-ui/uui-css": "1.12.1", + "@umbraco-ui/uui-icon": "1.12.2", + "@umbraco-ui/uui-icon-registry-essential": "1.12.2" } }, "node_modules/@umbraco-ui/uui-toast-notification-container": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-container/-/uui-toast-notification-container-1.11.0.tgz", - "integrity": "sha512-Y0LunmaTU/06i6mZF/RmopCDvsZMbgYlayJ3K7w6qkqXeJCnLg9cWHQSmOvIz9DJPO84NOcoYCwsLo4DRYa8WQ==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-container/-/uui-toast-notification-container-1.12.2.tgz", + "integrity": "sha512-Zu70rQzYV+QegV2kwNmpUDGU75z6u9B3ujFzVN2u+oi1y0kkR6wgXIczExQ4PeqEBZM252ZWbCIDQ66gX1+thw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0", - "@umbraco-ui/uui-toast-notification": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-toast-notification": "1.12.2" } }, "node_modules/@umbraco-ui/uui-toast-notification-layout": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-layout/-/uui-toast-notification-layout-1.11.0.tgz", - "integrity": "sha512-lYuYhtgnO4ELs+qxc2bt6JPBdm+RYhcujMTpx8sSgCYPkHiwxnZt9WEfQQJe4wcwNyuGyMTcwn2d6BKMYgqP9g==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-layout/-/uui-toast-notification-layout-1.12.2.tgz", + "integrity": "sha512-b0kgRwc744RpBjJW5URKRwGXzbGWU12OuFqIXq6BSl8LuFci9uh62V2J7Jj5xnx6v1jqZi/RRRKRwiqQOa3AWw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0", - "@umbraco-ui/uui-css": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-css": "1.12.1" } }, "node_modules/@umbraco-ui/uui-toggle": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toggle/-/uui-toggle-1.11.0.tgz", - "integrity": "sha512-ZWafhMLnR/Z55U4Nw2mUYiPOWrIcSYS4Oay388ZuEKZmfQ0iwGYGSBo4awn3OeY/mVoY88QY6R2siRq9jABKig==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toggle/-/uui-toggle-1.12.2.tgz", + "integrity": "sha512-hQCQJUEYjNL/2a/vldTlkFhTLiAF+P1UKxhPDqxCQlO/GsOihefcRhchOPmx4ptvjadvSc7J/MJPhAYC2RB0gw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0", - "@umbraco-ui/uui-boolean-input": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2", + "@umbraco-ui/uui-boolean-input": "1.12.2" } }, "node_modules/@umbraco-ui/uui-visually-hidden": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-visually-hidden/-/uui-visually-hidden-1.11.0.tgz", - "integrity": "sha512-IxZwVLvX311+iupaupA36C6Ea3Aox/KAh/C5hE81qN+fNI/A8CZxr4OHHEvnQj4VcL0gTG0qt4PbxSR4hRfxmw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-visually-hidden/-/uui-visually-hidden-1.12.2.tgz", + "integrity": "sha512-3VC4UUcalOl93pkwVWxbSxnIEyN9e5Soy+V3HKQDifWZ536NjBRvMzw+jib5BFLBzrfmRjX68lxNbE2t/EDydA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@umbraco-ui/uui-base": "1.11.0" + "@umbraco-ui/uui-base": "1.12.2" } }, "node_modules/acorn": { @@ -2638,9 +2650,9 @@ "license": "MIT" }, "node_modules/diff": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", - "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-7.0.0.tgz", + "integrity": "sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==", "dev": true, "license": "BSD-3-Clause", "peer": true, @@ -2649,12 +2661,15 @@ } }, "node_modules/dompurify": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.0.tgz", - "integrity": "sha512-AMdOzK44oFWqHEi0wpOqix/fUNY707OmoeFDnbi3Q5I8uOpy21ufUA5cDJPr0bosxrflOVD/H2DMSvuGKJGfmQ==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.3.tgz", + "integrity": "sha512-U1U5Hzc2MO0oW3DF+G9qYN0aT7atAou4AgI0XjWz061nyBPbdxkfdhfy5uMgGn6+oLFCfn44ZGbdDqCzVmlOWA==", "dev": true, "license": "(MPL-2.0 OR Apache-2.0)", - "peer": true + "peer": true, + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } }, "node_modules/dotenv": { "version": "16.4.5", @@ -2692,9 +2707,9 @@ } }, "node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", + "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -2702,32 +2717,34 @@ "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" + "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" + "@esbuild/aix-ppc64": "0.24.2", + "@esbuild/android-arm": "0.24.2", + "@esbuild/android-arm64": "0.24.2", + "@esbuild/android-x64": "0.24.2", + "@esbuild/darwin-arm64": "0.24.2", + "@esbuild/darwin-x64": "0.24.2", + "@esbuild/freebsd-arm64": "0.24.2", + "@esbuild/freebsd-x64": "0.24.2", + "@esbuild/linux-arm": "0.24.2", + "@esbuild/linux-arm64": "0.24.2", + "@esbuild/linux-ia32": "0.24.2", + "@esbuild/linux-loong64": "0.24.2", + "@esbuild/linux-mips64el": "0.24.2", + "@esbuild/linux-ppc64": "0.24.2", + "@esbuild/linux-riscv64": "0.24.2", + "@esbuild/linux-s390x": "0.24.2", + "@esbuild/linux-x64": "0.24.2", + "@esbuild/netbsd-arm64": "0.24.2", + "@esbuild/netbsd-x64": "0.24.2", + "@esbuild/openbsd-arm64": "0.24.2", + "@esbuild/openbsd-x64": "0.24.2", + "@esbuild/sunos-x64": "0.24.2", + "@esbuild/win32-arm64": "0.24.2", + "@esbuild/win32-ia32": "0.24.2", + "@esbuild/win32-x64": "0.24.2" } }, "node_modules/escape-string-regexp": { @@ -2929,9 +2946,9 @@ } }, "node_modules/linkifyjs": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.1.3.tgz", - "integrity": "sha512-auMesunaJ8yfkHvK4gfg1K0SaKX/6Wn9g2Aac/NwX+l5VdmFZzo/hdPGxEOETj+ryRa4/fiOPjeeKURSAJx1sg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.2.0.tgz", + "integrity": "sha512-pCj3PrQyATaoTYKHrgWRF3SJwsm61udVh+vuls/Rl6SptiDhgE7ziUIudAedRY9QEfynmM7/RmLEfPUyw1HPCw==", "dev": true, "license": "MIT", "peer": true @@ -2987,9 +3004,9 @@ } }, "node_modules/marked": { - "version": "14.1.4", - "resolved": "https://registry.npmjs.org/marked/-/marked-14.1.4.tgz", - "integrity": "sha512-vkVZ8ONmUdPnjCKc5uTRvmkRbx4EAi2OkTOXmfTDhZz3OFqMNBM1oTTWwTr4HY4uAEojhzPf+Fy8F1DWa3Sndg==", + "version": "15.0.4", + "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.4.tgz", + "integrity": "sha512-TCHvDqmb3ZJ4PWG7VEGVgtefA5/euFmsIhxtD0XsBxI39gUSKL81mIRFdt0AiNQozUahd4ke98ZdirExd/vSEw==", "dev": true, "license": "MIT", "peer": true, @@ -3102,9 +3119,9 @@ } }, "node_modules/monaco-editor": { - "version": "0.50.0", - "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.50.0.tgz", - "integrity": "sha512-8CclLCmrRRh+sul7C08BmPBP3P8wVWfBHomsTcndxg5NRCEPfu/mc2AGU8k37ajjDVXcXFc12ORAMUkmk+lkFA==", + "version": "0.52.2", + "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.52.2.tgz", + "integrity": "sha512-GEQWEZmfkOGLdd3XK8ryrfWz3AIP8YymVXiPHEdewrUq7mh0qrKrfHLNCXcbB6sTnMLnOZ3ztSiKcciFUkIJwQ==", "dev": true, "license": "MIT", "peer": true @@ -3423,9 +3440,9 @@ } }, "node_modules/prosemirror-model": { - "version": "1.23.0", - "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.23.0.tgz", - "integrity": "sha512-Q/fgsgl/dlOAW9ILu4OOhYWQbc7TQd4BwKH/RwmUjyVf8682Be4zj3rOYdLnYEcGzyg8LL9Q5IWYKD8tdToreQ==", + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.24.1.tgz", + "integrity": "sha512-YM053N+vTThzlWJ/AtPtF1j0ebO36nvbmDy4U7qA2XQB8JVaQp1FmB9Jhrps8s+z+uxhhVTny4m20ptUvhk0Mg==", "dev": true, "license": "MIT", "peer": true, @@ -3445,9 +3462,9 @@ } }, "node_modules/prosemirror-schema-list": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.4.1.tgz", - "integrity": "sha512-jbDyaP/6AFfDfu70VzySsD75Om2t3sXTOdl5+31Wlxlg62td1haUpty/ybajSfJ1pkGadlOfwQq9kgW5IMo1Rg==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.5.0.tgz", + "integrity": "sha512-gg1tAfH1sqpECdhIHOA/aLg2VH3ROKBWQ4m8Qp9mBKrOxQRW61zc+gMCI8nh22gnBzd1t2u1/NPLmO3nAa3ssg==", "dev": true, "license": "MIT", "peer": true, @@ -3471,18 +3488,18 @@ } }, "node_modules/prosemirror-tables": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/prosemirror-tables/-/prosemirror-tables-1.6.1.tgz", - "integrity": "sha512-p8WRJNA96jaNQjhJolmbxTzd6M4huRE5xQ8OxjvMhQUP0Nzpo4zz6TztEiwk6aoqGBhz9lxRWR1yRZLlpQN98w==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/prosemirror-tables/-/prosemirror-tables-1.6.2.tgz", + "integrity": "sha512-97dKocVLrEVTQjZ4GBLdrrMw7Gv3no8H8yMwf5IRM9OoHrzbWpcH5jJxYgNQIRCtdIqwDctT1HdMHrGTiwp1dQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "prosemirror-keymap": "^1.1.2", - "prosemirror-model": "^1.8.1", - "prosemirror-state": "^1.3.1", - "prosemirror-transform": "^1.2.1", - "prosemirror-view": "^1.13.3" + "prosemirror-keymap": "^1.2.2", + "prosemirror-model": "^1.24.1", + "prosemirror-state": "^1.4.3", + "prosemirror-transform": "^1.10.2", + "prosemirror-view": "^1.37.1" } }, "node_modules/prosemirror-trailing-node": { @@ -3514,9 +3531,9 @@ } }, "node_modules/prosemirror-view": { - "version": "1.36.0", - "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.36.0.tgz", - "integrity": "sha512-U0GQd5yFvV5qUtT41X1zCQfbw14vkbbKwLlQXhdylEmgpYVHkefXYcC4HHwWOfZa3x6Y8wxDLUBv7dxN5XQ3nA==", + "version": "1.37.1", + "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.37.1.tgz", + "integrity": "sha512-MEAnjOdXU1InxEmhjgmEzQAikaS6lF3hD64MveTPpjOGNTl87iRLA1HupC/DEV6YuK7m4Q9DHFNTjwIVtqz5NA==", "dev": true, "license": "MIT", "peer": true, @@ -3715,9 +3732,9 @@ "peer": true }, "node_modules/tinymce-i18n": { - "version": "24.11.11", - "resolved": "https://registry.npmjs.org/tinymce-i18n/-/tinymce-i18n-24.11.11.tgz", - "integrity": "sha512-1iH1qrR5KxeSH6uy28PeHdBttGUhfSbk31Vxp430gk3Uvt8Djay7CxvM7p695TmNyNYHWgFpQU09LduIyesOwQ==", + "version": "24.12.30", + "resolved": "https://registry.npmjs.org/tinymce-i18n/-/tinymce-i18n-24.12.30.tgz", + "integrity": "sha512-OOtJfr9plrXT5fuvCEXJ56QFKyFPCaaVcalj0UgJGv2AK8PNWhDVqzPef6MPlBkvVA1qgrZb7ZvfJC63wmkWjg==", "dev": true, "license": "MIT", "peer": true @@ -3731,9 +3748,9 @@ "peer": true }, "node_modules/typescript": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", - "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", + "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", "dev": true, "license": "Apache-2.0", "bin": { @@ -3774,9 +3791,9 @@ } }, "node_modules/uuid": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", - "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.0.3.tgz", + "integrity": "sha512-d0z310fCWv5dJwnX1Y/MncBAqGMKEzlBb1AOf7z9K8ALnd0utBX/msg/fA0+sbyN1ihbMsLhrBlnl1ak7Wa0rg==", "dev": true, "funding": [ "https://github.com/sponsors/broofa", @@ -3785,25 +3802,25 @@ "license": "MIT", "peer": true, "bin": { - "uuid": "dist/bin/uuid" + "uuid": "dist/esm/bin/uuid" } }, "node_modules/vite": { - "version": "5.4.11", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.11.tgz", - "integrity": "sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==", + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.6.tgz", + "integrity": "sha512-NSjmUuckPmDU18bHz7QZ+bTYhRR0iA72cs2QAxCqDpafJ0S6qetco0LB3WW2OxlMHS0JmAv+yZ/R3uPmMyGTjQ==", "dev": true, "license": "MIT", "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.43", - "rollup": "^4.20.0" + "esbuild": "^0.24.2", + "postcss": "^8.4.49", + "rollup": "^4.23.0" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^18.0.0 || >=20.0.0" + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" @@ -3812,19 +3829,25 @@ "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", - "terser": "^5.4.0" + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" }, "peerDependenciesMeta": { "@types/node": { "optional": true }, + "jiti": { + "optional": true + }, "less": { "optional": true }, @@ -3845,6 +3868,12 @@ }, "terser": { "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true } } }, diff --git a/src/Umbraco.Community.BackOfficeOrganiser.Client/package.json b/src/Umbraco.Community.BackOfficeOrganiser.Client/package.json index 14ee50c..5f79be7 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser.Client/package.json +++ b/src/Umbraco.Community.BackOfficeOrganiser.Client/package.json @@ -13,10 +13,10 @@ "lit": "^3.2.1" }, "devDependencies": { - "@hey-api/openapi-ts": "^0.55.3", - "@umbraco-cms/backoffice": "^15.0.0", - "typescript": "^5.6.3", - "vite": "^5.4.11" + "@hey-api/openapi-ts": "^0.60.1", + "@umbraco-cms/backoffice": "^15.1.1", + "typescript": "^5.7.2", + "vite": "^6.0.6" }, "volta": { "node": "20.18.0" diff --git a/src/Umbraco.Community.BackOfficeOrganiser.Client/src/api/index.ts b/src/Umbraco.Community.BackOfficeOrganiser.Client/src/api/index.ts index 205031a..50a1dd7 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser.Client/src/api/index.ts +++ b/src/Umbraco.Community.BackOfficeOrganiser.Client/src/api/index.ts @@ -2,6 +2,5 @@ export { ApiError } from './core/ApiError'; export { CancelablePromise, CancelError } from './core/CancelablePromise'; export { OpenAPI, type OpenAPIConfig } from './core/OpenAPI'; -export * from './schemas.gen'; -export * from './services.gen'; +export * from './sdk.gen'; export * from './types.gen'; \ No newline at end of file diff --git a/src/Umbraco.Community.BackOfficeOrganiser.Client/src/api/schemas.gen.ts b/src/Umbraco.Community.BackOfficeOrganiser.Client/src/api/schemas.gen.ts deleted file mode 100644 index 9784fac..0000000 --- a/src/Umbraco.Community.BackOfficeOrganiser.Client/src/api/schemas.gen.ts +++ /dev/null @@ -1,59 +0,0 @@ -// This file is auto-generated by @hey-api/openapi-ts - -export const EventMessageTypeModelSchema = { - enum: ['Default', 'Info', 'Error', 'Success', 'Warning'], - type: 'string' -} as const; - -export const NotificationHeaderModelSchema = { - required: ['category', 'message', 'type'], - type: 'object', - properties: { - message: { - type: 'string' - }, - category: { - type: 'string' - }, - type: { - '$ref': '#/components/schemas/EventMessageTypeModel' - } - }, - additionalProperties: false -} as const; - -export const OrganiseRequestSchema = { - required: ['contentTypes', 'dataTypes', 'mediaTypes', 'memberTypes'], - type: 'object', - properties: { - dataTypes: { - type: 'boolean' - }, - contentTypes: { - type: 'boolean' - }, - mediaTypes: { - type: 'boolean' - }, - memberTypes: { - type: 'boolean' - } - }, - additionalProperties: false -} as const; - -export const OrganiseResponseSchema = { - required: ['error', 'message'], - type: 'object', - properties: { - error: { - type: 'boolean', - readOnly: true - }, - message: { - type: 'string', - readOnly: true - } - }, - additionalProperties: false -} as const; \ No newline at end of file diff --git a/src/Umbraco.Community.BackOfficeOrganiser.Client/src/api/sdk.gen.ts b/src/Umbraco.Community.BackOfficeOrganiser.Client/src/api/sdk.gen.ts new file mode 100644 index 0000000..857ba4e --- /dev/null +++ b/src/Umbraco.Community.BackOfficeOrganiser.Client/src/api/sdk.gen.ts @@ -0,0 +1,35 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import type { CancelablePromise } from './core/CancelablePromise'; +import { OpenAPI } from './core/OpenAPI'; +import { request as __request } from './core/request'; +import type { GetUmbracoBackOfficeOrganiserApiV1InfoResponse, PostUmbracoBackOfficeOrganiserApiV1OrganiseData, PostUmbracoBackOfficeOrganiserApiV1OrganiseResponse } from './types.gen'; + +/** + * @returns unknown OK + * @throws ApiError + */ +export const getUmbracoBackOfficeOrganiserApiV1Info = (): CancelablePromise => { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/BackOfficeOrganiser/api/v1/info' + }); +}; + +/** + * @param data The data for the request. + * @param data.requestBody + * @returns unknown OK + * @throws ApiError + */ +export const postUmbracoBackOfficeOrganiserApiV1Organise = (data: PostUmbracoBackOfficeOrganiserApiV1OrganiseData = {}): CancelablePromise => { + return __request(OpenAPI, { + method: 'POST', + url: '/umbraco/BackOfficeOrganiser/api/v1/organise', + body: data.requestBody, + mediaType: 'application/json', + errors: { + 400: 'Bad Request' + } + }); +}; \ No newline at end of file diff --git a/src/Umbraco.Community.BackOfficeOrganiser.Client/src/api/services.gen.ts b/src/Umbraco.Community.BackOfficeOrganiser.Client/src/api/services.gen.ts deleted file mode 100644 index 83cd373..0000000 --- a/src/Umbraco.Community.BackOfficeOrganiser.Client/src/api/services.gen.ts +++ /dev/null @@ -1,21 +0,0 @@ -// This file is auto-generated by @hey-api/openapi-ts - -import type { CancelablePromise } from './core/CancelablePromise'; -import { OpenAPI } from './core/OpenAPI'; -import { request as __request } from './core/request'; -import type { PostUmbracoBackofficeorganiserApiOrganiseData, PostUmbracoBackofficeorganiserApiOrganiseResponse } from './types.gen'; - -/** - * @param data The data for the request. - * @param data.requestBody - * @returns unknown OK - * @throws ApiError - */ -export const postUmbracoBackofficeorganiserApiOrganise = (data: PostUmbracoBackofficeorganiserApiOrganiseData = {}): CancelablePromise => { - return __request(OpenAPI, { - method: 'POST', - url: '/umbraco/backofficeorganiser/api/organise', - body: data.requestBody, - mediaType: 'application/json' - }); -}; \ No newline at end of file diff --git a/src/Umbraco.Community.BackOfficeOrganiser.Client/src/api/types.gen.ts b/src/Umbraco.Community.BackOfficeOrganiser.Client/src/api/types.gen.ts index 9515c6d..984d554 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser.Client/src/api/types.gen.ts +++ b/src/Umbraco.Community.BackOfficeOrganiser.Client/src/api/types.gen.ts @@ -8,6 +8,19 @@ export type NotificationHeaderModel = { type: EventMessageTypeModel; }; +export type OrganiseInfoModel = { + alias: string; + name: string; + description: string; +}; + +export type OrganiseInfoResponse = { + dataTypes: Array<(OrganiseInfoModel)>; + contentTypes: Array<(OrganiseInfoModel)>; + mediaTypes: Array<(OrganiseInfoModel)>; + memberTypes: Array<(OrganiseInfoModel)>; +}; + export type OrganiseRequest = { dataTypes: boolean; contentTypes: boolean; @@ -20,8 +33,10 @@ export type OrganiseResponse = { readonly message: string; }; -export type PostUmbracoBackofficeorganiserApiOrganiseData = { +export type GetUmbracoBackOfficeOrganiserApiV1InfoResponse = ((OrganiseInfoResponse)); + +export type PostUmbracoBackOfficeOrganiserApiV1OrganiseData = { requestBody?: (OrganiseRequest); }; -export type PostUmbracoBackofficeorganiserApiOrganiseResponse = ((OrganiseResponse)); \ No newline at end of file +export type PostUmbracoBackOfficeOrganiserApiV1OrganiseResponse = ((OrganiseResponse)); \ No newline at end of file diff --git a/src/Umbraco.Community.BackOfficeOrganiser.Client/src/context/organiser.context.ts b/src/Umbraco.Community.BackOfficeOrganiser.Client/src/context/organiser.context.ts index 8e2230a..eac4cd6 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser.Client/src/context/organiser.context.ts +++ b/src/Umbraco.Community.BackOfficeOrganiser.Client/src/context/organiser.context.ts @@ -3,7 +3,7 @@ import {UmbControllerHost} from "@umbraco-cms/backoffice/controller-api"; import {UmbDataSourceResponse} from "@umbraco-cms/backoffice/repository"; import {UmbContextToken} from "@umbraco-cms/backoffice/context-api"; import {BackofficeOrganiserRepository} from "../repository/organsier.repository.ts"; -import {PostUmbracoBackofficeorganiserApiOrganiseData, PostUmbracoBackofficeorganiserApiOrganiseResponse} from "../api"; +import {type GetUmbracoBackOfficeOrganiserApiV1InfoResponse, PostUmbracoBackOfficeOrganiserApiV1OrganiseData, PostUmbracoBackOfficeOrganiserApiV1OrganiseResponse} from "../api"; export class BackofficeOrganiserContext extends UmbControllerBase { #repository: BackofficeOrganiserRepository; @@ -14,9 +14,13 @@ export class BackofficeOrganiserContext extends UmbControllerBase { this.#repository = new BackofficeOrganiserRepository(this); } - async organise(data: PostUmbracoBackofficeorganiserApiOrganiseData = {}): Promise> { + async organise(data: PostUmbracoBackOfficeOrganiserApiV1OrganiseData = {}): Promise> { return await this.#repository.organise(data); } + + async getInfo(): Promise> { + return await this.#repository.getInfo(); + } } export const BACKOFFICE_ORGANISER_CONTEXT_TOKEN = diff --git a/src/Umbraco.Community.BackOfficeOrganiser.Client/src/dashboards/manifest.ts b/src/Umbraco.Community.BackOfficeOrganiser.Client/src/dashboards/manifest.ts index 4cd832f..22ca6e0 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser.Client/src/dashboards/manifest.ts +++ b/src/Umbraco.Community.BackOfficeOrganiser.Client/src/dashboards/manifest.ts @@ -9,7 +9,7 @@ const dashboards: Array = [ js: () => import("./organiser.dashboard.ts"), weight: -10, meta: { - label: 'Backoffice Organiser', + label: '#boo_dashboardLabel', pathname: 'backoffice-organiser' }, conditions: [ diff --git a/src/Umbraco.Community.BackOfficeOrganiser.Client/src/dashboards/organiser.dashboard.ts b/src/Umbraco.Community.BackOfficeOrganiser.Client/src/dashboards/organiser.dashboard.ts index ff20321..20c454b 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser.Client/src/dashboards/organiser.dashboard.ts +++ b/src/Umbraco.Community.BackOfficeOrganiser.Client/src/dashboards/organiser.dashboard.ts @@ -1,92 +1,152 @@ -import {customElement, property, state} from "lit/decorators.js"; +import {customElement, state} from "lit/decorators.js"; import {css, html, LitElement} from "lit"; import {UmbElementMixin} from "@umbraco-cms/backoffice/element-api"; import {UMB_NOTIFICATION_CONTEXT, UmbNotificationContext} from "@umbraco-cms/backoffice/notification"; -import {BackofficeOrganiserContext} from "../context/organiser.context.ts"; +import {BACKOFFICE_ORGANISER_CONTEXT_TOKEN, BackofficeOrganiserContext} from "../context/organiser.context.ts"; import {OrganiseTypeModel} from "../models/organise-type-model.ts"; import {OrganiseType} from "../models/organise-type.ts"; +import {UMB_CONFIRM_MODAL, UMB_MODAL_MANAGER_CONTEXT, UmbModalManagerContext} from "@umbraco-cms/backoffice/modal"; +import {OrganiseInfoModel, OrganiseInfoResponse} from "../api"; @customElement('backoffice-organiser') export default class BackofficeOrganiser extends UmbElementMixin(LitElement) { - @property() + @state() loading: boolean = false; - - #backofficeOrganiserContext?: BackofficeOrganiserContext; - #notificationContext?: UmbNotificationContext; - - @property() - confirmRequired: boolean = false; - + @state() + contentTypes: boolean = false; + @state() + mediaTypes: boolean = false; + @state() + memberTypes: boolean = false; + @state() + dataTypes: boolean = false; + @state() + info?: OrganiseInfoResponse; @state() types: OrganiseTypeModel[] = [ { value: 1, - label: "Content Types", - description: "Organise content types", + label: this.localize.term("boo_contentTypes"), selected: false, }, { value: 2, - label: "Media Types", - description: "Organise media types", + label: this.localize.term("boo_mediaTypes"), selected: false, }, { value: 3, - label: "Member Types", - description: "Organise member types", + label: this.localize.term("boo_memberTypes"), selected: false, }, { value: 4, - label: "Data Types", - description: "Organise data types", + label: this.localize.term("boo_dataTypes"), selected: false, } ]; - // @state() - // toast: Toast | null = null; - private contentTypes: boolean = false; - private mediaTypes: boolean = false; - private memberTypes: boolean = false; - private dataTypes: boolean = false; + #modalManagerContext?: UmbModalManagerContext; + #backofficeOrganiserContext?: BackofficeOrganiserContext; + #notificationContext?: UmbNotificationContext; constructor() { super(); + this.consumeContext(BACKOFFICE_ORGANISER_CONTEXT_TOKEN, async (context) => { + this.#backofficeOrganiserContext = context; + const data = await context.getInfo(); + if (!data.error && data.data) { + this.info = data.data; + } + }); - this.#backofficeOrganiserContext = new BackofficeOrganiserContext(this); + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (context) => { + this.#modalManagerContext = context; + }); this.consumeContext(UMB_NOTIFICATION_CONTEXT, (context) => { this.#notificationContext = context; }); } - render() { - let modal = null; - if (this.confirmRequired) { - modal = this.renderConfirm(); - } + _showInfoModal(type: OrganiseTypeModel) { + const content = this.renderModal(type); + const modalContext = this.#modalManagerContext?.open( + this, UMB_CONFIRM_MODAL, + { + data: { + headline: type.label, + content: content, + color: "positive", + confirmLabel: this.localize.term("general_close"), + cancelLabel: " " + } + } + ); + + modalContext + ?.onSubmit() + .then(() => { + }) + .catch(() => { + }); + } + + renderModal(type: OrganiseTypeModel) { + const items = this._getItems(type.value); + + const organiseActions = items.map((x, i) => html` +
+

${i + 1}. ${x.name}

+

${x.description}

+
+ `); + + return html + ` +

${this.localize.term("boo_organiseActionInfoIntroduction")}

+ ${organiseActions} + `; + } - const organiseTypes = this.types.map(type => { - const look = type.selected ? "primary" : "placeholder"; + render() { + const organiseTypes = this.types.map((type) => { + const look = type.selected ? "primary" : "outline"; + const icon = type.selected ? "check" : "remove"; + const text = type.selected ? this.localize.term("boo_selected") : this.localize.term("boo_disabled"); + const label = type.label; + const count = this._getItems(type.value).length; return html ` - - ${type.label} - +
+

${type.label}

+

+ + + ${count} ${this.localize.term("boo_numberOfOrganisers", count)} + +

+ + + ${text} + +
`; }) const disableButton = this.types.filter(x => x.selected).length === 0; const form = html` -
+ - Select types + ${this.localize.term("boo_selectTypesLabel")} - Select the types to organise + ${this.localize.term("boo_selectTypes")}
${organiseTypes} @@ -102,50 +162,40 @@ export default class BackofficeOrganiser extends UmbElementMixin(LitElement) { return html`
- - -

- This dashboard is designed to help you organise your Document Types, Media Types, Member Types and Data Types. -

+

- To get started, select at least one type to organise and click the submit button. + ${this.localize.term("boo_introduction")}

- + - Documentation + ${this.localize.term("boo_documentation")} - - Report a Bug + ${this.localize.term("boo_reportBug")} - - Request a Feature + ${this.localize.term("boo_requestFeature")} - - +

- + ${this.loading ? loader : form} - - ${modal} -
`; } - private toggleType(type: OrganiseTypeModel) { + _toggleType(type: OrganiseTypeModel) { type.selected = !type.selected; switch (type.value) { case OrganiseType.ContentTypes: @@ -164,7 +214,7 @@ export default class BackofficeOrganiser extends UmbElementMixin(LitElement) { this.requestUpdate(); } - private onSubmit = (e: Event) => { + _onSubmit = async (e: Event) => { e.preventDefault(); const form = e.currentTarget as HTMLFormElement; const isValid = form.checkValidity(); @@ -172,11 +222,41 @@ export default class BackofficeOrganiser extends UmbElementMixin(LitElement) { return; } - this.confirmRequired = true; + const content = html` +

+ ${this.localize.term("boo_confirmMessage")} +

+
    + ${this.types.filter(x => x.selected).map(x => + html` +
  • ${x.label}
  • + `)} +
+

+ ${this.localize.term("boo_confirmWarning")} +

+ ` + const modalContext = this.#modalManagerContext?.open( + this, UMB_CONFIRM_MODAL, + { + data: { + headline: `${this.localize.term("boo_confirmHeadline")}`, + content: content, + color: "danger" + } + } + ); + + modalContext + ?.onSubmit() + .then(() => { + this._confirmOrganise(); + }) + .catch(() => { + }); }; - private confirmOrganise = async () => { - this.confirmRequired = false; + _confirmOrganise = async () => { this.loading = true; const request = { requestBody: { @@ -199,86 +279,51 @@ export default class BackofficeOrganiser extends UmbElementMixin(LitElement) { } }); + this.types.forEach(x => x.selected = false); this.loading = false; }; - renderConfirm = () => html` - - - -

- The following types will be organised: -

-
    - ${this.types.filter(x => x.selected).map(x => - html` -
  • ${x.label}
  • - `)} -
-
- - This cannot be undone! - -
- Cancel - - Confirm - -
-
-
- `; - - private cancelOrganise() { - this.confirmRequired = false - } - static styles = [ css` - .dashboard{ - padding:24px; - } - - .organise-type-container uui-button { - width: 100%; - } - - .toast-container { - top: 0; - left: 0; - right: 0; - height: 100vh; - padding: var(--uui-size-layout-1); + .dashboard { + padding: var(--uui-size-6); } .organise-type-container { display: flex; flex-direction: row; gap: var(--uui-size-3); - max-width: 900px; } - .organise-type { - background-color: var(--uui-color-background); - cursor: pointer; - padding: var(--uui-size-6); - } - - .organise-type.active { - background-color: var(--uui-color-selected); - color: white; + .organiser-type { + margin-right: var(--uui-size-6); } - .alert { - padding: var(--uui-size-3); - background-color: var(--uui-color-danger-emphasis); - color: var(--uui-color-danger-contrast); + .organiser-type uui-button { + width: 100%; } ` ] + + private _getItems(value: OrganiseType) { + let items = Array(); + switch (value) { + case OrganiseType.ContentTypes: + items = this.info?.contentTypes ?? []; + break; + case OrganiseType.MediaTypes: + items = this.info?.mediaTypes ?? []; + break; + case OrganiseType.MemberTypes: + items = this.info?.memberTypes ?? []; + break; + case OrganiseType.DataTypes: + items = this.info?.dataTypes ?? []; + break; + } + + return items; + } } declare global { diff --git a/src/Umbraco.Community.BackOfficeOrganiser.Client/src/datasource/organiser.datasource.ts b/src/Umbraco.Community.BackOfficeOrganiser.Client/src/datasource/organiser.datasource.ts new file mode 100644 index 0000000..52fd9ee --- /dev/null +++ b/src/Umbraco.Community.BackOfficeOrganiser.Client/src/datasource/organiser.datasource.ts @@ -0,0 +1,33 @@ +import {UmbControllerHost} from "@umbraco-cms/backoffice/controller-api"; +import {UmbDataSourceResponse} from "@umbraco-cms/backoffice/repository"; +import {tryExecuteAndNotify} from "@umbraco-cms/backoffice/resources"; +import { + getUmbracoBackOfficeOrganiserApiV1Info, type GetUmbracoBackOfficeOrganiserApiV1InfoResponse, + postUmbracoBackOfficeOrganiserApiV1Organise, + PostUmbracoBackOfficeOrganiserApiV1OrganiseData, + PostUmbracoBackOfficeOrganiserApiV1OrganiseResponse +} from "../api"; + +export class BackofficeOrganiserDataSource implements IBackofficeOrganiserDataSource { + + #host: UmbControllerHost; + + constructor(host: UmbControllerHost) { + this.#host = host; + } + + async organise(data: PostUmbracoBackOfficeOrganiserApiV1OrganiseData = {}): Promise> { + return await tryExecuteAndNotify(this.#host, postUmbracoBackOfficeOrganiserApiV1Organise(data)) + } + + async getInfo(): Promise> { + return await tryExecuteAndNotify(this.#host, getUmbracoBackOfficeOrganiserApiV1Info()) + } +} + +export interface IBackofficeOrganiserDataSource { + organise(data: PostUmbracoBackOfficeOrganiserApiV1OrganiseData): Promise>; + + getInfo(): Promise>; +} + diff --git a/src/Umbraco.Community.BackOfficeOrganiser.Client/src/index.ts b/src/Umbraco.Community.BackOfficeOrganiser.Client/src/index.ts index 61e4b9a..7f40683 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser.Client/src/index.ts +++ b/src/Umbraco.Community.BackOfficeOrganiser.Client/src/index.ts @@ -2,10 +2,13 @@ import {manifests as dashboardManifests} from './dashboards/manifest.ts'; import {UMB_AUTH_CONTEXT} from "@umbraco-cms/backoffice/auth"; import {OpenAPI} from "./api"; import {UmbEntryPointOnInit} from "@umbraco-cms/backoffice/extension-api"; +import {ManifestLocalizations} from "./lang/manifests.ts"; +import {BackofficeOrganiserContext} from "./context/organiser.context.ts"; export const onInit: UmbEntryPointOnInit = (_host, extensionRegistry) => { extensionRegistry.registerMany([ ...dashboardManifests, + ...ManifestLocalizations ]); _host.consumeContext(UMB_AUTH_CONTEXT, (_auth) => { @@ -14,4 +17,6 @@ export const onInit: UmbEntryPointOnInit = (_host, extensionRegistry) => { OpenAPI.BASE = umbOpenApi.base; OpenAPI.WITH_CREDENTIALS = umbOpenApi.withCredentials; }); + + new BackofficeOrganiserContext(_host) }; \ No newline at end of file diff --git a/src/Umbraco.Community.BackOfficeOrganiser.Client/src/lang/en-us.ts b/src/Umbraco.Community.BackOfficeOrganiser.Client/src/lang/en-us.ts new file mode 100644 index 0000000..f35d365 --- /dev/null +++ b/src/Umbraco.Community.BackOfficeOrganiser.Client/src/lang/en-us.ts @@ -0,0 +1,29 @@ +export default { + boo: { + selected: "Selected", + disabled: "Disabled", + numberOfOrganisers: (count: any) => { + if ((parseInt(count) || 0) === 1) { + return "Organiser"; + } + return "Organisers"; + }, + organise: "Organise", + contentTypes: "Content Types", + mediaTypes: "Media Types", + memberTypes: "Member Types", + dataTypes: "Data Types", + dashboardLabel: "Backoffice Organiser", + title: "Welcome", + confirmHeadline: "Organise Confirmation", + confirmMessage: "Are you sure you want to organise the selected types?", + confirmWarning: "This action cannot be undone.", + selectTypes: "Select types to organise", + selectTypesLabel: "Select types", + requestFeature: "Request a Feature", + reportBug: "Report a Bug", + documentation: "Documentation", + introduction: "This dashboard is designed to help you organise your Document Types, Media Types, Member Types and Data Types. To get started, select at least one type to organise and click the submit button.", + organiseActionInfoIntroduction: "The following actions will be performed in order:", + } +}; diff --git a/src/Umbraco.Community.BackOfficeOrganiser.Client/src/lang/manifests.ts b/src/Umbraco.Community.BackOfficeOrganiser.Client/src/lang/manifests.ts new file mode 100644 index 0000000..d66215a --- /dev/null +++ b/src/Umbraco.Community.BackOfficeOrganiser.Client/src/lang/manifests.ts @@ -0,0 +1,26 @@ +import {ManifestLocalization} from "@umbraco-cms/backoffice/localization"; + +export const ManifestLocalizations: Array = [ + { + type: 'localization', + alias: 'BOO.lang.enus', + name: 'English (US)', + weight: 0, + meta: { + culture: 'en-us' + }, + // @ts-ignore + js: () => import('./en-us') + }, + { + type: 'localization', + alias: 'BOO.lang.engb', + name: 'English (UK)', + weight: 0, + meta: { + culture: 'en-gb' + }, + // @ts-ignore + js: () => import('./en-us') + }, +] diff --git a/src/Umbraco.Community.BackOfficeOrganiser.Client/src/models/organise-type-model.ts b/src/Umbraco.Community.BackOfficeOrganiser.Client/src/models/organise-type-model.ts index f029831..04ef6c8 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser.Client/src/models/organise-type-model.ts +++ b/src/Umbraco.Community.BackOfficeOrganiser.Client/src/models/organise-type-model.ts @@ -4,11 +4,9 @@ export class OrganiseTypeModel { value: OrganiseType; label: string; selected: boolean; - description: string; - constructor(value: number, label: string, description :string, selected: boolean) { + constructor(value: number, label: string, selected: boolean) { this.value = value; this.label = label; - this.description = description; this.selected = selected; } } \ No newline at end of file diff --git a/src/Umbraco.Community.BackOfficeOrganiser.Client/src/repository/organiser.datasource.ts b/src/Umbraco.Community.BackOfficeOrganiser.Client/src/repository/organiser.datasource.ts deleted file mode 100644 index d556d1a..0000000 --- a/src/Umbraco.Community.BackOfficeOrganiser.Client/src/repository/organiser.datasource.ts +++ /dev/null @@ -1,22 +0,0 @@ -import {UmbControllerHost} from "@umbraco-cms/backoffice/controller-api"; -import {UmbDataSourceResponse} from "@umbraco-cms/backoffice/repository"; -import {tryExecuteAndNotify} from "@umbraco-cms/backoffice/resources"; -import {postUmbracoBackofficeorganiserApiOrganise, PostUmbracoBackofficeorganiserApiOrganiseData, PostUmbracoBackofficeorganiserApiOrganiseResponse} from "../api"; - -export class BackofficeOrganiserDataSource implements IBackofficeOrganiserDataSource { - - #host: UmbControllerHost; - - constructor(host: UmbControllerHost) { - this.#host = host; - } - - async organise(data: PostUmbracoBackofficeorganiserApiOrganiseData = {}): Promise> { - return await tryExecuteAndNotify(this.#host, postUmbracoBackofficeorganiserApiOrganise(data)) - } -} - -export interface IBackofficeOrganiserDataSource { - organise(data: PostUmbracoBackofficeorganiserApiOrganiseData): Promise>; -} - diff --git a/src/Umbraco.Community.BackOfficeOrganiser.Client/src/repository/organsier.repository.ts b/src/Umbraco.Community.BackOfficeOrganiser.Client/src/repository/organsier.repository.ts index 9d4d84b..8d88d94 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser.Client/src/repository/organsier.repository.ts +++ b/src/Umbraco.Community.BackOfficeOrganiser.Client/src/repository/organsier.repository.ts @@ -1,8 +1,8 @@ import {UmbControllerHost} from "@umbraco-cms/backoffice/controller-api"; import {UmbDataSourceResponse} from "@umbraco-cms/backoffice/repository"; import {UmbControllerBase} from "@umbraco-cms/backoffice/class-api"; -import {BackofficeOrganiserDataSource, IBackofficeOrganiserDataSource} from "./organiser.datasource.ts"; -import {PostUmbracoBackofficeorganiserApiOrganiseData, PostUmbracoBackofficeorganiserApiOrganiseResponse} from "../api"; +import {BackofficeOrganiserDataSource, IBackofficeOrganiserDataSource} from "../datasource/organiser.datasource.ts"; +import {type GetUmbracoBackOfficeOrganiserApiV1InfoResponse, PostUmbracoBackOfficeOrganiserApiV1OrganiseData, PostUmbracoBackOfficeOrganiserApiV1OrganiseResponse} from "../api"; export class BackofficeOrganiserRepository extends UmbControllerBase { #resource: IBackofficeOrganiserDataSource; @@ -12,8 +12,12 @@ export class BackofficeOrganiserRepository extends UmbControllerBase { this.#resource = new BackofficeOrganiserDataSource(host); } - organise(data: PostUmbracoBackofficeorganiserApiOrganiseData = {}): Promise> { + organise(data: PostUmbracoBackOfficeOrganiserApiV1OrganiseData = {}): Promise> { return this.#resource.organise(data); } + + getInfo(): Promise> { + return this.#resource.getInfo(); + } } diff --git a/src/Umbraco.Community.BackOfficeOrganiser.TestSite/Composer.cs b/src/Umbraco.Community.BackOfficeOrganiser.TestSite/Composer.cs index 6d2e5e1..acfafdb 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser.TestSite/Composer.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser.TestSite/Composer.cs @@ -1,6 +1,6 @@ using Umbraco.Cms.Core.Composing; using Umbraco.Cms.Core.DependencyInjection; -using Umbraco.Community.BackOfficeOrganiser.Composing; +using Umbraco.Community.BackOfficeOrganiser.Core.Composing; namespace Umbraco.Community.BackOfficeOrganiser.TestSite; diff --git a/src/Umbraco.Community.BackOfficeOrganiser.TestSite/ExampleDataTypeOrganiseAction.cs b/src/Umbraco.Community.BackOfficeOrganiser.TestSite/ExampleDataTypeOrganiseAction.cs index a871cd4..898da42 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser.TestSite/ExampleDataTypeOrganiseAction.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser.TestSite/ExampleDataTypeOrganiseAction.cs @@ -1,18 +1,27 @@ using jcdcdev.Umbraco.Core.Extensions; using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Services; -using Umbraco.Community.BackOfficeOrganiser.Organisers.DataTypes; -using Umbraco.Extensions; +using Umbraco.Community.BackOfficeOrganiser.Core.OrganiseActions; namespace Umbraco.Community.BackOfficeOrganiser.TestSite; public class ExampleDataTypeOrganiseAction : IDataTypeOrganiseAction { - public bool CanMove(IDataType dataType, IDataTypeService dataTypeService, IDataTypeContainerService dataTypeContainerService) => dataType.EditorAlias.InvariantContains("Media"); + public bool CanMove( + IDataType dataType, + IDataTypeService dataTypeService, + IDataTypeContainerService dataTypeContainerService) + => dataType.EditorAlias.InvariantContains("Media"); - public async Task MoveAsync(IDataType dataType, IDataTypeService dataTypeService, IDataTypeContainerService dataTypeContainerService) + public async Task MoveAsync( + IDataType dataType, + IDataTypeService dataTypeService, + IDataTypeContainerService dataTypeContainerService) { - var folder = dataTypeService.GetOrCreateFolder("📂 - Media"); + var folder = await dataTypeContainerService.GetOrCreateFolderAsync("📷 Media"); await dataTypeService.MoveAsync(dataType, folder.Key, Cms.Core.Constants.Security.SuperUserKey); } + + public string Name => "Move Media Data Types"; + public string Description => "Moves data types with the editor alias 'Media' to the '📷 Media' folder."; } \ No newline at end of file diff --git a/src/Umbraco.Community.BackOfficeOrganiser.TestSite/Views/Shared/_Layout.cshtml b/src/Umbraco.Community.BackOfficeOrganiser.TestSite/Views/Shared/_Layout.cshtml index ec85b30..c3a9b9e 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser.TestSite/Views/Shared/_Layout.cshtml +++ b/src/Umbraco.Community.BackOfficeOrganiser.TestSite/Views/Shared/_Layout.cshtml @@ -36,7 +36,7 @@ diff --git a/src/Umbraco.Community.BackOfficeOrganiser.TestSite/Views/home.cshtml b/src/Umbraco.Community.BackOfficeOrganiser.TestSite/Views/home.cshtml index 06fbc60..594b8d1 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser.TestSite/Views/home.cshtml +++ b/src/Umbraco.Community.BackOfficeOrganiser.TestSite/Views/home.cshtml @@ -1,4 +1,16 @@ -@inherits UmbracoViewPage +@inherits UmbracoViewPage + @{ - Layout = null; -} \ No newline at end of file + Layout = "_Layout"; +} + +
+
+
+

@Model.Name

+
+ @await Html.GetBlockGridHtmlAsync(Model.GridContent) +
+
+
+
\ No newline at end of file diff --git a/src/Umbraco.Community.BackOfficeOrganiser.TestSite/packages.lock.json b/src/Umbraco.Community.BackOfficeOrganiser.TestSite/packages.lock.json index e8340eb..600044c 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser.TestSite/packages.lock.json +++ b/src/Umbraco.Community.BackOfficeOrganiser.TestSite/packages.lock.json @@ -172,8 +172,8 @@ }, "jcdcdev.Umbraco.Core": { "type": "Transitive", - "resolved": "15.0.0", - "contentHash": "CMLdp6JiLjjE+AWl6eH7kmEbTEm2JzRHXXUWZyyECFV5FyburR2VRQb49clOMKEz/P+/gz5fLSLoY5C5A6INkg==", + "resolved": "15.2.0", + "contentHash": "OZYDzhmu44mlVA6xWouwQNHTi0K5h2zbJVaO9HZy7cup1jR0C7RIgYp7RWsAMlH0OVFLwx1Z1TxTRtbFplLSKQ==", "dependencies": { "Umbraco.Cms.Web.Common": "[15.0.0, 16.0.0)" } @@ -3053,9 +3053,11 @@ "umbraco.community.backofficeorganiser": { "type": "Project", "dependencies": { + "Umbraco.Cms.Api.Common": "[15.0.0, )", + "Umbraco.Cms.Api.Management": "[15.0.0, )", "Umbraco.Cms.Core": "[15.0.0, 16.0.0)", "Umbraco.Cms.Infrastructure": "[15.0.0, 16.0.0)", - "jcdcdev.Umbraco.Core": "[15.0.0, 16.0.0)" + "jcdcdev.Umbraco.Core": "[15.2.0, 16.0.0)" } } } diff --git a/src/Umbraco.Community.BackOfficeOrganiser.TestSite/uSync/v15/Content/home.config b/src/Umbraco.Community.BackOfficeOrganiser.TestSite/uSync/v15/Content/home.config new file mode 100644 index 0000000..4b01b58 --- /dev/null +++ b/src/Umbraco.Community.BackOfficeOrganiser.TestSite/uSync/v15/Content/home.config @@ -0,0 +1,24 @@ + + + + + /Home + false + home + 2025-01-01T22:41:37 + + Home + + 0 + + false + + + + + + + + + + \ No newline at end of file diff --git a/src/Umbraco.Community.BackOfficeOrganiser.TestSite/uSync/v15/DataTypes/ImageMediaPicker.config b/src/Umbraco.Community.BackOfficeOrganiser.TestSite/uSync/v15/DataTypes/ImageMediaPicker.config index 6838c03..0f2f7a7 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser.TestSite/uSync/v15/DataTypes/ImageMediaPicker.config +++ b/src/Umbraco.Community.BackOfficeOrganiser.TestSite/uSync/v15/DataTypes/ImageMediaPicker.config @@ -4,7 +4,7 @@ Image Media Picker Umbraco.MediaPicker3 Umb.PropertyEditorUi.MediaPicker - %f0%9f%93%82+-+Media + %f0%9f%93%b7+Media Media Picker Umbraco.MediaPicker3 Umb.PropertyEditorUi.MediaPicker - %f0%9f%93%82+-+Media + %f0%9f%93%b7+Media Multiple Image Media Picker Umbraco.MediaPicker3 Umb.PropertyEditorUi.MediaPicker - %f0%9f%93%82+-+Media + %f0%9f%93%b7+Media Multiple Media Picker Umbraco.MediaPicker3 Umb.PropertyEditorUi.MediaPicker - %f0%9f%93%82+-+Media + %f0%9f%93%b7+Media - - English (United States) - en-US - false - false - \ No newline at end of file + \ No newline at end of file diff --git a/src/Umbraco.Community.BackOfficeOrganiser.TestSite/uSync/v15/Languages/sv.config b/src/Umbraco.Community.BackOfficeOrganiser.TestSite/uSync/v15/Languages/sv.config index a157757..93ce851 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser.TestSite/uSync/v15/Languages/sv.config +++ b/src/Umbraco.Community.BackOfficeOrganiser.TestSite/uSync/v15/Languages/sv.config @@ -1,7 +1,2 @@  - - Swedish - sv - true - false - \ No newline at end of file + \ No newline at end of file diff --git a/src/Umbraco.Community.BackOfficeOrganiser.TestSite/umbraco/models/Eeee.generated.cs b/src/Umbraco.Community.BackOfficeOrganiser.TestSite/umbraco/models/Eeee.generated.cs deleted file mode 100644 index e077ea8..0000000 --- a/src/Umbraco.Community.BackOfficeOrganiser.TestSite/umbraco/models/Eeee.generated.cs +++ /dev/null @@ -1,52 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// -// Umbraco.ModelsBuilder.Embedded v15.0.0+76ed170 -// -// Changes to this file will be lost if the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System; -using System.Linq.Expressions; -using Umbraco.Cms.Core.Models.PublishedContent; -using Umbraco.Cms.Core.PublishedCache; -using Umbraco.Cms.Infrastructure.ModelsBuilder; -using Umbraco.Cms.Core; -using Umbraco.Extensions; - -namespace Umbraco.Cms.Web.Common.PublishedModels -{ - /// eeee - [PublishedModel("eeee")] - public partial class Eeee : PublishedContentModel - { - // helpers -#pragma warning disable 0109 // new is redundant - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Umbraco.ModelsBuilder.Embedded", "15.0.0+76ed170")] - public new const string ModelTypeAlias = "eeee"; - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Umbraco.ModelsBuilder.Embedded", "15.0.0+76ed170")] - public new const PublishedItemType ModelItemType = PublishedItemType.Media; - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Umbraco.ModelsBuilder.Embedded", "15.0.0+76ed170")] - [return: global::System.Diagnostics.CodeAnalysis.MaybeNull] - public new static IPublishedContentType GetModelContentType(IPublishedContentTypeCache contentTypeCache) - => PublishedModelUtility.GetModelContentType(contentTypeCache, ModelItemType, ModelTypeAlias); - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Umbraco.ModelsBuilder.Embedded", "15.0.0+76ed170")] - [return: global::System.Diagnostics.CodeAnalysis.MaybeNull] - public static IPublishedPropertyType GetModelPropertyType(IPublishedContentTypeCache contentTypeCache, Expression> selector) - => PublishedModelUtility.GetModelPropertyType(GetModelContentType(contentTypeCache), selector); -#pragma warning restore 0109 - - private IPublishedValueFallback _publishedValueFallback; - - // ctor - public Eeee(IPublishedContent content, IPublishedValueFallback publishedValueFallback) - : base(content, publishedValueFallback) - { - _publishedValueFallback = publishedValueFallback; - } - - // properties - } -} diff --git a/src/Umbraco.Community.BackOfficeOrganiser.TestSite/umbraco/models/Twesstss.generated.cs b/src/Umbraco.Community.BackOfficeOrganiser.TestSite/umbraco/models/Twesstss.generated.cs deleted file mode 100644 index 01b7582..0000000 --- a/src/Umbraco.Community.BackOfficeOrganiser.TestSite/umbraco/models/Twesstss.generated.cs +++ /dev/null @@ -1,60 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// -// Umbraco.ModelsBuilder.Embedded v15.0.0+76ed170 -// -// Changes to this file will be lost if the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System; -using System.Linq.Expressions; -using Umbraco.Cms.Core.Models.PublishedContent; -using Umbraco.Cms.Core.PublishedCache; -using Umbraco.Cms.Infrastructure.ModelsBuilder; -using Umbraco.Cms.Core; -using Umbraco.Extensions; - -namespace Umbraco.Cms.Web.Common.PublishedModels -{ - /// twesstss - [PublishedModel("twesstss")] - public partial class Twesstss : PublishedContentModel - { - // helpers -#pragma warning disable 0109 // new is redundant - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Umbraco.ModelsBuilder.Embedded", "15.0.0+76ed170")] - public new const string ModelTypeAlias = "twesstss"; - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Umbraco.ModelsBuilder.Embedded", "15.0.0+76ed170")] - public new const PublishedItemType ModelItemType = PublishedItemType.Media; - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Umbraco.ModelsBuilder.Embedded", "15.0.0+76ed170")] - [return: global::System.Diagnostics.CodeAnalysis.MaybeNull] - public new static IPublishedContentType GetModelContentType(IPublishedContentTypeCache contentTypeCache) - => PublishedModelUtility.GetModelContentType(contentTypeCache, ModelItemType, ModelTypeAlias); - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Umbraco.ModelsBuilder.Embedded", "15.0.0+76ed170")] - [return: global::System.Diagnostics.CodeAnalysis.MaybeNull] - public static IPublishedPropertyType GetModelPropertyType(IPublishedContentTypeCache contentTypeCache, Expression> selector) - => PublishedModelUtility.GetModelPropertyType(GetModelContentType(contentTypeCache), selector); -#pragma warning restore 0109 - - private IPublishedValueFallback _publishedValueFallback; - - // ctor - public Twesstss(IPublishedContent content, IPublishedValueFallback publishedValueFallback) - : base(content, publishedValueFallback) - { - _publishedValueFallback = publishedValueFallback; - } - - // properties - - /// - /// f - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Umbraco.ModelsBuilder.Embedded", "15.0.0+76ed170")] - [global::System.Diagnostics.CodeAnalysis.MaybeNull] - [ImplementPropertyType("f")] - public virtual global::Umbraco.Cms.Core.Models.MediaWithCrops F => this.Value(_publishedValueFallback, "f"); - } -} diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Composing/Composer.cs b/src/Umbraco.Community.BackOfficeOrganiser/Composer.cs similarity index 75% rename from src/Umbraco.Community.BackOfficeOrganiser/Composing/Composer.cs rename to src/Umbraco.Community.BackOfficeOrganiser/Composer.cs index 9635460..4555ab4 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Composing/Composer.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Composer.cs @@ -3,14 +3,15 @@ using Umbraco.Cms.Core.DependencyInjection; using Umbraco.Cms.Core.Notifications; using Umbraco.Cms.Infrastructure.Manifest; -using Umbraco.Community.BackOfficeOrganiser.Models; -using Umbraco.Community.BackOfficeOrganiser.Organisers.ContentTypes; -using Umbraco.Community.BackOfficeOrganiser.Organisers.DataTypes; -using Umbraco.Community.BackOfficeOrganiser.Organisers.MediaTypes; -using Umbraco.Community.BackOfficeOrganiser.Organisers.MemberTypes; -using Umbraco.Community.BackOfficeOrganiser.Services; +using Umbraco.Community.BackOfficeOrganiser.Core.Composing; +using Umbraco.Community.BackOfficeOrganiser.Core.Models; +using Umbraco.Community.BackOfficeOrganiser.Core.Organisers; +using Umbraco.Community.BackOfficeOrganiser.Core.Services; +using Umbraco.Community.BackOfficeOrganiser.Infrastructure; +using Umbraco.Community.BackOfficeOrganiser.Infrastructure.OrganiseActions; +using Umbraco.Community.BackOfficeOrganiser.Web; -namespace Umbraco.Community.BackOfficeOrganiser.Composing; +namespace Umbraco.Community.BackOfficeOrganiser; public class Composer : IComposer { @@ -36,5 +37,6 @@ public void Compose(IUmbracoBuilder builder) builder.AddNotificationAsyncHandler(); builder.AddNotificationAsyncHandler(); builder.AddNotificationAsyncHandler(); + builder.Services.ConfigureOptions(); } } \ No newline at end of file diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Constants.cs b/src/Umbraco.Community.BackOfficeOrganiser/Constants.cs index 1c6e850..7496459 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Constants.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Constants.cs @@ -3,4 +3,11 @@ namespace Umbraco.Community.BackOfficeOrganiser; public static class Constants { public const string PackageName = "Umbraco.Community.BackOfficeOrganiser"; + + public class Api + { + public const string ApiName = "BackOfficeOrganiser"; + public const string Title = "Back Office Organiser Api"; + public static string Description => $"API for {PackageName}"; + } } \ No newline at end of file diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/ContentTypes/ContentTypeOrganiseActionCollection.cs b/src/Umbraco.Community.BackOfficeOrganiser/Core/Composing/ContentTypeOrganiseActionCollection.cs similarity index 60% rename from src/Umbraco.Community.BackOfficeOrganiser/Organisers/ContentTypes/ContentTypeOrganiseActionCollection.cs rename to src/Umbraco.Community.BackOfficeOrganiser/Core/Composing/ContentTypeOrganiseActionCollection.cs index d9d8766..c75f0e3 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/ContentTypes/ContentTypeOrganiseActionCollection.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Core/Composing/ContentTypeOrganiseActionCollection.cs @@ -1,5 +1,6 @@ using Umbraco.Cms.Core.Composing; +using Umbraco.Community.BackOfficeOrganiser.Core.OrganiseActions; -namespace Umbraco.Community.BackOfficeOrganiser.Organisers.ContentTypes; +namespace Umbraco.Community.BackOfficeOrganiser.Core.Composing; public class ContentTypeOrganiseActionCollection(Func> items) : BuilderCollectionBase(items); \ No newline at end of file diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/ContentTypes/ContentTypeOrganiseActionCollectionBuilder.cs b/src/Umbraco.Community.BackOfficeOrganiser/Core/Composing/ContentTypeOrganiseActionCollectionBuilder.cs similarity index 70% rename from src/Umbraco.Community.BackOfficeOrganiser/Organisers/ContentTypes/ContentTypeOrganiseActionCollectionBuilder.cs rename to src/Umbraco.Community.BackOfficeOrganiser/Core/Composing/ContentTypeOrganiseActionCollectionBuilder.cs index fa6adc2..334869a 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/ContentTypes/ContentTypeOrganiseActionCollectionBuilder.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Core/Composing/ContentTypeOrganiseActionCollectionBuilder.cs @@ -1,6 +1,7 @@ using Umbraco.Cms.Core.Composing; +using Umbraco.Community.BackOfficeOrganiser.Core.OrganiseActions; -namespace Umbraco.Community.BackOfficeOrganiser.Organisers.ContentTypes; +namespace Umbraco.Community.BackOfficeOrganiser.Core.Composing; public class ContentTypeOrganiseActionCollectionBuilder : OrderedCollectionBuilderBase { diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/DataTypes/DataTypeOrganiseActionCollection.cs b/src/Umbraco.Community.BackOfficeOrganiser/Core/Composing/DataTypeOrganiseActionCollection.cs similarity index 59% rename from src/Umbraco.Community.BackOfficeOrganiser/Organisers/DataTypes/DataTypeOrganiseActionCollection.cs rename to src/Umbraco.Community.BackOfficeOrganiser/Core/Composing/DataTypeOrganiseActionCollection.cs index d44c165..c1aa30c 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/DataTypes/DataTypeOrganiseActionCollection.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Core/Composing/DataTypeOrganiseActionCollection.cs @@ -1,5 +1,6 @@ using Umbraco.Cms.Core.Composing; +using Umbraco.Community.BackOfficeOrganiser.Core.OrganiseActions; -namespace Umbraco.Community.BackOfficeOrganiser.Organisers.DataTypes; +namespace Umbraco.Community.BackOfficeOrganiser.Core.Composing; public class DataTypeOrganiseActionCollection(Func> items) : BuilderCollectionBase(items); \ No newline at end of file diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/DataTypes/DataTypeOrganiseActionCollectionBuilder.cs b/src/Umbraco.Community.BackOfficeOrganiser/Core/Composing/DataTypeOrganiseActionCollectionBuilder.cs similarity index 69% rename from src/Umbraco.Community.BackOfficeOrganiser/Organisers/DataTypes/DataTypeOrganiseActionCollectionBuilder.cs rename to src/Umbraco.Community.BackOfficeOrganiser/Core/Composing/DataTypeOrganiseActionCollectionBuilder.cs index 37f3800..bde0992 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/DataTypes/DataTypeOrganiseActionCollectionBuilder.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Core/Composing/DataTypeOrganiseActionCollectionBuilder.cs @@ -1,6 +1,7 @@ using Umbraco.Cms.Core.Composing; +using Umbraco.Community.BackOfficeOrganiser.Core.OrganiseActions; -namespace Umbraco.Community.BackOfficeOrganiser.Organisers.DataTypes; +namespace Umbraco.Community.BackOfficeOrganiser.Core.Composing; public class DataTypeOrganiseActionCollectionBuilder : OrderedCollectionBuilderBase { diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/MediaTypes/MediaTypeOrganiseActionCollection.cs b/src/Umbraco.Community.BackOfficeOrganiser/Core/Composing/MediaTypeOrganiseActionCollection.cs similarity index 59% rename from src/Umbraco.Community.BackOfficeOrganiser/Organisers/MediaTypes/MediaTypeOrganiseActionCollection.cs rename to src/Umbraco.Community.BackOfficeOrganiser/Core/Composing/MediaTypeOrganiseActionCollection.cs index 5ea03c7..3b649ef 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/MediaTypes/MediaTypeOrganiseActionCollection.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Core/Composing/MediaTypeOrganiseActionCollection.cs @@ -1,5 +1,6 @@ using Umbraco.Cms.Core.Composing; +using Umbraco.Community.BackOfficeOrganiser.Core.OrganiseActions; -namespace Umbraco.Community.BackOfficeOrganiser.Organisers.MediaTypes; +namespace Umbraco.Community.BackOfficeOrganiser.Core.Composing; public class MediaTypeOrganiseActionCollection(Func> items) : BuilderCollectionBase(items); \ No newline at end of file diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/MediaTypes/MediaTypeOrganiseActionCollectionBuilder.cs b/src/Umbraco.Community.BackOfficeOrganiser/Core/Composing/MediaTypeOrganiseActionCollectionBuilder.cs similarity index 70% rename from src/Umbraco.Community.BackOfficeOrganiser/Organisers/MediaTypes/MediaTypeOrganiseActionCollectionBuilder.cs rename to src/Umbraco.Community.BackOfficeOrganiser/Core/Composing/MediaTypeOrganiseActionCollectionBuilder.cs index d7997cf..d413d04 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/MediaTypes/MediaTypeOrganiseActionCollectionBuilder.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Core/Composing/MediaTypeOrganiseActionCollectionBuilder.cs @@ -1,6 +1,7 @@ using Umbraco.Cms.Core.Composing; +using Umbraco.Community.BackOfficeOrganiser.Core.OrganiseActions; -namespace Umbraco.Community.BackOfficeOrganiser.Organisers.MediaTypes; +namespace Umbraco.Community.BackOfficeOrganiser.Core.Composing; public class MediaTypeOrganiseActionCollectionBuilder : OrderedCollectionBuilderBase { diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/MemberTypes/MemberTypeOrganiseActionCollection.cs b/src/Umbraco.Community.BackOfficeOrganiser/Core/Composing/MemberTypeOrganiseActionCollection.cs similarity index 59% rename from src/Umbraco.Community.BackOfficeOrganiser/Organisers/MemberTypes/MemberTypeOrganiseActionCollection.cs rename to src/Umbraco.Community.BackOfficeOrganiser/Core/Composing/MemberTypeOrganiseActionCollection.cs index d04066d..57da622 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/MemberTypes/MemberTypeOrganiseActionCollection.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Core/Composing/MemberTypeOrganiseActionCollection.cs @@ -1,5 +1,6 @@ using Umbraco.Cms.Core.Composing; +using Umbraco.Community.BackOfficeOrganiser.Core.OrganiseActions; -namespace Umbraco.Community.BackOfficeOrganiser.Organisers.MemberTypes; +namespace Umbraco.Community.BackOfficeOrganiser.Core.Composing; public class MemberTypeOrganiseActionCollection(Func> items) : BuilderCollectionBase(items); \ No newline at end of file diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/MemberTypes/MemberTypeOrganiseActionCollectionBuilder.cs b/src/Umbraco.Community.BackOfficeOrganiser/Core/Composing/MemberTypeOrganiseActionCollectionBuilder.cs similarity index 70% rename from src/Umbraco.Community.BackOfficeOrganiser/Organisers/MemberTypes/MemberTypeOrganiseActionCollectionBuilder.cs rename to src/Umbraco.Community.BackOfficeOrganiser/Core/Composing/MemberTypeOrganiseActionCollectionBuilder.cs index 0336de9..865b10c 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/MemberTypes/MemberTypeOrganiseActionCollectionBuilder.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Core/Composing/MemberTypeOrganiseActionCollectionBuilder.cs @@ -1,6 +1,7 @@ using Umbraco.Cms.Core.Composing; +using Umbraco.Community.BackOfficeOrganiser.Core.OrganiseActions; -namespace Umbraco.Community.BackOfficeOrganiser.Organisers.MemberTypes; +namespace Umbraco.Community.BackOfficeOrganiser.Core.Composing; public class MemberTypeOrganiseActionCollectionBuilder : OrderedCollectionBuilderBase { diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Composing/UmbracoBuilderExtensions.cs b/src/Umbraco.Community.BackOfficeOrganiser/Core/Composing/UmbracoBuilderExtensions.cs similarity index 72% rename from src/Umbraco.Community.BackOfficeOrganiser/Composing/UmbracoBuilderExtensions.cs rename to src/Umbraco.Community.BackOfficeOrganiser/Core/Composing/UmbracoBuilderExtensions.cs index 4df2b23..fdc858d 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Composing/UmbracoBuilderExtensions.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Core/Composing/UmbracoBuilderExtensions.cs @@ -1,10 +1,6 @@ using Umbraco.Cms.Core.DependencyInjection; -using Umbraco.Community.BackOfficeOrganiser.Organisers.ContentTypes; -using Umbraco.Community.BackOfficeOrganiser.Organisers.DataTypes; -using Umbraco.Community.BackOfficeOrganiser.Organisers.MediaTypes; -using Umbraco.Community.BackOfficeOrganiser.Organisers.MemberTypes; -namespace Umbraco.Community.BackOfficeOrganiser.Composing; +namespace Umbraco.Community.BackOfficeOrganiser.Core.Composing; public static class UmbracoBuilderExtensions { diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Core/Extensions/OrganiseActionExtensions.cs b/src/Umbraco.Community.BackOfficeOrganiser/Core/Extensions/OrganiseActionExtensions.cs new file mode 100644 index 0000000..0306ac3 --- /dev/null +++ b/src/Umbraco.Community.BackOfficeOrganiser/Core/Extensions/OrganiseActionExtensions.cs @@ -0,0 +1,9 @@ +using Umbraco.Community.BackOfficeOrganiser.Core.OrganiseActions; +using Umbraco.Extensions; + +namespace Umbraco.Community.BackOfficeOrganiser.Core.Extensions; + +public static class OrganiseActionExtensions +{ + public static string GetAlias(this IOrganiseAction action) => action.GetType().Name.ToFirstLowerInvariant(); +} \ No newline at end of file diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Models/BackOfficeOrganiserOptions.cs b/src/Umbraco.Community.BackOfficeOrganiser/Core/Models/BackOfficeOrganiserOptions.cs similarity index 85% rename from src/Umbraco.Community.BackOfficeOrganiser/Models/BackOfficeOrganiserOptions.cs rename to src/Umbraco.Community.BackOfficeOrganiser/Core/Models/BackOfficeOrganiserOptions.cs index 4c8b03a..43c976b 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Models/BackOfficeOrganiserOptions.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Core/Models/BackOfficeOrganiserOptions.cs @@ -1,4 +1,4 @@ -namespace Umbraco.Community.BackOfficeOrganiser.Models; +namespace Umbraco.Community.BackOfficeOrganiser.Core.Models; public class BackOfficeOrganiserOptions { diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Models/ContentTypeOptions.cs b/src/Umbraco.Community.BackOfficeOrganiser/Core/Models/ContentTypeOptions.cs similarity index 59% rename from src/Umbraco.Community.BackOfficeOrganiser/Models/ContentTypeOptions.cs rename to src/Umbraco.Community.BackOfficeOrganiser/Core/Models/ContentTypeOptions.cs index 64d4bc8..94300ee 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Models/ContentTypeOptions.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Core/Models/ContentTypeOptions.cs @@ -1,4 +1,4 @@ -namespace Umbraco.Community.BackOfficeOrganiser.Models; +namespace Umbraco.Community.BackOfficeOrganiser.Core.Models; public class ContentTypeOptions { diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Models/DataTypeOptions.cs b/src/Umbraco.Community.BackOfficeOrganiser/Core/Models/DataTypeOptions.cs similarity index 82% rename from src/Umbraco.Community.BackOfficeOrganiser/Models/DataTypeOptions.cs rename to src/Umbraco.Community.BackOfficeOrganiser/Core/Models/DataTypeOptions.cs index f3e7762..8223028 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Models/DataTypeOptions.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Core/Models/DataTypeOptions.cs @@ -1,4 +1,4 @@ -namespace Umbraco.Community.BackOfficeOrganiser.Models; +namespace Umbraco.Community.BackOfficeOrganiser.Core.Models; public class DataTypeOptions { diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Models/MediaTypeOptions.cs b/src/Umbraco.Community.BackOfficeOrganiser/Core/Models/MediaTypeOptions.cs similarity index 58% rename from src/Umbraco.Community.BackOfficeOrganiser/Models/MediaTypeOptions.cs rename to src/Umbraco.Community.BackOfficeOrganiser/Core/Models/MediaTypeOptions.cs index a594795..d17cd82 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Models/MediaTypeOptions.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Core/Models/MediaTypeOptions.cs @@ -1,4 +1,4 @@ -namespace Umbraco.Community.BackOfficeOrganiser.Models; +namespace Umbraco.Community.BackOfficeOrganiser.Core.Models; public class MediaTypeOptions { diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Models/MemberTypeOptions.cs b/src/Umbraco.Community.BackOfficeOrganiser/Core/Models/MemberTypeOptions.cs similarity index 59% rename from src/Umbraco.Community.BackOfficeOrganiser/Models/MemberTypeOptions.cs rename to src/Umbraco.Community.BackOfficeOrganiser/Core/Models/MemberTypeOptions.cs index 0ec3a64..da53770 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Models/MemberTypeOptions.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Core/Models/MemberTypeOptions.cs @@ -1,4 +1,4 @@ -namespace Umbraco.Community.BackOfficeOrganiser.Models; +namespace Umbraco.Community.BackOfficeOrganiser.Core.Models; public class MemberTypeOptions { diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Models/OrganiseType.cs b/src/Umbraco.Community.BackOfficeOrganiser/Core/Models/OrganiseType.cs similarity index 67% rename from src/Umbraco.Community.BackOfficeOrganiser/Models/OrganiseType.cs rename to src/Umbraco.Community.BackOfficeOrganiser/Core/Models/OrganiseType.cs index 178e2ea..382a088 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Models/OrganiseType.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Core/Models/OrganiseType.cs @@ -1,4 +1,4 @@ -namespace Umbraco.Community.BackOfficeOrganiser.Models; +namespace Umbraco.Community.BackOfficeOrganiser.Core.Models; public enum OrganiseType { diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/ContentTypes/IContentTypeOrganiseAction.cs b/src/Umbraco.Community.BackOfficeOrganiser/Core/OrganiseActions/IContentTypeOrganiseAction.cs similarity index 65% rename from src/Umbraco.Community.BackOfficeOrganiser/Organisers/ContentTypes/IContentTypeOrganiseAction.cs rename to src/Umbraco.Community.BackOfficeOrganiser/Core/OrganiseActions/IContentTypeOrganiseAction.cs index 4fefcb0..0226774 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/ContentTypes/IContentTypeOrganiseAction.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Core/OrganiseActions/IContentTypeOrganiseAction.cs @@ -1,9 +1,9 @@ using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Services; -namespace Umbraco.Community.BackOfficeOrganiser.Organisers.ContentTypes; +namespace Umbraco.Community.BackOfficeOrganiser.Core.OrganiseActions; -public interface IContentTypeOrganiseAction +public interface IContentTypeOrganiseAction: IOrganiseAction { public bool CanMove(IContentType contentType, IContentTypeService contentTypeService); public Task MoveAsync(IContentType contentType, IContentTypeService contentTypeService); diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/DataTypes/IDataTypeOrganiseAction.cs b/src/Umbraco.Community.BackOfficeOrganiser/Core/OrganiseActions/IDataTypeOrganiseAction.cs similarity index 58% rename from src/Umbraco.Community.BackOfficeOrganiser/Organisers/DataTypes/IDataTypeOrganiseAction.cs rename to src/Umbraco.Community.BackOfficeOrganiser/Core/OrganiseActions/IDataTypeOrganiseAction.cs index be3bd7b..dc53b94 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/DataTypes/IDataTypeOrganiseAction.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Core/OrganiseActions/IDataTypeOrganiseAction.cs @@ -1,10 +1,16 @@ using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Services; -namespace Umbraco.Community.BackOfficeOrganiser.Organisers.DataTypes; +namespace Umbraco.Community.BackOfficeOrganiser.Core.OrganiseActions; -public interface IDataTypeOrganiseAction +public interface IDataTypeOrganiseAction : IOrganiseAction { public bool CanMove(IDataType dataType, IDataTypeService dataTypeService, IDataTypeContainerService dataTypeContainerService); public Task MoveAsync(IDataType dataType, IDataTypeService dataTypeService, IDataTypeContainerService dataTypeContainerService); +} + +public interface IOrganiseAction +{ + public string Name { get; } + public string Description { get; } } \ No newline at end of file diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/MediaTypes/IMediaTypeOrganiseAction.cs b/src/Umbraco.Community.BackOfficeOrganiser/Core/OrganiseActions/IMediaTypeOrganiseAction.cs similarity index 64% rename from src/Umbraco.Community.BackOfficeOrganiser/Organisers/MediaTypes/IMediaTypeOrganiseAction.cs rename to src/Umbraco.Community.BackOfficeOrganiser/Core/OrganiseActions/IMediaTypeOrganiseAction.cs index 59a636f..26d07cf 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/MediaTypes/IMediaTypeOrganiseAction.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Core/OrganiseActions/IMediaTypeOrganiseAction.cs @@ -1,9 +1,9 @@ using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Services; -namespace Umbraco.Community.BackOfficeOrganiser.Organisers.MediaTypes; +namespace Umbraco.Community.BackOfficeOrganiser.Core.OrganiseActions; -public interface IMediaTypeOrganiseAction +public interface IMediaTypeOrganiseAction: IOrganiseAction { public bool CanMove(IMediaType mediaType, IMediaTypeService mediaTypeService); public Task MoveAsync(IMediaType mediaType, IMediaTypeService mediaTypeService); diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/MemberTypes/IMemberTypeOrganiseAction.cs b/src/Umbraco.Community.BackOfficeOrganiser/Core/OrganiseActions/IMemberTypeOrganiseAction.cs similarity index 65% rename from src/Umbraco.Community.BackOfficeOrganiser/Organisers/MemberTypes/IMemberTypeOrganiseAction.cs rename to src/Umbraco.Community.BackOfficeOrganiser/Core/OrganiseActions/IMemberTypeOrganiseAction.cs index 4a7b359..426f340 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/MemberTypes/IMemberTypeOrganiseAction.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Core/OrganiseActions/IMemberTypeOrganiseAction.cs @@ -1,9 +1,9 @@ using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Services; -namespace Umbraco.Community.BackOfficeOrganiser.Organisers.MemberTypes; +namespace Umbraco.Community.BackOfficeOrganiser.Core.OrganiseActions; -public interface IMemberTypeOrganiseAction +public interface IMemberTypeOrganiseAction : IOrganiseAction { public bool CanMove(IMemberType memberType, IMemberTypeService memberTypeService); public Task MoveAsync(IMemberType memberType, IMemberTypeService memberTypeService); diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/BackOfficeOrganiserBase.cs b/src/Umbraco.Community.BackOfficeOrganiser/Core/Organisers/BackOfficeOrganiserBase.cs similarity index 74% rename from src/Umbraco.Community.BackOfficeOrganiser/Organisers/BackOfficeOrganiserBase.cs rename to src/Umbraco.Community.BackOfficeOrganiser/Core/Organisers/BackOfficeOrganiserBase.cs index c98a194..bc178f3 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/BackOfficeOrganiserBase.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Core/Organisers/BackOfficeOrganiserBase.cs @@ -1,6 +1,7 @@ using Microsoft.Extensions.Logging; +using Umbraco.Community.BackOfficeOrganiser.Core.OrganiseActions; -namespace Umbraco.Community.BackOfficeOrganiser.Organisers; +namespace Umbraco.Community.BackOfficeOrganiser.Core.Organisers; public abstract class BackOfficeOrganiserBase(ILogger logger) : IBackOfficeOrganiser { @@ -18,7 +19,7 @@ public async Task OrganiseAllAsync() await OrganiseAsync(item); } - PostOrganiseAll(); + await PostOrganiseAll(); } catch (Exception ex) { @@ -30,10 +31,9 @@ public async Task OrganiseAllAsync() } public abstract Task OrganiseAsync(T item); + public abstract IEnumerable GetOrganiseActions(); - protected virtual void PostOrganiseAll() - { - } + protected virtual Task PostOrganiseAll() => Task.CompletedTask; protected abstract Task> GetAllAsync(); } \ No newline at end of file diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/ContentTypes/ContentTypeOrganiser.cs b/src/Umbraco.Community.BackOfficeOrganiser/Core/Organisers/ContentTypeOrganiser.cs similarity index 72% rename from src/Umbraco.Community.BackOfficeOrganiser/Organisers/ContentTypes/ContentTypeOrganiser.cs rename to src/Umbraco.Community.BackOfficeOrganiser/Core/Organisers/ContentTypeOrganiser.cs index 0a73cf5..60dd034 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/ContentTypes/ContentTypeOrganiser.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Core/Organisers/ContentTypeOrganiser.cs @@ -2,8 +2,10 @@ using Microsoft.Extensions.Logging; using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Services; +using Umbraco.Community.BackOfficeOrganiser.Core.Composing; +using Umbraco.Community.BackOfficeOrganiser.Core.OrganiseActions; -namespace Umbraco.Community.BackOfficeOrganiser.Organisers.ContentTypes; +namespace Umbraco.Community.BackOfficeOrganiser.Core.Organisers; public class ContentTypeOrganiser( ILogger logger, @@ -22,7 +24,9 @@ public override async Task OrganiseAsync(IContentType contentType) } } - protected override void PostOrganiseAll() + public override IEnumerable GetOrganiseActions() => organiseActions; + + protected override async Task PostOrganiseAll() { contentTypeService.DeleteAllEmptyContainers(); } diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/DataTypes/DataTypeOrganiser.cs b/src/Umbraco.Community.BackOfficeOrganiser/Core/Organisers/DataTypeOrganiser.cs similarity index 67% rename from src/Umbraco.Community.BackOfficeOrganiser/Organisers/DataTypes/DataTypeOrganiser.cs rename to src/Umbraco.Community.BackOfficeOrganiser/Core/Organisers/DataTypeOrganiser.cs index 80076ec..154c7bd 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/DataTypes/DataTypeOrganiser.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Core/Organisers/DataTypeOrganiser.cs @@ -2,8 +2,10 @@ using Microsoft.Extensions.Logging; using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Services; +using Umbraco.Community.BackOfficeOrganiser.Core.Composing; +using Umbraco.Community.BackOfficeOrganiser.Core.OrganiseActions; -namespace Umbraco.Community.BackOfficeOrganiser.Organisers.DataTypes; +namespace Umbraco.Community.BackOfficeOrganiser.Core.Organisers; public class DataTypeOrganiser( ILogger logger, @@ -21,10 +23,12 @@ public override async Task OrganiseAsync(IDataType dataType) } } + public override IEnumerable GetOrganiseActions() => organiseActions; + protected override async Task> GetAllAsync() => await dataTypeService.GetAllAsync(); - protected override void PostOrganiseAll() + protected override async Task PostOrganiseAll() { - dataTypeService.DeleteAllEmptyContainers(); + await dataTypeContainerService.DeleteAllEmptyContainersAsync(dataTypeService); } } \ No newline at end of file diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Core/Organisers/IBackOfficeOrganiser.cs b/src/Umbraco.Community.BackOfficeOrganiser/Core/Organisers/IBackOfficeOrganiser.cs new file mode 100644 index 0000000..fe33545 --- /dev/null +++ b/src/Umbraco.Community.BackOfficeOrganiser/Core/Organisers/IBackOfficeOrganiser.cs @@ -0,0 +1,10 @@ +using Umbraco.Community.BackOfficeOrganiser.Core.OrganiseActions; + +namespace Umbraco.Community.BackOfficeOrganiser.Core.Organisers; + +public interface IBackOfficeOrganiser +{ + Task OrganiseAllAsync(); + Task OrganiseAsync(T item); + IEnumerable GetOrganiseActions(); +} \ No newline at end of file diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/MediaTypes/MediaTypeOrganiser.cs b/src/Umbraco.Community.BackOfficeOrganiser/Core/Organisers/MediaTypeOrganiser.cs similarity index 71% rename from src/Umbraco.Community.BackOfficeOrganiser/Organisers/MediaTypes/MediaTypeOrganiser.cs rename to src/Umbraco.Community.BackOfficeOrganiser/Core/Organisers/MediaTypeOrganiser.cs index 410603e..9f4793d 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/MediaTypes/MediaTypeOrganiser.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Core/Organisers/MediaTypeOrganiser.cs @@ -2,8 +2,10 @@ using Microsoft.Extensions.Logging; using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Services; +using Umbraco.Community.BackOfficeOrganiser.Core.Composing; +using Umbraco.Community.BackOfficeOrganiser.Core.OrganiseActions; -namespace Umbraco.Community.BackOfficeOrganiser.Organisers.MediaTypes; +namespace Umbraco.Community.BackOfficeOrganiser.Core.Organisers; public class MediaTypeOrganiser( ILogger logger, @@ -22,7 +24,9 @@ public override async Task OrganiseAsync(IMediaType mediaType) } } - protected override void PostOrganiseAll() + public override IEnumerable GetOrganiseActions() => organiseActions; + + protected async override Task PostOrganiseAll() { mediaTypeService.DeleteAllEmptyContainers(); } diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/MemberTypes/MemberTypeOrganiser.cs b/src/Umbraco.Community.BackOfficeOrganiser/Core/Organisers/MemberTypeOrganiser.cs similarity index 72% rename from src/Umbraco.Community.BackOfficeOrganiser/Organisers/MemberTypes/MemberTypeOrganiser.cs rename to src/Umbraco.Community.BackOfficeOrganiser/Core/Organisers/MemberTypeOrganiser.cs index 6b6a3e7..5970261 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/MemberTypes/MemberTypeOrganiser.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Core/Organisers/MemberTypeOrganiser.cs @@ -2,8 +2,10 @@ using Microsoft.Extensions.Logging; using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Services; +using Umbraco.Community.BackOfficeOrganiser.Core.Composing; +using Umbraco.Community.BackOfficeOrganiser.Core.OrganiseActions; -namespace Umbraco.Community.BackOfficeOrganiser.Organisers.MemberTypes; +namespace Umbraco.Community.BackOfficeOrganiser.Core.Organisers; public class MemberTypeOrganiser( ILogger logger, @@ -20,9 +22,11 @@ public override async Task OrganiseAsync(IMemberType item) } } + public override IEnumerable GetOrganiseActions() => organiseActions; + protected override Task> GetAllAsync() => Task.FromResult>(memberTypeService.GetAll().ToList()); - protected override void PostOrganiseAll() + protected async override Task PostOrganiseAll() { memberTypeService.DeleteAllEmptyContainers(); } diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Services/IBackOfficeOrganiserService.cs b/src/Umbraco.Community.BackOfficeOrganiser/Core/Services/IBackOfficeOrganiserService.cs similarity index 60% rename from src/Umbraco.Community.BackOfficeOrganiser/Services/IBackOfficeOrganiserService.cs rename to src/Umbraco.Community.BackOfficeOrganiser/Core/Services/IBackOfficeOrganiserService.cs index 6024fde..44e4113 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Services/IBackOfficeOrganiserService.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Core/Services/IBackOfficeOrganiserService.cs @@ -1,7 +1,8 @@ using Umbraco.Cms.Core; -using Umbraco.Community.BackOfficeOrganiser.Models; +using Umbraco.Community.BackOfficeOrganiser.Core.Models; +using Umbraco.Community.BackOfficeOrganiser.Core.OrganiseActions; -namespace Umbraco.Community.BackOfficeOrganiser.Services; +namespace Umbraco.Community.BackOfficeOrganiser.Core.Services; public interface IBackOfficeOrganiserService { @@ -10,4 +11,5 @@ public interface IBackOfficeOrganiserService Task> OrganiseMediaTypesAsync(); Task> OrganiseContentTypesAsync(); Task> OrganiseAsync(OrganiseType type); + IEnumerable GetActions(OrganiseType type); } \ No newline at end of file diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Services/BackOfficeOrganiserService.cs b/src/Umbraco.Community.BackOfficeOrganiser/Infrastructure/BackOfficeOrganiserService.cs similarity index 77% rename from src/Umbraco.Community.BackOfficeOrganiser/Services/BackOfficeOrganiserService.cs rename to src/Umbraco.Community.BackOfficeOrganiser/Infrastructure/BackOfficeOrganiserService.cs index 696c889..f8e50f9 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Services/BackOfficeOrganiserService.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Infrastructure/BackOfficeOrganiserService.cs @@ -1,12 +1,12 @@ using Microsoft.Extensions.Logging; using Umbraco.Cms.Core; -using Umbraco.Community.BackOfficeOrganiser.Models; -using Umbraco.Community.BackOfficeOrganiser.Organisers.ContentTypes; -using Umbraco.Community.BackOfficeOrganiser.Organisers.DataTypes; -using Umbraco.Community.BackOfficeOrganiser.Organisers.MediaTypes; -using Umbraco.Community.BackOfficeOrganiser.Organisers.MemberTypes; +using Umbraco.Community.BackOfficeOrganiser.Core; +using Umbraco.Community.BackOfficeOrganiser.Core.Models; +using Umbraco.Community.BackOfficeOrganiser.Core.OrganiseActions; +using Umbraco.Community.BackOfficeOrganiser.Core.Organisers; +using Umbraco.Community.BackOfficeOrganiser.Core.Services; -namespace Umbraco.Community.BackOfficeOrganiser.Services; +namespace Umbraco.Community.BackOfficeOrganiser.Infrastructure; public class BackOfficeOrganiserService( ILogger logger, @@ -36,8 +36,7 @@ public async Task> OrganiseAsync(OrganiseType organise) break; case OrganiseType.Unknown: default: - throw new ArgumentOutOfRangeException(nameof(organise), organise, - "Failed to determine OrganiseType"); + throw new ArgumentOutOfRangeException(nameof(organise), organise, "Failed to determine OrganiseType"); } } catch (Exception ex) @@ -49,6 +48,15 @@ public async Task> OrganiseAsync(OrganiseType organise) return Attempt.Succeed(organise); } + public IEnumerable GetActions(OrganiseType type) => type switch + { + OrganiseType.ContentTypes => contentTypeOrganiser.GetOrganiseActions(), + OrganiseType.MediaTypes => mediaTypeOrganiser.GetOrganiseActions(), + OrganiseType.MemberTypes => memberTypeOrganiser.GetOrganiseActions(), + OrganiseType.DataTypes => dataTypeOrganiser.GetOrganiseActions(), + _ => [] + }; + public async Task> OrganiseDataTypesAsync() { try diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Composing/BackofficeOrganiserNotificationHandler.cs b/src/Umbraco.Community.BackOfficeOrganiser/Infrastructure/BackofficeOrganiserNotificationHandler.cs similarity index 84% rename from src/Umbraco.Community.BackOfficeOrganiser/Composing/BackofficeOrganiserNotificationHandler.cs rename to src/Umbraco.Community.BackOfficeOrganiser/Infrastructure/BackofficeOrganiserNotificationHandler.cs index e8aabde..db6a4e9 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Composing/BackofficeOrganiserNotificationHandler.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Infrastructure/BackofficeOrganiserNotificationHandler.cs @@ -1,13 +1,10 @@ using Microsoft.Extensions.Options; using Umbraco.Cms.Core.Events; using Umbraco.Cms.Core.Notifications; -using Umbraco.Community.BackOfficeOrganiser.Models; -using Umbraco.Community.BackOfficeOrganiser.Organisers.ContentTypes; -using Umbraco.Community.BackOfficeOrganiser.Organisers.DataTypes; -using Umbraco.Community.BackOfficeOrganiser.Organisers.MediaTypes; -using Umbraco.Community.BackOfficeOrganiser.Organisers.MemberTypes; +using Umbraco.Community.BackOfficeOrganiser.Core.Models; +using Umbraco.Community.BackOfficeOrganiser.Core.Organisers; -namespace Umbraco.Community.BackOfficeOrganiser.Composing; +namespace Umbraco.Community.BackOfficeOrganiser.Infrastructure; public class BackofficeOrganiserNotificationHandler( DataTypeOrganiser dataTypeOrganiser, diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/ContentTypes/DefaultContentTypeOrganiseAction.cs b/src/Umbraco.Community.BackOfficeOrganiser/Infrastructure/OrganiseActions/DefaultContentTypeOrganiseAction.cs similarity index 71% rename from src/Umbraco.Community.BackOfficeOrganiser/Organisers/ContentTypes/DefaultContentTypeOrganiseAction.cs rename to src/Umbraco.Community.BackOfficeOrganiser/Infrastructure/OrganiseActions/DefaultContentTypeOrganiseAction.cs index 1fe91c7..163ada6 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/ContentTypes/DefaultContentTypeOrganiseAction.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Infrastructure/OrganiseActions/DefaultContentTypeOrganiseAction.cs @@ -2,8 +2,10 @@ using StackExchange.Profiling.Internal; using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Services; +using Umbraco.Community.BackOfficeOrganiser.Core.OrganiseActions; +using Umbraco.Extensions; -namespace Umbraco.Community.BackOfficeOrganiser.Organisers.ContentTypes; +namespace Umbraco.Community.BackOfficeOrganiser.Infrastructure.OrganiseActions; public class DefaultContentTypeOrganiseAction : IContentTypeOrganiseAction { @@ -28,11 +30,14 @@ public async Task MoveAsync(IContentType contentType, IContentTypeService conten folderName = "Element Types"; } - if (!folderName.IsNullOrWhiteSpace()) + if (!ExtensionMethods.IsNullOrWhiteSpace(folderName)) { folderKey = contentTypeService.GetOrCreateFolder(folderName).Key; } await contentTypeService.MoveAsync(contentType.Key, folderKey); } + + public string Name => "Default Content Type Organise Action"; + public string Description => "Organises content types into folders based on their allowed templates, compositions and element types."; } \ No newline at end of file diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/DataTypes/DefaultDataTypeOrganiseAction.cs b/src/Umbraco.Community.BackOfficeOrganiser/Infrastructure/OrganiseActions/DefaultDataTypeOrganiseAction.cs similarity index 89% rename from src/Umbraco.Community.BackOfficeOrganiser/Organisers/DataTypes/DefaultDataTypeOrganiseAction.cs rename to src/Umbraco.Community.BackOfficeOrganiser/Infrastructure/OrganiseActions/DefaultDataTypeOrganiseAction.cs index 72c83a3..741047f 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/DataTypes/DefaultDataTypeOrganiseAction.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Infrastructure/OrganiseActions/DefaultDataTypeOrganiseAction.cs @@ -3,10 +3,11 @@ using Microsoft.Extensions.Options; using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Services; -using Umbraco.Community.BackOfficeOrganiser.Models; +using Umbraco.Community.BackOfficeOrganiser.Core.Models; +using Umbraco.Community.BackOfficeOrganiser.Core.OrganiseActions; using Umbraco.Extensions; -namespace Umbraco.Community.BackOfficeOrganiser.Organisers.DataTypes; +namespace Umbraco.Community.BackOfficeOrganiser.Infrastructure.OrganiseActions; public class DefaultDataTypeOrganiseAction(IOptions options, ILogger logger) : IDataTypeOrganiseAction { @@ -31,7 +32,7 @@ public async Task MoveAsync(IDataType dataType, IDataTypeService dataTypeService internalFolder = _options.DataTypes.ThirdPartyFolderName; } - var parentFolder = dataTypeService.GetOrCreateFolder(internalFolder); + var parentFolder = await dataTypeContainerService.GetOrCreateFolderAsync(internalFolder); var folder = GetFolderName(dataType); if (folder.IsNullOrWhiteSpace()) { @@ -40,7 +41,7 @@ public async Task MoveAsync(IDataType dataType, IDataTypeService dataTypeService return; } - var dataTypeFolder = dataTypeService.GetOrCreateFolder(folder, parentFolder.Id); + var dataTypeFolder = await dataTypeContainerService.GetOrCreateFolderAsync(folder, parentFolder.Id); await dataTypeService.MoveAsync(dataType, dataTypeFolder.Key, Cms.Core.Constants.Security.SuperUserKey); } @@ -108,4 +109,7 @@ private static string GetFolderName(IDataType dataType) }; return folder; } + + public string Name => "Default Data Type Organise Action"; + public string Description => "Organises data types into folders based on their editor alias"; } \ No newline at end of file diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/MediaTypes/DefaultMediaTypeOrganiseAction.cs b/src/Umbraco.Community.BackOfficeOrganiser/Infrastructure/OrganiseActions/DefaultMediaTypeOrganiseAction.cs similarity index 85% rename from src/Umbraco.Community.BackOfficeOrganiser/Organisers/MediaTypes/DefaultMediaTypeOrganiseAction.cs rename to src/Umbraco.Community.BackOfficeOrganiser/Infrastructure/OrganiseActions/DefaultMediaTypeOrganiseAction.cs index cb88b6f..4fad885 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/MediaTypes/DefaultMediaTypeOrganiseAction.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Infrastructure/OrganiseActions/DefaultMediaTypeOrganiseAction.cs @@ -2,8 +2,9 @@ using StackExchange.Profiling.Internal; using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Services; +using Umbraco.Community.BackOfficeOrganiser.Core.OrganiseActions; -namespace Umbraco.Community.BackOfficeOrganiser.Organisers.MediaTypes; +namespace Umbraco.Community.BackOfficeOrganiser.Infrastructure.OrganiseActions; public class DefaultMediaTypeOrganiseAction : IMediaTypeOrganiseAction { @@ -44,4 +45,7 @@ public async Task MoveAsync(IMediaType mediaType, IMediaTypeService mediaTypeSer await mediaTypeService.MoveAsync(mediaType.Key, folderKey); } + + public string Name => "Default Media Type Organise Action"; + public string Description => "Organises media types into folders based on their alias."; } \ No newline at end of file diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/MemberTypes/DefaultMemberTypeOrganiseAction.cs b/src/Umbraco.Community.BackOfficeOrganiser/Infrastructure/OrganiseActions/DefaultMemberTypeOrganiseAction.cs similarity index 73% rename from src/Umbraco.Community.BackOfficeOrganiser/Organisers/MemberTypes/DefaultMemberTypeOrganiseAction.cs rename to src/Umbraco.Community.BackOfficeOrganiser/Infrastructure/OrganiseActions/DefaultMemberTypeOrganiseAction.cs index a7139dc..b7ac017 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/MemberTypes/DefaultMemberTypeOrganiseAction.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Infrastructure/OrganiseActions/DefaultMemberTypeOrganiseAction.cs @@ -2,8 +2,9 @@ using StackExchange.Profiling.Internal; using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Services; +using Umbraco.Community.BackOfficeOrganiser.Core.OrganiseActions; -namespace Umbraco.Community.BackOfficeOrganiser.Organisers.MemberTypes; +namespace Umbraco.Community.BackOfficeOrganiser.Infrastructure.OrganiseActions; public class DefaultMemberTypeOrganiseAction : IMemberTypeOrganiseAction { @@ -30,4 +31,7 @@ public async Task MoveAsync(IMemberType memberType, IMemberTypeService memberTyp await memberTypeService.MoveAsync(memberType.Key, folderKey); } + + public string Name => "Default Member Type Organise Action"; + public string Description => "Organises member types into folders based on their composition and element type status."; } \ No newline at end of file diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Composing/PackageManifestReader.cs b/src/Umbraco.Community.BackOfficeOrganiser/Infrastructure/PackageManifestReader.cs similarity index 73% rename from src/Umbraco.Community.BackOfficeOrganiser/Composing/PackageManifestReader.cs rename to src/Umbraco.Community.BackOfficeOrganiser/Infrastructure/PackageManifestReader.cs index bf08ef0..064b83a 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Composing/PackageManifestReader.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Infrastructure/PackageManifestReader.cs @@ -1,11 +1,15 @@ using jcdcdev.Umbraco.Core.Extensions; using jcdcdev.Umbraco.Core.Web.Models.Manifests; +using Microsoft.Extensions.Logging; using Umbraco.Cms.Core.Manifest; using Umbraco.Cms.Infrastructure.Manifest; +using Umbraco.Community.BackOfficeOrganiser.Core; -namespace Umbraco.Community.BackOfficeOrganiser.Composing; +namespace Umbraco.Community.BackOfficeOrganiser.Infrastructure; -public class PackageManifestReader : IPackageManifestReader +public class PackageManifestReader( + ILogger logger) + : IPackageManifestReader { public async Task> ReadPackageManifestsAsync() { @@ -23,7 +27,7 @@ public async Task> ReadPackageManifestsAsync() { Name = "backoffice-organiser.entrypoint", Alias = "backoffice-organiser.entrypoint", - Js = "/App_Plugins/Umbraco.Community.BackofficeOrganiser/dist/index.js" + Js = $"/App_Plugins/{Constants.PackageName}/dist/index.js" }); packageManifest.Extensions = extensions.OfType().ToArray(); diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/IBackOfficeOrganiser.cs b/src/Umbraco.Community.BackOfficeOrganiser/Organisers/IBackOfficeOrganiser.cs deleted file mode 100644 index 42cc6a6..0000000 --- a/src/Umbraco.Community.BackOfficeOrganiser/Organisers/IBackOfficeOrganiser.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace Umbraco.Community.BackOfficeOrganiser.Organisers; - -public interface IBackOfficeOrganiser -{ - Task OrganiseAllAsync(); - Task OrganiseAsync(T item); -} \ No newline at end of file diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Umbraco.Community.BackOfficeOrganiser.csproj b/src/Umbraco.Community.BackOfficeOrganiser/Umbraco.Community.BackOfficeOrganiser.csproj index 8ddd86d..120309b 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Umbraco.Community.BackOfficeOrganiser.csproj +++ b/src/Umbraco.Community.BackOfficeOrganiser/Umbraco.Community.BackOfficeOrganiser.csproj @@ -23,9 +23,11 @@ - - - + + + + + diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Web/BackOfficeOrganiserRouteAttribute.cs b/src/Umbraco.Community.BackOfficeOrganiser/Web/BackOfficeOrganiserRouteAttribute.cs new file mode 100644 index 0000000..93f355f --- /dev/null +++ b/src/Umbraco.Community.BackOfficeOrganiser/Web/BackOfficeOrganiserRouteAttribute.cs @@ -0,0 +1,5 @@ +using Umbraco.Cms.Web.Common.Routing; + +namespace Umbraco.Community.BackOfficeOrganiser.Web; + +public class BackOfficeOrganiserRouteAttribute(string template) : BackOfficeRouteAttribute($"BackOfficeOrganiser/api/v{{version:apiVersion}}/{template.TrimStart('/')}"); \ No newline at end of file diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Web/ConfigApiSwaggerGenOptions.cs b/src/Umbraco.Community.BackOfficeOrganiser/Web/ConfigApiSwaggerGenOptions.cs new file mode 100644 index 0000000..c191b44 --- /dev/null +++ b/src/Umbraco.Community.BackOfficeOrganiser/Web/ConfigApiSwaggerGenOptions.cs @@ -0,0 +1,21 @@ +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Options; +using Microsoft.OpenApi.Models; +using Swashbuckle.AspNetCore.SwaggerGen; +using Umbraco.Community.BackOfficeOrganiser.Core; + +namespace Umbraco.Community.BackOfficeOrganiser.Web; + +public class ConfigApiSwaggerGenOptions : IConfigureOptions +{ + public void Configure(SwaggerGenOptions options) + { + options.SwaggerDoc(Constants.Api.ApiName, + new OpenApiInfo + { + Title = Constants.Api.Title, + Version = "Latest", + Description = Constants.Api.Description + }); + } +} \ No newline at end of file diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Controllers/BackOfficeOrganiserController.cs b/src/Umbraco.Community.BackOfficeOrganiser/Web/Controllers/BackOfficeOrganiserController.cs similarity index 57% rename from src/Umbraco.Community.BackOfficeOrganiser/Controllers/BackOfficeOrganiserController.cs rename to src/Umbraco.Community.BackOfficeOrganiser/Web/Controllers/BackOfficeOrganiserController.cs index bb4b9ab..10041ec 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Controllers/BackOfficeOrganiserController.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Web/Controllers/BackOfficeOrganiserController.cs @@ -1,19 +1,27 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; +using Umbraco.Cms.Api.Common.Attributes; +using Umbraco.Cms.Api.Common.Filters; +using Umbraco.Cms.Api.Management.Filters; using Umbraco.Cms.Web.Common.Authorization; -using Umbraco.Cms.Web.Common.Routing; -using Umbraco.Community.BackOfficeOrganiser.Models; -using Umbraco.Community.BackOfficeOrganiser.Services; +using Umbraco.Community.BackOfficeOrganiser.Core.Services; +using Umbraco.Community.BackOfficeOrganiser.Web.Models; -namespace Umbraco.Community.BackOfficeOrganiser.Controllers; +namespace Umbraco.Community.BackOfficeOrganiser.Web.Controllers; +[ApiExplorerSettings(GroupName = Constants.Api.ApiName)] +[BackOfficeOrganiserRoute("organise")] +[MapToApi(Constants.Api.ApiName)] +[JsonOptionsName(Cms.Core.Constants.JsonOptionsNames.BackOffice)] [ApiController] -[BackOfficeRoute("backofficeorganiser/api")] [Authorize(Policy = AuthorizationPolicies.BackOfficeAccess)] +[AppendEventMessages] +[Produces("application/json")] public class BackOfficeOrganiserController(IBackOfficeOrganiserService service) : ControllerBase { - [HttpPost("organise")] - [Produces(typeof(OrganiseResponse))] + [HttpPost] + [ProducesResponseType(200)] + [ProducesResponseType(400)] [Consumes(typeof(OrganiseRequest), "application/json")] public async Task Organise([FromBody] OrganiseRequest model) { @@ -34,10 +42,4 @@ public async Task Organise([FromBody] OrganiseRequest model) return Ok(OrganiseResponse.Success("Successfully organised \ud83d\ude80")); } - - private static OrganiseType DetermineOrganiseType(string input) - { - int.TryParse(input, out var value); - return (OrganiseType)value; - } } \ No newline at end of file diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Web/Controllers/BackOfficeOrganiserInfoController.cs b/src/Umbraco.Community.BackOfficeOrganiser/Web/Controllers/BackOfficeOrganiserInfoController.cs new file mode 100644 index 0000000..0ee45fb --- /dev/null +++ b/src/Umbraco.Community.BackOfficeOrganiser/Web/Controllers/BackOfficeOrganiserInfoController.cs @@ -0,0 +1,58 @@ +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Umbraco.Cms.Api.Common.Attributes; +using Umbraco.Cms.Api.Common.Filters; +using Umbraco.Cms.Api.Management.Filters; +using Umbraco.Cms.Web.Common.Authorization; +using Umbraco.Community.BackOfficeOrganiser.Core.Extensions; +using Umbraco.Community.BackOfficeOrganiser.Core.Models; +using Umbraco.Community.BackOfficeOrganiser.Core.Services; +using Umbraco.Community.BackOfficeOrganiser.Web.Models; + +namespace Umbraco.Community.BackOfficeOrganiser.Web.Controllers; + +[ApiExplorerSettings(GroupName = Constants.Api.ApiName)] +[BackOfficeOrganiserRoute("info")] +[MapToApi(Constants.Api.ApiName)] +[JsonOptionsName(Cms.Core.Constants.JsonOptionsNames.BackOffice)] +[ApiController] +[Authorize(Policy = AuthorizationPolicies.BackOfficeAccess)] +[AppendEventMessages] +[Produces("application/json")] +public class BackOfficeOrganiserInfoController(IBackOfficeOrganiserService service) : ControllerBase +{ + [HttpGet] + [ProducesResponseType(200)] + public IActionResult Index() + { + var model = new OrganiseInfoResponse + { + DataTypes = service.GetActions(OrganiseType.DataTypes).Select(x => new OrganiseInfoModel + { + Alias = x.GetAlias(), + Name = x.Name, + Description = x.Description + }), + ContentTypes = service.GetActions(OrganiseType.ContentTypes).Select(x => new OrganiseInfoModel + { + Alias = x.GetAlias(), + Name = x.Name, + Description = x.Description + }), + MediaTypes = service.GetActions(OrganiseType.MediaTypes).Select(x => new OrganiseInfoModel + { + Alias = x.GetAlias(), + Name = x.Name, + Description = x.Description + }), + MemberTypes = service.GetActions(OrganiseType.MemberTypes).Select(x => new OrganiseInfoModel + { + Alias = x.GetAlias(), + Name = x.Name, + Description = x.Description + }) + }; + + return Ok(model); + } +} \ No newline at end of file diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Web/Models/OrganiseInfoModel.cs b/src/Umbraco.Community.BackOfficeOrganiser/Web/Models/OrganiseInfoModel.cs new file mode 100644 index 0000000..deb5091 --- /dev/null +++ b/src/Umbraco.Community.BackOfficeOrganiser/Web/Models/OrganiseInfoModel.cs @@ -0,0 +1,8 @@ +namespace Umbraco.Community.BackOfficeOrganiser.Web.Models; + +public class OrganiseInfoModel +{ + public required string Alias { get; set; } + public required string Name { get; set; } + public required string Description { get; set; } +} \ No newline at end of file diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Web/Models/OrganiseInfoResponse.cs b/src/Umbraco.Community.BackOfficeOrganiser/Web/Models/OrganiseInfoResponse.cs new file mode 100644 index 0000000..c42cbfc --- /dev/null +++ b/src/Umbraco.Community.BackOfficeOrganiser/Web/Models/OrganiseInfoResponse.cs @@ -0,0 +1,11 @@ +using Umbraco.Community.BackOfficeOrganiser.Core.OrganiseActions; + +namespace Umbraco.Community.BackOfficeOrganiser.Web.Models; + +public class OrganiseInfoResponse +{ + public IEnumerable DataTypes { get; set; } = []; + public IEnumerable ContentTypes { get; set; } = []; + public IEnumerable MediaTypes { get; set; } = []; + public IEnumerable MemberTypes { get; set; } = []; +} \ No newline at end of file diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Models/OrganiseRequest.cs b/src/Umbraco.Community.BackOfficeOrganiser/Web/Models/OrganiseRequest.cs similarity index 85% rename from src/Umbraco.Community.BackOfficeOrganiser/Models/OrganiseRequest.cs rename to src/Umbraco.Community.BackOfficeOrganiser/Web/Models/OrganiseRequest.cs index 22d78cb..67d5f00 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Models/OrganiseRequest.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Web/Models/OrganiseRequest.cs @@ -1,4 +1,6 @@ -namespace Umbraco.Community.BackOfficeOrganiser.Models; +using Umbraco.Community.BackOfficeOrganiser.Core.Models; + +namespace Umbraco.Community.BackOfficeOrganiser.Web.Models; public class OrganiseRequest { diff --git a/src/Umbraco.Community.BackOfficeOrganiser/Models/OrganiseResponse.cs b/src/Umbraco.Community.BackOfficeOrganiser/Web/Models/OrganiseResponse.cs similarity index 87% rename from src/Umbraco.Community.BackOfficeOrganiser/Models/OrganiseResponse.cs rename to src/Umbraco.Community.BackOfficeOrganiser/Web/Models/OrganiseResponse.cs index 179106d..b739762 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/Models/OrganiseResponse.cs +++ b/src/Umbraco.Community.BackOfficeOrganiser/Web/Models/OrganiseResponse.cs @@ -1,4 +1,4 @@ -namespace Umbraco.Community.BackOfficeOrganiser.Models; +namespace Umbraco.Community.BackOfficeOrganiser.Web.Models; public class OrganiseResponse { diff --git a/src/Umbraco.Community.BackOfficeOrganiser/packages.lock.json b/src/Umbraco.Community.BackOfficeOrganiser/packages.lock.json index b9152ec..0ef5cc1 100644 --- a/src/Umbraco.Community.BackOfficeOrganiser/packages.lock.json +++ b/src/Umbraco.Community.BackOfficeOrganiser/packages.lock.json @@ -4,13 +4,42 @@ "net9.0": { "jcdcdev.Umbraco.Core": { "type": "Direct", - "requested": "[15.0.0, 16.0.0)", + "requested": "[15.2.0, 16.0.0)", + "resolved": "15.2.0", + "contentHash": "OZYDzhmu44mlVA6xWouwQNHTi0K5h2zbJVaO9HZy7cup1jR0C7RIgYp7RWsAMlH0OVFLwx1Z1TxTRtbFplLSKQ==", + "dependencies": { + "Umbraco.Cms.Web.Common": "[15.0.0, 16.0.0)" + } + }, + "Umbraco.Cms.Api.Common": { + "type": "Direct", + "requested": "[15.0.0, )", "resolved": "15.0.0", - "contentHash": "CMLdp6JiLjjE+AWl6eH7kmEbTEm2JzRHXXUWZyyECFV5FyburR2VRQb49clOMKEz/P+/gz5fLSLoY5C5A6INkg==", + "contentHash": "YgDChm+HOl82N4HHucShOWw8z/sZmvCLeC3AlQvUkl9ZBCjIts6piwYGHWuoNYK4Z1SmOzlM/JI4b9rScRAglQ==", "dependencies": { + "Asp.Versioning.Mvc": "8.1.0", + "Asp.Versioning.Mvc.ApiExplorer": "8.1.0", + "Microsoft.IdentityModel.JsonWebTokens": "8.2.0", + "OpenIddict.Abstractions": "6.0.0-preview3.24551.41", + "OpenIddict.AspNetCore": "6.0.0-preview3.24551.41", + "Swashbuckle.AspNetCore": "7.0.0", + "Umbraco.Cms.Core": "[15.0.0, 16.0.0)", "Umbraco.Cms.Web.Common": "[15.0.0, 16.0.0)" } }, + "Umbraco.Cms.Api.Management": { + "type": "Direct", + "requested": "[15.0.0, )", + "resolved": "15.0.0", + "contentHash": "3p5CZoz8nuIsUDX/e53Ig725s8DUEfDtF1SSW++RhCjHbEYESp0COegKhcYPK+vzARNEzhAYZESAy6CpsJysWA==", + "dependencies": { + "JsonPatch.Net": "3.1.1", + "Swashbuckle.AspNetCore": "7.0.0", + "Umbraco.Cms.Api.Common": "[15.0.0, 16.0.0)", + "Umbraco.Cms.Infrastructure": "[15.0.0, 16.0.0)", + "Umbraco.Cms.PublishedCache.HybridCache": "[15.0.0, 16.0.0)" + } + }, "Umbraco.Cms.Core": { "type": "Direct", "requested": "[15.0.0, 16.0.0)", @@ -156,11 +185,38 @@ "resolved": "1.11.71", "contentHash": "HlEThQBnob4/29DIiyrPSYlGXXSZUtOH7571PRev+yu8FW8n5pdxqHyun+PMm17cp3ovCrxFhXedC+1HUSdRMA==" }, + "Humanizer.Core": { + "type": "Transitive", + "resolved": "2.14.1", + "contentHash": "lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==" + }, "J2N": { "type": "Transitive", "resolved": "2.1.0", "contentHash": "Vooz1wbnnqWuS+u93tADXK5Owxo8vLJhSrZ9Ac+KpgDF3GJq9TybXXTF1TFcWILgEtRThc8AOBENEzB0TQH1JA==" }, + "Json.More.Net": { + "type": "Transitive", + "resolved": "2.0.1.2", + "contentHash": "uF3QeiaXEfH92emz0/BWUiNtMSfxIIvgynuB0Bf1vF4s8eWTcZitBx9l+g/FDaJk5XxqBv9buQXizXKQcXFG1w==" + }, + "JsonPatch.Net": { + "type": "Transitive", + "resolved": "3.1.1", + "contentHash": "dLAUhmL7RgezL8lkBpzf+O4U4sEtbGE9DDF858MiQdNmGK8LYBfLqO73n5N288e5H8jVvwypQG/DUJunWvaJyQ==", + "dependencies": { + "JsonPointer.Net": "5.0.2" + } + }, + "JsonPointer.Net": { + "type": "Transitive", + "resolved": "5.0.2", + "contentHash": "H/OtixKadr+ja1j7Fru3WG56V9zP0AKT1Bd0O7RWN/zH1bl8ZIwW9aCa4+xvzuVvt4SPmrvBu3G6NpAkNOwNAA==", + "dependencies": { + "Humanizer.Core": "2.14.1", + "Json.More.Net": "2.0.1.2" + } + }, "K4os.Compression.LZ4": { "type": "Transitive", "resolved": "1.3.8", @@ -428,6 +484,21 @@ "Microsoft.CodeAnalysis.Common": "4.0.0" } }, + "Microsoft.Extensions.AmbientMetadata.Application": { + "type": "Transitive", + "resolved": "9.0.0-preview.9.24507.7", + "contentHash": "ksZEHpx8W2rOK81G2Bqtc/6v7OluX+Ew7Z9L96Zoq7FsMkKygrc5ScQo1HesK6R7xpYnJZoPCDZyjjVXSosqxQ==", + "dependencies": { + "Microsoft.Extensions.Configuration": "9.0.0-rc.2.24473.5", + "Microsoft.Extensions.Hosting.Abstractions": "9.0.0-rc.2.24473.5", + "Microsoft.Extensions.Options.ConfigurationExtensions": "9.0.0-rc.2.24473.5" + } + }, + "Microsoft.Extensions.ApiDescription.Server": { + "type": "Transitive", + "resolved": "6.0.5", + "contentHash": "Ckb5EDBUNJdFWyajfXzUIMRkhf52fHZOQuuZg/oiu8y7zDCVwD0iHhew6MnThjHmevanpxL3f5ci2TtHQEN6bw==" + }, "Microsoft.Extensions.Caching.Abstractions": { "type": "Transitive", "resolved": "9.0.0", @@ -459,6 +530,15 @@ "Microsoft.Extensions.Primitives": "9.0.0" } }, + "Microsoft.Extensions.Compliance.Abstractions": { + "type": "Transitive", + "resolved": "9.0.0-preview.9.24507.7", + "contentHash": "piksxxOo+DMDLmhWWy3DxR8/Qs4oegIxTSyj8FvNiF0Dah71UhfsW7/qNwMHmRzFY5MegT5IHb3WUdPKo6cN8g==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.0-rc.2.24473.5", + "Microsoft.Extensions.ObjectPool": "9.0.0-rc.2.24474.3" + } + }, "Microsoft.Extensions.Configuration": { "type": "Transitive", "resolved": "9.0.0", @@ -520,6 +600,14 @@ "resolved": "9.0.0", "contentHash": "+6f2qv2a3dLwd5w6JanPIPs47CxRbnk+ZocMJUhv9NxP88VlOcJYZs9jY+MYSjxvady08bUZn6qgiNh7DadGgg==" }, + "Microsoft.Extensions.DependencyInjection.AutoActivation": { + "type": "Transitive", + "resolved": "9.0.0-preview.9.24507.7", + "contentHash": "owdwtcpN9ePoZ4kR3uIy1u9fDLrVbh7D0OlPKsKBPpLmDlywgJUM67kimjZecK/IKFpVYGi1O/Mmepuq3CjXWQ==", + "dependencies": { + "Microsoft.Extensions.Hosting.Abstractions": "9.0.0-rc.2.24473.5" + } + }, "Microsoft.Extensions.DependencyModel": { "type": "Transitive", "resolved": "9.0.0", @@ -544,6 +632,14 @@ "Microsoft.Extensions.Options": "9.0.0" } }, + "Microsoft.Extensions.Diagnostics.ExceptionSummarization": { + "type": "Transitive", + "resolved": "9.0.0-preview.9.24507.7", + "contentHash": "E2nGeOis2W/l8wJtFguzn2JbO9orfByzKDD3SlQvLTN9Cup6rApD73TkMq9+xD7qzuDAc5p0OG9oj8QkVNCJWA==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.0-rc.2.24473.5" + } + }, "Microsoft.Extensions.FileProviders.Abstractions": { "type": "Transitive", "resolved": "9.0.0", @@ -600,6 +696,39 @@ "Microsoft.Extensions.Options": "9.0.0" } }, + "Microsoft.Extensions.Http.Diagnostics": { + "type": "Transitive", + "resolved": "9.0.0-preview.9.24507.7", + "contentHash": "BmJdLdeZPuGM4EG0Ns1AJ6ll7wDXdfZiI93s19VGFSJbq5EFIywpyYNaKU6J0FWCXUFUwSz/XeOBVrXWeQTtHg==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.AutoActivation": "9.0.0-preview.9.24507.7", + "Microsoft.Extensions.Http": "9.0.0-rc.2.24473.5", + "Microsoft.Extensions.Options.ConfigurationExtensions": "9.0.0-rc.2.24473.5", + "Microsoft.Extensions.Telemetry": "9.0.0-preview.9.24507.7", + "Microsoft.IO.RecyclableMemoryStream": "3.0.0" + } + }, + "Microsoft.Extensions.Http.Polly": { + "type": "Transitive", + "resolved": "9.0.0-rc.2.24474.3", + "contentHash": "gRs+JrNJSVwU++2JOGj/CvnkLCa6B9y0IcLKlO6xZ2it9zaJVF+oADIT5lbqVyk981ettHQ7oQ4UeB5LGyYUBw==", + "dependencies": { + "Microsoft.Extensions.Http": "9.0.0-rc.2.24473.5", + "Polly": "7.2.4", + "Polly.Extensions.Http": "3.0.0" + } + }, + "Microsoft.Extensions.Http.Resilience": { + "type": "Transitive", + "resolved": "9.0.0-preview.9.24507.7", + "contentHash": "2LMgcdV5V63NU+v50YSK9VVaAcpYfVTzk8ULSa1gIspjCeIEA37FTcNQUhJaBow43N53tsN2rtrRmQv4GK/l2A==", + "dependencies": { + "Microsoft.Extensions.Configuration.Binder": "9.0.0-rc.2.24473.5", + "Microsoft.Extensions.Http.Diagnostics": "9.0.0-preview.9.24507.7", + "Microsoft.Extensions.ObjectPool": "9.0.0-rc.2.24474.3", + "Microsoft.Extensions.Resilience": "9.0.0-preview.9.24507.7" + } + }, "Microsoft.Extensions.Identity.Core": { "type": "Transitive", "resolved": "9.0.0", @@ -638,6 +767,26 @@ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.0" } }, + "Microsoft.Extensions.Logging.Configuration": { + "type": "Transitive", + "resolved": "9.0.0-rc.2.24473.5", + "contentHash": "f5x/5d9IqzM25tTrJSOCnIbxp8e5QF23lKMyaajY49phfOjMBR0X/97LJgSXlYbUdDYQ76PpU0YAwofK3HiWHw==", + "dependencies": { + "Microsoft.Extensions.Configuration": "9.0.0-rc.2.24473.5", + "Microsoft.Extensions.Configuration.Abstractions": "9.0.0-rc.2.24473.5", + "Microsoft.Extensions.Configuration.Binder": "9.0.0-rc.2.24473.5", + "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.0-rc.2.24473.5", + "Microsoft.Extensions.Logging": "9.0.0-rc.2.24473.5", + "Microsoft.Extensions.Logging.Abstractions": "9.0.0-rc.2.24473.5", + "Microsoft.Extensions.Options": "9.0.0-rc.2.24473.5", + "Microsoft.Extensions.Options.ConfigurationExtensions": "9.0.0-rc.2.24473.5" + } + }, + "Microsoft.Extensions.ObjectPool": { + "type": "Transitive", + "resolved": "9.0.0-rc.2.24474.3", + "contentHash": "laI1OGPudszr2Ii+38bZlvqkrNLC/gaQyo1g6qKfZD9ewWPfkEFOluqTuw8bUbXoe/Gmp9DPVynRzfaKg5gE9g==" + }, "Microsoft.Extensions.Options": { "type": "Transitive", "resolved": "9.0.0", @@ -673,6 +822,42 @@ "resolved": "9.0.0", "contentHash": "N3qEBzmLMYiASUlKxxFIISP4AiwuPTHF5uCh+2CWSwwzAJiIYx0kBJsS30cp1nvhSySFAVi30jecD307jV+8Kg==" }, + "Microsoft.Extensions.Resilience": { + "type": "Transitive", + "resolved": "9.0.0-preview.9.24507.7", + "contentHash": "pRKhBzO7A2EWYYo3FCQalbfmOXQfOKT0GvuoAaixsxd/Vmn6dqTkSOPHL/N3q6xRHdkqI2UU+VnDntfbSGagJQ==", + "dependencies": { + "Microsoft.Extensions.Diagnostics": "9.0.0-rc.2.24473.5", + "Microsoft.Extensions.Diagnostics.ExceptionSummarization": "9.0.0-preview.9.24507.7", + "Microsoft.Extensions.Options.ConfigurationExtensions": "9.0.0-rc.2.24473.5", + "Microsoft.Extensions.Telemetry.Abstractions": "9.0.0-preview.9.24507.7", + "Polly.Extensions": "8.4.2", + "Polly.RateLimiting": "8.4.2" + } + }, + "Microsoft.Extensions.Telemetry": { + "type": "Transitive", + "resolved": "9.0.0-preview.9.24507.7", + "contentHash": "P15r1cUMkVTin+cCUs5x6pJKZUutGLzzu4Lku5ymFJVcq9FWor5sAaWrEVjZObCW58y83zWEixPAP3rZCOftxQ==", + "dependencies": { + "Microsoft.Extensions.AmbientMetadata.Application": "9.0.0-preview.9.24507.7", + "Microsoft.Extensions.DependencyInjection.AutoActivation": "9.0.0-preview.9.24507.7", + "Microsoft.Extensions.Logging.Configuration": "9.0.0-rc.2.24473.5", + "Microsoft.Extensions.ObjectPool": "9.0.0-rc.2.24474.3", + "Microsoft.Extensions.Telemetry.Abstractions": "9.0.0-preview.9.24507.7" + } + }, + "Microsoft.Extensions.Telemetry.Abstractions": { + "type": "Transitive", + "resolved": "9.0.0-preview.9.24507.7", + "contentHash": "jhwGp1dBiBPfBdSYIxsxtLj1XG57JOm1e/RdTxbIAGN58hj3ADIWLkuhBla3scvRMSHSNV29ifYJevkprs454g==", + "dependencies": { + "Microsoft.Extensions.Compliance.Abstractions": "9.0.0-preview.9.24507.7", + "Microsoft.Extensions.Logging.Abstractions": "9.0.0-rc.2.24473.5", + "Microsoft.Extensions.ObjectPool": "9.0.0-rc.2.24474.3", + "Microsoft.Extensions.Options": "9.0.0-rc.2.24473.5" + } + }, "Microsoft.IdentityModel.Abstractions": { "type": "Transitive", "resolved": "8.2.0", @@ -695,6 +880,14 @@ "Microsoft.IdentityModel.Abstractions": "8.2.0" } }, + "Microsoft.IdentityModel.Protocols": { + "type": "Transitive", + "resolved": "8.1.2", + "contentHash": "Yu3UJWIFX2/5m2MZskECqByr62L8A0uTtTblWIxy0wJNUg0OJGhIK6oRdpcZ8xbSJYD/SOE8psjo5IXRqC3Bsw==", + "dependencies": { + "Microsoft.IdentityModel.Tokens": "8.1.2" + } + }, "Microsoft.IdentityModel.Tokens": { "type": "Transitive", "resolved": "8.2.0", @@ -704,6 +897,19 @@ "Microsoft.IdentityModel.Logging": "8.2.0" } }, + "Microsoft.IO.RecyclableMemoryStream": { + "type": "Transitive", + "resolved": "3.0.0", + "contentHash": "irv0HuqoH8Ig5i2fO+8dmDNdFdsrO+DoQcedwIlb810qpZHBNQHZLW7C/AHBQDgLLpw2T96vmMAy/aE4Yj55Sg==" + }, + "Microsoft.Net.Http.Headers": { + "type": "Transitive", + "resolved": "9.0.0-rc.2.24474.3", + "contentHash": "75a0nkdFlfYKPcytp38WWoIbKDd90mGI8VAIDbqZRPb9V2QECE0rBBh1uxmpNzWe9txdKRqJKcON3WD0tCWk8Q==", + "dependencies": { + "Microsoft.Extensions.Primitives": "9.0.0-rc.2.24473.5" + } + }, "Microsoft.NET.StringTools": { "type": "Transitive", "resolved": "17.6.3", @@ -719,6 +925,11 @@ "resolved": "1.1.3", "contentHash": "3Wrmi0kJDzClwAC+iBdUBpEKmEle8FQNsCs77fkiOIw/9oYA07bL1EZNX0kQ2OMN3xpwvl0vAtOCYY3ndDNlhQ==" }, + "Microsoft.OpenApi": { + "type": "Transitive", + "resolved": "1.6.22", + "contentHash": "aBvunmrdu/x+4CaA/UP1Jx4xWGwk4kymhoIRnn2Vp+zi5/KOPQJ9EkSXHRUr01WcGKtYl3Au7XfkPJbU1G2sjQ==" + }, "Microsoft.Win32.Primitives": { "type": "Transitive", "resolved": "4.3.0", @@ -843,6 +1054,23 @@ "System.Reflection.Emit.Lightweight": "4.7.0" } }, + "OpenIddict": { + "type": "Transitive", + "resolved": "6.0.0-preview3.24551.41", + "contentHash": "AK8F4LqqsSKBNTkS/QI6PjfGTopTsyZQ2Xp1ZgwNlXPWpArrNWa3irUGAdua/FO9Cdy3uQPjyjRsiY9uO5Vs8Q==", + "dependencies": { + "OpenIddict.Abstractions": "6.0.0-preview3.24551.41", + "OpenIddict.Client": "6.0.0-preview3.24551.41", + "OpenIddict.Client.SystemIntegration": "6.0.0-preview3.24551.41", + "OpenIddict.Client.SystemNetHttp": "6.0.0-preview3.24551.41", + "OpenIddict.Client.WebIntegration": "6.0.0-preview3.24551.41", + "OpenIddict.Core": "6.0.0-preview3.24551.41", + "OpenIddict.Server": "6.0.0-preview3.24551.41", + "OpenIddict.Validation": "6.0.0-preview3.24551.41", + "OpenIddict.Validation.ServerIntegration": "6.0.0-preview3.24551.41", + "OpenIddict.Validation.SystemNetHttp": "6.0.0-preview3.24551.41" + } + }, "OpenIddict.Abstractions": { "type": "Transitive", "resolved": "6.0.0-preview3.24551.41", @@ -853,6 +1081,196 @@ "Microsoft.IdentityModel.Tokens": "8.1.2" } }, + "OpenIddict.AspNetCore": { + "type": "Transitive", + "resolved": "6.0.0-preview3.24551.41", + "contentHash": "TKqx3TXfsNN/wV9e0g7klD14ePFeMrDhpHybpjRusnF0TtBZJDwkkvNdD3Q7L/MFIhrL5l8higU6G6N391biJA==", + "dependencies": { + "OpenIddict": "6.0.0-preview3.24551.41", + "OpenIddict.Client.AspNetCore": "6.0.0-preview3.24551.41", + "OpenIddict.Client.DataProtection": "6.0.0-preview3.24551.41", + "OpenIddict.Server.AspNetCore": "6.0.0-preview3.24551.41", + "OpenIddict.Server.DataProtection": "6.0.0-preview3.24551.41", + "OpenIddict.Validation.AspNetCore": "6.0.0-preview3.24551.41", + "OpenIddict.Validation.DataProtection": "6.0.0-preview3.24551.41" + } + }, + "OpenIddict.Client": { + "type": "Transitive", + "resolved": "6.0.0-preview3.24551.41", + "contentHash": "Fl6ucx1bN/ousKUOqMhOm/H4i77Md0l+PSL3ezG9Lyype0fSiMM7xXF9aNTC+NDgMX3NQDT7afRcZcgzoxsxIQ==", + "dependencies": { + "Microsoft.Extensions.Logging": "9.0.0-rc.2.24473.5", + "Microsoft.IdentityModel.JsonWebTokens": "8.1.2", + "Microsoft.IdentityModel.Protocols": "8.1.2", + "OpenIddict.Abstractions": "6.0.0-preview3.24551.41" + } + }, + "OpenIddict.Client.AspNetCore": { + "type": "Transitive", + "resolved": "6.0.0-preview3.24551.41", + "contentHash": "FDXDoj4mNsVP5ym1ZnOTitHn1TUOWQ/iFKivWEQPGtTumgHiC62qGU9R/mP9kjHy06vzMAjKhOlP64nq60iESA==", + "dependencies": { + "OpenIddict.Client": "6.0.0-preview3.24551.41" + } + }, + "OpenIddict.Client.DataProtection": { + "type": "Transitive", + "resolved": "6.0.0-preview3.24551.41", + "contentHash": "YWXNi7cbSKo7jOS00u15WKSAm3cnT6wdKJF2MkOPdsXkzTO5dRXKzLf0Vpd++97kKN00LKgKQwGKRv7jVHdCGA==", + "dependencies": { + "OpenIddict.Client": "6.0.0-preview3.24551.41" + } + }, + "OpenIddict.Client.SystemIntegration": { + "type": "Transitive", + "resolved": "6.0.0-preview3.24551.41", + "contentHash": "E0m9WJpzqUEJtCqdf+jvTeuZcALuwawc5995b/TxOFYQ5eqEHmF5zPd15bu6OxEkYDD+47TORYq1JIe/wC8MaQ==", + "dependencies": { + "Microsoft.Extensions.Hosting.Abstractions": "9.0.0-rc.2.24473.5", + "Microsoft.Net.Http.Headers": "9.0.0-rc.2.24474.3", + "OpenIddict.Client": "6.0.0-preview3.24551.41" + } + }, + "OpenIddict.Client.SystemNetHttp": { + "type": "Transitive", + "resolved": "6.0.0-preview3.24551.41", + "contentHash": "SuJSdxfzHj4uSs1dlbFC6VTa3Y51YcDZvNJJqF+8B6VuVTtPj5UbduYX88qnikaCk05mrml8KUdFMFwg1y1hjQ==", + "dependencies": { + "Microsoft.Extensions.Http.Polly": "9.0.0-rc.2.24474.3", + "Microsoft.Extensions.Http.Resilience": "9.0.0-preview.9.24507.7", + "OpenIddict.Client": "6.0.0-preview3.24551.41" + } + }, + "OpenIddict.Client.WebIntegration": { + "type": "Transitive", + "resolved": "6.0.0-preview3.24551.41", + "contentHash": "UrRMb2gnQSrQB1LjOA+lh/cvNGMXkG4cUOhB/h3hsjTihk3IizElEaSNMwqYRzTOeJvuh98TFWKPEGjpb6QfMg==", + "dependencies": { + "OpenIddict.Client": "6.0.0-preview3.24551.41", + "OpenIddict.Client.SystemNetHttp": "6.0.0-preview3.24551.41" + } + }, + "OpenIddict.Core": { + "type": "Transitive", + "resolved": "6.0.0-preview3.24551.41", + "contentHash": "Kyz9HAb2l84pQCvGtDoQOJagNbQHC2SiEjfqUKv4erT3dWVmEynyI9NNPOx44Ha5d4n90h5NmGx+RJy7n7ewxA==", + "dependencies": { + "Microsoft.Extensions.Caching.Memory": "9.0.0-rc.2.24473.5", + "Microsoft.Extensions.Logging": "9.0.0-rc.2.24473.5", + "Microsoft.Extensions.Options": "9.0.0-rc.2.24473.5", + "OpenIddict.Abstractions": "6.0.0-preview3.24551.41" + } + }, + "OpenIddict.Server": { + "type": "Transitive", + "resolved": "6.0.0-preview3.24551.41", + "contentHash": "bQMQtiTU3v/qMLwhg9WODqTi05Em8U5nTx78tlS+/I/ujg4UP55nuM9cjNTervAt8gMAIegnxvSlElzIFNVVGQ==", + "dependencies": { + "Microsoft.Extensions.Logging": "9.0.0-rc.2.24473.5", + "Microsoft.IdentityModel.JsonWebTokens": "8.1.2", + "OpenIddict.Abstractions": "6.0.0-preview3.24551.41" + } + }, + "OpenIddict.Server.AspNetCore": { + "type": "Transitive", + "resolved": "6.0.0-preview3.24551.41", + "contentHash": "j6wJhtu1pEVN6C56hmeuL6iibD/L8lxxhw8M7c2CGQ++9kEa+mqdS0gbs7BRoHYdXUWm8iaBpBJqtdhpchaDmg==", + "dependencies": { + "OpenIddict.Server": "6.0.0-preview3.24551.41" + } + }, + "OpenIddict.Server.DataProtection": { + "type": "Transitive", + "resolved": "6.0.0-preview3.24551.41", + "contentHash": "rfvAsrSBKTr673TeB2H5+RGvcMXE/kKIkwrsuek48Yo6a/ZubmdB+8DFaQ5WVOJqHtbbekDaKDVkh97Y9N79Ww==", + "dependencies": { + "OpenIddict.Server": "6.0.0-preview3.24551.41" + } + }, + "OpenIddict.Validation": { + "type": "Transitive", + "resolved": "6.0.0-preview3.24551.41", + "contentHash": "OWFXc2h+bLgR7lFokC/Hw4m02jJqc+IU7WF6uAF1wySkxxQDtzhTuK5OD2El25inm7J8UElSEuwWVbMQeuPG/w==", + "dependencies": { + "Microsoft.Extensions.Logging": "9.0.0-rc.2.24473.5", + "Microsoft.IdentityModel.JsonWebTokens": "8.1.2", + "Microsoft.IdentityModel.Protocols": "8.1.2", + "OpenIddict.Abstractions": "6.0.0-preview3.24551.41" + } + }, + "OpenIddict.Validation.AspNetCore": { + "type": "Transitive", + "resolved": "6.0.0-preview3.24551.41", + "contentHash": "/Ki/rSaUvqSZeqWcougJTaTnr69IbdaMShSukB1A3RNzDVR1+rA+3P4QnpsPMFhiDSjRaH4oH4dn73SuyqxERA==", + "dependencies": { + "OpenIddict.Validation": "6.0.0-preview3.24551.41" + } + }, + "OpenIddict.Validation.DataProtection": { + "type": "Transitive", + "resolved": "6.0.0-preview3.24551.41", + "contentHash": "tNdw4l6IV1KswJup26L8Gk20IC+QLEWFoE/qQxv4xv5ajaygWbuMVC4egotS7B+f9q9ZbmMLnIutqZw55OQptQ==", + "dependencies": { + "OpenIddict.Validation": "6.0.0-preview3.24551.41" + } + }, + "OpenIddict.Validation.ServerIntegration": { + "type": "Transitive", + "resolved": "6.0.0-preview3.24551.41", + "contentHash": "2x1455PtXHnCxmvfNIImjFmnNPw/t/ESQoxt4hVqFXqWSGfip5zwky7ZCBYzdcmV/gKU1yZ9J1Zv5QhzNTlJag==", + "dependencies": { + "OpenIddict.Server": "6.0.0-preview3.24551.41", + "OpenIddict.Validation": "6.0.0-preview3.24551.41" + } + }, + "OpenIddict.Validation.SystemNetHttp": { + "type": "Transitive", + "resolved": "6.0.0-preview3.24551.41", + "contentHash": "R+T13iuYXdFDIL//FnqYiLLly/0T5JO3w64zb/WW0/pmlzS//+Kf3JbC8h3EpLa+FWksIskcytCrfWrGnc6IvA==", + "dependencies": { + "Microsoft.Extensions.Http.Polly": "9.0.0-rc.2.24474.3", + "Microsoft.Extensions.Http.Resilience": "9.0.0-preview.9.24507.7", + "OpenIddict.Validation": "6.0.0-preview3.24551.41" + } + }, + "Polly": { + "type": "Transitive", + "resolved": "7.2.4", + "contentHash": "bw00Ck5sh6ekduDE3mnCo1ohzuad946uslCDEENu3091+6UKnBuKLo4e+yaNcCzXxOZCXWY2gV4a35+K1d4LDA==" + }, + "Polly.Core": { + "type": "Transitive", + "resolved": "8.4.2", + "contentHash": "BpE2I6HBYYA5tF0Vn4eoQOGYTYIK1BlF5EXVgkWGn3mqUUjbXAr13J6fZVbp7Q3epRR8yshacBMlsHMhpOiV3g==" + }, + "Polly.Extensions": { + "type": "Transitive", + "resolved": "8.4.2", + "contentHash": "GZ9vRVmR0jV2JtZavt+pGUsQ1O1cuRKG7R7VOZI6ZDy9y6RNPvRvXK1tuS4ffUrv8L0FTea59oEuQzgS0R7zSA==", + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0", + "Polly.Core": "8.4.2" + } + }, + "Polly.Extensions.Http": { + "type": "Transitive", + "resolved": "3.0.0", + "contentHash": "drrG+hB3pYFY7w1c3BD+lSGYvH2oIclH8GRSehgfyP5kjnFnHKQuuBhuHLv+PWyFuaTDyk/vfRpnxOzd11+J8g==", + "dependencies": { + "Polly": "7.1.0" + } + }, + "Polly.RateLimiting": { + "type": "Transitive", + "resolved": "8.4.2", + "contentHash": "ehTImQ/eUyO07VYW2WvwSmU9rRH200SKJ/3jku9rOkyWE0A2JxNFmAVms8dSn49QLSjmjFRRSgfNyOgr/2PSmA==", + "dependencies": { + "Polly.Core": "8.4.2", + "System.Threading.RateLimiting": "8.0.0" + } + }, "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", @@ -1092,6 +1510,38 @@ "Serilog": "4.0.0" } }, + "Swashbuckle.AspNetCore": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "aF6oCgMy8CC17cSbILAw9J4UVhqOE+0Z11V8JstA+pIrXcY8ZbNL3ayHOWKZm0NdHMS6RI1k5sFVfMkpZOobvw==", + "dependencies": { + "Microsoft.Extensions.ApiDescription.Server": "6.0.5", + "Swashbuckle.AspNetCore.Swagger": "7.0.0", + "Swashbuckle.AspNetCore.SwaggerGen": "7.0.0", + "Swashbuckle.AspNetCore.SwaggerUI": "7.0.0" + } + }, + "Swashbuckle.AspNetCore.Swagger": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "Y2QnwZkuszoIYpz069xqDU0h/rklVedE4a0NOdb8HSDTcXCmsi7Zm2RGdJccde5MojHmEhDmZggCO1wgpfZ2IA==", + "dependencies": { + "Microsoft.OpenApi": "1.6.22" + } + }, + "Swashbuckle.AspNetCore.SwaggerGen": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "f/urqk9zkb5ZXc3ljLNP++JgYe2HTlA4WaIaO1DLRQLRFh3HXIZakFfMfTWX1T8NVqeMyJF7MzETN4HsokxNuQ==", + "dependencies": { + "Swashbuckle.AspNetCore.Swagger": "7.0.0" + } + }, + "Swashbuckle.AspNetCore.SwaggerUI": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "rJJony+jsxvpfJM9ZGVxjp0DVpalZv8cAhiMSLW6L2hgUWb7k5qPVuzQHWXtkT8lrG1hQ8vWeR+HUwgCQm9J3A==" + }, "System.AppContext": { "type": "Transitive", "resolved": "4.3.0", @@ -1881,6 +2331,11 @@ "resolved": "8.0.0", "contentHash": "cIed5+HuYz+eV9yu9TH95zPkqmm1J9Qps9wxjB335sU8tsqc2kGdlTEH9FZzZeCS8a7mNSEsN8ZkyhQp1gfdEw==" }, + "System.Threading.RateLimiting": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "7mu9v0QDv66ar3DpGSZHg9NuNcxDaaAcnMULuZlaTpP9+hwXhrxNGsF5GmLkSHxFdb5bBc1TzeujsRgTrPWi+Q==" + }, "System.Threading.Tasks": { "type": "Transitive", "resolved": "4.3.0",