diff --git a/.github/README.md b/.github/README.md index 49d2bc5..ed6d3cb 100644 --- a/.github/README.md +++ b/.github/README.md @@ -1,10 +1,10 @@ # Reading Time -[![Documentation](https://img.shields.io/badge/Documentation-123?color=394933&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iY3VycmVudENvbG9yIiBjb2xvcj0id2hpdGUiIGNsYXNzPSJiaSBiaS1ib29rIiB2aWV3Qm94PSIwIDAgMTYgMTYiPgogIDxwYXRoIGQ9Ik0xIDIuODI4Yy44ODUtLjM3IDIuMTU0LS43NjkgMy4zODgtLjg5MyAxLjMzLS4xMzQgMi40NTguMDYzIDMuMTEyLjc1MnY5Ljc0NmMtLjkzNS0uNTMtMi4xMi0uNjAzLTMuMjEzLS40OTMtMS4xOC4xMi0yLjM3LjQ2MS0zLjI4Ny44MTF6bTcuNS0uMTQxYy42NTQtLjY4OSAxLjc4Mi0uODg2IDMuMTEyLS43NTIgMS4yMzQuMTI0IDIuNTAzLjUyMyAzLjM4OC44OTN2OS45MjNjLS45MTgtLjM1LTIuMTA3LS42OTItMy4yODctLjgxLTEuMDk0LS4xMTEtMi4yNzgtLjAzOS0zLjIxMy40OTJ6TTggMS43ODNDNy4wMTUuOTM2IDUuNTg3LjgxIDQuMjg3Ljk0Yy0xLjUxNC4xNTMtMy4wNDIuNjcyLTMuOTk0IDEuMTA1QS41LjUgMCAwIDAgMCAyLjV2MTFhLjUuNSAwIDAgMCAuNzA3LjQ1NWMuODgyLS40IDIuMzAzLS44ODEgMy42OC0xLjAyIDEuNDA5LS4xNDIgMi41OS4wODcgMy4yMjMuODc3YS41LjUgMCAwIDAgLjc4IDBjLjYzMy0uNzkgMS44MTQtMS4wMTkgMy4yMjItLjg3NyAxLjM3OC4xMzkgMi44LjYyIDMuNjgxIDEuMDJBLjUuNSAwIDAgMCAxNiAxMy41di0xMWEuNS41IDAgMCAwLS4yOTMtLjQ1NWMtLjk1Mi0uNDMzLTIuNDgtLjk1Mi0zLjk5NC0xLjEwNUMxMC40MTMuODA5IDguOTg1LjkzNiA4IDEuNzgzIi8+Cjwvc3ZnPg==)](https://docs.jcdc.dev/jcdcdev-umbraco-readingtime/latest) -[![Umbraco Marketplace](https://img.shields.io/badge/Umbraco%20Marketplace-%23f5c1bc?logo=umbraco&logoColor=162335)](https://marketplace.umbraco.com/package/jcdcdev.Umbraco.ReadingTime) -[![GitHub](https://img.shields.io/badge/GitHub-1?logo=github&color=232925)](https://github.com/jcdcdev/jcdcdev.Umbraco.ReadingTime) -[![NuGet Downloads](https://img.shields.io/nuget/dt/jcdcdev.Umbraco.ReadingTime?labelColor=4536d3&color=4536d3&label=NuGet&logo=nuget)](https://www.nuget.org/packages/jcdcdev.Umbraco.ReadingTime) -[![Project Website](https://img.shields.io/badge/Project%20Website-jcdcdev?color=3c4834&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0id2hpdGUiIGNsYXNzPSJiaSBiaS1wYy1kaXNwbGF5IiB2aWV3Qm94PSIwIDAgMTYgMTYiPgogIDxwYXRoIGQ9Ik04IDFhMSAxIDAgMCAxIDEtMWg2YTEgMSAwIDAgMSAxIDF2MTRhMSAxIDAgMCAxLTEgMUg5YTEgMSAwIDAgMS0xLTF6bTEgMTMuNWEuNS41IDAgMSAwIDEgMCAuNS41IDAgMCAwLTEgMG0yIDBhLjUuNSAwIDEgMCAxIDAgLjUuNSAwIDAgMC0xIDBNOS41IDFhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMXpNOSAzLjVhLjUuNSAwIDAgMCAuNS41aDVhLjUuNSAwIDAgMCAwLTFoLTVhLjUuNSAwIDAgMC0uNS41TTEuNSAyQTEuNSAxLjUgMCAwIDAgMCAzLjV2N0ExLjUgMS41IDAgMCAwIDEuNSAxMkg2djJoLS41YS41LjUgMCAwIDAgMCAxSDd2LTRIMS41YS41LjUgMCAwIDEtLjUtLjV2LTdhLjUuNSAwIDAgMSAuNS0uNUg3VjJ6Ii8+Cjwvc3ZnPg==)](https://jcdc.dev/umbraco-packages/reading-time) +[![Documentation](https://img.shields.io/badge/Documentation-123?color=394933&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iY3VycmVudENvbG9yIiBjb2xvcj0id2hpdGUiIGNsYXNzPSJiaSBiaS1ib29rIiB2aWV3Qm94PSIwIDAgMTYgMTYiPgogIDxwYXRoIGQ9Ik0xIDIuODI4Yy44ODUtLjM3IDIuMTU0LS43NjkgMy4zODgtLjg5MyAxLjMzLS4xMzQgMi40NTguMDYzIDMuMTEyLjc1MnY5Ljc0NmMtLjkzNS0uNTMtMi4xMi0uNjAzLTMuMjEzLS40OTMtMS4xOC4xMi0yLjM3LjQ2MS0zLjI4Ny44MTF6bTcuNS0uMTQxYy42NTQtLjY4OSAxLjc4Mi0uODg2IDMuMTEyLS43NTIgMS4yMzQuMTI0IDIuNTAzLjUyMyAzLjM4OC44OTN2OS45MjNjLS45MTgtLjM1LTIuMTA3LS42OTItMy4yODctLjgxLTEuMDk0LS4xMTEtMi4yNzgtLjAzOS0zLjIxMy40OTJ6TTggMS43ODNDNy4wMTUuOTM2IDUuNTg3LjgxIDQuMjg3Ljk0Yy0xLjUxNC4xNTMtMy4wNDIuNjcyLTMuOTk0IDEuMTA1QS41LjUgMCAwIDAgMCAyLjV2MTFhLjUuNSAwIDAgMCAuNzA3LjQ1NWMuODgyLS40IDIuMzAzLS44ODEgMy42OC0xLjAyIDEuNDA5LS4xNDIgMi41OS4wODcgMy4yMjMuODc3YS41LjUgMCAwIDAgLjc4IDBjLjYzMy0uNzkgMS44MTQtMS4wMTkgMy4yMjItLjg3NyAxLjM3OC4xMzkgMi44LjYyIDMuNjgxIDEuMDJBLjUuNSAwIDAgMCAxNiAxMy41di0xMWEuNS41IDAgMCAwLS4yOTMtLjQ1NWMtLjk1Mi0uNDMzLTIuNDgtLjk1Mi0zLjk5NC0xLjEwNUMxMC40MTMuODA5IDguOTg1LjkzNiA4IDEuNzgzIi8+Cjwvc3ZnPg==&style=for-the-badge)](https://docs.jcdc.dev/jcdcdev-umbraco-readingtime/latest) +[![Umbraco Marketplace](https://img.shields.io/badge/Umbraco%20Marketplace-%23f5c1bc?logo=umbraco&logoColor=162335&style=for-the-badge)](https://marketplace.umbraco.com/package/jcdcdev.Umbraco.ReadingTime) +[![GitHub](https://img.shields.io/badge/GitHub-1?logo=github&color=232925&style=for-the-badge)](https://github.com/jcdcdev/jcdcdev.Umbraco.ReadingTime) +[![NuGet Downloads](https://img.shields.io/nuget/dt/jcdcdev.Umbraco.ReadingTime?labelColor=4536d3&color=4536d3&label=NuGet&logo=nuget&style=for-the-badge)](https://www.nuget.org/packages/jcdcdev.Umbraco.ReadingTime) +[![Project Website](https://img.shields.io/badge/Project%20Website-jcdcdev?color=3c4834&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0id2hpdGUiIGNsYXNzPSJiaSBiaS1wYy1kaXNwbGF5IiB2aWV3Qm94PSIwIDAgMTYgMTYiPgogIDxwYXRoIGQ9Ik04IDFhMSAxIDAgMCAxIDEtMWg2YTEgMSAwIDAgMSAxIDF2MTRhMSAxIDAgMCAxLTEgMUg5YTEgMSAwIDAgMS0xLTF6bTEgMTMuNWEuNS41IDAgMSAwIDEgMCAuNS41IDAgMCAwLTEgMG0yIDBhLjUuNSAwIDEgMCAxIDAgLjUuNSAwIDAgMC0xIDBNOS41IDFhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMXpNOSAzLjVhLjUuNSAwIDAgMCAuNS41aDVhLjUuNSAwIDAgMCAwLTFoLTVhLjUuNSAwIDAgMC0uNS41TTEuNSAyQTEuNSAxLjUgMCAwIDAgMCAzLjV2N0ExLjUgMS41IDAgMCAwIDEuNSAxMkg2djJoLS41YS41LjUgMCAwIDAgMCAxSDd2LTRIMS41YS41LjUgMCAwIDEtLjUtLjV2LTdhLjUuNSAwIDAgMSAuNS0uNUg3VjJ6Ii8+Cjwvc3ZnPg==&style=for-the-badge)](https://jcdc.dev/umbraco-packages/reading-time) Custom Data Type for calculating reading time. With full variant support! @@ -50,6 +50,7 @@ Contributions to this package are most welcome! Please visit the [Contributing]( Thank you to the following projects and individuals for their contributions. High five, you rock! 🤘🦄 - LottePitcher - [opinionated-package-starter](https://github.com/LottePitcher/opinionated-package-starter) +- Matthew-Wise - [Matthew-Wise](https://github.com/Matthew-Wise) diff --git a/docs/README_nuget.md b/docs/README_nuget.md index 36c319b..f0b2f5a 100644 --- a/docs/README_nuget.md +++ b/docs/README_nuget.md @@ -1,10 +1,10 @@ # Reading Time -[![Documentation](https://img.shields.io/badge/Documentation-123?color=394933&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iY3VycmVudENvbG9yIiBjb2xvcj0id2hpdGUiIGNsYXNzPSJiaSBiaS1ib29rIiB2aWV3Qm94PSIwIDAgMTYgMTYiPgogIDxwYXRoIGQ9Ik0xIDIuODI4Yy44ODUtLjM3IDIuMTU0LS43NjkgMy4zODgtLjg5MyAxLjMzLS4xMzQgMi40NTguMDYzIDMuMTEyLjc1MnY5Ljc0NmMtLjkzNS0uNTMtMi4xMi0uNjAzLTMuMjEzLS40OTMtMS4xOC4xMi0yLjM3LjQ2MS0zLjI4Ny44MTF6bTcuNS0uMTQxYy42NTQtLjY4OSAxLjc4Mi0uODg2IDMuMTEyLS43NTIgMS4yMzQuMTI0IDIuNTAzLjUyMyAzLjM4OC44OTN2OS45MjNjLS45MTgtLjM1LTIuMTA3LS42OTItMy4yODctLjgxLTEuMDk0LS4xMTEtMi4yNzgtLjAzOS0zLjIxMy40OTJ6TTggMS43ODNDNy4wMTUuOTM2IDUuNTg3LjgxIDQuMjg3Ljk0Yy0xLjUxNC4xNTMtMy4wNDIuNjcyLTMuOTk0IDEuMTA1QS41LjUgMCAwIDAgMCAyLjV2MTFhLjUuNSAwIDAgMCAuNzA3LjQ1NWMuODgyLS40IDIuMzAzLS44ODEgMy42OC0xLjAyIDEuNDA5LS4xNDIgMi41OS4wODcgMy4yMjMuODc3YS41LjUgMCAwIDAgLjc4IDBjLjYzMy0uNzkgMS44MTQtMS4wMTkgMy4yMjItLjg3NyAxLjM3OC4xMzkgMi44LjYyIDMuNjgxIDEuMDJBLjUuNSAwIDAgMCAxNiAxMy41di0xMWEuNS41IDAgMCAwLS4yOTMtLjQ1NWMtLjk1Mi0uNDMzLTIuNDgtLjk1Mi0zLjk5NC0xLjEwNUMxMC40MTMuODA5IDguOTg1LjkzNiA4IDEuNzgzIi8+Cjwvc3ZnPg==)](https://docs.jcdc.dev/jcdcdev-umbraco-readingtime/latest) -[![Umbraco Marketplace](https://img.shields.io/badge/Umbraco%20Marketplace-%23f5c1bc?logo=umbraco&logoColor=162335)](https://marketplace.umbraco.com/package/jcdcdev.Umbraco.ReadingTime) -[![GitHub](https://img.shields.io/badge/GitHub-1?logo=github&color=232925)](https://github.com/jcdcdev/jcdcdev.Umbraco.ReadingTime) -[![NuGet Downloads](https://img.shields.io/nuget/dt/jcdcdev.Umbraco.ReadingTime?labelColor=4536d3&color=4536d3&label=NuGet&logo=nuget)](https://www.nuget.org/packages/jcdcdev.Umbraco.ReadingTime) -[![Project Website](https://img.shields.io/badge/Project%20Website-jcdcdev?color=3c4834&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0id2hpdGUiIGNsYXNzPSJiaSBiaS1wYy1kaXNwbGF5IiB2aWV3Qm94PSIwIDAgMTYgMTYiPgogIDxwYXRoIGQ9Ik04IDFhMSAxIDAgMCAxIDEtMWg2YTEgMSAwIDAgMSAxIDF2MTRhMSAxIDAgMCAxLTEgMUg5YTEgMSAwIDAgMS0xLTF6bTEgMTMuNWEuNS41IDAgMSAwIDEgMCAuNS41IDAgMCAwLTEgMG0yIDBhLjUuNSAwIDEgMCAxIDAgLjUuNSAwIDAgMC0xIDBNOS41IDFhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMXpNOSAzLjVhLjUuNSAwIDAgMCAuNS41aDVhLjUuNSAwIDAgMCAwLTFoLTVhLjUuNSAwIDAgMC0uNS41TTEuNSAyQTEuNSAxLjUgMCAwIDAgMCAzLjV2N0ExLjUgMS41IDAgMCAwIDEuNSAxMkg2djJoLS41YS41LjUgMCAwIDAgMCAxSDd2LTRIMS41YS41LjUgMCAwIDEtLjUtLjV2LTdhLjUuNSAwIDAgMSAuNS0uNUg3VjJ6Ii8+Cjwvc3ZnPg==)](https://jcdc.dev/umbraco-packages/reading-time) +[![Documentation](https://img.shields.io/badge/Documentation-123?color=394933&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iY3VycmVudENvbG9yIiBjb2xvcj0id2hpdGUiIGNsYXNzPSJiaSBiaS1ib29rIiB2aWV3Qm94PSIwIDAgMTYgMTYiPgogIDxwYXRoIGQ9Ik0xIDIuODI4Yy44ODUtLjM3IDIuMTU0LS43NjkgMy4zODgtLjg5MyAxLjMzLS4xMzQgMi40NTguMDYzIDMuMTEyLjc1MnY5Ljc0NmMtLjkzNS0uNTMtMi4xMi0uNjAzLTMuMjEzLS40OTMtMS4xOC4xMi0yLjM3LjQ2MS0zLjI4Ny44MTF6bTcuNS0uMTQxYy42NTQtLjY4OSAxLjc4Mi0uODg2IDMuMTEyLS43NTIgMS4yMzQuMTI0IDIuNTAzLjUyMyAzLjM4OC44OTN2OS45MjNjLS45MTgtLjM1LTIuMTA3LS42OTItMy4yODctLjgxLTEuMDk0LS4xMTEtMi4yNzgtLjAzOS0zLjIxMy40OTJ6TTggMS43ODNDNy4wMTUuOTM2IDUuNTg3LjgxIDQuMjg3Ljk0Yy0xLjUxNC4xNTMtMy4wNDIuNjcyLTMuOTk0IDEuMTA1QS41LjUgMCAwIDAgMCAyLjV2MTFhLjUuNSAwIDAgMCAuNzA3LjQ1NWMuODgyLS40IDIuMzAzLS44ODEgMy42OC0xLjAyIDEuNDA5LS4xNDIgMi41OS4wODcgMy4yMjMuODc3YS41LjUgMCAwIDAgLjc4IDBjLjYzMy0uNzkgMS44MTQtMS4wMTkgMy4yMjItLjg3NyAxLjM3OC4xMzkgMi44LjYyIDMuNjgxIDEuMDJBLjUuNSAwIDAgMCAxNiAxMy41di0xMWEuNS41IDAgMCAwLS4yOTMtLjQ1NWMtLjk1Mi0uNDMzLTIuNDgtLjk1Mi0zLjk5NC0xLjEwNUMxMC40MTMuODA5IDguOTg1LjkzNiA4IDEuNzgzIi8+Cjwvc3ZnPg==&style=for-the-badge)](https://docs.jcdc.dev/jcdcdev-umbraco-readingtime/latest) +[![Umbraco Marketplace](https://img.shields.io/badge/Umbraco%20Marketplace-%23f5c1bc?logo=umbraco&logoColor=162335&style=for-the-badge)](https://marketplace.umbraco.com/package/jcdcdev.Umbraco.ReadingTime) +[![GitHub](https://img.shields.io/badge/GitHub-1?logo=github&color=232925&style=for-the-badge)](https://github.com/jcdcdev/jcdcdev.Umbraco.ReadingTime) +[![NuGet Downloads](https://img.shields.io/nuget/dt/jcdcdev.Umbraco.ReadingTime?labelColor=4536d3&color=4536d3&label=NuGet&logo=nuget&style=for-the-badge)](https://www.nuget.org/packages/jcdcdev.Umbraco.ReadingTime) +[![Project Website](https://img.shields.io/badge/Project%20Website-jcdcdev?color=3c4834&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0id2hpdGUiIGNsYXNzPSJiaSBiaS1wYy1kaXNwbGF5IiB2aWV3Qm94PSIwIDAgMTYgMTYiPgogIDxwYXRoIGQ9Ik04IDFhMSAxIDAgMCAxIDEtMWg2YTEgMSAwIDAgMSAxIDF2MTRhMSAxIDAgMCAxLTEgMUg5YTEgMSAwIDAgMS0xLTF6bTEgMTMuNWEuNS41IDAgMSAwIDEgMCAuNS41IDAgMCAwLTEgMG0yIDBhLjUuNSAwIDEgMCAxIDAgLjUuNSAwIDAgMC0xIDBNOS41IDFhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMXpNOSAzLjVhLjUuNSAwIDAgMCAuNS41aDVhLjUuNSAwIDAgMCAwLTFoLTVhLjUuNSAwIDAgMC0uNS41TTEuNSAyQTEuNSAxLjUgMCAwIDAgMCAzLjV2N0ExLjUgMS41IDAgMCAwIDEuNSAxMkg2djJoLS41YS41LjUgMCAwIDAgMCAxSDd2LTRIMS41YS41LjUgMCAwIDEtLjUtLjV2LTdhLjUuNSAwIDAgMSAuNS0uNUg3VjJ6Ii8+Cjwvc3ZnPg==&style=for-the-badge)](https://jcdc.dev/umbraco-packages/reading-time) Custom Data Type for calculating reading time. With full variant support! @@ -33,6 +33,7 @@ Contributions to this package are most welcome! Please visit the [Contributing]( Thank you to the following projects and individuals for their contributions. High five, you rock! 🤘🦄 - LottePitcher - [opinionated-package-starter](https://github.com/LottePitcher/opinionated-package-starter) +- Matthew-Wise - [Matthew-Wise](https://github.com/Matthew-Wise) diff --git a/src/jcdcdev.Umbraco.ReadingTime.Client/package-lock.json b/src/jcdcdev.Umbraco.ReadingTime.Client/package-lock.json index e255b47..2d9b78d 100644 --- a/src/jcdcdev.Umbraco.ReadingTime.Client/package-lock.json +++ b/src/jcdcdev.Umbraco.ReadingTime.Client/package-lock.json @@ -8,7 +8,7 @@ "name": "reading-time", "version": "0.0.0", "devDependencies": { - "@umbraco-cms/backoffice": "^16.4.0", + "@umbraco-cms/backoffice": "^16.5.0", "lit": "^3.3.2", "typescript": "^5.9.3", "vite": "^7.3.1" @@ -544,20 +544,20 @@ "peer": true }, "node_modules/@lit-labs/ssr-dom-shim": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.4.0.tgz", - "integrity": "sha512-ficsEARKnmmW5njugNYKipTm4SFnbik7CXtoencDZzmzo/dQ+2Q0bgkzJuoJP20Aj0F+izzJjOqsnkd6F/o1bw==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.5.1.tgz", + "integrity": "sha512-Aou5UdlSpr5whQe8AA/bZG0jMj96CoJIWbGfZ91qieWu5AWUMKw8VR/pAkQkJYvBNhmCcWnZlyyk5oze8JIqYA==", "dev": true, "license": "BSD-3-Clause" }, "node_modules/@lit/reactive-element": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.1.1.tgz", - "integrity": "sha512-N+dm5PAYdQ8e6UlywyyrgI2t++wFGXfHx+dSJ1oBrg6FAxUj40jId++EaRm80MKX5JnlH1sBsyZ5h0bcZKemCg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.1.2.tgz", + "integrity": "sha512-pbCDiVMnne1lYUIaYNN5wrwQXDtHaYtg7YEFPeW+hws6U47WeFvISGUWekPGKWOP1ygrs0ef0o1VJMk1exos5A==", "dev": true, "license": "BSD-3-Clause", "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.4.0" + "@lit-labs/ssr-dom-shim": "^1.5.0" } }, "node_modules/@microsoft/signalr": { @@ -584,9 +584,9 @@ "peer": true }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.5.tgz", - "integrity": "sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.57.1.tgz", + "integrity": "sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==", "cpu": [ "arm" ], @@ -598,9 +598,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.5.tgz", - "integrity": "sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.57.1.tgz", + "integrity": "sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==", "cpu": [ "arm64" ], @@ -612,9 +612,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.5.tgz", - "integrity": "sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.57.1.tgz", + "integrity": "sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==", "cpu": [ "arm64" ], @@ -626,9 +626,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.5.tgz", - "integrity": "sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.57.1.tgz", + "integrity": "sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==", "cpu": [ "x64" ], @@ -640,9 +640,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.5.tgz", - "integrity": "sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.57.1.tgz", + "integrity": "sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==", "cpu": [ "arm64" ], @@ -654,9 +654,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.5.tgz", - "integrity": "sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.57.1.tgz", + "integrity": "sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==", "cpu": [ "x64" ], @@ -668,9 +668,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.5.tgz", - "integrity": "sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.57.1.tgz", + "integrity": "sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==", "cpu": [ "arm" ], @@ -682,9 +682,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.5.tgz", - "integrity": "sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.57.1.tgz", + "integrity": "sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==", "cpu": [ "arm" ], @@ -696,9 +696,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.5.tgz", - "integrity": "sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.57.1.tgz", + "integrity": "sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==", "cpu": [ "arm64" ], @@ -710,9 +710,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.5.tgz", - "integrity": "sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.57.1.tgz", + "integrity": "sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==", "cpu": [ "arm64" ], @@ -724,9 +724,23 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.5.tgz", - "integrity": "sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.57.1.tgz", + "integrity": "sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.57.1.tgz", + "integrity": "sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==", "cpu": [ "loong64" ], @@ -738,9 +752,23 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.5.tgz", - "integrity": "sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.57.1.tgz", + "integrity": "sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.57.1.tgz", + "integrity": "sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==", "cpu": [ "ppc64" ], @@ -752,9 +780,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.5.tgz", - "integrity": "sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.57.1.tgz", + "integrity": "sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==", "cpu": [ "riscv64" ], @@ -766,9 +794,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.5.tgz", - "integrity": "sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.57.1.tgz", + "integrity": "sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==", "cpu": [ "riscv64" ], @@ -780,9 +808,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.5.tgz", - "integrity": "sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.57.1.tgz", + "integrity": "sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==", "cpu": [ "s390x" ], @@ -794,9 +822,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.5.tgz", - "integrity": "sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.57.1.tgz", + "integrity": "sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==", "cpu": [ "x64" ], @@ -808,9 +836,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.5.tgz", - "integrity": "sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.57.1.tgz", + "integrity": "sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==", "cpu": [ "x64" ], @@ -821,10 +849,24 @@ "linux" ] }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.57.1.tgz", + "integrity": "sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.5.tgz", - "integrity": "sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.57.1.tgz", + "integrity": "sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==", "cpu": [ "arm64" ], @@ -836,9 +878,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.5.tgz", - "integrity": "sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.57.1.tgz", + "integrity": "sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==", "cpu": [ "arm64" ], @@ -850,9 +892,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.5.tgz", - "integrity": "sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.57.1.tgz", + "integrity": "sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==", "cpu": [ "ia32" ], @@ -864,9 +906,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.5.tgz", - "integrity": "sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.57.1.tgz", + "integrity": "sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==", "cpu": [ "x64" ], @@ -878,9 +920,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.5.tgz", - "integrity": "sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.57.1.tgz", + "integrity": "sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==", "cpu": [ "x64" ], @@ -1509,9 +1551,9 @@ "license": "MIT" }, "node_modules/@umbraco-cms/backoffice": { - "version": "16.4.0", - "resolved": "https://registry.npmjs.org/@umbraco-cms/backoffice/-/backoffice-16.4.0.tgz", - "integrity": "sha512-n2PAZFVBfDoNNbP9Ku7CZ6EHRleViapU13j1/Dn2m8X2ewu2qHR3JEwHT5Gh/kjq8We5jVQTD6BzhDoUCqM/ug==", + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/@umbraco-cms/backoffice/-/backoffice-16.5.0.tgz", + "integrity": "sha512-sp1NqBgPJbqiGEDJjFOqQxTU9gY9CVrmNxS0mV+4erLrYcAK+fnb/SzTW6NOSW9fwxnjTayn77NwbGbjhvUolw==", "dev": true, "license": "MIT", "engines": { @@ -2809,9 +2851,9 @@ "peer": true }, "node_modules/default-browser": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.4.0.tgz", - "integrity": "sha512-XDuvSq38Hr1MdN47EDvYtx3U0MTqpCEn+F6ft8z2vYDzMrvQhVp0ui9oQdqW3MvK3vqUETglt1tVGgjLuJ5izg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.0.tgz", + "integrity": "sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==", "dev": true, "license": "MIT", "peer": true, @@ -2882,9 +2924,9 @@ } }, "node_modules/dompurify": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.0.tgz", - "integrity": "sha512-r+f6MYR1gGN1eJv0TVQbhA7if/U7P87cdPl3HN5rikqaBSBxLiCb/b9O+2eG0cxz0ghyU+mU1QkbsOwERMYlWQ==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.1.tgz", + "integrity": "sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==", "dev": true, "license": "(MPL-2.0 OR Apache-2.0)", "peer": true, @@ -3212,21 +3254,21 @@ } }, "node_modules/lit-element": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.2.1.tgz", - "integrity": "sha512-WGAWRGzirAgyphK2urmYOV72tlvnxw7YfyLDgQ+OZnM9vQQBQnumQ7jUJe6unEzwGU3ahFOjuz1iz1jjrpCPuw==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.2.2.tgz", + "integrity": "sha512-aFKhNToWxoyhkNDmWZwEva2SlQia+jfG0fjIWV//YeTaWrVnOxD89dPKfigCUspXFmjzOEUQpOkejH5Ly6sG0w==", "dev": true, "license": "BSD-3-Clause", "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.4.0", + "@lit-labs/ssr-dom-shim": "^1.5.0", "@lit/reactive-element": "^2.1.0", "lit-html": "^3.3.0" } }, "node_modules/lit-html": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.3.1.tgz", - "integrity": "sha512-S9hbyDu/vs1qNrithiNyeyv64c9yqiW9l+DBgI18fL+MTvOtWoFR0FWiyq1TxaYef5wNlpEmzlXoBlZEO+WjoA==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.3.2.tgz", + "integrity": "sha512-Qy9hU88zcmaxBXcc10ZpdK7cOLXvXpRoBxERdtqV9QOrfpMZZ6pSYP91LhpPtap3sFMUiL7Tw2RImbe0Al2/kw==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -3234,9 +3276,9 @@ } }, "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", + "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", "dev": true, "license": "MIT", "peer": true @@ -3385,26 +3427,32 @@ "peer": true }, "node_modules/nypm": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.6.2.tgz", - "integrity": "sha512-7eM+hpOtrKrBDCh7Ypu2lJ9Z7PNZBdi/8AT3AX8xoCj43BBVHD0hPSTEvMtkMpfs8FCqBGhxB+uToIQimA111g==", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.6.4.tgz", + "integrity": "sha512-1TvCKjZyyklN+JJj2TS3P4uSQEInrM/HkkuSXsEzm1ApPgBffOn8gFguNnZf07r/1X6vlryfIqMUkJKQMzlZiw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "citty": "^0.1.6", - "consola": "^3.4.2", + "citty": "^0.2.0", "pathe": "^2.0.3", - "pkg-types": "^2.3.0", - "tinyexec": "^1.0.1" + "tinyexec": "^1.0.2" }, "bin": { "nypm": "dist/cli.mjs" }, "engines": { - "node": "^14.16.0 || >=16.10.0" + "node": ">=18" } }, + "node_modules/nypm/node_modules/citty": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/citty/-/citty-0.2.0.tgz", + "integrity": "sha512-8csy5IBFI2ex2hTVpaHN2j+LNE199AgiI7y4dMintrr8i0lQiFn+0AWMZrWdHKIgMOer65f8IThysYhoReqjWA==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/ohash": { "version": "2.0.11", "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz", @@ -3450,9 +3498,9 @@ "peer": true }, "node_modules/perfect-debounce": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-2.0.0.tgz", - "integrity": "sha512-fkEH/OBiKrqqI/yIgjR92lMfs2K8105zt/VT6+7eTjNwisrsh47CeIED9z58zI7DfKdH3uHAn25ziRZn3kgAow==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-2.1.0.tgz", + "integrity": "sha512-LjgdTytVFXeUgtHZr9WYViYSM/g8MkcTPYDlPa3cDqMirHjKiSZPYd6DoL7pK8AJQr+uWkQvCjHNdiMqsrJs+g==", "dev": true, "license": "MIT", "peer": true @@ -3582,9 +3630,9 @@ } }, "node_modules/prosemirror-history": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.4.1.tgz", - "integrity": "sha512-2JZD8z2JviJrboD9cPuX/Sv/1ChFng+xh2tChQ2X4bB2HeK+rra/bmJ3xGntCcjhOqIzSDG6Id7e8RJ9QPXLEQ==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.5.0.tgz", + "integrity": "sha512-zlzTiH01eKA55UAf1MEjtssJeHnGxO0j4K4Dpx+gnmX9n+SHNlDqI2oO1Kv1iPN5B1dm5fsljCfqKF9nFL6HRg==", "dev": true, "license": "MIT", "peer": true, @@ -3620,9 +3668,9 @@ } }, "node_modules/prosemirror-markdown": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/prosemirror-markdown/-/prosemirror-markdown-1.13.2.tgz", - "integrity": "sha512-FPD9rHPdA9fqzNmIIDhhnYQ6WgNoSWX9StUZ8LEKapaXU9i6XgykaHKhp6XMyXlOWetmaFgGDS/nu/w9/vUc5g==", + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/prosemirror-markdown/-/prosemirror-markdown-1.13.3.tgz", + "integrity": "sha512-3E+Et6cdXIH0EgN2tGYQ+EBT7N4kMiZFsW+hzx+aPtOmADDHWCdd2uUQb7yklJrfUYUOjEEu22BiN6UFgPe4cQ==", "dev": true, "license": "MIT", "peer": true, @@ -3647,9 +3695,9 @@ } }, "node_modules/prosemirror-model": { - "version": "1.25.3", - "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.25.3.tgz", - "integrity": "sha512-dY2HdaNXlARknJbrManZ1WyUtos+AP97AmvqdOQtWtrrC5g4mohVX5DTi9rXNFSk09eczLq9GuNTtq3EfMeMGA==", + "version": "1.25.4", + "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.25.4.tgz", + "integrity": "sha512-PIM7E43PBxKce8OQeezAs9j4TP+5yDpZVbuurd1h5phUxEKIu+G2a+EUZzIC5nS1mJktDJWzbqS23n1tsAf5QA==", "dev": true, "license": "MIT", "peer": true, @@ -3682,9 +3730,9 @@ } }, "node_modules/prosemirror-state": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.4.3.tgz", - "integrity": "sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==", + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.4.4.tgz", + "integrity": "sha512-6jiYHH2CIGbCfnxdHbXZ12gySFY/fz/ulZE333G6bPqIZ4F+TXo9ifiR86nAHpWnfoNjOb3o5ESi7J8Uz1jXHw==", "dev": true, "license": "MIT", "peer": true, @@ -3695,18 +3743,18 @@ } }, "node_modules/prosemirror-tables": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/prosemirror-tables/-/prosemirror-tables-1.8.1.tgz", - "integrity": "sha512-DAgDoUYHCcc6tOGpLVPSU1k84kCUWTWnfWX3UDy2Delv4ryH0KqTD6RBI6k4yi9j9I8gl3j8MkPpRD/vWPZbug==", + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/prosemirror-tables/-/prosemirror-tables-1.8.5.tgz", + "integrity": "sha512-V/0cDCsHKHe/tfWkeCmthNUcEp1IVO3p6vwN8XtwE9PZQLAZJigbw3QoraAdfJPir4NKJtNvOB8oYGKRl+t0Dw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "prosemirror-keymap": "^1.2.2", - "prosemirror-model": "^1.25.0", - "prosemirror-state": "^1.4.3", - "prosemirror-transform": "^1.10.3", - "prosemirror-view": "^1.39.1" + "prosemirror-keymap": "^1.2.3", + "prosemirror-model": "^1.25.4", + "prosemirror-state": "^1.4.4", + "prosemirror-transform": "^1.10.5", + "prosemirror-view": "^1.41.4" } }, "node_modules/prosemirror-trailing-node": { @@ -3727,9 +3775,9 @@ } }, "node_modules/prosemirror-transform": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.10.4.tgz", - "integrity": "sha512-pwDy22nAnGqNR1feOQKHxoFkkUtepoFAd3r2hbEDsnf4wp57kKA36hXsB3njA9FtONBEwSDnDeCiJe+ItD+ykw==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.11.0.tgz", + "integrity": "sha512-4I7Ce4KpygXb9bkiPS3hTEk4dSHorfRw8uI0pE8IhxlK2GXsqv5tIA7JUSxtSu7u8APVOTtbUBxTmnHIxVkIJw==", "dev": true, "license": "MIT", "peer": true, @@ -3738,9 +3786,9 @@ } }, "node_modules/prosemirror-view": { - "version": "1.41.3", - "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.41.3.tgz", - "integrity": "sha512-SqMiYMUQNNBP9kfPhLO8WXEk/fon47vc52FQsUiJzTBuyjKgEcoAwMyF04eQ4WZ2ArMn7+ReypYL60aKngbACQ==", + "version": "1.41.5", + "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.41.5.tgz", + "integrity": "sha512-UDQbIPnDrjE8tqUBbPmCOZgtd75htE6W3r0JCmY9bL6W1iemDM37MZEKC49d+tdQ0v/CKx4gjxLoLsfkD2NiZA==", "dev": true, "license": "MIT", "peer": true, @@ -3830,9 +3878,9 @@ "peer": true }, "node_modules/rollup": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.5.tgz", - "integrity": "sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.57.1.tgz", + "integrity": "sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==", "dev": true, "license": "MIT", "dependencies": { @@ -3846,28 +3894,31 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.52.5", - "@rollup/rollup-android-arm64": "4.52.5", - "@rollup/rollup-darwin-arm64": "4.52.5", - "@rollup/rollup-darwin-x64": "4.52.5", - "@rollup/rollup-freebsd-arm64": "4.52.5", - "@rollup/rollup-freebsd-x64": "4.52.5", - "@rollup/rollup-linux-arm-gnueabihf": "4.52.5", - "@rollup/rollup-linux-arm-musleabihf": "4.52.5", - "@rollup/rollup-linux-arm64-gnu": "4.52.5", - "@rollup/rollup-linux-arm64-musl": "4.52.5", - "@rollup/rollup-linux-loong64-gnu": "4.52.5", - "@rollup/rollup-linux-ppc64-gnu": "4.52.5", - "@rollup/rollup-linux-riscv64-gnu": "4.52.5", - "@rollup/rollup-linux-riscv64-musl": "4.52.5", - "@rollup/rollup-linux-s390x-gnu": "4.52.5", - "@rollup/rollup-linux-x64-gnu": "4.52.5", - "@rollup/rollup-linux-x64-musl": "4.52.5", - "@rollup/rollup-openharmony-arm64": "4.52.5", - "@rollup/rollup-win32-arm64-msvc": "4.52.5", - "@rollup/rollup-win32-ia32-msvc": "4.52.5", - "@rollup/rollup-win32-x64-gnu": "4.52.5", - "@rollup/rollup-win32-x64-msvc": "4.52.5", + "@rollup/rollup-android-arm-eabi": "4.57.1", + "@rollup/rollup-android-arm64": "4.57.1", + "@rollup/rollup-darwin-arm64": "4.57.1", + "@rollup/rollup-darwin-x64": "4.57.1", + "@rollup/rollup-freebsd-arm64": "4.57.1", + "@rollup/rollup-freebsd-x64": "4.57.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.57.1", + "@rollup/rollup-linux-arm-musleabihf": "4.57.1", + "@rollup/rollup-linux-arm64-gnu": "4.57.1", + "@rollup/rollup-linux-arm64-musl": "4.57.1", + "@rollup/rollup-linux-loong64-gnu": "4.57.1", + "@rollup/rollup-linux-loong64-musl": "4.57.1", + "@rollup/rollup-linux-ppc64-gnu": "4.57.1", + "@rollup/rollup-linux-ppc64-musl": "4.57.1", + "@rollup/rollup-linux-riscv64-gnu": "4.57.1", + "@rollup/rollup-linux-riscv64-musl": "4.57.1", + "@rollup/rollup-linux-s390x-gnu": "4.57.1", + "@rollup/rollup-linux-x64-gnu": "4.57.1", + "@rollup/rollup-linux-x64-musl": "4.57.1", + "@rollup/rollup-openbsd-x64": "4.57.1", + "@rollup/rollup-openharmony-arm64": "4.57.1", + "@rollup/rollup-win32-arm64-msvc": "4.57.1", + "@rollup/rollup-win32-ia32-msvc": "4.57.1", + "@rollup/rollup-win32-x64-gnu": "4.57.1", + "@rollup/rollup-win32-x64-msvc": "4.57.1", "fsevents": "~2.3.2" } }, @@ -3919,9 +3970,9 @@ } }, "node_modules/set-cookie-parser": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", - "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz", + "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==", "dev": true, "license": "MIT", "peer": true diff --git a/src/jcdcdev.Umbraco.ReadingTime.Client/package.json b/src/jcdcdev.Umbraco.ReadingTime.Client/package.json index 9be94fd..2dc7ae9 100644 --- a/src/jcdcdev.Umbraco.ReadingTime.Client/package.json +++ b/src/jcdcdev.Umbraco.ReadingTime.Client/package.json @@ -11,11 +11,11 @@ }, "devDependencies": { "lit": "^3.3.2", - "@umbraco-cms/backoffice": "^16.4.0", + "@umbraco-cms/backoffice": "^16.5.0", "typescript": "^5.9.3", "vite": "^7.3.1" }, "volta": { - "node": "22.12.0" + "node": "22.22.0" } } \ No newline at end of file diff --git a/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/client.gen.ts b/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/client.gen.ts index 326bc5d..eadcc39 100644 --- a/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/client.gen.ts +++ b/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/client.gen.ts @@ -1,7 +1,7 @@ // This file is auto-generated by @hey-api/openapi-ts -import type { ClientOptions } from './types.gen'; -import { type Config, type ClientOptions as DefaultClientOptions, createClient, createConfig } from './client'; +import { type ClientOptions, type Config, createClient, createConfig } from './client'; +import type { ClientOptions as ClientOptions2 } from './types.gen'; /** * The `createClientConfig()` function will be called on client initialization @@ -11,9 +11,9 @@ import { type Config, type ClientOptions as DefaultClientOptions, createClient, * `setConfig()`. This is useful for example if you're using Next.js * to ensure your client always has the correct values. */ -export type CreateClientConfig = (override?: Config) => Config & T>; +export type CreateClientConfig = (override?: Config) => Config & T>; -export const client = createClient(createConfig({ +export const client = createClient(createConfig({ baseUrl: 'http://localhost:54813', throwOnError: true -})); \ No newline at end of file +})); diff --git a/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/client/client.gen.ts b/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/client/client.gen.ts index 0c60a9a..a439d27 100644 --- a/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/client/client.gen.ts +++ b/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/client/client.gen.ts @@ -2,6 +2,7 @@ import { createSseClient } from '../core/serverSentEvents.gen'; import type { HttpMethod } from '../core/types.gen'; +import { getValidRequestBody } from '../core/utils.gen'; import type { Client, Config, @@ -60,12 +61,12 @@ export const createClient = (config: Config = {}): Client => { await opts.requestValidator(opts); } - if (opts.body && opts.bodySerializer) { + if (opts.body !== undefined && opts.bodySerializer) { opts.serializedBody = opts.bodySerializer(opts.body); } // remove Content-Type header if body is empty to avoid sending invalid requests - if (opts.serializedBody === undefined || opts.serializedBody === '') { + if (opts.body === undefined || opts.serializedBody === '') { opts.headers.delete('Content-Type'); } @@ -80,12 +81,12 @@ export const createClient = (config: Config = {}): Client => { const requestInit: ReqInit = { redirect: 'follow', ...opts, - body: opts.serializedBody, + body: getValidRequestBody(opts), }; let request = new Request(url, requestInit); - for (const fn of interceptors.request._fns) { + for (const fn of interceptors.request.fns) { if (fn) { request = await fn(request, opts); } @@ -96,7 +97,7 @@ export const createClient = (config: Config = {}): Client => { const _fetch = opts.fetch!; let response = await _fetch(request); - for (const fn of interceptors.response._fns) { + for (const fn of interceptors.response.fns) { if (fn) { response = await fn(response, request, opts); } @@ -108,23 +109,41 @@ export const createClient = (config: Config = {}): Client => { }; if (response.ok) { + const parseAs = + (opts.parseAs === 'auto' + ? getParseAs(response.headers.get('Content-Type')) + : opts.parseAs) ?? 'json'; + if ( response.status === 204 || response.headers.get('Content-Length') === '0' ) { + let emptyData: any; + switch (parseAs) { + case 'arrayBuffer': + case 'blob': + case 'text': + emptyData = await response[parseAs](); + break; + case 'formData': + emptyData = new FormData(); + break; + case 'stream': + emptyData = response.body; + break; + case 'json': + default: + emptyData = {}; + break; + } return opts.responseStyle === 'data' - ? {} + ? emptyData : { - data: {}, + data: emptyData, ...result, }; } - const parseAs = - (opts.parseAs === 'auto' - ? getParseAs(response.headers.get('Content-Type')) - : opts.parseAs) ?? 'json'; - let data: any; switch (parseAs) { case 'arrayBuffer': @@ -173,7 +192,7 @@ export const createClient = (config: Config = {}): Client => { const error = jsonError ?? textError; let finalError = error; - for (const fn of interceptors.error._fns) { + for (const fn of interceptors.error.fns) { if (fn) { finalError = (await fn(error, response, request, opts)) as string; } @@ -206,6 +225,15 @@ export const createClient = (config: Config = {}): Client => { body: opts.body as BodyInit | null | undefined, headers: opts.headers as unknown as Record, method, + onRequest: async (url, init) => { + let request = new Request(url, init); + for (const fn of interceptors.request.fns) { + if (fn) { + request = await fn(request, opts); + } + } + return request; + }, url, }); }; diff --git a/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/client/index.ts b/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/client/index.ts index 318a84b..cbf8dfe 100644 --- a/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/client/index.ts +++ b/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/client/index.ts @@ -8,6 +8,7 @@ export { urlSearchParamsBodySerializer, } from '../core/bodySerializer.gen'; export { buildClientParams } from '../core/params.gen'; +export { serializeQueryKeyValue } from '../core/queryKeySerializer.gen'; export { createClient } from './client.gen'; export type { Client, diff --git a/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/client/types.gen.ts b/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/client/types.gen.ts index 5bde938..1a005b5 100644 --- a/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/client/types.gen.ts +++ b/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/client/types.gen.ts @@ -26,7 +26,7 @@ export interface Config * * @default globalThis.fetch */ - fetch?: (request: Request) => ReturnType; + fetch?: typeof fetch; /** * Please don't use the Fetch client for Next.js applications. The `next` * options won't have any effect. diff --git a/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/client/utils.gen.ts b/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/client/utils.gen.ts index a475095..b4bcc4d 100644 --- a/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/client/utils.gen.ts +++ b/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/client/utils.gen.ts @@ -183,17 +183,27 @@ export const mergeConfigs = (a: Config, b: Config): Config => { return config; }; +const headersEntries = (headers: Headers): Array<[string, string]> => { + const entries: Array<[string, string]> = []; + headers.forEach((value, key) => { + entries.push([key, value]); + }); + return entries; +}; + export const mergeHeaders = ( ...headers: Array['headers'] | undefined> ): Headers => { const mergedHeaders = new Headers(); for (const header of headers) { - if (!header || typeof header !== 'object') { + if (!header) { continue; } const iterator = - header instanceof Headers ? header.entries() : Object.entries(header); + header instanceof Headers + ? headersEntries(header) + : Object.entries(header); for (const [key, value] of iterator) { if (value === null) { @@ -234,67 +244,61 @@ type ResInterceptor = ( ) => Res | Promise; class Interceptors { - _fns: (Interceptor | null)[]; + fns: Array = []; - constructor() { - this._fns = []; + clear(): void { + this.fns = []; } - clear() { - this._fns = []; - } - - getInterceptorIndex(id: number | Interceptor): number { - if (typeof id === 'number') { - return this._fns[id] ? id : -1; - } else { - return this._fns.indexOf(id); + eject(id: number | Interceptor): void { + const index = this.getInterceptorIndex(id); + if (this.fns[index]) { + this.fns[index] = null; } } - exists(id: number | Interceptor) { + + exists(id: number | Interceptor): boolean { const index = this.getInterceptorIndex(id); - return !!this._fns[index]; + return Boolean(this.fns[index]); } - eject(id: number | Interceptor) { - const index = this.getInterceptorIndex(id); - if (this._fns[index]) { - this._fns[index] = null; + getInterceptorIndex(id: number | Interceptor): number { + if (typeof id === 'number') { + return this.fns[id] ? id : -1; } + return this.fns.indexOf(id); } - update(id: number | Interceptor, fn: Interceptor) { + update( + id: number | Interceptor, + fn: Interceptor, + ): number | Interceptor | false { const index = this.getInterceptorIndex(id); - if (this._fns[index]) { - this._fns[index] = fn; + if (this.fns[index]) { + this.fns[index] = fn; return id; - } else { - return false; } + return false; } - use(fn: Interceptor) { - this._fns = [...this._fns, fn]; - return this._fns.length - 1; + use(fn: Interceptor): number { + this.fns.push(fn); + return this.fns.length - 1; } } -// `createInterceptors()` response, meant for external use as it does not -// expose internals export interface Middleware { - error: Pick< - Interceptors>, - 'eject' | 'use' - >; - request: Pick>, 'eject' | 'use'>; - response: Pick< - Interceptors>, - 'eject' | 'use' - >; + error: Interceptors>; + request: Interceptors>; + response: Interceptors>; } -// do not add `Middleware` as return type so we can use _fns internally -export const createInterceptors = () => ({ +export const createInterceptors = (): Middleware< + Req, + Res, + Err, + Options +> => ({ error: new Interceptors>(), request: new Interceptors>(), response: new Interceptors>(), diff --git a/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/core/queryKeySerializer.gen.ts b/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/core/queryKeySerializer.gen.ts new file mode 100644 index 0000000..d3bb683 --- /dev/null +++ b/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/core/queryKeySerializer.gen.ts @@ -0,0 +1,136 @@ +// This file is auto-generated by @hey-api/openapi-ts + +/** + * JSON-friendly union that mirrors what Pinia Colada can hash. + */ +export type JsonValue = + | null + | string + | number + | boolean + | JsonValue[] + | { [key: string]: JsonValue }; + +/** + * Replacer that converts non-JSON values (bigint, Date, etc.) to safe substitutes. + */ +export const queryKeyJsonReplacer = (_key: string, value: unknown) => { + if ( + value === undefined || + typeof value === 'function' || + typeof value === 'symbol' + ) { + return undefined; + } + if (typeof value === 'bigint') { + return value.toString(); + } + if (value instanceof Date) { + return value.toISOString(); + } + return value; +}; + +/** + * Safely stringifies a value and parses it back into a JsonValue. + */ +export const stringifyToJsonValue = (input: unknown): JsonValue | undefined => { + try { + const json = JSON.stringify(input, queryKeyJsonReplacer); + if (json === undefined) { + return undefined; + } + return JSON.parse(json) as JsonValue; + } catch { + return undefined; + } +}; + +/** + * Detects plain objects (including objects with a null prototype). + */ +const isPlainObject = (value: unknown): value is Record => { + if (value === null || typeof value !== 'object') { + return false; + } + const prototype = Object.getPrototypeOf(value as object); + return prototype === Object.prototype || prototype === null; +}; + +/** + * Turns URLSearchParams into a sorted JSON object for deterministic keys. + */ +const serializeSearchParams = (params: URLSearchParams): JsonValue => { + const entries = Array.from(params.entries()).sort(([a], [b]) => + a.localeCompare(b), + ); + const result: Record = {}; + + for (const [key, value] of entries) { + const existing = result[key]; + if (existing === undefined) { + result[key] = value; + continue; + } + + if (Array.isArray(existing)) { + (existing as string[]).push(value); + } else { + result[key] = [existing, value]; + } + } + + return result; +}; + +/** + * Normalizes any accepted value into a JSON-friendly shape for query keys. + */ +export const serializeQueryKeyValue = ( + value: unknown, +): JsonValue | undefined => { + if (value === null) { + return null; + } + + if ( + typeof value === 'string' || + typeof value === 'number' || + typeof value === 'boolean' + ) { + return value; + } + + if ( + value === undefined || + typeof value === 'function' || + typeof value === 'symbol' + ) { + return undefined; + } + + if (typeof value === 'bigint') { + return value.toString(); + } + + if (value instanceof Date) { + return value.toISOString(); + } + + if (Array.isArray(value)) { + return stringifyToJsonValue(value); + } + + if ( + typeof URLSearchParams !== 'undefined' && + value instanceof URLSearchParams + ) { + return serializeSearchParams(value); + } + + if (isPlainObject(value)) { + return stringifyToJsonValue(value); + } + + return undefined; +}; diff --git a/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/core/serverSentEvents.gen.ts b/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/core/serverSentEvents.gen.ts index 01b5818..f8fd78e 100644 --- a/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/core/serverSentEvents.gen.ts +++ b/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/core/serverSentEvents.gen.ts @@ -7,6 +7,17 @@ export type ServerSentEventsOptions = Omit< 'method' > & Pick & { + /** + * Fetch API implementation. You can use this option to provide a custom + * fetch instance. + * + * @default globalThis.fetch + */ + fetch?: typeof fetch; + /** + * Implementing clients can call request interceptors inside this hook. + */ + onRequest?: (url: string, init: RequestInit) => Promise; /** * Callback invoked when a network or parsing error occurs during streaming. * @@ -24,6 +35,7 @@ export type ServerSentEventsOptions = Omit< * @returns Nothing (void). */ onSseEvent?: (event: StreamEvent) => void; + serializedBody?: RequestInit['body']; /** * Default retry delay in milliseconds. * @@ -75,6 +87,7 @@ export type ServerSentEventsResult< }; export const createSseClient = ({ + onRequest, onSseError, onSseEvent, responseTransformer, @@ -112,7 +125,21 @@ export const createSseClient = ({ } try { - const response = await fetch(url, { ...options, headers, signal }); + const requestInit: RequestInit = { + redirect: 'follow', + ...options, + body: options.serializedBody, + headers, + signal, + }; + let request = new Request(url, requestInit); + if (onRequest) { + request = await onRequest(url, requestInit); + } + // fetch must be assigned here, otherwise it would throw the error: + // TypeError: Failed to execute 'fetch' on 'Window': Illegal invocation + const _fetch = options.fetch ?? globalThis.fetch; + const response = await _fetch(request); if (!response.ok) throw new Error( diff --git a/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/core/utils.gen.ts b/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/core/utils.gen.ts index ac31396..0b5389d 100644 --- a/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/core/utils.gen.ts +++ b/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/core/utils.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import type { QuerySerializer } from './bodySerializer.gen'; +import type { BodySerializer, QuerySerializer } from './bodySerializer.gen'; import { type ArraySeparatorStyle, serializeArrayParam, @@ -112,3 +112,32 @@ export const getUrl = ({ } return url; }; + +export function getValidRequestBody(options: { + body?: unknown; + bodySerializer?: BodySerializer | null; + serializedBody?: unknown; +}) { + const hasBody = options.body !== undefined; + const isSerializedBody = hasBody && options.bodySerializer; + + if (isSerializedBody) { + if ('serializedBody' in options) { + const hasSerializedBody = + options.serializedBody !== undefined && options.serializedBody !== ''; + + return hasSerializedBody ? options.serializedBody : null; + } + + // not all clients implement a serializedBody property (i.e. client-axios) + return options.body !== '' ? options.body : null; + } + + // plain/text body + if (hasBody) { + return options.body; + } + + // no body was provided + return undefined; +} diff --git a/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/index.ts b/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/index.ts index 31a9f07..3731393 100644 --- a/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/index.ts +++ b/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/index.ts @@ -1,4 +1,5 @@ // This file is auto-generated by @hey-api/openapi-ts -export * from './types.gen'; + +export type * from './types.gen'; export * from './client.gen'; -export * from './sdk.gen'; \ No newline at end of file +export * from './sdk.gen'; diff --git a/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/sdk.gen.ts b/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/sdk.gen.ts index 0426604..9f8401c 100644 --- a/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/sdk.gen.ts +++ b/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/sdk.gen.ts @@ -1,10 +1,10 @@ // This file is auto-generated by @hey-api/openapi-ts -import type { Options as ClientOptions, TDataShape, Client } from './client'; +import type { Client, Options as Options2, TDataShape } from './client'; +import { client } from './client.gen'; import type { GetUmbracoReadingTimeApiV1Data, GetUmbracoReadingTimeApiV1Responses } from './types.gen'; -import { client as _heyApiClient } from './client.gen'; -export type Options = ClientOptions & { +export type Options = Options2 & { /** * You can provide a client instance returned by `createClient()` instead of * individual options. This might be also useful if you want to implement a @@ -20,9 +20,9 @@ export type Options(options?: Options) { - return (options?.client ?? _heyApiClient).get({ + return (options?.client ?? client).get({ url: '/umbraco/ReadingTime/api/v1', ...options }); } -} \ No newline at end of file +} diff --git a/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/types.gen.ts b/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/types.gen.ts index 923469d..55ef9a5 100644 --- a/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/types.gen.ts +++ b/src/jcdcdev.Umbraco.ReadingTime.Client/src/api/types.gen.ts @@ -1,5 +1,9 @@ // This file is auto-generated by @hey-api/openapi-ts +export type ClientOptions = { + baseUrl: 'http://localhost:54813' | (string & {}); +}; + export type ReadingTimeResponse = { updateDate: string; readingTime: string; @@ -24,7 +28,3 @@ export type GetUmbracoReadingTimeApiV1Responses = { }; export type GetUmbracoReadingTimeApiV1Response = GetUmbracoReadingTimeApiV1Responses[keyof GetUmbracoReadingTimeApiV1Responses]; - -export type ClientOptions = { - baseUrl: 'http://localhost:54813' | (string & {}); -}; \ No newline at end of file diff --git a/src/jcdcdev.Umbraco.ReadingTime.TestSite/packages.lock.json b/src/jcdcdev.Umbraco.ReadingTime.TestSite/packages.lock.json index 286c0f4..b00450a 100644 --- a/src/jcdcdev.Umbraco.ReadingTime.TestSite/packages.lock.json +++ b/src/jcdcdev.Umbraco.ReadingTime.TestSite/packages.lock.json @@ -17,16 +17,16 @@ }, "Umbraco.Cms": { "type": "Direct", - "requested": "[16.1.1, )", - "resolved": "16.1.1", - "contentHash": "nhplGLIpDtPmC3vv5DqsTPddYnVA9y/QG+nukoPbW/RScp0PFneQFndwnK2g1dxRP8lf7vT40/uDffocZQxlvg==", + "requested": "[16.3.0, )", + "resolved": "16.3.0", + "contentHash": "uBXaAsrYrwN8NuQJ5k+xdrhQ+G5NBlXgZ+AvnbwmiIS/Qh03B4a2dqtovHSgGSzukYEdLGm5GeSVGm5+jVO/7Q==", "dependencies": { - "Umbraco.Cms.Imaging.ImageSharp": "[16.1.1, 17.0.0)", - "Umbraco.Cms.Persistence.EFCore.SqlServer": "[16.1.1, 17.0.0)", - "Umbraco.Cms.Persistence.EFCore.Sqlite": "[16.1.1, 17.0.0)", - "Umbraco.Cms.Persistence.SqlServer": "[16.1.1, 17.0.0)", - "Umbraco.Cms.Persistence.Sqlite": "[16.1.1, 17.0.0)", - "Umbraco.Cms.Targets": "[16.1.1, 17.0.0)" + "Umbraco.Cms.Imaging.ImageSharp": "[16.3.0, 17.0.0)", + "Umbraco.Cms.Persistence.EFCore.SqlServer": "[16.3.0, 17.0.0)", + "Umbraco.Cms.Persistence.EFCore.Sqlite": "[16.3.0, 17.0.0)", + "Umbraco.Cms.Persistence.SqlServer": "[16.3.0, 17.0.0)", + "Umbraco.Cms.Persistence.Sqlite": "[16.3.0, 17.0.0)", + "Umbraco.Cms.Targets": "[16.3.0, 17.0.0)" } }, "uSync": { @@ -2129,16 +2129,16 @@ }, "SixLabors.ImageSharp": { "type": "Transitive", - "resolved": "3.1.7", - "contentHash": "9fIOOAsyLFid6qKypM2Iy0Z3Q9yoanV8VoYAHtI2sYGMNKzhvRTjgFDHonIiVe+ANtxIxM6SuqUzj0r91nItpA==" + "resolved": "3.1.11", + "contentHash": "JfPLyigLthuE50yi6tMt7Amrenr/fA31t2CvJyhy/kQmfulIBAqo5T/YFUSRHtuYPXRSaUHygFeh6Qd933EoSw==" }, "SixLabors.ImageSharp.Web": { "type": "Transitive", - "resolved": "3.1.4", - "contentHash": "wuH8nGNUNx6s2T8+YFpZg25yTEcmN2Zof24dLWO+TADEai0rKJrob7W/ai/l07095a381PxzbdvYUslmAEdonw==", + "resolved": "3.1.5", + "contentHash": "xC0gpnV14tY1fXtmhOoyhqf0XSy9g48wLzRS89SRgOHkO8enLJDjATv4ghklSsjMtRZuseYHkYXGty80Jp2Eow==", "dependencies": { "Microsoft.IO.RecyclableMemoryStream": "3.0.1", - "SixLabors.ImageSharp": "3.1.7" + "SixLabors.ImageSharp": "3.1.8" } }, "SQLitePCLRaw.bundle_e_sqlite3": { @@ -3080,8 +3080,8 @@ }, "Umbraco.Cms.Api.Common": { "type": "Transitive", - "resolved": "16.1.1", - "contentHash": "XvIFIZUzakF2B6K64gy98pxi6Kx0BizrggyOfR7rijS8hG9rZbfcrwQsQ2TOBcPbWkXuw/8BaaW8KWfZViUUQQ==", + "resolved": "16.3.0", + "contentHash": "5zgcQdZtckGmiJ5bRQd5+G0rHB3qf1wJ04bQgHlh6/zM2MIzySEedKTiqbsqh/TbSSPBsA6i4g6LrpxLNzPpzw==", "dependencies": { "Asp.Versioning.Mvc": "8.1.0", "Asp.Versioning.Mvc.ApiExplorer": "8.1.0", @@ -3089,35 +3089,35 @@ "OpenIddict.Abstractions": "6.2.1", "OpenIddict.AspNetCore": "6.2.1", "Swashbuckle.AspNetCore": "8.1.1", - "Umbraco.Cms.Core": "[16.1.1, 17.0.0)", - "Umbraco.Cms.Web.Common": "[16.1.1, 17.0.0)" + "Umbraco.Cms.Core": "[16.3.0, 17.0.0)", + "Umbraco.Cms.Web.Common": "[16.3.0, 17.0.0)" } }, "Umbraco.Cms.Api.Delivery": { "type": "Transitive", - "resolved": "16.1.1", - "contentHash": "6EoNVqenZ7LiEnLDQ26hUz8qvBiNcUMFrseRHInqQHz3Sax2Wo64p/vnEZLs1WWGKjOI+oY6bRZZmywg40Umjw==", + "resolved": "16.3.0", + "contentHash": "Ym3zCyCO1uYT/1b3/UuKyfvKk40ZTPSgiILp58lvFXZR50iGM1xH9XYYeE392GBXDSQYi376rik6xq7S3JJ8QA==", "dependencies": { - "Umbraco.Cms.Api.Common": "[16.1.1, 17.0.0)", - "Umbraco.Cms.Web.Common": "[16.1.1, 17.0.0)" + "Umbraco.Cms.Api.Common": "[16.3.0, 17.0.0)", + "Umbraco.Cms.Web.Common": "[16.3.0, 17.0.0)" } }, "Umbraco.Cms.Api.Management": { "type": "Transitive", - "resolved": "16.1.1", - "contentHash": "mJRMA9maV2Rm3H+voH7WebUAukg3SEs3WddTRwUq92m0TXtnDWRGA1Pe7FZZ3679aEi+hyIXHrpArU9si9FJMQ==", + "resolved": "16.3.0", + "contentHash": "GR6kWd9sQJpCUc7b339sU2MqY+v1+oieRWmMlIYWaw561FpQ6yng/C6cvO//gpDOdvGPVorY6L3xd03fsa8yGQ==", "dependencies": { "JsonPatch.Net": "3.3.0", "Swashbuckle.AspNetCore": "8.1.1", - "Umbraco.Cms.Api.Common": "[16.1.1, 17.0.0)", - "Umbraco.Cms.Infrastructure": "[16.1.1, 17.0.0)", - "Umbraco.Cms.PublishedCache.HybridCache": "[16.1.1, 17.0.0)" + "Umbraco.Cms.Api.Common": "[16.3.0, 17.0.0)", + "Umbraco.Cms.Infrastructure": "[16.3.0, 17.0.0)", + "Umbraco.Cms.PublishedCache.HybridCache": "[16.3.0, 17.0.0)" } }, "Umbraco.Cms.Core": { "type": "Transitive", - "resolved": "16.1.1", - "contentHash": "oMWQZLs/aQoN0SrVXiEFAIVuwXoYf9DdMohOr6pmZbzUzHMsUTJdRAKTiJ+YrAMIjarc+Vq7j+pH/FEDLpI66w==", + "resolved": "16.3.0", + "contentHash": "6Qn1LvDDxIw3dLqmDSFBuD6W90MJH+lAZ5KHD7rlOzrq5ouu3874MOZVwl7VSKBIREHZr6LPYEBhhddoQoKgvg==", "dependencies": { "Microsoft.Extensions.Caching.Abstractions": "9.0.4", "Microsoft.Extensions.Caching.Memory": "9.0.4", @@ -3134,29 +3134,29 @@ }, "Umbraco.Cms.Examine.Lucene": { "type": "Transitive", - "resolved": "16.1.1", - "contentHash": "FPb3Kbq5+tl+Bj7DZF7vfN79o+w//nqVRg9XGjvHpx/QXCTNCm0BUcdpx9Qiy5a63Mh7vwMFqqaeQWn5de0L3A==", + "resolved": "16.3.0", + "contentHash": "h85lpSKl71chKMtoGXyf1FLenBzbihQBqBMhuLfsol22HXpf/w1v6ntqJSYFjp5HQHXkaZ7OQ9Fc+2b4D4tyow==", "dependencies": { "Examine": "3.7.1", "Lucene.Net.Replicator": "4.8.0-beta00017", "System.Security.Cryptography.Xml": "9.0.4", - "Umbraco.Cms.Infrastructure": "[16.1.1, 17.0.0)" + "Umbraco.Cms.Infrastructure": "[16.3.0, 17.0.0)" } }, "Umbraco.Cms.Imaging.ImageSharp": { "type": "Transitive", - "resolved": "16.1.1", - "contentHash": "ZxE2+bMal+jRGMmGPly3Ol5R2d+hmaYuPbB3kUbf2GwPmNQCe78FNbV73dnwjKqgsnXS7hzB4okULdrAMVsp0A==", + "resolved": "16.3.0", + "contentHash": "TCKaR84g/f/uzB31NAaXPfwII8xdQ2ZqPsA8LeeD8rdUsgejSXDX0JiG76oEyot6bmU7FAKEyZHSkl0S4fVNEA==", "dependencies": { - "SixLabors.ImageSharp": "3.1.7", - "SixLabors.ImageSharp.Web": "3.1.4", - "Umbraco.Cms.Web.Common": "[16.1.1, 17.0.0)" + "SixLabors.ImageSharp": "3.1.11", + "SixLabors.ImageSharp.Web": "3.1.5", + "Umbraco.Cms.Web.Common": "[16.3.0, 17.0.0)" } }, "Umbraco.Cms.Infrastructure": { "type": "Transitive", - "resolved": "16.1.1", - "contentHash": "bQFdPeQS/Y0vVJ4NuW51/X9iAjae36YqTSI2lQ1ojwll4Hg082E3vG/oDBl8qJFGsv1OhJOOPh/u/LKDSv/8ew==", + "resolved": "16.3.0", + "contentHash": "qOwiliY1jA0fh6BJYcJWNCKmx3oxasFLLI2Bq9cNITmELeRxjwQq+tPYKqcKJ7aKxELAzSVxn1enMvQRsd2XmQ==", "dependencies": { "Examine.Core": "3.7.1", "HtmlAgilityPack": "1.12.1", @@ -3183,14 +3183,14 @@ "Serilog.Sinks.File": "6.0.0", "Serilog.Sinks.Map": "2.0.0", "System.Text.RegularExpressions": "4.3.1", - "Umbraco.Cms.Core": "[16.1.1, 17.0.0)", + "Umbraco.Cms.Core": "[16.3.0, 17.0.0)", "ncrontab": "3.3.3" } }, "Umbraco.Cms.Persistence.EFCore": { "type": "Transitive", - "resolved": "16.1.1", - "contentHash": "dFt3ILO2krPtxBjShIn/TEoYNf8Ideyv0cJgEUYJ7nw/MH5oHiOc3eG1cyB/LEUvgZK0duwjWTiRi7ojJFytXQ==", + "resolved": "16.3.0", + "contentHash": "K6ypr8TfL7NbZCwv+5awiY9vGbEQzWAmOioJS+TuizhQHJ6NVVmxx/Q/YN+5DFnAwMiFIT7af8aQ+hqf3k11xg==", "dependencies": { "Azure.Identity": "1.13.2", "Microsoft.EntityFrameworkCore.SqlServer": "9.0.4", @@ -3199,88 +3199,88 @@ "OpenIddict.EntityFrameworkCore": "6.2.1", "System.Runtime.Caching": "9.0.4", "System.Text.Encodings.Web": "9.0.4", - "Umbraco.Cms.Core": "[16.1.1, 17.0.0)", - "Umbraco.Cms.Infrastructure": "[16.1.1, 17.0.0)" + "Umbraco.Cms.Core": "[16.3.0, 17.0.0)", + "Umbraco.Cms.Infrastructure": "[16.3.0, 17.0.0)" } }, "Umbraco.Cms.Persistence.EFCore.Sqlite": { "type": "Transitive", - "resolved": "16.1.1", - "contentHash": "3Kcr5BOz4hnFyTrAWbozws0o+rvoXlFBTo/FXhX/VAj2GPqrqUQG1PCc9i8ADtyWS6ChPJC8Zaka3E52/dlpaA==", + "resolved": "16.3.0", + "contentHash": "jCpq9c8eBcIzc5Zjl+GB7+wMgWaouI4XxIIWpkVVns1F6LUw6QJ+Mu/Pc3pYWJgQ7JH7JelaAnoDtUfNDWzsZQ==", "dependencies": { "Microsoft.EntityFrameworkCore.Sqlite": "9.0.4", - "Umbraco.Cms.Persistence.EFCore": "[16.1.1, 17.0.0)" + "Umbraco.Cms.Persistence.EFCore": "[16.3.0, 17.0.0)" } }, "Umbraco.Cms.Persistence.EFCore.SqlServer": { "type": "Transitive", - "resolved": "16.1.1", - "contentHash": "sJIyMRw9rKaYA9IU4CrBtZFp0JiFwag8DXmdu8MeBTu7SHzQz4Fej5XCgA3c53nIjPZTxx5wusOJEIjhmt2Bzg==", + "resolved": "16.3.0", + "contentHash": "i9hW14yJD61Y4/OSnc8q2FwYe8NCXBAszSNTBRAOrabejFNxwbNLFlP/mNTgKJe4LDnSnin/iUSI7+iIP8lm4Q==", "dependencies": { "Azure.Identity": "1.13.2", "Microsoft.EntityFrameworkCore.SqlServer": "9.0.4", "Microsoft.IdentityModel.JsonWebTokens": "8.8.0", "System.Runtime.Caching": "9.0.4", - "Umbraco.Cms.Persistence.EFCore": "[16.1.1, 17.0.0)" + "Umbraco.Cms.Persistence.EFCore": "[16.3.0, 17.0.0)" } }, "Umbraco.Cms.Persistence.Sqlite": { "type": "Transitive", - "resolved": "16.1.1", - "contentHash": "K8+C72UUhB2HJdWZBjLBr63Czwy3B+YyxxKjB0NzAH3Vu1kiXHpJ82ERyPjd4Fo61ZrlVCuUIR77wRB63qqTYg==", + "resolved": "16.3.0", + "contentHash": "zlSPK/JnLVwSkXYQz2fmZE/J78Zz+KftKAG5lL1GRtq+qdeTG8j6dVz9sSgzokGy36l9JhLRUXgymRHyLlKBtg==", "dependencies": { "Microsoft.Data.Sqlite": "9.0.4", - "Umbraco.Cms.Infrastructure": "[16.1.1, 17.0.0)" + "Umbraco.Cms.Infrastructure": "[16.3.0, 17.0.0)" } }, "Umbraco.Cms.Persistence.SqlServer": { "type": "Transitive", - "resolved": "16.1.1", - "contentHash": "lLEztpqHuO1ELtZ6ArXws3HMk7si3qsE9xWyWdpUsgZzaUvCXqfuZZ8m8OPqtTycgUoUwYo5j81gwSDz55r5kA==", + "resolved": "16.3.0", + "contentHash": "yRiskiu9qPHADk7quTvw9IzH1d0uGtyUylIQonDtL11BY0m3ixPjovfR8XGRTJSK3/sR0RcoUgPJtwCDTNyHCQ==", "dependencies": { "Azure.Identity": "1.13.2", "Microsoft.Data.SqlClient": "6.0.1", "NPoco.SqlServer": "5.7.1", "System.Runtime.Caching": "9.0.4", "System.Text.Encodings.Web": "9.0.4", - "Umbraco.Cms.Infrastructure": "[16.1.1, 17.0.0)" + "Umbraco.Cms.Infrastructure": "[16.3.0, 17.0.0)" } }, "Umbraco.Cms.PublishedCache.HybridCache": { "type": "Transitive", - "resolved": "16.1.1", - "contentHash": "qayXaDpAYqycGp1iS+1Pyn8V2kYxg6z7tNf3KPzhot3jZfdDVzzMmq4On9iXv1SgBb2GJRziQtBh0ZV7XWp9pw==", + "resolved": "16.3.0", + "contentHash": "YwJ1Jfoj74T40noFIh9dinqOuCPT1Bg+LrTpxmxvTecCkiNz8kmWWdRUgvIyDXVxPL57oPvuwtoDIEqxwzX60w==", "dependencies": { "K4os.Compression.LZ4": "1.3.8", "MessagePack": "3.1.3", "Microsoft.Extensions.Caching.Hybrid": "9.4.0", - "Umbraco.Cms.Core": "[16.1.1, 17.0.0)", - "Umbraco.Cms.Infrastructure": "[16.1.1, 17.0.0)" + "Umbraco.Cms.Core": "[16.3.0, 17.0.0)", + "Umbraco.Cms.Infrastructure": "[16.3.0, 17.0.0)" } }, "Umbraco.Cms.StaticAssets": { "type": "Transitive", - "resolved": "16.1.1", - "contentHash": "s8bmBMJFMmujM5Lmm7pL/4HDtuQvs7kdbci1VkkkkoBm9LxcDCizTmeEHdT+bfdD1BTpTcEBmsjoxj6NQmQqtg==", + "resolved": "16.3.0", + "contentHash": "8sHRBe3St4XtuF3WKMQVCjQnWP2ucOUb+wbgNML8rtd49pQeEVZQiM/NEKk5M0DKGX3TRKUsYcC3+8a7R1C6rg==", "dependencies": { - "Umbraco.Cms.Api.Management": "[16.1.1, 17.0.0)", - "Umbraco.Cms.Web.Website": "[16.1.1, 17.0.0)" + "Umbraco.Cms.Api.Management": "[16.3.0, 17.0.0)", + "Umbraco.Cms.Web.Website": "[16.3.0, 17.0.0)" } }, "Umbraco.Cms.Targets": { "type": "Transitive", - "resolved": "16.1.1", - "contentHash": "ZFqkZUu8+7CP7xQtzq/yDorVuEu7dGw1IHz5rUIg9ctrX0nva4WjnEguXVUMmhGqeUPj1bOL7ZrG5H5d/d5e1A==", + "resolved": "16.3.0", + "contentHash": "mXqrdk+pqoWPHJK3AadsozFljB+VyLzPHvQNBNQoe8cVgynX5gaXRXdIrIzL1Q7/hAAqCz8FWUgAu5bUlevpJg==", "dependencies": { - "Umbraco.Cms.Api.Delivery": "[16.1.1, 17.0.0)", - "Umbraco.Cms.Api.Management": "[16.1.1, 17.0.0)", - "Umbraco.Cms.StaticAssets": "[16.1.1, 17.0.0)" + "Umbraco.Cms.Api.Delivery": "[16.3.0, 17.0.0)", + "Umbraco.Cms.Api.Management": "[16.3.0, 17.0.0)", + "Umbraco.Cms.StaticAssets": "[16.3.0, 17.0.0)" } }, "Umbraco.Cms.Web.Common": { "type": "Transitive", - "resolved": "16.1.1", - "contentHash": "Tco5veMcqoScF3xKhQijSwSjoQg54SjRabL8Of/xXsQGSa1tHsfqW614ks96I2yJLxlCHEdDwiGrq8LHTHxO3A==", + "resolved": "16.3.0", + "contentHash": "KHU7dAYRoxOUIQcj+fotLMkF9Rmbpk4TLD7wk7rJaevoHPX/IttOmKYlt3lQQ8tmCzEdtlo6vJWsiEiHS6TSpA==", "dependencies": { "Asp.Versioning.Mvc": "8.1.0", "Asp.Versioning.Mvc.ApiExplorer": "8.1.0", @@ -3292,16 +3292,16 @@ "System.Net.Http": "4.3.4", "System.Text.Encodings.Web": "9.0.4", "System.Text.RegularExpressions": "4.3.1", - "Umbraco.Cms.Examine.Lucene": "[16.1.1, 17.0.0)", - "Umbraco.Cms.PublishedCache.HybridCache": "[16.1.1, 17.0.0)" + "Umbraco.Cms.Examine.Lucene": "[16.3.0, 17.0.0)", + "Umbraco.Cms.PublishedCache.HybridCache": "[16.3.0, 17.0.0)" } }, "Umbraco.Cms.Web.Website": { "type": "Transitive", - "resolved": "16.1.1", - "contentHash": "OUzdlQOcpFHJxEci/CCQfG2MeLNRCOuvltiRJoPQ70iKZ4UNKMxvVuPdbn5yK6aC3j9uiXVxSBztxQtS+tOLwg==", + "resolved": "16.3.0", + "contentHash": "THPIF5mXbXktqGTUjr3ieB0+TeyEE7nko6zeQi01dc7+PnWuRkMJRKDO/9BrKuhbE6U/dq8rzT6mopyyz6lQtQ==", "dependencies": { - "Umbraco.Cms.Web.Common": "[16.1.1, 17.0.0)" + "Umbraco.Cms.Web.Common": "[16.3.0, 17.0.0)" } }, "uSync.BackOffice": {